我最近决定做一些安全维护。我看到了我的日志,并且尝试对我的SSH服务器进行一些尝试。首先,我将SSH端口从默认的22移开了。之后,我阅读了有关Fail2ban,BlockHosts和DenyHosts的内容。
我看了第一个:配置简单,一切都可以理解;但是当我尝试“探测其保护”时,测试失败了。一切似乎都很好,但是我仍然可以访问服务器。
我还测试了IPtables:# iptables -I INPUT -j DROP
-在那之后,我的SSH连接丢失了(所以,我想要的)。然后# iptables -I INPUT -s 84.x.y.z -j DROP
,它也起作用。
但是,Fail2ban遵循什么规则,这行不通:($ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
加载的内核模块:($ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
版本:
- Debian Lenny 5.06,内核2.6.26-2-686
- IP表1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1:5.1p1-5
逐步测试#1:
- 将Fail2ban配置为低禁止时间。60秒 然后重新加载。
- 尝试使用错误的passwd直接登录(使用SSH)。
- 第6次输入正确的密码(此处最多尝试4次)。我登录了。我还可以访问该服务器托管的网页。
iptables -L
向我展示了上述内容。因此,当我连接服务器时,该禁令就生效了。
逐步测试#2:
- 停止Fail2ban。创建一个
at
脚本,以将来删除下面写的禁止规则。(iptables -D INPUT 1
) - 创建一个禁止规则:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- 我无法输入其他任何内容,SSH连接无法使用。我无法访问网页。因此,我想从iptables获得什么。
at
脚本执行完后,我可以访问服务器了。
我看不到解决方案,我应该怎么做才能使IPtables禁令(由Fail2ban禁制)起作用?