05-Web认证配置
本章节下载: 05-Web认证配置 (339.55 KB)
Web认证是一种在二层以太网接口上通过网页方式对用户身份合法性进行认证的认证方法。在接入设备的二层以太网接口上开启Web认证功能后,未认证用户上网时,接入设备强制用户登录到特定站点,用户可免费访问其中的Web资源;当用户需要访问该特定站点之外的Web资源时,必须在接入设备上进行认证,认证通过后可访问特定站点之外的Web资源。
Web认证具体有如下优势:
· 无需安装客户端软件,直接使用Web页面认证,使用方便。
· 可为运营商提供方便的管理功能和业务拓展功能,例如运营商可以在认证页面上开展商业广告、社区服务、信息发布等个性化业务。
Web认证的典型组网方式如图1-1所示,它由四个基本要素组成:认证客户端、接入设备、本地Portal Web服务器、AAA服务器。
图1-1 Web认证系统组成示意图
为运行HTTP/HTTPS协议的浏览器,发起Web认证。
提供接入服务的设备,主要有三方面的作用:
· 在认证之前,将用户的所有不符合免认证规则的HTTP/HTTPS请求都重定向到认证页面。
· 在认证过程中,与AAA服务器交互,完成身份认证/授权/计费的功能。有关AAA的详细介绍请参见“安全配置指导”中的“AAA”。
· 在认证通过后,允许用户访问被授权的网络资源。
本地Portal Web服务器集成在接入设备中,负责向认证客户端提供认证页面及其免费Web资源,获取认证客户端的用户名、密码等认证信息。
与接入设备进行交互,完成对用户的认证、授权和计费。目前支持的AAA服务器包括RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器和LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器:
· RADIUS可支持对Web认证用户进行认证、授权和计费。
· LDAP服务器可支持对Web认证用户进行认证。
Web认证的具体认证过程如图1-2所示。
图1-2 Web认证流程图
(1) Web认证用户首次访问Web资源的HTTP/HTTPS请求报文经过开启了Web认证功能的二层以太网接口时,若此HTTP/HTTPS报文请求的内容为认证页面或设定的免费访问地址中的Web资源,则接入设备允许此HTTP/HTTPS报文通过;若请求的内容为其他Web资源,则接入设备将此HTTP/HTTPS报文重定向到认证页面,用户在认证页面上输入用户名和密码来进行认证。
(2) 接入设备与AAA服务器之间进行RADIUS协议报文的交互,对用户身份进行验证。
(3) 若RADIUS认证成功,则接入设备上向客户端发送登录成功页面,通知客户端认证成功。否则,接入设备上向客户端发送登录失败页面。
为了将受限的网络资源与未认证用户隔离,通常将受限的网络资源和未认证的用户划分到不同的VLAN。Web认证支持远程AAA服务器/接入设备下发授权不带Tag的VLAN。当用户通过Web认证后,远程AAA服务器/接入设备会将授权VLAN信息下发给接入设备上用户进行认证的端口,该端口被加入到授权VLAN后,用户便可以访问此VLAN中的网络资源。若该VLAN不存在,则接入设备首先创建VLAN,而后端口将允许该VLAN的用户报文以不携带tag的方式通过。
设备根据用户接入的端口链路类型,按如下情况将端口加入到下发的授权VLAN中:
· 若用户从Access类型的端口接入,则端口离开当前VLAN并加入第一个通过认证的用户的授权VLAN中。
· 若用户从Trunk类型的端口接入,则设备允许下发的授权VLAN通过该端口,并且修改该端口的缺省VLAN为第一个通过认证的用户的授权VLAN。
· 若用户从Hybrid类型的端口接入,则设备允许授权下发的授权VLAN以不携带Tag的方式通过该端口,并且修改该端口的缺省VLAN为第一个通过认证的用户的授权VLAN。需要注意的是,若该端口上使能了MAC VLAN功能,则设备将根据认证服务器/接入设备下发的授权VLAN动态地创建基于用户MAC地址的VLAN,而端口的缺省VLAN并不改变。
Web认证Auth-Fail VLAN功能允许用户在认证失败的情况下访问某一特定VLAN中的资源,比如病毒补丁服务器,存储客户端软件或杀毒软件的服务器,进行升级客户端或执行其他一些用户升级程序。这个VLAN称为Auth-Fail VLAN。
Web认证支持基于MAC地址的Auth-Fail VLAN,二层以太网接口上配置了Auth-Fail VLAN后,此接口将认证失败用户的MAC地址与Auth-Fail VLAN进行绑定生成相应的MAC VLAN表项,认证失败的用户将会被加入Auth-Fail VLAN中。加入Auth-Fail VLAN中的用户可以访问该VLAN中免认证IP的资源,但用户的所有访问非免认证IP的HTTP/HTTPS请求会被重定向到接入设备上的认证页面进行认证,若用户仍然没有通过认证,则将继续处于Auth-Fail VLAN内;若认证成功,则该端口会离开Auth-Fail VLAN,之后端口加入VLAN情况与认证服务器是否下发授权VLAN有关,具体如下:
· 若认证服务器下发了授权VLAN,则端口加入下发的授权VLAN中。
· 若认证服务器未下发授权VLAN,则端口回到缺省VLAN中。
ACL(Access Control List,访问控制列表)提供了控制用户访问网络资源和限制用户访问权限的功能。当用户上线时,如果远程AAA服务器上或接入设备的本地用户视图下配置了授权ACL,则设备会根据远程AAA服务器/接入设备下发的授权ACL对用户所在端口的数据流进行控制。由于远程AAA服务器/接入设备上指定的是授权ACL的编号,因此还需要在接入设备上创建该ACL并配置对应的ACL规则。管理员可以通过随时改变远程AAA服务器/接入设备上授权ACL的编号或修改接入设备上对应ACL的规则来灵活调整认证成功用户的访问权限。
Web认证可以成功授权的ACL类型为基本ACL(ACL编号为2000~2999)和高级ACL(ACL编号为3000~3999)。但当下发的ACL不存在、未配置ACL规则或ACL规则配置了counting、established、fragment或logging参数时,授权ACL不生效。有关ACL规则的具体介绍,请参见“ACL和QoS命令参考”中的“ACL”。
Web认证与802.1X认证或MAC地址认证同时配置时需要注意:
· Web认证与802.1X认证的Guest VLAN、Auth-Fail VLAN、Critical VLAN、Guest VSI、Auth-Fail VSI、Critical VSI不建议同时配置。
· Web认证与MAC地址认证的Guest VLAN、Critical VLAN、Guest VSI、Critical VSI不建议同时配置。
当Web认证用户未上线时,用户报文进入的VLAN或VSI里必须有三层接口(比如VLAN接口或VSI虚接口)存在,否则将导致HTTPS重定向失败。
当用户加入授权VLAN或Auth-Fail VLAN后,需要自动申请或者手动更新客户端IP地址,以保证可以与Auth-Fail VLAN中的资源互通。
通常情况下,建议用户通过与接入设备直连来进行Web认证。但在某些特殊环境下有如图1-3所示组网,其中Device B作为接入设备,在端口Port B上开启Web认证功能对Host A、Host B、Host C进行Web认证。此时,需要注意如下配置事项:
· 若通过服务器向用户下发授权VLAN,需保证Device A与Device B之间的链路类型为Trunk,且端口Port A1、Port B的PVID与服务器下发的授权VLAN ID相同。
· 若不通过服务器向用户下发授权VLAN,则仅需保证端口Port A1、Port B的PVID相同。
Web认证配置任务如下:
(1) 配置Web认证服务器
(2) 配置本地Portal服务
(3) 开启Web认证功能
(4) (可选)配置Web认证用户使用的认证域
(5) (可选)配置认证成功后页面跳转的时间间隔
(6) (可选)配置Web认证用户免认证的目的IP地址
(7) (可选)配置Web认证最大用户数
(8) (可选)开启Web认证用户在线探测功能
(9) (可选)配置Web认证的Auth-Fail VLAN
(10) (可选)配置Web认证支持Web代理
设备上的Web认证功能支持两种方式的AAA认证,在接入设备上进行本地AAA认证和通过AAA服务器进行远程AAA认证。
当选用RADIUS服务器认证方式进行Web认证时,配置Web认证之前,需要完成以下任务:
· RADIUS服务器安装并配置成功,如创建相应的用户名和密码。
· 用户、接入设备和RADIUS服务器之间路由可达。
· 在接入设备端进行RADIUS客户端的相关设置,保证接入设备和RADIUS服务器之间可进行AAA认证。
当选用本地认证方式进行Web认证时,需要先在设备上配置本地用户。
关于RADIUS客户端的以及本地用户的具体配置请参见“安全配置指导”中的“AAA”。
Web认证使用本地Portal Web服务为认证用户提供认证页面,因此需要将接入设备上一个与Web认证客户端路由可达的三层接口的IP地址指定为Web认证服务器的IP地址。建议使用设备上空闲的LoopBack接口的IP地址,使用LoopBack接口有如下优点:
· 状态稳定,可避免因为接口故障导致用户无法打开认证页面的问题。
· 由于发送到LoopBack接口的报文不会被转发到网络中,当请求上线的用户数目较大时,可减轻对系统性能的影响。
配置的Web认证服务器的端口号必须与本地Portal Web服务中配置的侦听端口号保持一致。
(1) 进入系统视图。
system-view
(2) 创建Web认证服务器,并进入Web认证服务器视图。
web-auth server server-name
(3) 配置Web认证服务器的IP地址和端口号。
ip ipv4-address port port-number
(4) 配置Web认证服务器的重定向URL。
url url-string
缺省情况下,Web认证服务器下不存在重定向URL。
URL中的IP地址和端口号必须与Web认证服务器中的IP地址和端口号保持一致。
(5) (可选)配置设备重定向给用户的URL中携带的参数信息。
url-parameter parameter-name { original-url | source-address | source-mac | value expression }
缺省情况下,未配置设备重定向给用户的URL中携带的参数信息。
有关本地Portal服务功能的详细配置请参见“安全配置指导”中的“Portal”。
为使Web认证功能正常运行,在接入设备的二层以太网接口上开启Web认证功能后,请不要再在此接口上开启端口安全功能和配置端口安全模式。关于端口安全的相关介绍,请参见“安全配置指导”中的“端口安全”。
设备对HTTPS报文进行重定向的内部侦听端口号缺省为6654。如果需要修改该端口号,具体配置请参见“三层技术-IP业务配置指导”中的“HTTP重定向”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启Web认证功能,并指定引用的Web认证服务器。
web-auth enable apply server server-name
缺省情况下,Web认证功能处于关闭状态。
通过在接入设备的二层以太网接口上配置Web认证用户使用的认证域,可使得所有从该接口接入的Web认证用户都被强制使用指定的认证域来进行认证、授权和计费。管理员可通过该配置对不同接口上的Web认证用户使用不同的认证域,从而增加了管理员部署Web认证接入策略的灵活性。
从指定二层以太网接口接入的Web认证用户将按照如下先后顺序选择认证域:接口上配置的Web认证用户使用的ISP域-->用户名中携带的ISP域-->系统缺省的ISP域-->设备上为未知域名的用户指定的ISP域。如果根据以上原则决定的认证域在设备上不存在,用户将无法认证。关于ISP域的相关介绍请参见“安全配置指导”中的“AAA”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置Web认证用户使用的认证域。
web-auth domain domain-name
缺省情况下,接口上未配置Web认证用户使用的认证域。
在某些应用环境中,例如,Web认证用户认证成功并加入授权VLAN后,若客户端需要更新IP地址,则需要保证认证页面跳转的时间间隔大于用户更新IP地址的时间,否则用户会因为IP地址还未完成更新而无法打开指定的跳转网站页面。在这种情况下,为了保证Web认证功能的正常运行,需要调整认证页面跳转的时间间隔。
(1) 进入系统视图。
system-view
(2) 创建Web认证服务器,并进入Web认证服务器视图。
web-auth server server-name
(3) 配置认证成功后页面跳转的时间间隔。
redirect-wait-time period
缺省情况下,Web认证用户认证成功后认证页面跳转的时间间隔为5秒。
通过配置免认证的目的IP地址,可以让用户无需通过Web认证即可访问该目的IP中的资源。
建议不要将Web认证用户免认证目的IP和802.1X的Free IP配置为相同的IP,否则当取消其中一项配置时,另一项配置也不再生效。
(1) 进入系统视图。
system-view
(2) 配置Web认证用户免认证的目的IP地址。
web-auth free-ip ip-address { mask-length | mask }
缺省情况下,不存在Web认证用户免认证目的IP地址。
若配置的Web认证最大用户数小于当前已经在线的Web认证用户数,则配置可以执行成功,且在线Web认证用户不受影响,但系统不允许新的Web认证用户接入。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置Web认证最大用户数。
web-auth max-user max-number
缺省情况下,Web认证最大用户数为1024。
开启端口的Web认证用户的在线检测功能后,若设备在一个下线检测定时器间隔之内,未收到此端口下某在线用户的报文,则将切断该用户的连接,同时通知RADIUS服务器停止对此用户进行计费。
配置用户在线检测时间间隔时,需要与MAC地址老化时间配成相同时间,否则会导致用户异常下线。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启Web认证用户在线探测功能。
web-auth offline-detect interval interval
缺省情况下,Web认证用户在线探测功能处于关闭状态。
· 开启Web认证的端口必须配置为Hybrid方式,并开启MAC VLAN功能,Auth-Fail VLAN功能才生效。
· Auth-Fail VLAN的网段需设为Web认证用户免认证的目的IP地址。
· 如果某个VLAN被指定为Super VLAN,则该VLAN不能被指定为某个接口的Auth-Fail VLAN;同样,如果某个VLAN被指定为某个接口的Auth-Fail VLAN,则该VLAN不能被指定为Super VLAN。
· 禁止删除已被配置为Web认证Auth-Fail VLAN的VLAN。若要删除该VLAN,需先通过undo web-auth auth-fail vlan命令取消Web认证的Auth-Fail VLAN配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置Web认证的Auth-Fail VLAN。
web-auth auth-fail vlan authfail-vlan-id
缺省情况下,不存在Web认证的Auth-Fail VLAN。
设备默认只允许未配置Web代理服务器的浏览器发起的HTTP请求才能触发Web认证。当用户上网使用的浏览器配置了Web代理服务器时,用户的HTTP请求报文将被丢弃,而不能触发Web认证。在这种情况下,网络管理员可以通过在设备上添加Web认证代理服务器的TCP端口号,来允许配置了Web代理服务器的浏览器发起的HTTP请求也可以触发Web认证。
如果用户浏览器采用WPAD(Web Proxy Auto-Discovery,Web代理服务器自动发现)方式自动配置Web代理,则需要进行以下操作:
· 由网络管理员在设备上添加Web代理服务器端口,并将WPAD主机的IP地址配置为Web认证用户免认证的目的IP地址。
· 由用户在浏览器上将接入设备上Web认证服务器的IP地址加入到Web代理服务器的例外情况中,使Web认证服务器的IP地址不使用Web代理服务器,避免Web认证用户发送给Web认证页面的HTTP报文被发送到Web代理服务器上,从而影响正常的Web认证。
(1) 进入系统视图。
system-view
(2) 配置允许触发Web认证的Web代理服务器端口。
web-auth proxy port port-number
多次配置本命令可以添加多个Web认证代理服务器的TCP端口号,其中任意一个端口号发起的HTTP请求均可触发Web认证。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Web认证功能的运行情况,通过查看显示信息验证配置的效果。
表1-1 Web认证显示和维护
操作 |
命令 |
显示接口上Web认证置信息 |
display web-auth [ interface interface-type interface-number ] |
显示所有Web认证用户免认证的目的IP地址 |
display web-auth free-ip |
显示所有Web认证服务器信息 |
display web-auth server [ server-name ] |
显示在线Web认证用户的信息 |
display web-auth user [ interface interface-type interface-number | slot slot-number ] |
用户主机与Device直接相连,在Device的接口Ten-GigabitEthernet1/0/1上对用户进行Web认证。具体要求如下:
· 使用本地认证方式进行认证和授权。
· Web认证服务器的监听IP地址为LoopBack 0接口IP地址,TCP端口号为80。设备使用HTTP协议传输认证数据。
图1-4 使用本地AAA认证方式进行Web认证组网图
(1) 配置各接口加入相应VLAN、对应VLAN接口的IP地址和接口类型(略)。
(2) 配置本地用户
# 添加网络接入类本地用户,用户名为localuser,密码为明文输入的localpass。
<Device>system-view
[Device] local-user localuser class network
[Device-luser-network-localuser] password simple localpass
# 配置本地用户localuser的服务类型为lan-access。
[Device-luser-network-localuser] service-type lan-access
[Device-luser-network-localuser] quit
(3) 配置ISP域
# 创建一个名称为local的ISP域,使用本地认证、授权和计费方法。
[Device] domain local
[Device-isp-local] authentication lan-access local
[Device-isp-local] authorization lan-access local
[Device-isp-local] accounting lan-access local
[Device-isp-local] quit
(4) 配置本地Portal Web服务
# 开启本地Portal Web 服务,并进入基于HTTP协议的本地Portal Web服务视图。
[Device] portal local-web-server http
# 配置本地Portal Web服务器提供的缺省认证页面文件为defaultfile.zip。(设备的存储介质的根目录下必须已存在该认证页面文件,否则功能不生效)
[Device-portal-local-websvr-http] default-logon-page defaultfile.zip
# 配置本地Portal Web服务的HTTP服务侦听的TCP端口号为80。
[Device–portal-local-websvr-http] tcp-port 80
[Device-portal-local-websvr-http] quit
(5) 配置Web认证
# 创建名称为user的Web认证服务器,并进入其视图。
[Device] web-auth server user
# 配置Web认证服务器的重定向URL为http://20.20.0.1:80/portal/。
[Device-web-auth-server-user] url http://20.20.0.1:80/portal/
# 配置Web认证服务器的IP地址为20.20.0.1,端口为80。
[Device-web-auth-server-user] ip 20.20.0.1 port 80
[Device-web-auth-server-user] quit
# 指定Web认证用户使用的认证域为local。
[Device] interface ten-gigabitethernet 1/0/1
[Device-Ten-GigabitEthernet1/0/1] web-auth domain local
# 开启Web认证,并指定引用的Web认证服务器为user。
[Device-Ten-GigabitEthernet1/0/1] web-auth enable apply server user
[Device-Ten-GigabitEthernet1/0/1] quit
以上配置完成且Web认证成功后,通过执行以下显示命令可查看在线Web认证用户的信息。
<Device> display web-auth user
Total online web-auth users: 1
User Name: localuser
MAC address: acf1-df6c-f9ad
Access interface: Ten-GigabitEthernet1/0/1
Initial VLAN: 100
Authorization VLAN: N/A
Authorization ACL ID: N/A
Authorization user profile: N/A
用户主机与接入设备Device直接相连,接入设备在接口Ten-GigabitEthernet1/0/1上对用户进行Web认证。具体要求如下:
· 使用远程RADIUS服务器进行认证、授权和计费。
· Web认证服务器的监听IP地址为LoopBack 0接口IP地址,TCP端口号为80。设备使用HTTP协议传输认证数据。
图1-5 使用RADIUS服务器远程AAA认证方式进行Web认证组网图
(1) 配置RADIUS服务器,添加用户账户,保证用户的认证/授权/计费功能正常运行(略)。
(2) 配置各接口加入相应VLAN、对应VLAN接口的IP地址和接口类型,保证各主机、服务器和设备之间路由可达(略)。
(3) 配置RADIUS方案
# 创建名称为rs1的RADIUS方案并进入该方案视图。
<Device> system-view
[Device] radius scheme rs1
# 配置RADIUS方案的主认证和主计费服务器及其通信密钥。
[Device-radius-rs1] primary authentication 192.168.0.112
[Device-radius-rs1] primary accounting 192.168.0.112
[Device-radius-rs1] key authentication simple radius
[Device-radius-rs1] key accounting simple radius
# 配置发送给RADIUS服务器的用户名不携带ISP域名。
[Device-radius-rs1] user-name-format without-domain
[Device-radius-rs1] quit
(4) 配置认证域
# 创建并进入名称为dm1的ISP域。
[Device] domain dm1
# 配置ISP域使用的RADIUS方案rs1。
[Device-isp-dm1] authentication lan-access radius-scheme rs1
[Device-isp-dm1] authorization lan-access radius-scheme rs1
[Device-isp-dm1] accounting lan-access radius-scheme rs1
[Device-isp-dm1] quit
(5) 配置本地Portal Web服务
# 开启本地Portal Web 服务,并进入基于HTTP协议的本地Portal Web服务视图。
[Device] portal local-web-server http
# 配置本地Portal Web服务提供的缺省认证页面文件为defaultfile.zip。(设备的存储介质的根目录下必须已存在该认证页面文件,否则功能不生效)
[Device-portal-local-websvr-http] default-logon-page defaultfile.zip
# 配置本地Portal Web服务的HTTP服务侦听的TCP端口号为80。
[Device–portal-local-websvr-http] tcp-port 80
[Device-portal-local-websvr-http] quit
(6) 配置Web认证
# 创建名称为user的Web认证服务器,并进入其视图。
[Device] web-auth server user
# 配置Web认证服务器的重定向URL为http://20.20.0.1:80/portal/。
[Device-web-auth-server-user] url http://20.20.0.1:80/portal/
# 配置Web认证服务器的IP地址为20.20.0.1,端口号为80。
[Device-web-auth-server-user] ip 20.20.0.1 port 80
[Device-web-auth-server-user] quit
# 指定Web认证用户使用的认证域为dm1。
[Device] interface ten-gigabitethernet 1/0/1
[Device-Ten-GigabitEthernet1/0/1] web-auth domain dm1
# 开启Web认证,并指定引用的Web认证服务器为user。
[Device-Ten-GigabitEthernet1/0/1] web-auth enable apply server user
[Device-Ten-GigabitEthernet1/0/1] quit
以上配置完成且Web认证成功后,通过执行以下显示命令可查看在线Web认证用户的信息。
<Device> display web-auth user
Total online web-auth users: 1
User Name: user1
MAC address: acf1-df6c-f9ad
Access interface: Ten-GigabitEthernet1/0/1
Initial VLAN: 100
Authorization VLAN: N/A
Authorization ACL ID: N/A
Authorization user profile: N/A
在接口下未配置ISP域且其他配置均正确的情况下,用户通过浏览器上线,上线失败。
缺省情况下,开启Web认证的接口上未配置Web认证用户使用的认证域时,设备使用系统缺省的system域,其缺省认证方式是本地(local)。所以本地认证失败原因可能有两个,一个是修改了系统缺省system域的认证方案,另一个是更改了系统缺省的ISP域。
使用display domain命令查看缺省域下是否配置了正确的本地认证方案。如果不正确,请重新配置。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!