Centos 7.5 上开放指定端口并设置白名单
在 CentOS 7.5 中,你可以使用 firewalld
来禁用某些端口,并只允许指定 IP 地址访问特定端口。以下是详细的步骤:
步骤 1:安装并启动 firewalld
如果尚未安装 firewalld
,可以使用以下命令进行安装并启动它:
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
步骤 2:查看当前防火墙状态和区域
查看当前防火墙状态:
sudo firewall-cmd --state
查看活跃区域:
sudo firewall-cmd --get-active-zones
查看当前区域的详细信息:
sudo firewall-cmd --zone=public --list-all
步骤 3:添加规则,禁用端口并只开放给指定 IP
假设你要禁用端口 8080,并只允许 IP 地址 192.168.1.100
访问该端口。
添加拒绝规则:先添加一个规则,拒绝所有对端口 8080 的访问。 (经过验证, 此步骤不需要,会导致下面白名单也无效)
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" port port=8080 protocol=tcp reject' --permanent
添加允许规则:然后添加一个规则,只允许指定的 IP 地址访问端口 8080。
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address=192.168.1.100 port port=8080 protocol=tcp accept' --permanent
重新加载防火墙配置:使新的规则生效。
sudo firewall-cmd --reload
步骤 4:验证规则
查看防火墙规则,确认新的规则已添加:
sudo firewall-cmd --zone=public --list-all
使用
ss
或netstat
命令确认端口状态:sudo ss -tuln | grep :8080
或者
sudo netstat -tuln | grep :8080
删除规则
如果你需要删除之前添加的规则,可以使用以下命令:
删除拒绝规则:
sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" port port=8080 protocol=tcp reject' --permanent
删除允许规则:
sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address=192.168.1.100 port port=8080 protocol=tcp accept' --permanent
重新加载防火墙配置:
sudo firewall-cmd --reload
通过这些步骤,你可以使用 firewalld
来禁用端口,并只允许指定 IP 地址访问特定端口,从而提高系统的安全性。