У меня проблема с fail2ban здесь. (Конфигурации см. Ниже)
До того, как я это сделал, я использовал
nc -4 -d -n -z -w 1 <SERVER IP> 22
с моего ПК в скрипте, чтобы проверить, доступен ли сервер в SSH (должен возвращать 1) ,
С активированным fail2ban он возвращает 0, хотя я могу подключиться по ssh <USER>@<SERVER IP> так, как ожидалось, - я использую keypairs для аутентификации.
У меня есть брандмауэр iptables на основе этого руководства, выглядит следующим образом:
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N ICMP
-N TCP
-N UDP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A ICMP -p icmp -j ACCEPT
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 433 -j ACCEPT
-A TCP -p tcp -m tcp --dport 10000 -j ACCEPT
Установив и активировав fail2ban с помощью config ниже моих iptables, это выглядит как
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N ICMP
-N TCP
-N UDP
-N f2b-recidive
-N f2b-sshd
-N f2b-sshd-ddos
-N f2b-webmin-auth
-A INPUT -p tcp -j f2b-recidive
-A INPUT -p tcp -m multiport --dports 10000 -j f2b-webmin-auth
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd-ddos
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A ICMP -p icmp -j ACCEPT
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 433 -j ACCEPT
-A TCP -p tcp -m tcp --dport 10000 -j ACCEPT
-A f2b-recidive -j RETURN
-A f2b-sshd -j RETURN
-A f2b-sshd-ddos -j RETURN
-A f2b-webmin-auth -j RETURN
При активации fail2ban он возвращает 0 хотя я могу подключиться по ssh <USER>@<SERVER IP> так же, как ожидалось, - я использую keypairs для аутентификации.
Мое первое предположение было бы неправильной цепной связью в iptables, но поскольку я могу подключить нормальный I '
Я установил fail2ban на
sudo apt install fail2ban
и в основном установил по умолчанию. Добавили только два файла: /etc/fail2ban/jail.d/defaults.local
[DEFAULT]
ignoreip = 127.0.0.1/8 <MY PC'S IP>/32
bantime = 3600
findtime = 600
maxretry = 3
#
# ACTIONS
#
destemail = <MY MAIL ADDRESS>
sender = <SENDER ADDRESS>
mta = sendmail
action = %(action_mwl)s
Я уже добавил MY PC'S IP здесь, потому что он был заблокирован с помощью команды nc в первый раз.
/etc/fail2ban/jail.d/jail.local
[sshd]
enabled = true
[sshd-ddos]
enabled = true
[webmin-auth]
enabled = true
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
banaction = iptables-allports
bantime = 604800 ; 1 week
findtime = 86400 ; 1 day
maxretry = 5
я просто решить мою проблему: я ошибся / просто запутался.
nc возвращает 0 на успех, не на провал! Мой скрипт отлично работает, теперь и я нашел ключ здесь => в bash 0, что означает истинный и [F4] и означает ложь.
Я просто решил свою проблему: я думал, что неправильно / просто запутался.
nc возвращает 0 на успех не при сбое! Теперь мой скрипт отлично работает, и я нашел ключ здесь => В bash 0 означает true, а 1 означает false.