示例:配置无状态防火墙过滤器以接受来自可信来源的流量
此示例说明如何创建无状态防火墙过滤器,以保护路由引擎免受来自不可信来源的流量的影响。
要求
配置无状态防火墙过滤器之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将创建一个名为 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— 对于未被ssh-term或bgp-term接受的所有数据包,创建防火墙过滤器日志和系统日志记录,然后丢弃所有数据包。
您可以使用命令insert在防火墙过滤器中移动术语。请参阅《Junos OS CLI 用户指南》中的 insert。
配置
过程
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层次结构级别的 [edit] CLI 中。
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
分步程序
下面的示例要求您在各个配置层级中进行导航。有关操作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用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 对不匹配的数据包执行了过滤操作。
-
使用来自匹配 IP 地址
192.168.122.0/24的主机的命令,ssh host-name以验证是否可以仅使用来自具有此地址前缀的主机的 SSH 登录设备。 -
使用此
show route summary命令验证设备上的路由表是否包含任何协议Direct为非 、Local、BGP或Static的条目。
示例输出
命令名称
% 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命令不显示除Direct、Local、BGP或Static以外的协议。
显示无状态防火墙过滤器日志
目的
验证是否正在记录数据包。如果在术语中添加了 log or 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 报头中的目的地址适用于过滤器。