使用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官方文档。
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/473280.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除