HuaWei ❀ Firewalld ASPF-状态防火墙

包过滤防火墙属于静态防火墙,目前存在如下问题:

  • 对于多通道的应用层协议,部分安全策略配置无法预知;
  • 无法检测某些来自传输层和应用层的攻击行为;
  • 无法识别来自网络中伪造的ICMP差错报文,从而无法避免ICMP的恶意攻击;
  • 对于TCP连接均要求其首报文为SYN报文,非SYN报文的TCP首包将被丢弃,在这种处理方式下,当设备首次加入网络时,网络中原有的TCP连接的非首包在经过新加入的防火墙设备时均被丢弃,这会中断已有的会话连接;

因此提出了状态防火墙ASPF(Application Specific Packet Filter 特殊的应用包过滤)的概念,ASPF能够实现的检测有如下:

  • 应用层协议检测,如HTTP、FTP、SMTP等;
  • 传输层协议检测,如TCP、UDP检测;

1、ASPF的功能

  • 能够检查应用层协议信息,如报文的协议类型和端口号等信息,并且监控基于连接的应用层协议状态,对于所有连接,每一个连接状态信息都将被ASPF维护,并用于动态地决定数据包是否被允许通过防火期进入内部网络,以阻止恶意的入侵;
  • 能够检测传输层协议信息,能够根据源/目的地址及端口号决定TCP或UDP报文是否可以通过防火墙进入内部网络;
  • ASPF不仅能够根据连接的状态对报文进行过滤,还能够对应用层报文的内容加以检测,提供对不可信站点的Java Blocking功能,用于保护网络不受有害的Java Applets的破坏;
  • 支持TCP连接首包检测,对TCP连接的首报文进行检测,查看是否为SYN报文,如果不是SYN报文则根据当前配置决定是否丢弃该报文;
  • 支持ICMP差错报文检测,正常ICMP差错报文中均携带有本报文对应连接的相关信息,根据这些信息可以匹配到相应的连接,如果匹配失败,则根据当前配置决定是否丢弃该ICMP报文;
    在网络边界上,ASPF和包过滤防火墙协同工作,能够为企业内部网络提供更全面的、更符合实际需求的安全策略;

2、ASPF基本概念

  • Java Blocking
    Java Blocking是对通过HTTP协议传输的Java Applets程序进行阻断,当配置了Java Blocking后,用户为试图在web页面中获取包含Java Applets程序而发送的请求指令将会被阻断;
  • 单通道协议和多通道协议
    单协议通道:从会话建立到删除的全过程中,只有一个通道参与数据交互,如HTTP协议;
    多协议通道:包含一个控制通道和若干个其他控制或数据通道,即控制信息的交互和数据的传送是在不同的通道上完成的,如FTP协议;

3、应用层协议检验基本原理

在这里插入图片描述

如上图所示,为了保护内部网络,一般情况下需要在路由器上配置访问控制列表,以允许内部网络的主机访问外部网络,同时拒绝外部网络的主机访问内部网络,但是访问控制列表会将用户发起连接后返回的报文过滤掉,导致连接无法正常建立;
当在设备上配置了应用层协议检测后,ASPF可以检测每一个应用层的会话,并创建一个状态表项和一个临时访问控制列表TACL(Temporary Access Control List):

  • 状态表项在ASPF检测到第一个向外发送的报文时创建,用于维护一次会话中某一时刻会话所处的状态,并检测会话状态的转换是否正确;
  • 临时访问控制列表的表项在创建状态表项的同时创建,会话结束后删除,它相当于一个扩展ACL的permit项,TACL主要用于匹配一个会话中的所有返回的报文,可以为某一应用返回的报文在防火墙的外部接口上建立一个临时的返回通道;

下面以FTP检测为例说明多通道应用层协议检测的过程:
在这里插入图片描述

如上图所示,FTP连接的建立过程如下:假设FTP客户端以1333端口向FTP服务器的21端口发起FTP控制通道的连接,通过协商决定由FTP服务器20端口向FTP客户端的1600端口发起数据通道的连接,数据传输超时或结束后连接删除;
FTP检测在FTP连接建立到拆除过程中的处理如下:

  • 检查从出接口上向外发送的IP报文,确认为基于TCP的FTP报文;
  • 检查端口号确认连接为控制连接,建立返回报文的TACL和状态表项;
  • 检查FTP控制连接报文,解析FTP指令,根据指令更新状态表项,如果包含数据通道建立指令,则创建数据连接的TACL;对于数据连接,不进行状态检测;
  • 对于返回报文,根据协议类型做相应匹配检查,检查将根据相应协议的状态表项和TACL决定报文是否允许通过;
  • FTP连接删除时,状态表及TACL随之删除;

