Здравствуйте, настраиваю fail2ban и мучаюсь вопросом:
DROP — просто закрывает соединение и не отправляет ничего в ответ отправителю. Как итог имеем «мертвое» соединение, которое потом убивается по таймауту. Но зато при сканировании закрытых портов, они будут помечаться как filtered, что потенциально говорит, что что-то всё-таки слушает порт.
REJECT — сбрасывает соединение и отправляет в ответ сообщение, указанное в опции —reject-with. По умолчанию отправляется host is unreachable. Зато при сканировании (если установлено —reject-with icmp-port-unreachable) порт светится не будет.
И так, что же всё-таки использовать? На мой взгляд, лучше DROP, так как при больших атаках, вы просто перекроете себе кислород, отвечая всем «host is unreachable«. Этот ответ будет потреблять больше ресурсов, нежели мёртвое соединение (при желаении время таймаута можно сократить).