示例:配置无状态防火墙过滤器以接受来自可信源的流量
此示例说明如何创建无状态防火墙过滤器,以保护路由引擎免受来自不受信任源的流量的影响。
要求
在配置无状态防火墙过滤器之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将创建一个名为 protect-RE 的无状态防火墙过滤器,该过滤器将丢弃发往路由引擎的所有流量,但来自指定可信源的 SSH 和 BGP 协议数据包除外。此示例包括以下防火墙过滤器术语:
ssh-term
— 接受源地址为且目标端口指定192.168.122.0/24
SSH 的 TCP 数据包。bgp-term
— 接受源地址为10.2.1.0/24
和指定 BGP 的目标端口的 TCP 数据包。discard-rest-term
— 对于 或bgp-term
不接受ssh-term
的所有数据包,将创建防火墙过滤器日志和系统日志记录记录,然后丢弃所有数据包。
您可以使用命令在 insert
防火墙过滤器内移动术语。请参阅 Junos OS CLI 用户指南中的插入。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
set firewall family inet filter protect-RE term ssh-term from source-address 192.168.122.0/24 set firewall family inet filter protect-RE term ssh-term from protocol tcp set firewall family inet filter protect-RE term ssh-term from destination-port ssh set firewall family inet filter protect-RE term ssh-term then accept set firewall family inet filter protect-RE term bgp-term from source-address 10.2.1.0/24 set firewall family inet filter protect-RE term bgp-term from protocol tcp set firewall family inet filter protect-RE term bgp-term from destination-port bgp set firewall family inet filter protect-RE term bgp-term then accept set firewall family inet filter protect-RE term discard-rest-term then log set firewall family inet filter protect-RE term discard-rest-term then syslog set firewall family inet filter protect-RE term discard-rest-term then discard set interfaces lo0 unit 0 family inet filter input protect-RE
分步过程
下面的示例要求您在各个配置层级中进行导航。有关如何执行此操作的说明,请参阅 在配置模式下使用 CLI 编辑器Junos OS CLI 用户指南。
要配置无状态防火墙过滤器,请执行以下操作:
创建无状态防火墙过滤器。
[edit] user@host# edit firewall family inet filter protect-RE
创建第一个筛选词。
[edit firewall family inet filter protect-RE] user@host# edit term ssh-term
定义术语的协议、目标端口和源地址匹配条件。
[edit firewall family inet filter protect-RE term ssh-term] user@host# set from protocol tcp destination-port ssh source-address 192.168.122.0/24
定义术语的操作。
[edit firewall family inet filter protect-RE term ssh-term] user@host# set then accept
创建第二个筛选词。
[edit firewall family inet filter protect-RE] user@host# edit term bgp-term
定义术语的协议、目标端口和源地址匹配条件。
[edit firewall family inet filter protect-RE term bgp-term] user@host# set from protocol tcp destination-port bgp source-address 10.2.1.0/24
定义术语的操作。
[edit firewall family inet filter protect-RE term bgp-term] user@host# set then accept
创建第三个筛选词。
[edit firewall family inet filter protect-RE] user@host# edit term discard-rest-term
定义术语的操作。
[edit firewall family inet filter protect-RE term discard-rest] user@host# set then log syslog discard
将过滤器应用于路由引擎接口的输入端。
[edit] user@host# set interfaces lo0 unit 0 family inet filter input protect-RE
结果
通过输入 show firewall
命令和 show interfaces lo0
配置模式下的命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@host# show firewall family inet { filter protect-RE { term ssh-term { from { source-address { 192.168.122.0/24; } protocol tcp; destination-port ssh; } then accept; } term bgp-term { from { source-address { 10.2.1.0/24; } protocol tcp; destination-port bgp; } then accept; } term discard-rest-term { then { log; syslog; discard; } } } }
user@host# show interfaces lo0 unit 0 { family inet { filter { input protect-RE; } address 127.0.0.1/32; } }
如果完成设备配置,请从配置模式输入 commit
。
[edit] user@host# commit
验证
要确认配置工作正常,请执行以下任务:
显示无状态防火墙过滤器配置
目的
验证防火墙过滤器的配置。
操作
在配置模式下,输入 show firewall
命令和 show interfaces lo0
命令。
意义
验证输出是否显示防火墙过滤器的预期配置。此外,请验证术语是否按您希望测试数据包的顺序列出。您可以使用 CLI 命令在 insert
防火墙过滤器内移动术语。
验证服务、协议和可信来源防火墙过滤器
目的
验证是否已执行防火墙过滤器术语的操作。
操作
将数据包发送到与条款匹配的设备。此外,验证是否 not 对不匹配的数据包执行了过滤器操作。
ssh host-name
使用来自 IP 地址匹配192.168.122.0/24
的主机的命令,验证您是否只能使用来自具有此地址前缀的主机的 SSH 登录到设备。使用命令验证
show route summary
设备上的路由表是否不包含协议除 、Local
BGP
或Static
以外的任何Direct
条目。
示例输出
命令名称
% ssh 192.168.249.71 %ssh host user@host's password: --- JUNOS 6.4-20040518.0 (JSERIES) #0: 2004-05-18 09:27:50 UTC user@host>
命令名称
user@host> show route summary Router ID: 192.168.249.71 inet.0: 34 destinations, 34 routes (33 active, 0 holddown, 1 hidden) Direct: 10 routes, 9 active Local: 9 routes, 9 active BGP: 10 routes, 10 active Static: 5 routes, 5 active ...
意义
验证以下信息:
您可以使用 SSH 成功登录设备。
该
show route summary
命令不显示除 、Local
BGP
、 或Static
以外的Direct
协议。
显示无状态防火墙过滤器日志
目的
验证是否正在记录数据包。log
如果在术语中包含或syslog
操作,请验证与术语匹配的数据包是否已记录在防火墙日志或系统日志记录工具中。
操作
在操作模式下,输入 show firewall log
命令。
示例输出
命令名称
user@host> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 15:11:02 pfe D ge-0/0/0.0 TCP 172.17.28.19 192.168.70.71 15:11:01 pfe D ge-0/0/0.0 TCP 172.17.28.19 192.168.70.71 15:11:01 pfe D ge-0/0/0.0 TCP 172.17.28.19 192.168.70.71 15:11:01 pfe D ge-0/0/0.0 TCP 172.17.28.19 192.168.70.71 ...
意义
输出的每个记录都包含有关记录的数据包的信息。验证以下信息:
在 下
Time
,将显示过滤数据包的时间。Filter
输出始终pfe
为 。在 下
Action
,术语的配置操作与对数据包执行的操作匹配 —A
(接受)、D
(丢弃)、R
(拒绝)。在 下
Interface
,数据包到达的入站(入口)接口适用于过滤器。在 下
Protocol
,数据包 IP 报头中的协议适用于过滤器。在 下
Src Addr
,数据包 IP 报头中的源地址适用于过滤器。在 下
Dest Addr
,数据包 IP 报头中的目标地址适用于过滤器。