单通道应用层协议的检测过程比较简单,当发起连接时建立TACL,连接删除时随之删除TACL即可;

4、传输层协议检验基本原理

这里的传输层协议检测是指通用TCP/UDP检测,通用TCP/UDP检测与应用层协议检测不同,是对报文的传输层信息进行的检测,如源/目的IP地址及端口号,通用TCP/UDP检测要求返回到ASPF外部接口的报文要与之前从ASPF外部接口发出去的报文完全匹配,否则返回的报文将被阻塞,因此对于FTP、H.323这样的多通道应用层协议,在不配置应用层检测而直接配置TCP检测的情况下会导致数据连接无法建立;

<think>好的,用户问的是华为欧拉系统防火墙使用的命令。首先,我需要确认华为欧拉系统(EulerOS)是基于哪个发行版,通常它可能使用FirewallD或者iptables。不过,根据华为的文档,EulerOS通常默认使用firewalld作为防火墙管理工具。 接下来,用户可能需要具体的命令示例。比如启动、停止防火墙,查看状态,开放端口等。需要列出常用命令,确保语法正确。同时,要考虑到用户可能对firewalld不太熟悉,是否需要解释基本概念?但用户直接问的是命令,所以重点放在命令列表上。 另外,是否需要提醒用户权限问题,比如使用sudo?是的,应该提到需要root权限或sudo。可能还需要提到永久生效的--permanent选项,以及重载服务的步骤。如果有其他相关命令,比如查询开放的服务或端口,也可以包含进去。 最后,确认这些命令是否适用于EulerOS,可能需要检查华为官方资料,但通常firewalld是标准工具,所以应该没问题。总结一下,步骤应该是先确定防火墙类型,然后列出相关命令,并给出常见操作示例,确保用户能一步步操作。</think>华为欧拉系统(EulerOS)基于Linux开发,其防火墙管理主要通过 **firewalld** 工具实现,核心命令为 `firewall-cmd`。以下是关键操作步骤: --- ### 一、基础操作命令 1. **查看防火墙状态** ```bash sudo firewall-cmd --state ``` - 若显示 `running` 表示防火墙已启用。 2. **启动/停止/重启防火墙** ```bash sudo systemctl start firewalld # 启动 sudo systemctl stop firewalld # 停止 sudo systemctl restart firewalld # 重启 ``` 3. **开机自启配置** ```bash sudo systemctl enable firewalld # 启用自启 sudo systemctl disable firewalld # 关闭自启 ``` --- ### 二、端口与服务管理 1. **开放指定端口** ```bash sudo firewall-cmd --zone=public --add-port=80/tcp --permanent ``` - `--permanent` 表示永久生效(需重启防火墙或重载配置)。 2. **关闭指定端口** ```bash sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent ``` 3. **允许特定服务(如HTTP)** ```bash sudo firewall-cmd --zone=public --add-service=http --permanent ``` 4. **查看已开放端口/服务** ```bash sudo firewall-cmd --zone=public --list-ports # 查看端口 sudo firewall-cmd --zone=public --list-services # 查看服务 ``` --- ### 三、配置生效与验证 1. **重载防火墙配置** ```bash sudo firewall-cmd --reload # 应用永久规则(无需重启服务) ``` 2. **验证规则是否生效** ```bash sudo firewall-cmd --zone=public --query-port=80/tcp # 返回yes/no ``` --- ### 四、高级功能(可选) - **设置默认区域**: ```bash sudo firewall-cmd --set-default-zone=trusted ``` - **富规则(复杂策略)**: ```bash sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept' --permanent ``` --- ### 注意事项 1. 所有含 `--permanent` 的命令需执行 `firewall-cmd --reload` 生效。 2. 若需临时规则(重启后失效),去掉 `--permanent` 参数。 3. 可通过 `man firewall-cmd` 查看完整手册。 如需替代方案(如直接使用 `iptables`),需先禁用 `firewalld`: ```bash sudo systemctl stop firewalld && sudo systemctl disable firewalld sudo yum install iptables-services -y # 安装iptables ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无糖可乐没有灵魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值