1.区域
1)总共8个区域,查看区域的命令:
[root@localhost ~]# firewall-cmd --get-zonesblock dmz drop external home internal public trusted work
trusted:白名单区域,方通进出的流量
public:默认拒绝进入方向的流量(ssh,dhcp除外),放通出方向的流量
dmz:默认拒绝进入方向的流量(ssh),放通出方向的流量
block:默认拒绝流入的流量
2)查看默认区域,接口默认在此区域
[root@localhost ~]# firewall-cmd --get-default-zonepublic[root@localhost ~]# firewall-cmd --get-active-zonespublicinterfaces: eth1 eth0
3)查看当前配置的规则
[root@localhost ~]# firewall-cmd --list-allpublic (active)target: defaulticmp-block-inversion: nointerfaces: eth0 eth1sources:services: dhcpv6-client sshports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:
4)变更区域
[root@localhost ~]# firewall-cmd --set-default-zone=dmzsuccess[root@localhost ~]# firewall-cmd --get-active-zonesdmzinterfaces: eth1 eth0
5)指定接口的区域
[root@localhost ~]# firewall-cmd --zone=public --change-interface=eth1success[root@localhost ~]# firewall-cmd --get-active-zonesdmzinterfaces: eth0publicinterfaces: eth1
2.策略
1)指定IP白名单和删除IP白名单
[root@localhost ~]# firewall-cmd --add-source=10.10.10.202/32 --zone=trusted[root@localhost ~]# firewall-cmd --list-all --zone=trustedtrusted (active)target: ACCEPTicmp-block-inversion: nointerfaces:sources: 10.10.100.202/32services:ports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:[root@localhost ~]# firewall-cmd --zone=trusted --remove-source=10.10.100.202/32success[root@localhost ~]# firewall-cmd --list-all --zone=trustedtrustedtarget: ACCEPTicmp-block-inversion: nointerfaces:sources:services:ports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:
2)指定IP黑名单和删除IP黑名单
[root@localhost ~]# firewall-cmd --zone=block --add-source=10.10.100.202/32success[root@localhost ~]# firewall-cmd --zone=block --list-allblock (active)target: %%REJECT%%icmp-block-inversion: nointerfaces:sources: 10.10.100.202/32services:ports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:[root@localhost ~]# firewall-cmd --zone=block --remove-source=10.10.100.202/32success
3)放通预定义的协议,预定义的协议放在 /usr/lib/firewalld/services/目录下。
[root@localhost ~]# firewall-cmd --zone=dmz --add-service={http,https,mysql}success[root@localhost ~]# firewall-cmd --zone=dmz --list-alldmz (active)target: defaulticmp-block-inversion: nointerfaces: eth0sources:services: http https mysql sshports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:删除已放通的策略[root@localhost ~]# firewall-cmd --zone=dmz --remove-service={http,https,mysql}success[root@localhost ~]# firewall-cmd --zone=dmz --list-alldmz (active)target: defaulticmp-block-inversion: nointerfaces: eth0sources:services: sshports:protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:
4)放通指定的端口。
[root@localhost ~]# firewall-cmd --zone=dmz --add-port={3306,5432,80,443}/tcpsuccess[root@localhost ~]# firewall-cmd --zone=dmz --list-alldmz (active)target: defaulticmp-block-inversion: nointerfaces: eth0sources:services: sshports: 3306/tcp 5432/tcp 80/tcp 443/tcpprotocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:删除已放通的端口[root@localhost ~]# firewall-cmd --zone=dmz --remove-port=3306/tcpsuccess[root@localhost ~]# firewall-cmd --zone=dmz --list-alldmz (active)target: defaulticmp-block-inversion: nointerfaces: eth0sources:services: sshports: 5432/tcp 80/tcp 443/tcpprotocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:
3.丰富规则
可以理解为高级的策略,支持源目IP,源目端口,动作
firewall-cmd --zone=dmz --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject'firewall-cmd --zone=dmz --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp accept'
