在CentOS系统中,你可以使用firewalld来限制访问特定IP。以下是具体步骤:
启动firewalld服务(如果尚未启动):
sudo systemctl start firewalld
启用firewalld服务(如果尚未启用):
sudo systemctl enable firewalld
添加富规则以限制特定IP访问:
假设你想阻止IP地址192.168.1.100访问你的服务器上的某个端口(例如80端口),可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" reject'
解释:
--permanent:使规则永久生效。--zone=public:指定防火墙区域为public。--add-rich-rule:添加富规则。rule family="ipv4":指定规则适用于IPv4。source address="192.168.1.100":指定源IP地址。port protocol="tcp" port="80":指定端口和协议。reject:拒绝访问。重新加载firewalld配置以应用新规则:
sudo firewall-cmd --reload
如果你更喜欢使用iptables,可以按照以下步骤操作:
阻止特定IP访问某个端口:
假设你想阻止IP地址192.168.1.100访问你的服务器上的80端口,可以使用以下命令:
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j DROP
解释:
-A INPUT:将规则添加到INPUT链。-s 192.168.1.100:指定源IP地址。-p tcp:指定协议为TCP。--dport 80:指定目标端口为80。-j DROP:丢弃匹配的数据包。保存iptables规则(CentOS 7及以上版本):
sudo systemctl stop firewalld
sudo iptables-save > /etc/sysconfig/iptables
sudo systemctl start firewalld
解释:
iptables-save > /etc/sysconfig/iptables:将当前的iptables规则保存到文件中。systemctl stop firewalld和systemctl start firewalld:停止并重新启动firewalld服务以应用iptables规则。通过以上两种方法,你可以有效地限制特定IP地址访问你的CentOS服务器上的资源。选择哪种方法取决于你的个人偏好和系统配置。