Linux не отправляет ICMP с iptables `--reject-with`
С помощью iptables
Я пытаюсь отклонить пакеты (я хочу вернуть сообщение ICMP).
iptables -A FORWARD [...] -j REJECT --reject-with icmp-port-unreach
Пакеты сброшены, но с использованием tcpdump
Я не вижу нет ICMP
, Что дает? Я делаю что-то неправильно? Должен ли я перевернуть sysctl
или что-нибудь?
Ядро это: 2.6.32-5-openvz-686
Пожалуйста, не предлагайте "использовать DROP
вместо REJECT
".
2 ответа
Вы уверены, что попали в цепочку FORWARD? Вы можете добавить правило для регистрации всех соответствующих пакетов.
iptables -I FORWARD [...] -j LOG --log-prefix "FORWARDED"
Если после добавления этого правила вы не видите ничего в /var/log/messages, вы, вероятно, используете неверную цепочку (INPUT вместо FORWARD?) Или неправильные условия.
Вы уверены, что рассматриваемые пакеты соответствуют вашему правилу для отклонения? Видите ли вы счетчик, связанный с этим правилом, увеличивающимся, когда вы смотрите на подробный вывод (iptables --list --verbose
)?
Вы пытались отключить все другие правила iptables, кроме этого, чтобы убедиться, что никакие другие правила не мешают?