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, кроме этого, чтобы убедиться, что никакие другие правила не мешают?

Другие вопросы по тегам