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