Чем отличаются DROP от REJECT? Что лучше использовать для блокировки: REJECT или DROP?

DROP — закрывает соединение и не отправляет ничего в ответ отправителю, получается «мертвое» соединение, которое потом убивается по таймауту. Нужно учесть что при сканировании закрытых портов, они будут помечаться как filtered.

REJECT — сбрасывает соединение и отправляет в ответ сообщение, указанное в опции —reject-with. При сканировании (если установлено —reject-with icmp-port-unreachable) порт будет казаться закрытым, в отличии от DROP.

Кратко: чем отличаются DROP от REJECT

REJECT — отправляет уведомление о сбросе пакета удалённому хосту
DROP — просто рубит без уведомления

REJECT в основном используют в локальной сети, а DROP применяют, если сервис смотрит в интернет. Теперь понятно чем в Iptables отличается DROP от REJECT?

Примеры iptables reject

Действие REJECT в правилах iptables имеет опцию –reject-with.

iptables -A INPUT -s 10.26.95.20 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset 
iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -j REJECT --reject-with icmp-proto-unreach

У опции –reject-with есть следующие аргументы:

  • icmp-net-unreachable — сеть недоступна;
  • icmp-host-unreachable — узел недоступен;
  • icmp-port-unreachable — порт недоступен;
  • icmp-proto-unreahable — неподдерживаемый протокол;
  • icmp-net-prohibited — сеть запрещена;
  • icmp-host-prohibited — узел запрещен;
  • tcp-reset — отправляет RST- сообщения отправителю. TCP RST пакеты используются для закрытия TCP соединений. Желательно использовать этот метод вместо вышеуказанных ICMP протокол диагностики перегрузки сети сообщений.

По умолчанию будет передано сообщение port-unreachable.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

1 + двадцать =