一:防火墙管理工具:
在RHEL 7系统中,firewalld防火墙取代了iptables防火墙。其实,iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。换句话说,当前在Linux系统中其实存在多个防火墙管理工具,旨在方便运维人员管理Linux系统中的防火墙策略,我们只需要配置妥当其中的一个就足够了。虽然这些工具各有优劣,但它们在防火墙策略的配置思路上是保持一致的。只要在这多个防火墙管理工具中任选一款并将其学透,就足以满足日常的工作需求了。
RHEL 7系统中集成了多款防火墙管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。
相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。当前,我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。firewalld中常见的区域名称(默认为public)以及相应的策略规则图所示:
相关参数如下:
二:防火墙的管理:
1.图形管理防火墙界面 firewall-config
2.查看火墙的状态;查看火墙的默认区域;查看火墙的活跃区域(有网卡的区域活跃):
3.查看默认区域(public)的状态;查看work区域的火墙状态:
4.把firewalld服务中请求HTTP协议的流量设置为永久允许,并立即生效:
firewall-cmd --reload 刷新防火墙服务,让永久设置的立即生效
5.把firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:
6.给trusted区域添加ip172.25.254.42,表明该IP访问本机时属于trusted:
7.将ip172.25.254.4从trusted区域中移除:
8.把firewalld服务中网卡默认区域public中移除:
9.firewalld服务中给trusted区域添加网卡,变成活跃区域:
10.把firewalld服务中eth0网卡的默认区域还原为public
11.firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewalld/ (用户配置地址)
在/usr/lib/firewalld/ 中,可以看到如图所示的各个服务配置文件,火墙之所以起作用,就是这些配置文件的功能
此处我们建立一个自己的xml结尾的配置文件,添加一个dns5353的服务:
拷贝dns.xml到dns5353.xml文件,编辑新的文件,把端口改一下成5353,重新启动防火墙服务,会看到我们添加的自定义服务:
12.高级火墙配置
firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的
用高级火墙配置添加两个规则:
拒绝172.25.254.42访问本机22端口
允许172.25.254.42访问本机22端口
参数:
–direct 火墙高级规则
filter ##filter表
INPUT 1 #第一条链
–dport 22 ##端口号ssh
-s 后面跟指定ip
-j 后面跟要执行什么动作 ACCEPT允许 REJECT拒绝(回显)DROP拒绝(无回显)
查看高级火墙添加的所有规则
因为规则遵循顺序优先级,此处第一条和第二条规则矛盾,但是根据优先优先第一条有效:
规则的删除 --remove 移除规则:
13:火墙刷新:
这两条命令都是火墙刷新,即在添加新的火墙规则时,使其立即生效,二者的区别在于:
firewall-cmd --reload ##执行后已经执行的服务不会中断
firewall-cmd --complete-reload ##执行后已经执行的服务会立即中断
如:当有一个主机通过22端口ssh本机时,此时添加一条拒绝该连接本机ssh服务的规则时,
firewall-cmd --reload后不会立即断开连接,等下一次再连接时会拒绝
firewall-cmd --complete-reload立即拒绝