区域 | 默认规则策略 |
trusted | 允许所有的数据包。 |
home | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,mdns,ipp-client,samba-client 与 dhcpv6-client 服务则允许。 |
internal | 等同于 home 区域 |
work | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,ipp-client 与 dhcpv6-client 服务则允许。 |
public | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,dhcpv6-client 服务则允许。 |
external | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。 |
dmz | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。 |
block | 拒绝流入的数据包,除非与输出流量数据包相关。 |
drop | 拒绝流入的数据包,除非与输出流量数据包相关。 |
拓扑:
外网 client 192.168.200.100/24
- Firewall 192.168.200.101/24
- 192.168.3.1/24 (vm3)
- 192.168.2.1/24 (vm2)
- Nginx server 192.168.3.2/24 (vm3)
- Local_client 192.168.2.2/24 (vm2)
Firewalld 防火墙网络配置:
nmtui
- Systemctl restart network
- ip addr
二 Firewalld 配置
1 安装开启 firewalld 服务
yum install -y firewalld(centos7 默认安装)
- systemctl start firewalld
- systemctl enable firewalld
2. Firewalld 区域管理
列出支持的所有区域
- firewall-cmd --get-zones
- work drop internal external trusted home dmz public block
列出默认区域
- firewall-cmd --get-default-zone
- public
设置默认区域
firewall-cmd --set-default-zone=public
获取当前活动区域
- firewall-cmd --get-active-zones
- public
- interfaces: ens32 ens35 ens36
列出全部启用的区域的详细信息
firewall-cmd --list-all-zones
3. Firewalld 接口管理
列出指定接口所在区域
- firewall-cmd --get-zone-of-interface=ens32
- public
列出指定区域的所有接口:
- firewall-cmd --zone=public --list-interfaces
- ens32 ens35 ens36
为指定区域移除接口
firewall-cmd --zone=public --remove-interface=ens36
为指定区域增加接口
firewall-cmd --zone=public --add-interface=ens36
查询指定区域中是否包含某接口
firewall-cmd --zone=dmz --query-interface=eno50332208
为指定区域更改接口
- firewall-cmd --zone=drop --change-interface=ens32
- The interface is under control of NetworkManager, setting zone to drop.
- firewall-cmd --list-interfaces --zone=drop
- ens32
列出指定区域的所有设置 (接口服务端口)
- firewall-cmd --zone=public --list-all
- firewall-cmd --list-all
4Firewalld 服务管理
查看指定区域所有支持的服务
- firewall-cmd --zone=public --list-services
- firewall-cmd --list-services
- dhcpv6-client ssh
将服务加入指定区域
firewall-cmd --zone=public --add-service=http
将服务移出指定区域
firewall-cmd --zone=public --remove-service=http
5. Firewalld 端口管理
开放指定区域的指定端口
firewall-cmd --zone=public --add-port=80/tcp
查看指定区域的指定端口
firewall-cmd --zone=public --query-port=80/tcp
列出指定区域打开的端口
firewall-cmd --zone=public --list-ports
关闭指定区域的指定端口
firewall-cmd --zone=public --remove-port=8080/tcp
6FirewalldICMP 阻塞管理
获取所有可用 icmp 类型
- firewall-cmd --get-icmptypes
- destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded timestamp-reply timestamp-request
启用指定区域的 ICMP 阻塞功能
firewall-cmd --zone=public --add-icmp-block=echo-request
查看指定区域 icmp 阻塞状态
- firewall-cmd --zone=public --list-icmp-blocks
- echo-request
查询指定区域的 ICMP 阻塞功能
firewall-cmd --zone=public --query-icmp-block=echo-request
移除指定区域的 ICMP 阻塞功能
firewall-cmd --zone=public --remove-icmp-block=echo-request
7. FirewalldNAT 管理
SNAT(代理上网)
- firewall-cmd --zone=public --add-masquerade
- firewall-cmd --zone=public --query-masquerade
- firewall-cmd --zone=public --remove-masquerade
DNAT(端口映射)
- firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.3.2
- firewall-cmd --zone=public --list-forward-ports
- port=80:proto=tcp:toport=80:toaddr=192.168.3.2
- firewall-cmd --zone=public --remove-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.3.2
8Firewalld 配置保存及重新加载
当前生效
firewall-cmd --add-service=http
永久生效
firewall-cmd --add-service=http --permanent
重新加载防火墙, 并不中断用户连接, 即不丢失状态信息
firewall-cmd --reload
重新加载防火墙并中断用户连接, 即丢弃状态信息
firewall-cmd --complete-reload
将防火墙当前配置保存为永久配置
firewall-cmd --runtime-to-permanent
9Firewalld 恐慌模式
当服务器遭受严重的网络攻击时, 可以启用 panic 模式, 以丢弃所有入站和出站流量, 并丢弃已建立的连接包
开启恐慌模式
firewall-cmd --panic-on
查看恐慌模式
firewall-cmd --query-panic
关闭恐慌模式
firewall-cmd --panic-off
来源: http://www.bubuko.com/infodetail-2501237.html