Home > Article > Operation and Maintenance > How to use an IP blacklist to block malicious IP addresses from accessing your CentOS server
如何使用IP黑名单来阻止恶意IP地址访问CentOS服务器
在互联网上运营的服务器经常面临来自恶意IP地址的攻击,这些攻击可能导致服务器的性能下降甚至系统崩溃。为了保护服务器的安全性和稳定性,CentOS服务器提供了一种简单而有效的方式来阻止恶意IP地址的访问,即使用IP黑名单。
IP黑名单是一种名单,列出了被认为是威胁或恶意的IP地址。当服务器收到来自这些IP地址的请求时,服务器会拒绝响应并直接关闭连接。下面将介绍如何在CentOS服务器上配置和使用IP黑名单。
在开始配置IP黑名单之前,我们需要先查看当前服务器上活动连接的IP地址。打开终端,运行以下命令:
netstat -an | grep :80 | awk '{ print $5 }' | cut -d: -f1 | sort | uniq -c | sort -n
这条命令会列出服务器上与端口80建立连接的IP地址及连接数量。请注意,这里假设服务器的服务端口是80,如果你的服务器使用的是其他端口,需要相应修改命令。
CentOS服务器默认没有安装IP黑名单工具,我们需要先安装一个称为"fail2ban"的工具来实现IP黑名单的功能。执行以下命令进行安装:
sudo yum install epel-release sudo yum install fail2ban
安装完成后,我们需要配置fail2ban以使用IP黑名单。打开终端,运行以下命令:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local
在打开的文件中,找到并修改以下行:
[DEFAULT] bantime = 3600 findtime = 600 maxretry = 3
这里的意思是,如果一个IP地址在600秒内尝试连接3次失败,则会被列入IP黑名单,并在之后的3600秒内禁止该IP地址访问服务器。
接下来,我们需要创建一个文件来存储IP黑名单列表。运行以下命令:
sudo touch /etc/fail2ban/ip_blacklist.conf
然后,打开终端,运行以下命令编辑创建的文件:
sudo nano /etc/fail2ban/ip_blacklist.conf
在文件中,每行添加一个需要被列入IP黑名单的IP地址,例如:
192.168.0.100 123.456.789.0
保存并关闭文件。
编辑fail2ban的主配置文件,运行以下命令:
sudo nano /etc/fail2ban/jail.local
在文件中,找到以下行并进行修改:
[DEFAULT] # 省略其他配置 # 将这一行修改为下面这行 bantime = 3600
然后,在同一文件中添加以下内容:
[ip-blacklist] enabled = true filter = apache-noscript logpath = /var/log/httpd/access.log banaction = iptables-multiport bantime = 3600 maxretry = 1 findtime = 600 action = iptables[name=IPBlacklist, port=80, protocol=tcp]
这里是将IP黑名单与fail2ban的其他功能(如阻止重复登录等)一并配置了。如果你只想使用IP黑名单功能,可以适当删除一些配置项。
完成所有配置后,最后一步是重启fail2ban使配置生效。运行以下命令:
sudo service fail2ban restart
通过以下命令可以验证IP黑名单是否已经生效:
sudo iptables -L -n
如果你能看到输出中列出了之前添加的IP地址,说明IP黑名单已经生效。
总结
通过使用IP黑名单,我们可以有效地阻止恶意IP地址对CentOS服务器进行访问和攻击。使用fail2ban工具,我们可以配置IP黑名单并自动对恶意IP地址进行封禁。我通过本文简要介绍了如何在CentOS服务器上配置和使用IP黑名单,希望能对你的服务器安全提供帮助。
The above is the detailed content of How to use an IP blacklist to block malicious IP addresses from accessing your CentOS server. For more information, please follow other related articles on the PHP Chinese website!