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

Fail2ban обнаруживает попытки с навсегда заблокированных IP-адресов

У меня есть виртуальная машина с настраиваемым скриптом межсетевого экрана и Fail2ban.

Я определил несколько диапазонов IP-адресов, которые делают постоянные попытки вторжения, поэтому я заблокировал их прямо в скрипте брандмауэра. Вот упрощенный обзор:

#!/bin/sh

### BEGIN INIT INFO
# Provides:     Custom firewall
# Required-Start:   $remote_fs $syslog $network
# Required-Stop:    $remote_fs $syslog $network
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short Description:    Firewall init script
# Description:      Custom firewall
### END INIT INFO

## Lock everything
# Clear current tables
iptables -t filter -F
iptables -t filter -X 

# Deny all connexions (input and output)
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP


## Common configurations
# Preserve established connexions
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# Allow ICMP (ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT


## Custom rules
# SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

# HTTP
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

## JAIL
iptables -A INPUT -s 61.147.80.0/24 -j DROP

iptables -A INPUT -s 61.167.49.0/24 -j DROP

iptables -A INPUT -s 61.174.50.0/24 -j DROP
iptables -A INPUT -s 61.174.51.0/24 -j DROP

iptables -A INPUT -s 103.41.124.0/24 -j DROP

iptables -A INPUT -s 122.225.97.0/24 -j DROP
iptables -A INPUT -s 122.225.103.0/24 -j DROP
iptables -A INPUT -s 122.225.109.0/24 -j DROP

Fail2ban работает как шарм, но я удивлен, что он все еще обнаруживает попытки с заблокированных IP-адресов, таких как 122.225.109.107 так как они должны быть заблокированы моим скриптом межсетевого экрана. Как это возможно ?

Пакеты проходят через правила iptables в том порядке, в котором они появляются.

Вы запрещаете упомянутые IP-адреса в конце набора правил, а до этого запрета вы принимаете весь трафик на порт 80 и ssh 22. Таким образом, ваши правила запрета не действуют.

Вы должны позволить fail2ban управлять запретом, поскольку он помещает правила запрета в начало набора правил iptables, или помещает ваши правила запрета в начало вашего скрипта с такими командами, как iptables -I INPUT 1 rule разместить правило перед первым правилом в наборе.

А поскольку у вас есть политика по умолчанию DROP, нет смысла помещать правила с целью DROP в конце набора правил.