Juniper SRX 防火墙用户认证配置:区域、策略与验证 - 夜莺博客

Juniper SRX 防火墙用户认证配置:区域、策略与验证

Juniper SRX 的防火墙用户认证(Firewall User Authentication)解决一个很具体的问题:在放行流量之前,先让用户通过 Web 门户或 Telnet 认证,认证成功后再动态放行该用户的会话。它由三部分构成:认证方式(本地或外部服务器)、被认证流量所匹配的安全策略、以及通过认证后执行的附加动作。本文用中文把配置顺序和验证方法讲清楚。

需要先建立一个概念:SRX 的用户认证是挂在策略上的一个动作,而不是一个独立功能。也就是说,没有匹配到策略的流量永远不会触发认证页面;反过来,认证通过只代表"这个源可以放行到这条策略允许的目的",它不会绕过策略本身。理解这一点,后面所有排错都会顺很多。

第一步:接口与地址

set interfaces ge-0/0/0 unit 0 family inet address 203.0.113.2/24
set interfaces ge-0/0/1 unit 0 family inet address 192.168.10.1/24
set routing-options static route 0.0.0.0/0 next-hop 203.0.113.1

一个口朝外(untrust),一个口朝内(trust)。如果 SRX 还要给终端分配地址,需要额外配置 DHCP 或在区域里指定系统服务。初始配置的完整流程可参考SRX300 初始配置教程。

第二步:安全区域

set security zones security-zone trust interfaces ge-0/0/1.0
set security zones security-zone untrust interfaces ge-0/0/0.0
set security zones security-zone trust host-inbound-traffic system-services dhcp
set security zones security-zone trust host-inbound-traffic system-services ping

区域是策略的基础:没有把接口挂到区域上,任何策略都不会匹配。host-inbound-traffic 控制的是"到设备本身"的流量(管理、DHCP、ping),和穿越流量是两回事。

第三步:认证方式(本地用户或外部服务器)

set access profile FWAUTH client USER1 firewall-user password "Str0ngPass!"
set access profile FWAUTH session-options client-idle-timeout 10
set access profile FWAUTH session-options client-session-timeout 60

生产环境通常对接 RADIUS 或 LDAP:

set access radius-server 192.168.10.50 secret "RadiusKey"
set access profile FWAUTH authentication-order radius
set access profile FWAUTH radius-server 192.168.10.50

本地用户适合应急和管理员账号,外部服务器适合员工认证——两者可以同时配置,用 authentication-order 控制优先级。如果只写了本地用户却把认证顺序设成 radius,本地账号将不会生效,这是很常见的配置顺序错误。RADIUS 与 TACACS+ 在授权粒度、审计和计费上的差异,可参考RADIUS vs TACACS+ 对比与 AAA 配置。

第四步:写放行策略并挂上认证

set security policies from-zone trust to-zone untrust policy AUTH-WEB match source-address any
set security policies from-zone trust to-zone untrust policy AUTH-WEB match destination-address any
set security policies from-zone trust to-zone untrust policy AUTH-WEB match application junos-http
set security policies from-zone trust to-zone untrust policy AUTH-WEB then permit
set security policies from-zone trust to-zone untrust policy AUTH-WEB then firewall-authentication pass-through web
set security policies from-zone trust to-zone untrust policy AUTH-WEB then firewall-authentication web redirect

关键点是 then firewall-authentication:pass-through 表示认证通过后放行该用户流量,web redirect 表示把未认证的 HTTP 请求重定向到认证页面,也可以用 telnet 方式做 pass-through 认证。

认证流程到底怎么走的

把时序理清,排错时就知道该看哪一步:

  1. 终端发起一个到 untrust 的 HTTP 请求,报文先匹配安全策略;
  2. 策略命中且动作为 firewall-authentication ... web,SRX 判断源 IP 是否已在认证用户表中;
  3. 未认证时,SRX 把 HTTP 请求重定向到自身的认证页面(返回 302,Location 指向 SRX 的接口地址);
  4. 用户在页面输入用户名口令,SRX 按 access profile 的 authentication-order 依次查询本地用户、RADIUS 或 LDAP;
  5. 认证成功后,SRX 把该源 IP 加入"已认证用户表",并按 session-timeout / idle-timeout 计时;
  6. 后续该源命中的放行策略被允通,直到会话超时或执行 clear security firewall-authentication users 清除。

