Answers:
您可以同时使用ufw和fail2b,但是如前所述,(ufw)规则的顺序很重要。
开箱即用,fail2ban使用iptables并在INPUT链中首先插入规则。这不会对ufw造成任何伤害或冲突。
如果您希望完全集成fail2ban以使用ufw(而不是iptables)。您将需要编辑许多文件,包括
/etc/fail2ban/jail.local
jail.local是您定义服务的地方,包括服务正在侦听的端口(将ssh更改为非默认端口)以及要采取的措施。
**请注意*:永远不要编辑jail.conf,您应该在中进行更改jail.local
!该文件以此开头:
# Changes: in most of the cases you should not modify this
# file, but provide customizations in jail.local file,
# or separate .conf files under jail.d/ directory
以ssh为例,还要注意非默认端口的定义=)
[ssh]
enabled = true
banaction = ufw-ssh
port = 2992
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
然后,您将fail2ban配置为在其中使用ufw(每个服务使用一个.conf文件)
/etc/fail2ban/action.d/ufw-ssh.conf
语法是
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip> to any app OpenSSH
actionunban = ufw delete deny from <ip> to any app OpenSSH
注意:您配置的fail2ban使用UFW和插入新规则的第一使用“插入1”语法。删除将找到规则,而与顺序无关。
有一篇不错的博客文章,这里有更多详细信息
http://blog.vigilcode.com/2011/05/ufw-with-fail2ban-quick-secure-setup-part-ii/
[编辑]适用于Ubuntu 16.04+
默认情况下defaults-debian.conf
,/etc/fail2ban/jail.d
带有内容的“ ”
[sshd]
enabled = true
将激活fail2ban的ssh保护。
您需要将其设置为假。
然后像通常一样创建一个jail.local,我的将像这样:
[ssh-with-ufw]
enabled = true
port = 22
filter = sshd
action = ufw[application="OpenSSH", blocktype=reject]
logpath = /var/log/auth.log
maxretry = 3
fail2ban默认安装中已经有一个ufw.conf,因此无需创建它。
对jail.local而言,唯一特定的更改是在操作行上,您需要在该行中放置有关应用程序的保护以及所要获得的结果。
ufw倾向于自动检测使用网络运行的一定数量的应用程序。要获得列表,只需键入sudo ufw app list
。区分大小写。
重新加载fail2ban,您将不再看到fail2ban链,如果有任何IP被阻止,您将在 sudo ufw status
ufw status
,则需要集成。除了在中显示块之外ufw status
,还有其他好处吗?特别是因为博客的作者说了以下内容: 开箱即用Fail2ban使用iptables规则,但是这些规则与我们更简单的UFW命令配合使用效果
多年来,我已经在几台不同的计算机上使用了fail2ban和ufw,并且从未遇到任何问题。设置fail2ban:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano jail.local
现在,根据需要编辑文件,例如,如果要阻止未经授权的ssh,请找到以下行:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
如果将“启用”设置为“假”,则将其更改为“真”,如此处所述。设置规则后,您需要重新启动fail2ban流程:
sudo /etc/init.d/fail2ban restart
如果您在ufw防火墙上打开了端口22,则fail2ban将禁止尝试连接超过6次但未成功的客户端,它不会破坏防火墙。