Как открыть порт DHCP с помощью UFW на Linux

Uncomplicated Firewall (UFW) должен быть настроен на разрешение трафика на UDP-портах 67 и 68, независимо от того, является ли сервер Dynamic Host Configuration Protocol (DHCP) локальным или удаленным.

Кроме того, может потребоваться открыть TCP- и UDP-порты 53, которые используются для службы доменных имен (DNS).

В малых предприятиях и домашних условиях обычно службы DNS и DHCP предоставляются одним устройством.

Поэтому будет лучше, если вы откроете оба порта DHCP и DNS с помощью команды ufw.

Открытие порта DHCP с помощью UFW в Linux

При использовании UFW команды выглядят следующим образом:

sudo ufw allow bootps comment ‘Allow 67/UDP’
 sudo ufw allow bootpc comment ‘Allow 68/UDP’
 sudo ufw allow 53/udp comment ‘Allow DNS_53/UDP’
 sudo ufw allow 53/tcp comment ‘Allow DNS_53/TCP’

 

Проверка вновь добавленных правил UFW осуществляется следующим образом:

sudo ufw status verbose

 

Помимо всех прочих правил, вы увидите следующее:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), deny (routed)

New profiles: skip

 

To                         Action      From

--                         ------      ----

67/udp                     ALLOW IN    Anywhere                   # Allow 67/UDP

53/udp                     ALLOW IN    Anywhere                   # Allow DNS_53/UDP

53/tcp                     ALLOW IN    Anywhere                   # Allow DNS_53/TCP

68/udp                     ALLOW IN    Anywhere                   # Allow 68/UDP

22/tcp                     ALLOW IN    Anywhere                  

67/udp (v6)                ALLOW IN    Anywhere (v6)              # Allow 67/UDP

53/udp (v6)                ALLOW IN    Anywhere (v6)              # Allow DNS_53/UDP

53/tcp (v6)                ALLOW IN    Anywhere (v6)              # Allow DNS_53/TCP

68/udp (v6)                ALLOW IN    Anywhere (v6)              # Allow 68/UDP

22/tcp (v6)                ALLOW IN    Anywhere (v6)             

.....

.....

 

Устранение неполадок

Трафик DHCP и DNS по-прежнему блокируется?

Посмотрите логи UFW следующим образом, используя команду tail в режиме реального времени:

tail -f /var/log/ufw.log

 

Запрос к файлу /var/log/ufw.log можно выполнить еще вот так:

sudo grep -w ‘DPT={PORT_NUMBER_HERE}’ /var/log/ufw.log
 sudo grep -w ‘DPT=67’ /var/log/ufw.log
 sudo grep -w ‘DPT=67’ /var/log/ufw.log

 

Сопоставить протоколы (PROTO) и порт назначения (DPT)/порт источника (SPT) можно следующим образом:

sudo grep -Ew ‘PROTO=UDP.*DPT=67’ /var/log/ufw.log
 sudo grep -Ew ‘PROTO=UDP.*SPT={PORT_NUMBER_HERE}’ /var/log/ufw.log

 

Также можно использовать команду journalctl следующим образом:

journalctl | grep -i ufw
 journalctl -g ‘grep_regex_here’
 journalctl -g ‘ufw’
 journalctl -g ‘[ufw.*dpt=67’
 journalctl -g ‘[ufw.*dpt=68’
 journalctl -g ‘[ufw.*tcp=53’

 

Опция -g или –grep фильтрует вывод записей, в которых поле MESSAGE= соответствует заданным PERL-совместимым регулярным выражениям.

Обратите внимание, что если в шаблоне все строчные буквы, то совпадение не зависит от регистра.

В противном случае совпадение происходит с учетом регистра.

Это может быть отменено с помощью опции –case-sensitive=<true|false> следующим образом:

journalctl -g ‘[ufw.*DPT=53’ —case-sensitive=false

 

Блокирование трафика DHCP и DNS с помощью UFW

Нужно ли блокировать трафик DHCP и DNS?

Синтаксис запрета выглядит следующим образом:

  sudo ufw deny bootps comment ‘Block 67/UDP’
 sudo ufw deny bootpc comment ‘Block 68/UDP’
 sudo ufw deny 53/udp comment ‘Block DNS_53/UDP’
 sudo ufw deny 53/tcp comment ‘Block DNS_53/TCP’

 

Заключени

На этой странице были рассмотрены правила UFW для открытия портов для DHCP-трафика.

Таблица 1: Требования к номерам портов для брандмауэра DHCP
Номер портаПротоколОписание
53TCP & UDPDNS
853TCPDNS over TLS
853UDPDNS over DTLS
67UDPbootps
68UDPbootpc

 

Можно воспользоваться командой grep или egrep, запросив файл /etc/services.

Например:

grep bootps /etc/service
 grep -E -w ‘domain|bootpc|bootps’ /etc/service