区域 | 默认规则策略 |
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
4、Firewalld服务管理
查看指定区域所有支持的服务
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
6、FirewalldICMP阻塞管理
获取所有可用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
8、Firewalld配置保存及重新加载
当前生效
firewall-cmd --add-service=http
永久生效
firewall-cmd --add-service=http --permanent
重新加载防火墙,并不中断用户连接,即不丢失状态信息
firewall-cmd --reload
重新加载防火墙并中断用户连接,即丢弃状态信息
firewall-cmd --complete-reload
将防火墙当前配置保存为永久配置
firewall-cmd --runtime-to-permanent
9、Firewalld恐慌模式
当服务器遭受严重的网络攻击时,可以启用panic模式,以丢弃所有入站和出站流量,并丢弃已建立的连接包。
开启恐慌模式
firewall-cmd --panic-on
查看恐慌模式
firewall-cmd --query-panic
关闭恐慌模式
firewall-cmd --panic-off