网络防火墙配置

更新时间:
2024-03-14
下载文档

网络防火墙配置

概述

为了对内部网络提供保护,有必要对通过防火墙的数据包进行检查,例如检查其源地址和目的地址、端口地址、数据包的类型等,根据这些数据来判断这个数据包是否为合法数据包,如果不符合预定义的规则,就不将这个数据包发送到目的计算机中去。由于包过滤技术要求内外通信的数据包必须通过使用这个技术的计算机,才能进行过滤,因而包过滤技术通常用在路由器上。

SylixOS 提供的NPF(Net Packet Filter)工具是一个网络过滤器,该工具提供了以下过滤规则:

  • 过滤链路层帧:指定为MAC规则,此规则需要提供目的计算机的硬件地址。
  • 过滤 IP 数据报:指定为 IP 规则,此规则需要指定一个想要过滤的 IP 地址范围。
  • 过滤传输层数据包:指定为 UDP 或 TCP 规则,此规则将过滤某个 IP 地址范围和 某个端口号范围的数据包。

NPF 工具配置

在 SylixOS 系统中,通过 npfs 命令、 npfruleadd 命令、 npfruledel 命令可以实现一个完整的防火墙功能。

  • npfs 命令:显示当前所有的过滤规则条目。
[root@sylixos:/root]# help npfs      
show net packet filter rule(s).
npfs
[root@sylixos:/root]# 
  • npfruleadd 命令:增加一条网络包过滤规则。
[root@sylixos:/root]# help npfruleadd
add a rule into net packet filter.
eg. npfruleadd en1 mac input deny 11:22:33:44:55:66
    npfruleadd en1 ip input allow 192.168.0.5 192.168.0.10
    npfruleadd lo0 udp input deny 0.0.0.0 255.255.255.255 433 500
    npfruleadd wl2 tcp input deny 192.168.0.1 192.168.0.200 169 169

allow : allowed
deny  : not allowed
dof   : not allowed only for route forwarding
npfruleadd [netifname] [rule] [input | output] [allow |deny] [args...]
[root@sylixos:/root]# 

参数说明如下:

  • netifname:需要添加过滤规则的网络接口。
  • rule:网络包过滤规则,mac-过滤以太网帧,ip-过滤 IP 数据报,udp-过滤 UDP 数据包,tcp-过滤 TCP 数据包。
  • input / output:input-针对输入数据包作过滤规则,output-针对输出数据包作过滤规则。
  • allow / deny:allow-允许数据包通过,deny:禁止数据包通过。
  • npfruledel 命令:删除一条网络包过滤规则。
[root@sylixos:/root]# help npfruledel
delete a rule from net packet filter.
npfruledel [netifname] [input | output] [rule sequence num]
[root@sylixos:/root]# 

参数说明如下:

  • netifname:需要删除过滤规则的网络接口。
  • input / output:input-针对输入数据包作过滤规则,output-针对输出数据包作过滤规则。
  • rule sequence num:通过 npfs 命令查询到的 SEQNUM 值。

实际场景

通过防火墙关闭 Telnet 端口

Q:设备 A 使用网络接口 en1,IP 地址是 10.4.120.211,禁止 10.4.0.1 ~ 10.4.0.130 网段的主机通过 Telnet 端口(23)连接到设备 A,如何实现?

A:通过NPF工具增加 Telnet 端口过滤规则。

  • 进入设备 A 的 Shell 命令界面,通过 npfruleadd 命令增加一条 Telnet 端口的过滤规则,IP 禁止范围设置为 10.4.0.1 ~ 10.4.0.130,端口禁止范围设置为 23。

    [root@sylixos:/root]# npfruleadd en1 tcp input deny 10.4.0.1 10.4.0.130 23 23
    
  • 通过 npfs 命令查看增添的过滤规则。

    [root@sylixos:/root]# npfs
    input >>
    
    NETIF ATTACH SEQNUM RULE ALLOW OF MAC               IPs             IPe             PORTs  PORTe
    en1   YES         0 TCP  NO    N/A                   10.4.0.1        10.4.0.130      23     23    
    
    output >>
    
    NETIF ATTACH SEQNUM RULE ALLOW OF MAC               IPs             IPe             PORTs  PORTe
    
    drop:9  allow:87669
    [root@sylixos:/root]# 
    
  • 通过主机 B(IP 地址:10.4.0.120)使用 Telnet 工具连接设备 A,发现无法连接,通过主机 C(IP 地址:10.4.0.140)使用 Telnet 工具连接设备 A,发现可以正常连接,证明添加的端口过滤规则有效。

  • 删除上文添加的网络包过滤规则,需要提前通过 npfs 命令获取过滤条目的 SEQNUM 值,可得 SEQNUM 值为 0。

    [root@sylixos:/root]# npfs
    input >>
    
    NETIF ATTACH SEQNUM RULE ALLOW OF MAC               IPs             IPe             PORTs  PORTe
    en1   YES         0 TCP  NO    N/A                   10.4.0.1        10.4.0.130      23     23    
    
    output >>
    
    NETIF ATTACH SEQNUM RULE ALLOW OF MAC               IPs             IPe             PORTs  PORTe
    
    drop:9  allow:87669
    
  • 通过 npfruledel 命令删除上文添加的 Telnet 端口的过滤规则,SEQNUM 值为 0。

    [root@sylixos:/root]# npfruledel en1 input 0
    
  • 删除过滤规则完毕后,通过主机 B(IP 地址:10.4.0.120)使用 Telnet 工具连接设备 A,发现可以正常连接了,证明删除端口过滤规则功能有效。

文档内容是否对您有所帮助?
有帮助
没帮助