使用IPtables的Fail2ban阻止在Debian Lenny上不起作用。[移动的SSH端口]


11

我最近决定做一些安全维护。我看到了我的日志,并且尝试对我的SSH服务器进行一些尝试。首先,我将SSH端口从默认的22移开了。之后,我阅读了有关Fail2banBlockHostsDenyHosts的内容

我看了第一个:配置简单,一切都可以理解;但是当我尝试“探测其保护”时,测试失败了。一切似乎都很好,但是我仍然可以访问服务器。

我还测试了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:

  1. 将Fail2ban配置为低禁止时间。60秒 然后重新加载。
  2. 尝试使用错误的passwd直接登录(使用SSH)。
  3. 第6次输入正确的密码(此处最多尝试4次)。我登录了。我还可以访问该服务器托管的网页。
  4. iptables -L向我展示了上述内容。因此,当我连接服务器时,该禁令就生效了。

逐步测试#2:

  1. 停止Fail2ban。创建一个at脚本,以将来删除下面写的禁止规则。(iptables -D INPUT 1
  2. 创建一个禁止规则: iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. 我无法输入其他任何内容,SSH连接无法使用。我无法访问网页。因此,我想从iptables获得什么。
  4. at脚本执行完后,我可以访问服务器了。

我看不到解决方案,我应该怎么做才能使IPtables禁令(由Fail2ban禁制)起作用?


问题已编辑!有任何想法吗?
antivirtel

Answers:


8

在安装fail2ban之前,我发现了问题所在,做了什么。对不起,您的时间。

出于安全原因,我将sshd从端口22移到了另一个端口。中的引用iptables仅指端口22。我认为这是一个变量,总是指当前的sshd端口。但不是

确切的解决方案(如果您将守护程序从其原始端口移开):

  1. 打开jail.local(或.conf)。
  2. 查找您的服务(括号内)。
  3. port部分固定为全部。例:port = all
  4. banaction在端口行之后添加或编辑现有行,其值为iptables-allports。范例:banaction = iptables-allports
  5. 重新启动守护程序。范例:# service fail2ban restart

我找不到更改port ssh指令或在其中写数字的解决方案。如果您有一个非所有端口的解决方案,我会听的!


1
您需要做的就是提供端口号而不是名称。
朱利安·奈特

还要注意,您的iptable名称必须少于32个字符才能成功添加。
Adrian Lopez

2

在将ssh服务器移动到非标准端口12345(比如说)之后,fail2ban没有禁止同样的问题。

为了使fail2ban在多次失败的身份验证尝试之后产生正确的规则,我进行了编辑 /etc/fail2ban/jail.conf

port = ssh 

进入

port = 12345

我假设类似的方法对于非标准端口上的其他服务也适用。


0

fail2ban的设置位于中/etc/fail2ban/jail.local。在默认安装中,我不确定它是否在那里。然后,您要做的就是复制jail.confjail.local,因此两个文件都放在/etc/fail2ban/。编辑jail.local,转到包含[ssh]并启用它的行,如下所示:

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

之后,重新启动fail2ban:

sudo /etc/init.d/fail2ban restart

它可能现在可以正常工作,我已经像这样进行设置,并且可以正常工作。


我认为,您不理解我的问题!Fail2ban可以做到,我想要的是:观察日志,并禁止攻击者使用。但是该禁令无效,IPtables应该做什么。通过上述规则设置,我仍然可以访问服务器。
antivirtel

抱歉,我很着急,所以我误解了,因为我遇到了同样的问题,我通过添加jail.local解决了这一问题,我认为这会有所帮助。不幸的是,如果您正确地设置了所有内容,那么我不知道这是什么问题,但希望其他人也可以。
enedene 2011年

0

您已列出“ Fail2ban 0.8.3-2sid1”已安装。这是不受支持的配置。Sid软件包不应安装在稳定的环境中。

我在虚拟机中运行从Lenny升级的Debian 6(Squeeze)作为VM,专门用作家庭的SSH服务器。我也使用fail2ban。我执行了您的#1测试,一切正常。我无法登录以获取最大尝试次数,然后我的登录请求被丢弃了60秒。

我的版本清单:

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-server = 1:5.5p1-6


在这种情况下,我建议进行dist升级。
James Sumners 2011年

好的,这不太容易,但是我会设法做到的……-也许是干净的重新安装
antivirtel

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade。这很简单。
James Sumners 2011年

是的,但是有没有机会下次不启动...发行说明中写道,新的kenel +新的udev系统...-您的计算机是否成功?
antivirtel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.