一)二个概念 defautl zone , active zone # setfacl 当前起效,对未来起效果 #对以后生效,新增加的网卡接口 默认属于这个zone , default zone只有一个。可以修改,一般不修改。 [root@mydnsserver ~]# firewall-cmd --get-default-zone public #目前有规则正在工作的zone 操作都是针对active zone, active zone可以有多个 [root@mydnsserver ~]# firewall-cmd --get-active-zones docker interfaces: docker0 public interfaces: ens33 二) [root@mydnsserver conf]# firewall-cmd --get-zones block dmz docker drop external home internal public trusted work # 9个默认系统自带的zone, 不能删除。 #zone的含义和windows 防火墙profile (笔记本在家里,在咖啡厅 在酒店) # 1 个用户创建的zone, 叫docker # trusted zone # 默认全部允许 # 其他zone 是白名单机制。drops or rejects all traffic unless explicitly whitelisted # 如public zone 自带几条规则,允许22(sshd) # 如果服务器有二张网卡 外网eth0 内网eth1 ,可以把eth1 分配到trusted zone 这样eth1默认全部允许。 三) ## 修改 永久生效。 “需要加 --permanent 并且 --reload ” firewall-cmd --permanent --delete-zone=my-secure-zone firewall-cmd --reload 四) # 把网卡接口 分配到 不同zones, # 1. How to Assign Different NICs to Different Zones firewall-cmd --zone=public --add-interface=eth0 --permanent # ens33 网卡接口,分配到trusted zone firewall-cmd --zone=trusted --add-interface=ens33 --permanent firewall-cmd --zone=trusted --change-interface=ens33 --permanent firewall-cmd --reload 4.1)全局允许的几种方法比较 firewall-cmd --zone=trusted --change-interface=ens33 --permanent #最佳实践 best practice firewall-cmd --zone=public --set-target=ACCEPT --permanent firewall-cmd --zone=public --add-port=1-65535/tcp --permanent #参考 firewall-cmd --list-all-zones | grep -v "^ " -A1 # firewall-cmd --get-default-zone 可以修改default zone ,不建议修改 # 单独开放一个端口 # # 2. Prefer Services Over Ports firewall-cmd --zone=public --add-port=8881/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --remove-port=8881/tcp --permanent ## 开放 端口范围, range firewall-cmd --zone=public --add-port=80-300/udp --permanent 五)rich rules 富规则 #又回到iptables 3. Use "Rich Rules" for Granular Source Control firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.50" port port="3306" protocol="tcp" accept' --permanent firewall-cmd --reload firewall-cmd CURD操作。 也可以 firewall-config 图形化。 六)端口转发 #在 firewall-config 可视化配置 #有对应的命令行 比如httpd监听 8881 在firewall-config 创建一个端口转发 8889 ,本地转发到8881 然后firewall-cmd 允许访问8889。 在浏览器访问8889,firewall-cmd会转发给8881端口,对浏览器用户来说明透明的。 七)伪装 masquerade # 路由器转发 NAT #在 firewall-config 可视化配置 #有对应的命令行 八)icmp过滤器 #在 firewall-config 可视化配置 #有对应的命令行 ping命令是icmp协议。 tcp/ip 协议(簇) arp icmp 九)接口 NIC network interace card