作者:手机用户2602915825_387 | 来源:互联网 | 2023-09-01 15:43
目录一、netfilter与firewalld二、firewalld与firewall-cmd、firewall-config2.1、预定义区域2.2、预定义服务2.3、
目录
一、netfilter与firewalld
二、firewalld与firewall-cmd、firewall-config
2.1、预定义区域
2.2、预定义服务
2.3、firewall-cmd和firewall-config配置工具
2.4、富规则rich-rule
一、netfilter与firewalld
linux内核有个防火墙模块netfilter,它是一个 包过滤防火墙,工作在OSI的2、3、4层。netfilter通过策略来控制和匹配条件,满足数据包的状态。与netfilter交互需要工具。最常见的就是iptables和firewalld书写和加载策略的工具。
RHEL6:iptables 没有明确的拒绝就是允许
RHEL7:firewalld 没有明确的允许就是拒绝
二、firewalld与firewall-cmd、firewall-config
CentOS/RHEL7以后引入了一个与netfilter交互的新方法firewalld服务。通过启动和关闭firewalld服务来打开和关闭防火墙,通过直接编辑firewalld配置文件、firewall-cmd命令行工具、firewall-config图形化工具来配置防火墙规则。
[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)Active: active (running) since Sun 2021-03-28 15:19:30 CST; 1h 15min ago
2.1、预定义区域
firewalld随附了一些预定义区域,适合不同用途,默认区域为publlic。随附区域有trusted、home、internal、work、public、external、dmz、block、drop区域。相关设置,可以编辑配置文件/etc/firewalld/zones/zone.xml。关于各个区域的功能和配置文件语法,直接man 5 firewalld.zone。
2.2、预定义服务
firewalld随附了预定义服务,可以方便允许流量通过防火墙。配置文件/etc/firewalld/services/service.xml。关于各个服务的功能和配置文件语法,直接man 5 firewalld.service。
amanda-client ftp ipsec mdns pmcd radius tftp
bacula high-availability kerberos mountd pmproxy rpc-bind tftp-client
bacula-client http kpasswd ms-wbt pmwebapi samba transmission-client
dhcp https ldap mysql pmwebapis samba-client vnc-server
dhcpv6 imaps ldaps nfs pop3s smtp wbem-https
dhcpv6-client ipp libvirt ntp postgresql ssh
dns ipp-client libvirt-tls openvpn proxy-dhcp telnet
2.3、firewall-cmd和firewall-config配置工具
常用的firewall-cmd命令常用选项如下。
更改规则以后,--reload加载到内存,规则才生效。
--permanent是写入配置文件,保证重启后依旧生效。
其他具体用法直接 man firewall-cmd。
firewall-config是firewall-cmd的图形化界面,不推荐使用。
firewall-cmd --list-all # 查看当前防火墙策略
firewall-cmd --permanent --add-port=123/udp # 添加入站规则 端口/协议
firewall-cmd --permanent --add-service=https # 添加入站规则 服务
firewall-cmd --permanent --remove-port=80/tcp # 删除入站规则 端口/协议
firewall-cmd --permanent --remove-service=telnet # 删除入站规则 服务
firewall-cmd --reload # 加载到内存才生效
2.4、富规则rich-rule
此外,firewalld还提供了自定义的防火墙规则rich-rule富规则。具体用法直接 man 5 firewalld.richlanguage。这里展示一个语法和手册的一个ipv6端口转发的例子。
firewall-cmd --permanent --add-rich-rule='rule' # 添加富规则
firewall-cmd --permanent --remove-rich-rule='rule' # 删除富规则Example 5Forward IPv6 port/packets receiving from 1:2:3:4:6:: on port 4011 with protocol tcp to 1::2:3:4:7 on port 4012rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"