区域(Zone)概念
相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
区域 默认规则策略
trusted 允许所有的数据包 home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务 相关,则允许流量 internal 等同于home区域 work 拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 block 拒绝流入的流量,除非与流出的流量相关 drop 拒绝流入的流量,除非与流出的流量相关
firewalld服务程序两种管理方式
命令行界面:firewall-cmd
图形化界面:firewall-config
firewalld策略两种生效模式
Runtime:当前生效模式,但重启后失效。 Permanent:重启后永久有效,但不能立即生效,配置策略时加上–permanment就可以了。
例如
[root@linuxprobe ~]# firewall-cmd –zone=public –add-service=https #当前有效,重启无效
success
[root@linuxprobe ~]# firewall-cmd –permanent –zone=public –add-service=https #当前无效,重启后永久有效
success
[root@linuxprobe ~]# firewall-cmd –reload #是permanent立即生效
succes
firewall-cmd 常用命令(当前生效模式模式)
1.管理区域(策略模板)
firewall-cmd –get-default-zone #查看firewalld服务当前所使用的区域
firewall-cmd –get-zone-of-interface=eno16777728 #查询eno16777728网卡在firewalld服务中的区域
firewall-cmd –zone=external –change interface=eno16777728 #修改网卡默认区域为external
2.设置服务策略
[root@linuxprobe ~]# firewall-cmd –zone=public –query-service=https #查询
no
[root@linuxprobe ~]# firewall-cmd –zone=public –add-service=https #设置区域public 允许https服务的流量
success
[root@linuxprobe ~]# firewall-cmd –zone=public –query-service=https #查询
yes
[root@linuxprobe ~]# firewall-cmd –zone=public –remove-service=https #设置区域public 不再允许https服务的流量
success
[root@linuxprobe ~]# firewall-cmd –zone=public –query-service=https #查询
no
3.设置端口策略
[root@linuxprobe ~]# firewall-cmd –zone=public –query-port=80/tcp #查询
no
[root@linuxprobe ~]# firewall-cmd –zone=public –add-port=80/tcp #设置public区域 允许80端口的流量
success
[root@linuxprobe ~]# firewall-cmd –zone=public –query-port=80/tcp #查询
yes
[root@linuxprobe ~]# firewall-cmd –zone=public –remove-port=80/tcp #设置public区域 不再允许80端口的流量
success
[root@linuxprobe ~]# firewall-cmd –zone=public –query-port=80/tcp #查询
no
4.端口转发
把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
[root@linuxprobe ~]# firewall-cmd –permanent –zone=public –add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
success
[root@linuxprobe ~]# firewall-cmd –reload
success
5.富规则
使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口):
[root@linuxprobe ~]# firewall-cmd –permanent –zone=public –add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
[root@linuxprobe ~]# firewall-cmd –reload
success
firewall-config 图形化工具
firewall-config
8 IptablesFirewalldé2¢8 IptablesFirewalldé2¢
1:选择运行时(Runtime)模式或永久(Permanent)模式的配置。
2:可选的策略集合区域列表。
3:常用的系统服务列表。
4:当前正在使用的区域。
5:管理当前被选中区域中的服务。
6:管理当前被选中区域中的端口。
7:开启或关闭SNAT(源地址转换协议)技术。
8:设置端口转发策略。
9:控制请求icmp服务的流量。
10:管理防火墙的富规则。
11:管理网卡设备。
12:被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量。
13:firewall-config工具的运行状态。
PS:如果想要配置的防火墙策略永久且立即生效,请在配置图形界面前勾选 1 永久(Permanent)模式 ,然后进行配置,配置好之后,选择Options –>Reload Firewalld (相当于命令 firewall-cmd –reload)