当前位置:首页 > 行业动态 > 正文

如何使用fail2ban和FirewallD黑名单保护你的系统

使用fail2ban和FirewallD黑名单保护系统是一种有效的方法。Fail2ban可以监控系统日志,并根据一定规则匹配异常IP后使用FirewallD将其屏蔽,尤其是针对一些爆破/扫描等非常有效 。

什么是fail2ban和FirewallD?

1、fail2ban是一个基于Python编写的日志管理工具,主要用于防止反面软件攻击,它通过监控系统日志,发现异常行为并将其添加到黑名单中,从而阻止这些行为的发生,Fail2Ban可以根据不同的攻击类型和频率自动调整过滤规则,以提高系统的安全性。

2、FirewallD(Firewall Daemon)是一个用于管理Linux内核防火墙的开源工具,它提供了一个灵活的配置接口,允许用户根据需要创建和管理防火墙区域、规则链和策略,FirewallD可以与iptables等其他防火墙工具集成,以提供更强大的安全防护能力。

如何安装和配置fail2ban?

1、安装fail2ban:在基于Debian的系统(如Ubuntu)上,可以使用以下命令安装fail2ban:

sudo apt-get update
sudo apt-get install fail2ban

在基于RHEL的系统(如CentOS)上,可以使用以下命令安装fail2ban:

sudo yum install epel-release
sudo yum install fail2ban

2、配置fail2ban:在安装完成后,需要对fail2ban进行一些基本配置,创建一个新的配置文件/etc/fail2ban/jail.conf,并添加以下内容:

[DEFAULT]
指定日志文件的路径
logfile = /var/log/fail2ban/fail2ban.log
指定过滤器的名称和配置文件的路径
filter = %(bantime)s [%(ipaddr)s]:%(port)s -> /etc/fail2ban/filter.d/%(chain)s.conf
[sshd]
enabled = true
port = ssh
filter = sshd:37980 sshd:47890 sshd:37990 sshd:59060 sshd:59050 sshd:37981 sshd:37982 sshd:37983 sshd:37984 sshd:37985 sshd:37986 sshd:37987 sshd:37988 sshd:37989 sshd:37905 sshd:37906 sshd:37907 sshd:37908 sshd:37909 sshd:37910 sshd:37911 sshd:37912 sshd:37913 sshd:37914 sshd:37915 sshd:37916 sshd:37917 sshd:37918 sshd:37919 sshd:50000-52000 sshd:52000-54000 sshd:54000-56000 sshd:56000-58000 sshd:58000-62000 sshd:62000-64000 sshd:64000-66000 sshd:66000-68000 sshd:68000-111000
action = iptables[name=DROP, chain=INPUT, protocol=tcp, port=ssh] & iptables[name=DROP, chain=FORWARD, protocol=tcp, port=ssh] & iptables[name=DROP, chain=OUTPUT, protocol=tcp, port=ssh]
maxretry = 3

这里定义了一个名为sshd的过滤器,用于拦截SSH服务的反面连接请求,你可以根据需要添加更多的过滤器,例如针对HTTP、FTP等服务的过滤器。

3、启动fail2ban服务:使用以下命令启动fail2ban服务,并设置其在系统启动时自动运行:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

如何使用FirewallD创建和管理防火墙区域?

1、创建防火墙区域:firewall-cmd --permanent --zone=<zone_name> --add-source=<network>。<zone_name>是你要创建的防火墙区域的名称,<network>是你要将该区域与的网络地址或子网,要将名为public的区域与192.168.1.0/24网络关联,可以使用以下命令:

sudo firewall-cmd --permanent --zone=public --add-source=192.168.1.0/24

2、将服务添加到防火墙区域:firewall-cmd --permanent --zone=<zone_name> --add-service=<service_name>。<service_name>是你要将服务添加到的防火墙区域的服务名称,要将SSH服务添加到名为public的区域,可以使用以下命令:

sudo firewall-cmd --permanent --zone=public --add-service=ssh

3、重载防火墙配置:firewall-cmd --reload,这将使新的防火墙区域和服务的配置立即生效。

相关问题与解答

Q1:如何在fail2ban中自定义过滤器?

A1:在/etc/fail2ban/filter.d/<chain>.conf文件中定义过滤器规则,要创建一个只允许来自特定IP地址的SSH连接的过滤器,可以在文件中添加以下内容:

[sshd]
allowed_ips = <ip_addresses>

然后重启fail2ban服务以应用更改,更多关于过滤器的详细信息和示例,请参阅fail2ban官方文档。

0

随机文章