文章目录
Firewalld概述:
- 支持网络区域所定义的网络链接以及接口安全等级的动态,防火墙管理工具
- 支持IPv4,IPv6防火墙设置以及以太网桥
- 支持服务或应用程序直接添加防火墙规则接口
- 当数据包想从外部区域访问至内部区域一定要经过防火墙安检;同等级别的访问是不允许的
- 当访问外部主机的时候,防火墙会记录源IP地址;当数据回来的时候,防火墙再检查是否是源IP
拥有两种配置模式
- 运行时配置
- 永久配置
原理知识点
- 防火墙处于内部局域网和广域网之间
- 外网(低安全级别)往内部网络(高安全级别)去跨越的时候防火墙会拦截;会查看规则,匹配上就放行,匹配不上数据就会丢掉
- 数据从内网往外网出去的时候防火墙会登记,当数据回来的时候会检查源IP地址,如果源IP地址是内部的地址,就会自动放通;当人为添加规则后会再检查数据
Firewalld和iptables的关系:
Netfilter:
●位于Linux内核中的包过滤功能体系
●称为Linux防火墙“内核态”
●人不能接触到的是内核态
Firewalld/iptables:
●Centos7默认的管理防火墙规则的工具
●称为Linux防火墙的“用户态”
●firewall就是iptables的封装是为了简化操作,而且多元化
Firewalld和iptables的区别
iptables定义后就需要重启服务,firewall不需要重启服务;firewall更加灵活
Firewalld的网络区域
区域介绍
●区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
●可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
●默认情况下,pubilc区域是默认区域,包含所有接口(网卡)
Firewalld数据处理流程
检查数据来源的源地址
- 若源地址关联到特定的区域,则执行该区域所指定的规则
- 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
- 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
Firewalld防火墙配置方法
运行时配置;临时设置相当于输入命令
- 实时生效,并持续至Firewalld重新启动或重新加载配置
- 不中断现有连接
- 不能修改服务配置
永久配置
- 不立即生效,除非Firewalld重新启动或重新加载配置
- 中断现有连接
- 可以修改服务配置
- 永久设置相当于修改配置文件配置文件的修改才是永久生效
Firewall-config图形工具
Firewall-cmd命令行工具
/etc/firewalld/中的配置文件
- Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/lib/firewalld/中的配置
- /etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
- /usr/lib/friewalld/;默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/中的配置
Firewall-config图形工具
运行时配置/永久配置
重新加载防火墙
更改永久配置并生效
关联网卡到指定区域
修改默认区域
连接状态
firewall-cmd 命令:
启动、停止、查看 firewalld 服务
[root@localhost /]# systemctl start firewalld ##启动防火墙
[root@localhost /]# systemctl enable firewalld ##设置为开机自启
[root@localhost /]# systemctl status firewalld.service ##查看防火墙运行状态
[root@localhost /]# firewall-cmd --state ##也是查看防火墙状态
禁用 firewalld,执行以下命令即可实现:
[root@localhost /]# systemctl stop firewalld ##停止firewalld
[root@localhost /]# systemctl disable firewalld ##设置开机不自启动
获取预定义信息
[root@cai ~]# firewall-cmd --get-zones ##显示预定义的区域block阻塞区域
block阻塞区域;dmz非军事化区域;drop丢失区域;external外部区域
home内部区域;internal内部区域;public公共区域;trusted信任区域;work工作区域
[root@cai ~]# firewall-cmd --get-service ##显示预定义服务
[root@cai ~]# firewall-cmd --get-icmptypes ##显示预定义的ICMP类型
区域管理
[root@cai ~]# firewall-cmd --get-default-zone ##显示网络连接或接口的默认区域
[root@cai ~]# firewall-cmd --set-default-zone=work ##设置网络连接或接口的默认区域;这边设置为work区域
[root@cai ~]# firewall-cmd --get-active-zones ##显示已激活的所有区域
[root@cai ~]# firewall-cmd --get-zone-of-interface=ens33 ##显示指定接口绑定的区域
[root@cai ~]# firewall-cmd --zone=public --add-interface=ens33 ##为指定接口绑定区域
[root@cai ~]# firewall-cmd --zone=public --change-interface=ens36 ##为指定的区域更改绑定的网络接口 ;这边将public区域添加ens36网卡
[root@cai ~]# firewall-cmd --zone=public --remove-interface=ens36 ##为指定的区域删除绑定的网络接口
[root@cai ~]# firewall-cmd --list-all-zones ##显示所有区域及其规则
[root@cai ~]# firewall-cmd --zone=work --list-all ##显示指定的某个区域规则,这边显示的是work区域
服务管理
[root@cai ~]# firewall-cmd --zone=work --list-services ##显示指定区域内允许访问的所有服务;这边举例work区域
[root@cai ~]# firewall-cmd --zone=work --add-service=http ##为指定区域设置允许访问的某项服务,这边添加http服务
[root@cai ~]# firewall-cmd --zone=work --remove-service=http ##删除指定区域已设置的允许访问的某项服务
[root@cai ~]# firewall-cmd --zone=work --list-ports ##显示指定区域内允许访问的所有端口号
[root@cai ~]# firewall-cmd --zone=work --add-port=36/udp ##为指定区域设置允许访问的某个/某段端口号
[root@cai ~]# firewall-cmd --zone=work --remove-port=36/udp ##删除指定区域已设置的允许访问的端口号(包括 协议名)
[root@cai ~]# firewall-cmd --zone=work --list-icmp-blocks ##显示指定区域内拒绝访问的所有 ICMP 类型
[root@cai ~]# firewall-cmd --zone=work --add-icmp-block=echo-reply ##为指定区域设置拒绝访问的某项 ICMP 类型
[root@cai ~]# firewall-cmd --zone=work --remove-icmp-block=echo-reply ##删除指定区域已设置的拒绝访问的某项 ICMP 类型
配置模式
[root@cai ~]# firewall-cmd --permanent --zone=work --add-port=36/udp ##设置永久性规则,这些规则只有在重新启动
[root@cai ~]# firewall-cmd --reload ##重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置
[root@cai ~]# firewall-cmd --runtime-to-permanent ##将当前的运行时配置写入规则配置文件中,使之成为永久性