FIREWALLD

FIREWALLD

Firewalld简介

Firewalld是一个动态防火墙管理器,nftables框架的前端,作为iptables服务的替代方案。在 RHEL8 中, firewalld是推荐的前端,用来管理防火墙规则集。Firewalld仍可以读取和管理iptables配置文件和规则集,并将iptables对象直接转换为nftables规则和对象。

区域名默认配置
trusted允许所有传入流量。
home除非与传出流量相关,或与cockpit、dhcpv6-client、mdns、sambaclient或ssh预定义服务匹配,否则拒绝传入流量。
internal除非与传出流量相关,或与cockpit、dhcpv6-client、mdns、sambaclient或ssh预定义服务匹配,否则拒绝传入流量。
work除非与传出流量相关,或与cockpit、ssh、ipp-client或dhcpv6-client预定义服务匹配,否则拒绝传入流量。
public除非与传出流量相关,或与cockpit、ssh或dhcpv6-client预定义服务匹配,否则拒绝传入流量。新添加的网络接口的默认区域。
external除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量。通过此区域转发的IPv4传出流量将进行伪装,以使其看起来像是来自传出网络接口的IPv4地址。
dmz除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量。
block除非与传出流量相关,否则拒绝所有传入流量,对客户端响应ICMP错误。
drop除非与传出流量相关,否则丟弃所有传入流量,不对客户端响应ICMP错误。

数据包与zone匹配原则:

  1. 如果该源地址被分配给特定区域, 则应用该区域的规则。

  2. 如果源地址未被分配给特定区域, firewalld将数据包分配给与传入网络接口关联的区域,并应用该区域的规则。

  3. 如果以上都未匹配,firewalld将数据包分配给默认区域。

注意事项:

  • firewalld默认指定public区域为默认区域,并将lo回环接口映射至trusted区域。

  • 如果流量不与允许的端口或协议或服务匹配,则通常会被拒绝。

zone内规则优先级

对于所有区域,区域内规则的基本排序是相同的:

  • 为该区域设置的任何端口转发和伪装原则。
  • 为该区域设置的任何拒绝规则。
  • 为该区域设置的任何允许规则。

在所有情况下,第一个匹配项将胜出。如果区域中所有规则都不匹配,那么通常会拒绝该包,trusted例外。
还可以设置记录和审计规则,该规则与以上3个规则可以同时生效。

防火墙预定义服务

服务名配置
SSH本地SSH服务器。到22/tcp的流量。
dhcpv6-client本地DHCPv6客户端。到fe80::/64 IPv6网络中546/udp的流量。
ipp-client本地IPP打印。到631/udp的流量。
samba-client本地Windows文件和打印共享客户端。到137/udp和138/udp的流量。
MDNS多播DNS(mDNS)本地链路名称解析。到5353/udp指向224.0.0.251 (IPv4)或ff02::fb(IPv6)多播地址的流量。

管理服务器防火墙

系统管理员可通过多种方式与firewalld交互:

  • Web控制台图形界面
  • firewall-config图形界面工具
  • firewall-cmd命令行工具

firewall-cmd

查询
firewall-cmd --get-default-zone                 查看当前默认区域
             --get-active-zones                 查看当前已激活的区域
             --get-zones                        查看所有可用的区域
             --list-all-zones                   查看所有区域的规则
             --list-all --zone=区域名           查看指定区域的规则
             --list-services --zone=区域名      查看指定区域允许访问的服务列表
             --list-ports --zone=区域名         查看指定区域允许访问的端口列表
             --get-zone-of-interface=网卡名     查看与网卡绑定的区域
             --get-icmptypes                    查看所有icmp类型
增加
firewall-cmd --add-interface=网卡名 --zone=区域名                    给指定区域添加绑定的网卡
             --add-source=源地址 --zone=区域名                       给指定区域添加源地址
             --add-service=服务名 --zone=区域名                      给指定区域添加允许访问的服务
             --add-service={服务名1,服务名2,...} --zone=区域名       给指定区域添加允许访问的服务列表
             --add-port=端口/协议 --zone=区域名                      给指定区域添加允许访问的端口
             --add-port=端口1-端口2/协议 --zone=区域名               给指定区域添加允许访问的连续的端口列表
             --add-port={端口1,端口2,...}/协议 --zone=区域名         给指定区域添加允许访问的不连续的端口
             --add-icmp-block=icmp类型 --zone=区域名                 给指定区域添加拒绝访问的icmp类型
firewall-cmd --remove-service=服务名 --zone=区域名  
             --remove-port=端口/协议 --zone=区域名
             --remove-icmp-block=icmp类型 --zone=区域名
             --remove-interface=网卡名 --zone=区域名       从指定区域里删除绑定的网卡
             --remove-source=源地址 --zone=区域名          从指定区域里删除绑定的源地址
firewall-cmd --set-default-zone                            修改当前默认区域
             --change-interface=网卡名 --zone=区域名       修改/添加网卡 绑定给指定区域
             --change-source=源地址 --zone=区域名          修改/添加源地址 绑定给指定区域

Web控制台

yum install cockpit -y
yum install cockpit-dashboard -y
systemctl enable --now cockpit.socket
firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload
打开浏览器输入http://<ip>:9090即可访问

firewall-config

富规则

除了firewalld提供的常规区域和服务语法之外,还可以使用直接规则和富规则。

直接规则:允许管理员将手动编码的{ip,ip6,eb}tables规则插入到firewall管理的区域中。
尽管直接规则很强大,但难以管理,灵活性也低于标准规则和富规则。本课程不讨论。

富规则:可实现自定义规则,例如允许从单个IP地址连接到某个服务,还可以配置允许和拒绝,记录连接,端口转发和速率限制。

富规则语法:

rule
    [source]
    [destination]
    service | port | protocol | icmp-block | icmp-type | masquerade | forward-port |source-port
    [log]
    [audit]
    [accept | reject | drop | mark]

–add-rich-rule=向指定区域中添加
–remove-rich-rule= 删除指定区域中
–list-rich-rule= 查询指定区域中列表
–query-rich-rule= 查询指定区域中是否含有规则,如果存在则返回0,否则返回1

示例:

rule family="ipv4" source address="192.168.2.4" drop
rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns"
level="info" limit value="3/m" reject
rule family="ipv6" service name="radius" accept

实验一、使用firewall进行SNAT

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值