CentOS7 中使用 firewall-cmd 配置只允许指定ip访问本机的指定端口

1、启用firewalld

systemctl enable firewalld 
​
systemctl start firewalld

2、更改防火墙默认区域为trusted,默认放行所有连接请求(默认为public区)

firewall-cmd --set-default-zone=trusted

3、新建一个zone,将想要访问本机80端口的ip,如:192.168.10.134 ,添加的这个zone中,同时在这个zone中放行80端口。

firewall-cmd --permanent --new-zone=newzone
firewall-cmd --permanent --zone=newzone --add-source=192.168.10.134
firewall-cmd --permanent --zone=newzone --add-port=80/tcp
#可在newzone中添加多个放行的端口ip 添加多条
#删除对应策略将(--add-source、--add-rich-rule)更改为(--remove-source、--remove-rich-rule) --permanent设为永久策略 --zone设定指定zone

4、除192.168.10.134这个ip以外的地址访问本机时会使用当前默认的trusted这个zone里的规则,即禁止访问本机的80端口。

#新增
firewall-cmd --permanent --zone=trusted --add-rich-rule="rule family="ipv4" port protocol="tcp" port="80" drop"
​
#移除
firewall-cmd --permanent --zone=trusted --remove-rich-rule="rule family="ipv4" port protocol="tcp" port="27000" drop"

重启防火墙

systemctl restart firewalld

查看配置是否生效:

firewall-cmd --list-all-zone

重新载入

firewall-cmd --reload