示例:应用多个防火墙过滤器的列表
此示例说明如何应用多个防火墙过滤器的列表。
要求
在开始之前,请确保您已:
-
已安装路由器或交换机,并支持 PIC、DPC 或 MPC,并执行了初始路由器或交换机配置。
-
在拓扑中配置了基本以太网。
-
已配置逻辑接口以运行 IP 版本 4 (IPv4) 协议 (
family inet
),并使用接口地址配置逻辑接口。此示例使用配置了 IP 地址 172.16.1.2/30 的逻辑接口ge-1/3/0.0
。注:为完整起见,此示例的配置部分包括为逻辑接口
ge-1/3/0.0
设置 IP 地址。 -
已验证流量是否在拓扑中流动,以及入口和出口 IPv4 流量是否流经逻辑接口
ge-1/3/0.0
。 -
已验证您是否有权访问连接到此路由器或交换机的逻辑接口
ge-1/3/0.0
的远程主机。
列表过滤器不支持物理接口监管器/过滤器。
概述
在此示例中,您将配置三个 IPv4 防火墙过滤器,并使用列表将每个过滤器直接应用于同一逻辑接口。
拓扑学
此示例将以下防火墙过滤器应用为逻辑接口 ge-1/3/0.0
上的输入过滤器列表。每个过滤器都包含一个术语,用于评估 IPv4 数据包并根据 TCP 标头中的字段值 destination port
接受数据包:
过滤器与 FTP 端口号 (
21
) 上的匹配项filter_FTP
。筛选器与 SSH 端口号 (
22
) 上的匹配项filter_SSH
。过滤器
filter_Telnet
与 Telnet 端口号 (23
) 匹配项。
如果入站数据包与输入列表中的任何过滤器都不匹配,则该数据包将被丢弃。
Junos OS 按照过滤器名称在列表中的显示顺序在列表中使用过滤器。在这个简单的示例中,顺序无关紧要,因为所有筛选器都指定相同的操作。
任何筛选器都可以单独(使用 input
or output
语句)或与其他筛选器组合(使用 input-list
or output-list
语句)应用于其他接口。目标是配置多个“简约”防火墙过滤器,您可以在特定于接口的过滤器列表中重复使用这些过滤器。
配置
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参见 在配置模式下使用 CLI 编辑器。
CLI 快速配置
要快速配置此示例,请将以下命令复制到文本文件中,删除所有换行符,然后将命令粘贴到层次结构级别的 CLI [edit]
中。
set firewall family inet filter filter_FTP term 0 from protocol tcp set firewall family inet filter filter_FTP term 0 from destination-port 21 set firewall family inet filter filter_FTP term 0 then count pkts_FTP set firewall family inet filter filter_FTP term 0 then accept set firewall family inet filter filter_SSH term 0 from protocol tcp set firewall family inet filter filter_SSH term 0 from destination-port 22 set firewall family inet filter filter_SSH term 0 then count pkts_SSH set firewall family inet filter filter_SSH term 0 then accept set firewall family inet filter filter_Telnet term 0 from protocol tcp set firewall family inet filter filter_Telnet term 0 from destination-port 23 set firewall family inet filter filter_Telnet term 0 then count pkts_Telnet set firewall family inet filter filter_Telnet term 0 then accept set firewall family inet filter filter_discard term 1 then count pkts_discarded set firewall family inet filter filter_discard term 1 then discard set interfaces ge-1/3/0 unit 0 family inet address 172.16.1.2/30 set interfaces ge-1/3/0 unit 0 family inet filter input-list filter_FTP set interfaces ge-1/3/0 unit 0 family inet filter input-list filter_SSH set interfaces ge-1/3/0 unit 0 family inet filter input-list filter_Telnet set interfaces ge-1/3/0 unit 0 family inet filter input-list filter_discard
配置多个 IPv4 防火墙过滤器
分步过程
要配置 IPv4 防火墙过滤器,请执行以下操作:
将 CLI 导航到配置 IPv4 防火墙过滤器的层次结构级别。
[edit] user@host# edit firewall family inet
配置第一个防火墙过滤器以计数并接受端口 21 的数据包。
[edit firewall family inet] user@host# set filter filter_FTP term 0 from protocol tcp user@host# set filter filter_FTP term 0 from destination-port 21 user@host# set filter filter_FTP term 0 then count pkts_FTP user@host# set filter filter_FTP term 0 then accept
配置第二个防火墙过滤器以计数并接受端口 22 的数据包。
[edit firewall family inet] user@host# set filter filter_SSH term 0 from protocol tcp user@host# set filter filter_SSH term 0 from destination-port 22 user@host# set filter filter_SSH term 0 then count pkt_SSH user@host# set filter filter_SSH term 0 then accept
配置第三个防火墙过滤器以计数并接受来自端口 23 的数据包。
[edit firewall family inet] user@host# set filter filter_Telnet term 0 from protocol tcp user@host# set filter filter_Telnet term 0 from destination-port 23 user@host# set filter filter_Telnet term 0 then count pkts_Telnet user@host# set filter filter_Telnet term 0 then accept
配置最后一个防火墙过滤器以计算丢弃的数据包。
[edit firewall family inet] user@host# set filter filter_discard term 1 then count pkts_discarded user@host# set filter filter_discard term 1 then discard
将过滤器作为输入列表和输出列表应用于逻辑接口
分步过程
要将六个 IPv4 防火墙过滤器应用为输入过滤器列表和输出过滤器列表,请执行以下操作:
将 CLI 导航到将 IPv4 防火墙过滤器应用于逻辑接口
ge-1/3/0.0
的层次结构级别。[edit] user@host# edit interfaces ge-1/3/0 unit 0 family inet
为逻辑接口配置 IPv4 协议家族。
[edit interfaces ge-1/3/0 unit 0 family inet] user@host# set address 172.16.1.2/30
将筛选器应用为输入筛选器列表。
[edit interfaces ge-1/3/0 unit 0 family inet] user@host# set filter input-list [ filter_FTP filter_SSH filter_Telnet filter_discard ]
确认并提交候选配置
分步过程
要确认并提交候选配置,请执行以下操作:
通过输入
show firewall
配置模式命令确认防火墙过滤器的配置。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。[edit] user@host# show firewall family inet { filter filter_FTP { term 0 { from { protocol tcp; destination-port 21; } then { count pkts_FTP; accept; } } } filter filter_SSH { term 0 { from { protocol tcp; destination-port 22; } then { count pkts_SSH; accept; } } } filter filter_Telnet { term 0 { from { protocol tcp; destination-port 23; } then { count pkts_Telnet; accept; } } } filter filter_discard { term 1 { then { count pkts_discarded; discard; } } } }
通过输入
show interfaces
配置模式命令确认接口的配置。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。[edit] user@host# show interfaces ge-1/3/0 { unit 0 { family inet { filter { input-list [ filter_FTP filter_SSH filter_Telnet filter_discard ]; } address 172.16.1.2/30; } } }
如果完成设备配置,请提交候选配置。
[edit] user@host# commit
验证
确认配置工作正常。
验证入站数据包是否仅在发往 FTP、SSH 或 Telnet 端口时才被接受
目的
验证逻辑接口的所有三个过滤器是否都处于活动状态。
操作
要根据三个过滤器验证是否接受输入数据包,请执行以下操作:
从连接到此路由器(或交换机)逻辑接口
ge-1/3/0.0
的远程主机,发送标头中目标端口号为 21 的数据包。数据包应被接受。从连接到此路由器(或交换机)逻辑接口
ge-1/3/0.0
的远程主机,发送标头中目标端口号为 22 的数据包。数据包应被接受。从连接到此路由器(或交换机)逻辑接口
ge-1/3/0.0
的远程主机,发送标头中目标端口号为 23 的数据包。数据包应被接受。从连接到此路由器(或交换机)逻辑接口
ge-1/3/0.0
的远程主机,发送目标端口号 不是 21、22 或 23 的数据包。数据包应丢弃。-
要在输入时
ge-1/3/0.0
show firewall filter ge-1/3/0.0-inet-i
显示应用于输入的过滤器列表的计数器信息,请输入操作模式命令。命令输出显示与以下计数器关联的过滤器术语匹配的字节数和数据包数:-
pkts_FTP-ge-1/3/0.0-inet-i
-
pkts_SSH-ge-1/3/0.0-inet-i
-
pkts_Telnet-ge-1/3/0.0-inet-i
-
pkts_discard-ge-1/3/0.0-inet-i
-