注意第 3 步:浏览器要能访问到 SRX 的认证页面,需要 SRX 接口本身允许 HTTP/HTTPS 的 host-inbound-traffic(或由 web redirect 隐式处理),并且终端到 SRX 接口地址的三层可达。

web、telnet 与 HTTPS 的差异

  • pass-through web:未认证流量先被暂缓,页面弹出认证;输入正确后原会话放行。适合首次接入的用户。
  • web redirect:把 HTTP 直接重定向到认证页,用户认证后访问原目标地址。体验更平滑,但依赖浏览器跟随重定向。
  • pass-through telnet:适合不跑浏览器、只跑 Telnet 或自定义 TCP 客户端的场景(如老式终端、POS 机)。用户先 Telnet 到 SRX 完成认证,再由策略放行。
  • HTTPS:认证页面本身可以走 HTTPS,但终端访问的目标站点若是 HTTPS,SRX 无法在不解密的前提下改写,因此重定向只对明文 HTTP 生效;HTTPS 目标站点通常表现为超时或连接被重置,需要用 telnet 方式或引导用户先访问任意 HTTP 站点。证书不被信任时浏览器还会弹安全警告。

认证与 NAT、会话的关系

认证用户在表里是按源 IP 记录的,因此它天然与源 NAT 协同:SRX 先做策略与认证匹配,再对允许的会话做源地址转换,穿越流量做 NAT 的方式与站点到站点 VPN 场景一致,可对照SRX 基于路由的 IPsec VPN 配置里的 NAT 处理顺序。

需要警惕两点:一是多用户共用同一个 NAT 出口地址时,认证表按源 IP 记录会把同网段的多台终端视为不同用户,各自需要认证(这是期望行为);二是如果中间还有 NAT 设备隐藏了真实源 IP,认证表记录的将是 NAT 后的地址,导致"一个用户认证、整段放行"。

高可用与稳定性设计

  • 冗余认证服务器:配置两个 radius-server,主服务器不可达时自动尝试备用。
  • 本地兜底账号:在 access profile 中始终保留一个本地用户,外部服务器故障时管理员仍可登录处理。
  • 合理设置超时:client-idle-timeout 与 client-session-timeout 直接决定用户体验与安全窗口,办公场景常用 10/60(分钟),访客场景应更短。
  • 时间同步:认证报文带时间戳,SRX 与 RADIUS/LDAP 的时间偏差过大会导致认证失败,务必配置 NTP。

第五步:验证顺序

show security zones
show security policies from-zone trust to-zone untrust
show security flow session
show security firewall-authentication users
show security firewall-authentication history
clear security firewall-authentication users
  • 策略计数为 0:说明流量根本没匹配到策略,先查区域绑定和路由,参考SRX 防火墙配置完整指南。
  • 出现认证页面但登录失败:查 access profile 是否绑定到策略、认证服务器是否可达、时间是否同步。
  • 认证成功但访问不通:检查认证后的会话是否命中更高优先级的拒绝策略,以及是否已配置源 NAT。
  • 完全看不到认证页面:确认访问的是明文 HTTP、源地址确实命中该策略、以及 SRX 接口地址从终端可达。抓包确认重定向是否真的发出,方法见Junos monitor traffic 抓包示例。

何时该用用户认证,何时该换方案

用户认证适合"以人为单位临时放行"的场景:访客上网、临时运维接入、按人计时的流量控制。如果你的目标其实是"哪台设备能接哪根线"或"哪台终端能进哪个 VLAN",那么端口级准入更合适——802.1X 与 MAB 配置里的思路可以对照:认证发生在交换机端口,而不是防火墙策略。反过来,如果只是要审计谁在什么时候登录了设备本身,那属于管理面账号管理,见Junos 用户账号与登录类配置。

原文链接:https://www.juniper.net/documentation/cn/zh/software/junos/identity-aware-firewall/topics/topic-map/config-examples-srx-firewall-users.html