Допустим на сервере по умолчанию INPUT DROP, теперь приведу пример простого правила разрешающего DHCP запросы к серверу, этого будет достаточно чтобы клиенты получили IP от сервера (где em1 — сетевой интерфейс на котором запущен DHCP сервер):
iptables -I INPUT -p udp -i em1 --dport 67 -j ACCEPT
Чтобы удалить правило укажем ту же команду, заменив -A на -D, например:
iptables -D INPUT -p udp -i em1 --dport 67 -j ACCEPT
Ограничивая доступ по IP адресу стоит учесть, что клиенты не имеющие IP адреса, обычно шлют широковещательный запрос от IP адреса 0.0.0.0 на 255.255.255.255, а продлевают уже по unicast со своего полученного IP.
Приведу пример ограничения по IP адресу (где 192.168.5.1 — IP на котором запущен DHCP сервер, а 172.17.0.0/16 — сеть клиентов с которой разрешено продлевать аренду IP):
iptables -t filter -A INPUT -i em1 -p udp -s 0.0.0.0 --sport 68 -d 255.255.255.255 --dport 67 -j ACCEPT
iptables -t filter -A INPUT -i em1 -p udp -s 0.0.0.0 --sport 68 -d 192.168.5.1 --dport 67 -j ACCEPT
iptables -t filter -A INPUT -i em1 -p udp -s 172.17.0.0/16 --sport 68 -d 192.168.5.1 --dport 67 -j ACCEPT
Когда DHCP сервер работает но очень большом количестве сетевых интерфейсов, например Accel-ppp, то можно не указывать их, например:
iptables -A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 67 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/12 -p udp -m udp --dport 67 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/32 -p udp -m udp --dport 67 -j ACCEPT
Если политика по умолчанию INPUT ACCEPT, то последним правилом запретим доступ (в этом случае разрешающие правила должны быть обязательно перед ним, а не после):
iptables -A INPUT -p udp -m udp --dport 67 -j DROP
Смотрите также мои статьи:
Настройка IPTables
IPTables правила для TFTP
Что такое DHCP и как он работает?