Допустим на сервере по умолчанию INPUT DROP и установлен DNS сервер, теперь приведу пример IPTables правил чтобы к DNS серверу могли обращайся клиенты.
Чтобы открыть порт DNS в IPTables выполним правило:
sudo iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
Чтобы открыть порт DNS только для конкретной сети, выполним правило:
sudo iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 53 -j ACCEPT
Чтобы удалить правила укажем те же команды, заменив -A на -D, например:
sudo iptables -D INPUT -i eth0 -p udp --dport 53 -j ACCEPT
sudo iptables -D INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
Посмотреть список правил можно командой:
sudo iptables -nvL
На сервере доступа можно переадресовать все DNS запросы на свой сервер (то есть, если клиент укажет в ручную свои DNS, то запросы все равно будут идти на указанный в iptables правиле):
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.2.5
Чтобы открыть доступ к статистике (порт 8053 TCP):
sudo iptables -A INPUT -s 192.168.5.5 -p tcp --dport 8053 -j ACCEPT
Смотри также мои статьи:
Настройка IPTables
Установка и настройка DNS-сервера BIND9