组网需求
如图1所示,某企业在网络边界处部署了FW作为安全网关,连接内部网络与Internet。具体情况如下:
- 内部网络中已经部署了Agile Controller身份验证机制,Agile Controller服务器上存储了用户信息。
- 内部网络中的用户可以使用不同的接入方式(如通过有线或无线接入、通过Portal页面或支持802.1x认证的客户端接入)和不同的终端设备类型(如使用PC、手机等接入)接入认证。
本例中的Agile Controller简称Controller。
企业的网络管理员希望利用FW提供的用户管理与认证机制,将内部网络中的IP地址识别为不同接入方式和不同终端设备类型的用户,并通过配置安全策略,实现基于用户接入方式和终端设备类型的访问控制。具体需求如下:
- 内部网络中的用户访问业务时无需提前访问Agile Controller的Portal认证页面进行认证,直接访问HTTP业务即可重定向到Agile Controller的Portal认证页面。
- 内部网络中的用户使用Agile Controller帐号和密码认证通过后,无需再进行认证就可以访问网络资源。
- 仅允许有线连接下使用电脑通过Portal页面接入的内网用户访问外网。
配置思路
完成用户与认证相关配置:
- 在Agile Controller服务器上添加FW,并在FW上配置Agile Controller服务器,使FW能与Agile Controller服务器进行通信。
- 在FW上配置服务器导入策略,将Agile Controller服务器上的用户信息导入到FW。
- 配置用户访问HTTP业务时重定向认证页面的URL为Agile Controller的Portal认证页面地址。
- 配置认证策略,对用户访问Internet进行认证。
- 在FW上配置Agile Controller单点登录参数。
- 配置认证域中的新用户选项,新用户通过认证后作为临时用户上线到指定用户组中。
- 由于FW部署在用户和Agile Controller服务器之间,用户的认证报文经过FW。为实现单点登录功能,需要配置认证策略,对目的地址为Agile Controller服务器的报文不进行认证处理;同时配置安全策略,确保FW和Agile Controller服务器之间能正常通信。
- 配置安全策略,确保用户、Agile Controller服务器和FW之间通信正常。
完成基于接入方式和终端设备类型的管控的相关配置:
- 配置从Agile Controller服务器导入终端设备到FW。
- 配置安全策略,允许接入方式为“有线Portal”,终端类型属于终端设备组“pc”的内网用户访问外网。
数据规划
项目 | 数据 | 说明 |
---|---|---|
Agile Controller服务器 |
| 在FW上配置Agile Controller服务器,即FW与Agile Controller服务器通信时使用的一系列参数。 此处设置的参数必须与Agile Controller服务器的参数保持一致。 |
服务器导入策略 |
| 从Agile Controller服务器上将用户导入到FW中。 |
新用户所属组 | 新用户通过认证后作为临时用户上线到指定用户组default中。 | 通过Agile Controller认证的用户对于FW来说都是新用户。 |
Agile Controller认证页面Portal地址 | http://10.2.0.50:8080/portal | 该地址与Agile Controller服务器的配置必须保持一致。 |
Agile Controller单点登录 |
| 在FW上配置单点登录参数,接收Agile Controller服务器发送的用户登录/注销信息。 |
导入终端设备 |
| 只能导入通过Agile Controller单点登录的设备。 |
安全策略1 |
| 用于用户到Agile Controller服务器进行认证。 |
安全策略2 |
| 用于Agile Controller服务器与FW的交互。 |
安全策略3 |
| 用于Agile Controller服务器与FW的交互。 |
安全策略4 |
| 用于允许解析HTTP业务URL地址的DNS报文通过。 |
安全策略5 |
| 用于允许有线连接下使用电脑通过Portal页面接入的内网用户访问外网。 |
操作步骤
- 在FW上配置接口IP地址和安全区域,完成网络基本参数配置。
# 配置接口IP地址。 <FW> system-view [FW] interface GigabitEthernet 1/0/1 [FW-GigabitEthernet 1/0/1] ip address 1.1.1.1 24 [FW-GigabitEthernet 1/0/1] quit [FW] interface GigabitEthernet 1/0/2 [FW-GigabitEthernet 1/0/2] ip address 10.2.0.1 24 [FW-GigabitEthernet 1/0/2] quit [FW] interface GigabitEthernet 1/0/3 [FW-GigabitEthernet 1/0/3] ip address 10.3.0.1 24 [FW-GigabitEthernet 1/0/3] quit # 配置接口加入相应安全区域。 [FW] firewall zone trust [FW-zone-trust] add interface GigabitEthernet 1/0/3 [FW-zone-trust] quit [FW] firewall zone dmz [FW-zone-dmz] add interface GigabitEthernet 1/0/2 [FW-zone-dmz] quit [FW] firewall zone untrust [FW-zone-untrust] add interface GigabitEthernet 1/0/1 [FW-zone-untrust] quit
- 配置安全策略,确保用户、Agile Controller服务器和FW之间通信正常。
配置用户所在安全区域Trust到Agile Controller服务器所在安全区域DMZ的安全策略,用于用户到Agile Controller服务器进行认证。 [FW] security-policy [FW-policy-security] rule name policy_sec_tsm [FW-policy-security-rule-policy_sec_tsm] source-zone trust [FW-policy-security-rule-policy_sec_tsm] source-address 10.3.0.0 24 [FW-policy-security-rule-policy_sec_tsm] destination-zone dmz [FW-policy-security-rule-policy_sec_tsm] destination-address 10.2.0.50 32 [FW-policy-security-rule-policy_sec_tsm] action permit [FW-policy-security-rule-policy_sec_tsm] quit 如果认证页面URL是域名形式,并且DMZ安全区域存在用于解析认证页面域名的DNS服务器,则注意开放Trust到DMZ的DNS服务。 配置Agile Controller服务器所在安全区域DMZ到Local域的安全策略,用于Agile Controller服务器与FW的交互。 [FW-policy-security] rule name policy_sec_tsm_1 [FW-policy-security-rule-policy_sec_tsm_1] source-zone local [FW-policy-security-rule-policy_sec_tsm_1] destination-zone dmz [FW-policy-security-rule-policy_sec_tsm_1] action permit [FW-policy-security-rule-policy_sec_tsm_1] quit [FW-policy-security] rule name policy_sec_tsm_2 [FW-policy-security-rule-policy_sec_tsm_2] source-zone dmz [FW-policy-security-rule-policy_sec_tsm_2] destination-zone local [FW-policy-security-rule-policy_sec_tsm_2] action permit [FW-policy-security-rule-policy_sec_tsm_2] quit 配置用户所在安全区域Trust到Internet所在安全区域Untrust的安全策略,允许解析HTTP业务URL地址的DNS报文通过。 [FW-policy-security] rule name policy_sec_dns [FW-policy-security-rule-policy_sec_dns] source-zone trust [FW-policy-security-rule-policy_sec_dns] source-address 10.3.0.0 24 [FW-policy-security-rule-policy_sec_dns] destination-zone untrust [FW-policy-security-rule-policy_sec_dns] service dns [FW-policy-security-rule-policy_sec_dns] action permit [FW-policy-security-rule-policy_sec_dns] quit [FW-policy-security] quit 注意开放Trust到Untrust的DNS服务,允许解析HTTP业务域名的DNS报文通过。
- 在Agile Controller服务器上添加FW。
因Agile Controller会随版本更新,本举例中的Agile Controller配置仅供参考,实际配置请参见Agile Controller的配置手册。
选择“系统 > 服务器配置 > 上网行为管理设备配置”,单击“增加”,按如下参数配置。完成后单击“确定”。
当FW工作在双机热备场景下,需要在Agile Controller服务器上进行两次“上网行为管理设备配置”,此处的“IP地址”需要分别配置为与Agile Controller服务器连接的主备设备接口的实IP地址。
- 在FW上配置Agile Controller服务器。
此处设置的参数必须与Agile Controller服务器上的参数保持一致。一般情况下Agile Controller的服务器端口是8084。
[FW] tsm-server template auth_server_tsm [FW-tsm-auth_server_tsm] tsm-server ip-address 10.2.0.50 [FW-tsm-auth_server_tsm] tsm-server port 8084 [FW-tsm-auth_server_tsm] tsm-server encryption-mode aes128 shared-key Admin@123 [FW-tsm-auth_server_tsm] test tsm-server template auth_server_tsm [FW-tsm-auth_server_tsm] quit
- 在FW上配置服务器导入策略。
[FW] user-manage import-policy policy_import from tsm [FW-import-policy_import] server template auth_server_tsm [FW-import-policy_import] server basedn root [FW-import-policy_import] destination-group /default [FW-import-policy_import] import-type user [FW-import-policy_import] import-override enable [FW-import-policy_import] time-interval 120
- 执行导入策略将用户导入FW。
[FW] execute user-manage import-policy policy_import
- 配置Portal认证页面。
[FW] user-manage portal-template portal [FW-portal-template-portal] portal-url http://10.2.0.50:8080/portal Portal URL需要与Controller实际使用的认证页面保持一致。
- 配置用户访问Internet的认证策略认证动作为Portal认证,使用户访问HTTP业务的流量触发认证。配置用户访问Agile Controller服务器的认证策略动作为不认证,使用户认证报文能经过FW到达Agile Controller服务器。
[FW] auth-policy [FW-policy-auth] rule name auth_policy_tsm [FW-policy-auth-rule-auth_policy_tsm] source-zone trust [FW-policy-auth-rule-auth_policy_tsm] destination-zone dmz [FW-policy-auth-rule-auth_policy_tsm] source-address 10.3.0.0 24 [FW-policy-auth-rule-auth_policy_tsm] destination-address 10.2.0.50 32 [FW-policy-auth-rule-auth_policy_tsm] action none [FW-policy-auth-rule-auth_policy_tsm] quit [FW-policy-auth] rule name auth_policy_service [FW-policy-auth-rule-auth_policy_service] source-zone trust [FW-policy-auth-rule-auth_policy_service] destination-zone untrust [FW-policy-auth-rule-auth_policy_service] source-address 10.3.0.0 24 [FW-policy-auth-rule-auth_policy_service] action auth portal-template portal
- 在FW上配置单点登录参数。
[FW] user-manage single-sign-on tsm [FW-sso-tsm] enable
- 配置认证域中的新用户选项。
[FW] aaa [FW-aaa] domain default [FW-aaa-domain-default] service-type internetaccess [FW-aaa-domain-default] new-user add-temporary group /default [FW-aaa-domain-default] quit [FW-aaa] quit
- 在Agile Controller服务器上开启终端设备识别功能。
选择“资源 > 终端 > 参数配置”,在“终端设备识别”选中“启用”。
- 配置从Agile Controller服务器导入终端设备,以便在安全策略中引用。
[FW] update device-category tsm-server template auth_server_tsm import-overwrite
只能导入通过Agile Controller单点登录的设备。
- 配置安全策略,允许接入方式为“有线Portal”,终端类型属于终端设备组“pc”的内网用户访问外网。
[FW] security-policy [FW-policy-security] rule name policy_sec_user [FW-policy-security-rule-policy_sec_user] source-zone trust [FW-policy-security-rule-policy_sec_user] destination-zone untrust [FW-policy-security-rule-policy_sec_user] source-address 10.3.0.0 24 [FW-policy-security-rule-policy_sec_user] access-authentication wired-portal [FW-policy-security-rule-policy_sec_user] device-classification device-group pc [FW-policy-security-rule-policy_sec_user] action permit [FW-policy-security-rule-policy_sec_user] quit
结果验证
- 在FW上执行命令display user-manage user可以查看到用户信息。
- 在FW上执行命令display user-manage online-user可以查看到在线用户的信息。
- 内网用户有线连接下使用电脑通过浏览器访问外网,通过Portal页面认证成功后可以访问外网。其他条件下均无法访问外网,如下表所示。
表1 内网用户访问外网结果验证 设备
有线802.1x
无线802.1x
有线Portal
无线Portal
电脑
N
N
Y
N
其他终端设备类型
N
N
N
N
- “Y”代表可以访问外网,“N”代表不能访问外网。
- 有线802.1x代表有线连接下通过支持802.1x认证的客户端接入;无线802.1x代表无线连接下通过支持802.1x认证的客户端接入;有线Portal代表有线连接下通过Portal页面接入;无线Portal代表无线连接下通过Portal页面接入。
配置脚本
#
sysname FW
#
user-manage single-sign-on tsm
enable
user-manage portal-template portal 0
portal-url http://10.2.0.50:8080/portal
#
tsm-server template auth_server_tsm
tsm-server encryption-mode aes128 shared-key %$%$|5<h@/062'gA|%:9CO.2/JA8%$%$
tsm-server ip-address 10.2.0.50
#
interface GigabitEthernet1/0/1
ip address 1.1.1.1 255.255.255.0
#
interface GigabitEthernet1/0/2
ip address 10.2.0.1 255.255.255.0
#
interface GigabitEthernet1/0/3
ip address 10.3.0.1 255.255.255.0
#
firewall zone trust
add interface GigabitEthernet1/0/3
#
firewall zone untrust
add interface GigabitEthernet1/0/1
#
firewall zone dmz
add interface GigabitEthernet1/0/2
#
security-policy
rule name policy_sec_tsm
source-zone trust
destination-zone dmz
source-address 10.3.0.0 24
destination-address 10.2.0.50 32
action permit
rule name policy_sec_dns
source-zone trust
destination-zone untrust
source-address 10.3.0.0 24
service dns
action permit
rule name policy_sec_tsm_1
source-zone local
destination-zone dmz
action permit
rule name policy_sec_tsm_2
source-zone dmz
destination-zone local
action permit
rule name policy_sec_user
source-zone trust
destination-zone untrust
source-address 10.3.0.0 24
access-authentication wired-portal
device-classification device-group pc
action permit
#
auth-policy
rule name auth_policy_tsm
source-zone trust
destination-zone dmz
source-address 10.3.0.0 24
destination-address 10.2.0.50 32
action none
rule name auth_policy_service
source-zone trust
destination-zone untrust
source-address 10.3.0.0 24
action auth portal-template portal
#
user-manage import-policy policy_import from tsm
server template auth_server_tsm
server basedn root
destination-group /default
import-type user
import-override enable
time-interval 120
#
aaa
domain default
service-type internetaccess
new-user add-temporary group /default
# 以下配置为一次性操作,不保存在配置文件中
execute user-manage import-policy policy_import
update device-category tsm-server template auth_server_tsm import-overwrite
test tsm-server template auth_server_tsm