Назад | Перейти на главную страницу

Почему iptables не работает должным образом?

Я установил эти четыре фильтра с помощью iptables:

iptables -I FORWARD -p udp -i eth0 -j DROP
iptables -I FORWARD -p udp -o eth0 -j DROP
iptables -I INPUT -p udp -i eth0 -j DROP
iptables -I OUTPUT -p udp -o eth0 -j DROP

надеясь сбросить любой пакет udp на eth0, но когда я сделаю:

tcpdum udp -vv -i eth0

Я все еще вижу, как пакеты UDP приходят и уходят.

Кто-нибудь может это объяснить? А подскажите, как реально сбросить пакеты UDP на конкретный интерфейс? (eth0 например)

tcpdump захватывает пакеты, подключаясь к потоку пакетов. Он получает все пакеты, даже те, которые будут отброшены правилами брандмауэра.

Если вы хотите убедиться, что трафик блокируется, вам следует проверить сеть на наличие исходящего трафика. Вы можете протестировать входящий трафик, настроив прослушиватель и попытавшись отправить ему трафик из сети. Если ваши правила работают, вы должны получить разные результаты с установленными правилами или без них. Однако, если у вас есть политика DROP, результаты будут такими же.

В iptables вы можете добавить правила регистрации или принятия после правил удаления. Проверка количества пакетов для правил покажет вам, попадает ли что-нибудь в соответствие с правилами отбрасывания.

Вы уверены, что хотите сбросить весь UDP-трафик? DNS сначала пробует UDP и возвращается к TCP только в случае необходимости.