Ответ
В моей практике с iptables/nftables и облачными группами безопасности (Security Groups) трафик проходит из-за ошибок в порядке применения правил (порядок важен!), неявных разрешающих политик по умолчанию или из-за того, что правило блокировки применяется не к тому сетевому интерфейсу или адресу.
Типичный кейс и решение:
Я настраивал firewall на сервере, но SSH-трафик всё равно проходил. Проблема была в том, что правило DROP для порта 22 добавлялось в конец цепочки INPUT командой -A, после уже существующего разрешающего правила ACCEPT.
# НЕПРАВИЛЬНО: Правило добавляется в конец цепочки и может не сработать.
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
# ПРАВИЛЬНО: Правило нужно вставить в начало цепочки, чтобы оно обрабатывалось первым.
sudo iptables -I INPUT 1 -p tcp --dport 22 -j DROP
# Всегда проверяйте итоговый порядок правил:
sudo iptables -L INPUT -v -n --line-numbers
Другие частые причины:
- Политика по умолчанию: Цепочка
INPUTимеет политикуACCEPT. Нужно явно установитьDROP:sudo iptables -P INPUT DROP. - Проброс портов (NAT): Правила в цепочке
FORWARDилиDOCKER-USER(если используется Docker) могут пропускать трафик. - Не перезагружены правила: После редактирования файла конфигурации
/etc/iptables/rules.v4нужно применить правила:sudo iptables-restore < /etc/iptables/rules.v4. - Облачные Security Groups: В AWS/GCP/Azure нужно проверять как входящие (Inbound), так и исходящие (Outbound) правила групп безопасности, привязанных к инстансу.