我这里有个问题fail2ban
。(配置见下文)
在我拥有它之前我曾经
nc -4 -d -n -z -w 1 <SERVER IP> 22
从我的电脑中使用脚本检查服务器是否可以通过 SSH 访问(应该返回1
)。
激活 fail2ban 后,它会返回,0
尽管我可以按ssh <USER>@<SERVER IP>
预期进行连接 - 我使用密钥对进行身份验证。
我有一个基于本教程看起来像这样:
-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
并激活以下配置后,我的 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
这里有什么问题?
我的第一个猜测是 iptables 中的一些错误链链接,但由于我可以正常连接,所以我在这里很无助。
我安装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
答案1
我刚刚解决了我的问题:我想错了/只是感到困惑。
nc
成功时返回0
,失败时不返回!我的脚本现在运行正常,我找到了线索这里=> 在 bash 中0
表示真,1
表示假。