Centos 7 Firewalld服务

Firewalld(Dynamic Firewall Manager of Linux Systems)Linux系统的动态防火墙管理器

firewalld的配置文件:

1./etc/firewalld/ ##用户配置文件

[root@centos7 ~]# cd /etc/firewalld/
[root@centos7 firewalld]# ls
firewalld.conf  helpers  icmptypes  ipsets  lockdown-whitelist.xml  services  zones2.

2./usr/lib/firewalld/ ##系统配置文件

[root@centos7 firewalld]# cd /usr/lib/firewalld/
[root@centos7 firewalld]# ls
helpers  icmptypes  ipsets  services  xmlschema  zones

iptables & firewalld的区别:
iptables:用来定义防火墙策略的防火墙管理工具;
firewalld:把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理;
防火墙会从上到下的顺序读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为,如果读取完所有的策略规则没有匹配项就去执行默认的策略;

firewalld具有基于CLI(命令行界面)和基于GUI(图形用户界面)两种管理方式
相比于传统的防火墙管理配置工具,firewalld支持动态更新技术和区域(zone)概念;
区域:firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略的快速切换。

firewall的九个常见区域(默认:public)
①trustrd:可接受所有的网络连接
②home:用于家庭网络。你可以基本相信网络内的其他计算机不会危害你的计算机。仅仅接受经过选择的连接。
③internal:用于内部网络,你可以基本信任网络内的其他计算机不会威胁你的计算机,仅仅接受经过选择的连接。
④work:用于工作区。你可以基本相信网络内的其他电脑不会危害你的电脑。仅仅接受经过选择的连接。
⑤public:(公共)在公共区域内使用,不能相信网络内的其他计算机不会对你的计算造成危害,只能接受经过选取的连接。
⑥external:(外部)特别是为路由器启用了伪装功能的外部网。你不能信任来自网络的其他计算,不能相信他们不会对你的计算机造成危害,只能接受经过选择的连接。
⑦dmz:(非军事区)用于你的非军事区内的电脑,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接受经过选择的连接。
⑧block:(限制)拒绝所有外部连接,允许内部发起的连接,任何接受的网络连接都被IPV4的icmp-host-prohibited信息和ipv6的icmp6-adm-prohibited信息所拒绝。
⑨drop:(丢弃),任何接受的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。

终端管理工具:
firewalld-cmd是firewalld防火墙配置管理工具的CLI版本,参数一般以长格式提供

选项:
	--get-default-zone:查询默认的区域名称
	--set-default-zone=:设置默认的区域(永久生效)
	--get-zone:显示可用区域
	--get-services:显示预先定义的服务
	--get-active-zones:显示当前正在使用的区域与网卡名称
	--add-source=:将此源地址或子网的流量导向指定区域
	--remove-source=:不再将此源地址或子网的流量导向指定区域
	--add-interface=:将源自此网卡的流量导向指定区域
	--change-interface=:将网卡与区域关联
	--list-all:显示当前区域的信息
	--list-all-zone:显示所有区域信息
	--add-service=:设置默认区域允许该服务的流量
	--add-port=:设置默认区域允许该端口的流量
	--remove-service=:设置默认区域不再允许该服务的流量
	--remove-port=:设置默认区域不再允许该端口的流量	
	--reload:重启服务
	--panic-on:开启应急状况模式(阻止一切网络连接)
	--panic-off:关闭应急状况模式
	--permannent:使配置的策略永久生效(需要reload)

例如:

查看firewalld服务当前所使用的区域:

[root@centos7 ~]# firewall-cmd --get-default-zone
public

查看ens32网卡在firewalld服务中的区域:

[root@centos7 ~]# firewall-cmd --get-zone-of-interface=ens32
public

更改ens32网卡的区域:

[root@centos7 ~]# firewall-cmd --permanent --zone=external --change-interface=ens32
The interface is under control of NetworkManager, setting zone to 'external'.
success
[root@centos7 ~]# firewall-cmd --get-zone-of-interface=ens32
external

查询public区域是否允许请求ssh和https协议的流量:

[root@centos7 ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@centos7 ~]# firewall-cmd --zone=public --query-service=https
no

把firewalld服务请求https协议的流量设置为永久允许,并立即生效:

[root@centos7 ~]# firewall-cmd  --permanent --zone=public --add-service=https
success
[root@centos7 ~]# firewall-cmd --zone=public --query-service=https
no
[root@centos7 ~]# firewall-cmd --reload
success
[root@centos7 ~]# firewall-cmd --zone=public --query-service=https
yes

把在firewalld服务中访问8080和8081端口的流量策略设置为允许:

[root@centos7 ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@centos7 ~]# firewall-cmd --zone=public --list-ports
10051/tcp 8080-8081/tcp

把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:

流量转发命令格式:firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目的端口号>:toaddr=<目标IP地址>

[root@centos7 ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=10.1.1.241
success
[root@centos7 ~]# firewall-cmd --reload
success

firewalld中的富规则表示更细致,更详细的防火墙策略配置,可以针对系统服务,端口号,源地址和目的地址等信息进行更有针对性的策略配置。

例如:

[root@centos7 ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.1.1.0/24" service name="ssh" reject"
success
[root@centos7 ~]# firewall-cmd --reload
success

猜你喜欢

转载自www.cnblogs.com/xwhuxx/p/9089002.html