я пытаюсь выяснить, как достичь чего-то, в чем я не уверен, что это достижимо, и мне нужна помощь. Я провел исследование, но не смог найти достоверной информации. Надеюсь, этот вопрос не дублируется.
НАСТРОЙКА:
Я использую iptables в качестве брандмауэра для блокирования вредоносной ip активности.
В настоящее время я вручную записываю записи в файл, а затем выполняю их с помощью iptables-restore < /etc/iptables/rules
.
В этих правилах есть одно, которое регистрирует каждое входящее соединение -A INPUT -m state --state NEW -j LOGALL
.
Я также настроил apache на регистрацию ip, которые подключаются к веб-страницам. (разные журналы для каждой страницы, и разные файлы журнала для iptables)
ПРОБЛЕМА: Я получаю множество логов iptables такого рода:
Apr 4 14:52:18 kernel: [53326.219105] LOGALL IN=eth0 OUT= MAC=xxxxxxxxxxxx SRC=174.111.111.206 DST=192.168.1.5 LEN=44 TOS=0x00 PREC=0x00 TTL=244 ID=40132 PROTO=TCP SPT=179 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Apr 4 14:53:27 kernel: [53395.130551] LOGALL IN=eth0 OUT= MAC=xxxxxxxxxxxx SRC=45.146.164.211 DST=192.168.1.5 LEN=44 TOS=0x04 PREC=0x00 TTL=247 ID=26977 PROTO=TCP SPT=55172 DPT=443 WINDOW=1024 RES=0x00 SYN URGP=0
от тысяч различных IP в день.
Я могу сказать из LOG, что они посылают только SYN
пакет.
Я использовал Wireshark для проверки трафика и могу сказать, что большинство не отвечает после того, как мой сервер отвечает SYN,ACK
54215 187.717006840 180.234.40.115 192.168.1.5 TCP 60 56412 ? 443 [SYN] Seq=0 Win=5840 Len=0 MSS=1460
54216 187.717251257 192.168.1.5 180.234.40.115 TCP 58 443 ? 56412 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
54411 188.716638340 192.168.1.5 180.234.40.115 TCP 58 [TCP Retransmission] 443 ? 56412 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
Я пробовал много различных способов с iptables, чтобы ограничить эти SYN
только пакеты. Но эти соединения не являются атаками SYN floods (я ограничил SYN соединения), а, вероятно, какими-то краулерами и сканерами. Я также пробовал https://inai.de/documents/Chaostables.pdf, который дал мне много надежд, но он не сработал или я не могу заставить его работать.
Я также рассмотрел fail2ban (пока не использовал его), но поскольку я сам пишу записи в iptables и выполняю их с помощью iptables-restore < /etc/iptables/rules
, а fail2ban тоже использует iptables, я не знаю, как оба будут работать вместе.
QUESTION:
Можно ли блокировать IP, которые отображаются в LOG файле iptables, но НЕ отображаются в LOG файлах apache? (для меня это означает, что IP не заходил на мой сервер, чтобы открыть веб-страницу, и, следовательно, делает что-то другое).
пример: IP 1.1.1.1 открывает мою веб-страницу, что означает, что будет LOG в iptables и в apache. Но если этот 1.1.1.1 IP только посылает SYN
пакет на порт 443, только iptables LOG будет показывать, что -> блокировать этот ip?
Надеюсь, я был достаточно ясен. Любая помощь будет оценена по достоинству. Спасибо
поскольку я сам пишу записи в iptables и выполняю их с помощью
iptables-restore < /etc/iptables/rules
, а failt2ban тоже использует iptables, я не знаю, как они будут работать вместе.
Вы можете:
--noflush
с iptables-restore
, чтобы избежать удаления fail2ban (и других правил), и фильтровать f2b-*
цепочки с помощью iptables-save
. nftables
(поскольку fail2ban поддерживает это действие), и он может нацелить таблицы на дамп и восстановление отдельно, так что они не будут удалять или перезаписывать цепочки fail2ban.