Назад | Перейти на главную страницу

fail2ban-apache не блокирует IP

Я пытаюсь настроить fail2ban, я несколько раз пытался войти на свой веб-сервер, чтобы запустить правило, и, глядя на мои iptables, похоже, что это сработало:

Chain fail2ban-apache (1 references)
target     prot opt source               destination
DROP       all  --  192.168.1.70         0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

Но если я попытаюсь получить доступ к серверу Apache из .70, я все равно смогу!

Любые идеи?

Полный список по запросу:

Chain INPUT (policy ACCEPT 100998 packets, 137858737 bytes)
     pkts      bytes target        prot opt in     out     source         destination

       0        0 fail2ban-apache  tcp  --  *      *       0.0.0.0/0      0.0.0.0/0            multiport dports 80,443
    1925   322694 fail2ban-ssh     tcp  --  *      *       0.0.0.0/0      0.0.0.0/0            multiport dports 22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source             destination

Chain OUTPUT (policy ACCEPT 43963 packets, 7223477 bytes)
    pkts      bytes target     prot opt in     out     source             destination

Chain fail2ban-apache (1 references)
    pkts      bytes target     prot opt in     out     source             destination

       0        0 DROP       all  --  *      *       192.168.1.70         0.0.0.0/0
       0        0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain fail2ban-ssh (1 references)
    pkts      bytes target     prot opt in     out     source             destination

    1925   322694 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Здесь произошло то, что после нескольких попыток подключения по SSH правило fail2ban добавило 192.168.1.70 к fail2ban-apache цепочка, но эта цепочка выполняется только для портов 80 и 443. Порт 22 все еще разрешен, потому что 192.168.1.70 не был добавлен в fail2ban-ssh цепь.

Вы обнаружите, что не можете делать запросы http или https со своего веб-сервера из 192.168.1.70 но вы все еще можете использовать SSH.

Вы, вероятно, захотите изменить действие fail2ban для правила SSH, чтобы блокировать SSH, а не http и https.

Если вы хотите заблокировать весь порт при появлении атаки bruteforce ssh или apache, вам необходимо добавить или отредактировать эти строки:

banaction = iptables-allports

после [ssh] или [apache] линии на /etc/fail2ban/jail.conf или здесь для действия по умолчанию

# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-allports

если вы не хотите блокировать весь порт, вы можете добавить числовое имя порта в эту строку

[apache]

enabled  = true
port     = http,https,dns,6969 <-
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

Одно из правил с более высоким приоритетом - разрешить обмен данными до того, как брандмауэр доберется до вашего правила блокировки. Правила блокировки должны быть на первом месте или очень близко к первому в ваших правилах.