IPTABLES - block IPs that not complete handshake/visit webpage

я пытаюсь выяснить, как достичь чего-то, в чем я не уверен, что это достижимо, и мне нужна помощь. Я провел исследование, но не смог найти достоверной информации. Надеюсь, этот вопрос не дублируется.

НАСТРОЙКА: Я использую 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?

Надеюсь, я был достаточно ясен. Любая помощь будет оценена по достоинству. Спасибо

2
задан 5 April 2021 в 10:32
1 ответ

поскольку я сам пишу записи в iptables и выполняю их с помощью iptables-restore < /etc/iptables/rules, а failt2ban тоже использует iptables, я не знаю, как они будут работать вместе.

Вы можете:

  1. либо использовать опцию --noflush с iptables-restore, чтобы избежать удаления fail2ban (и других правил), и фильтровать f2b-* цепочки с помощью iptables-save.
  2. или переключиться на nftables (поскольку fail2ban поддерживает это действие), и он может нацелить таблицы на дамп и восстановление отдельно, так что они не будут удалять или перезаписывать цепочки fail2ban.
3
ответ дан 24 April 2021 в 00:08

Теги

Похожие вопросы