Skip to content

Firewalld

咕咕咕式更新,用到什么更什么,最后是在2021.10.23更新的

CentOS7的默认防火墙是firewalld,支持动态更新,无需重启服务。 firewalld的字符界面管理工具是 firewall-cmd  firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewalld/ (用户配置地址)

向public区域添加一个永久放行tcp80端口的命令如下: firewall-cmd --zone=public --add-port=80/tcp --permanent

参数详解: --zone 指定的区域 --add-port 指定的端口 --permanent 表示设置为持久

一些紧急加固时会用到的命令

防火墙的应急模式

firewall-cmd --panic-on  # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off  # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic  # 查看是否为应急模式

阻止指定网卡的所有入流量

firewall-cmd --zone=drop --add-interface=ens233
firewall-cmd --add-interface=ens233  # 默认区域是public,此时相当于移出drop区域。

阻止指定源地址的所有入流量

firewall-cmd --zone=drop --add-source=192.168.233.233

查看网卡所在的区域

firewall-cmd --get-zone-of-interface=ens233

区域

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默认出方向是全放通的。

Firewalld匹配策略的优先级 对于一个接收到的包具体使用哪个区域的策略,Firewalld是通过三种方式来判断的: 1、Source,来源地址 2、Interface,接收请求的网卡 3、Firewalld配置的默认区域 这三个方式的优先级按顺序依次降低,也就是说如果按照Source可以找到就不会再按Interface去找,如果前两个都找不到才会使用第三个默认区域。