Я хочу проверить некоторые правила iptables
правило заключается в том, чтобы запретить весь исходящий трафик, кроме DNS.
поэтому я изменил правило OUTPUT по умолчанию для таблицы фильтров на DROP с помощью этой команды.
sudo iptables -t filter -P OUTPUT DROP
Затем я добавил это правило к ПРИНИМАЕМ DNS-трафику.
sudo iptables -t filter -A OUTPUT -p udp --dport 53 -o ens33 -j ACCEPT
и я запускаю эту команду для проверки политики.
nslookup google.com
и перед запуском этой команды я запускаю wireshark на своей виртуальной машине и хосте.
затем команда nslookup потратила некоторое время и выдала мне это сообщение.
Время ожидания соединения истекло; никакие серверы не были доступны
, а wireshark (на виртуальной машине и на хосте) не перехватывал никакие пакеты.
Поэтому я удалил это правило и добавил другое.
sudo iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
и сделал то же самое, что и раньше.
то же сообщение появляется снова, но wireshark (на виртуальной машине и на хосте) перехватывает пакеты (запрос и ответ).
затем я удалил это правило и добавил следующее правило.
sudo iptables -t filter -A OUTPUT -p udp -j ACCEPT
и сделал то же самое, что и раньше.
на этот раз команда nslookup возвращает результат, и wireshark перехватывает пакеты.
Так почему же это происходит?
Перед этими тестами я установил snort (на другой виртуальной машине) и попытался отбросить некоторые пакеты, но это не сработало.
пакеты регистрируются, но не отбрасываются.
Я не знаю, связаны эти случаи или нет.