Много где указано что DNS хитрая штука, и принимая запросы по UDP на порт 53 он может вернуть ответ на какой угодно порт от 1024 до 65536... Непонятно как настроить iptables, чтобы он ОТВЕТНЫЕ udp пакеты от dns принимал, но не открывал при этом все udp порты вообще
Если есть другие замечания по конфигу, тоже высказывайтесь.
Код: Выделить всё
#!/bin/bash
# путь до iptables
IPT=/usr/sbin/iptables
# сброс всех правил
$IPT -F
# по умолчанию удалять все пакеты
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# разрешить loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT ! -i lo -s 127.0.0.0/8 -j DROP
# разрешить пинг
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# разрешить входящий ssh
$IPT -A INPUT -p tcp --dport 4200 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 4200 -m state --state ESTABLISHED -j ACCEPT
# разрешить входящие соединения к mariadb
$IPT -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
# разрешить веб-сервер
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# Разрешить исходящие DNS-запросы
$IPT -A INPUT -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -j ACCEPT
# разрешить серверы обновлений
# ru.archive.ubuntu.com (mirror.yandex.ru)
$IPT -A INPUT -s ru.archive.ubuntu.com -p tcp -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -d ru.archive.ubuntu.com -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT