Что конкретно делает -A INPUT -j REJECT --reject-with icmp-host-disabled Iptables?

35

Я читал документацию redhat iptables, но не могу понять, что делают следующие строки:

... -j REJECT **--reject-with icmp-host-prohibited**   
... -j REJECT **--reject-with icmp-host-prohibited** 
Дэвид
источник

Ответы:

37

REJECTЦелевой отвергает пакет. Если вы не укажете, какое сообщение ICMP следует отклонить, сервер по умолчанию отправит обратно недоступный порт ICMP (тип 3, код 3).

--reject-withизменяет это поведение, чтобы отправить конкретное сообщение ICMP обратно на исходный хост. Вы можете найти информацию --reject-withи доступные сообщения об отказе в man iptables:

БРАК

Это используется для отправки пакета с ошибкой в ​​ответ на сопоставленный пакет: в противном случае он эквивалентен DROP, поэтому это завершающий TARGET, заканчивающийся обходом правила. Эта цель действительна только в цепочках INPUT, FORWARD и OUTPUT и в пользовательских цепочках, которые вызываются только из этих цепочек. Следующая опция контролирует характер возвращаемого пакета ошибок:

--reject-with type

Тип может быть:

  • ICMP-нетто-недостижим
  • ICMP-хост-недостижим
  • ICMP-порт-недостижим
  • ICMP-прото-недостижим
  • ICMP-сетчатой ​​запрещено
  • ICMP-хост-запрещено или
  • icmp-admin-запрещено (*)

которые возвращают соответствующее сообщение об ошибке ICMP (порт по умолчанию недоступен). Опция tcp-reset может использоваться в правилах, которые соответствуют только протоколу TCP: это вызывает отправку пакета TCP RST. Это в основном полезно для блокировки зондов идентификации (113 / tcp), которые часто возникают при отправке почты на сломанные почтовые хосты (которые иначе не примут вашу почту).

(*) Использование icmp-admin-запрещено с ядрами, которые не поддерживают его, приведет к простой DROP вместо REJECT

Крис Даун
источник