今天刚刚被问到关于在公司内部为SSLVPN用户实施两因素身份验证(通过不支持/使用WebVPN的Cisco AnyConnect进行连接)。当前,我们使用LDAP进行身份验证。
我已经找到一家可以直接与anyConnect和移动客户端集成以提供基于令牌的两因素身份验证的公司,但是想知道在这种情况下实现两因素的更常见方法是什么?我想到的第一件事是Google Authenticator或RSA,但是很难找到与AnyConnect结合使用的这些类型的设置信息(实际上我什么都没找到。)
今天刚刚被问到关于在公司内部为SSLVPN用户实施两因素身份验证(通过不支持/使用WebVPN的Cisco AnyConnect进行连接)。当前,我们使用LDAP进行身份验证。
我已经找到一家可以直接与anyConnect和移动客户端集成以提供基于令牌的两因素身份验证的公司,但是想知道在这种情况下实现两因素的更常见方法是什么?我想到的第一件事是Google Authenticator或RSA,但是很难找到与AnyConnect结合使用的这些类型的设置信息(实际上我什么都没找到。)
Answers:
我能想到的两条路径如下:
您要使用内置的Cisco ASA辅助身份验证
您愿意使用Radius服务器。
#2的概念:
选择一个身份验证器。例如,Google,LDAP,AD等。
设置支持身份验证器的Radius服务器(FreeRADIUS,Windows NPM,Cisco ACS等)。
在Cisco ASA上配置身份验证以使用该Radius服务器(IP地址,端口,密钥等),然后完成操作。根据需要调整超时时间。
关于Google Authenticator:
您可以将FreeRadius设置为使用Google Authenticator,然后将Cisco ASA aaa服务器设置为使用FreeRadius服务器。完成:)
关于Duo Security:
我已经使用过Duo Security,它的效果很好。此配置链接显示了如何在不安装Duo Security应用程序的情况下设置2-Factor身份验证。但是,如果您安装该应用程序(充当RADIUS服务器),则安装会变得更加容易。下面是一个示例配置,应该会有所帮助。
此设置的注意事项:
增加超时时间!我对此有疑问。不要在现有的RADIUS服务器上安装Duo应用程序(侦听端口冲突)。
在服务器上安装应用程序后,您需要修改authproxy.cfg
文件以将Active Directory用作您的主要身份验证器authproxy.cfg
将客户端设置为ad_client
,服务器设置为radius_server_auto
[main]
client=ad_client
server=radius_server_auto
创建一个名为的部分ad_client
。
[ad_client]
host=10.x.x.11
host_2=10.x.x.12
service_account_username=ldap.duo
service_account_password=superSecretPassword
search_dn=DC=corp,DC=businessName,DC=com
安全组是可选的。该组允许用户进行身份验证。
security_group_dn=CN=Administrators,CN=Builtin,DC=example,DC=com
特定的DUO安全配置信息
[radius_server_auto]
ikey=xxxxxxxxxxxxx
skey=xxxxxxxxxxxxx
api_host=api-xxxxx.duosecurity.com
安全或保障是这里的选项。
Safe=allow auth
如果Duo无法到达。Secure=do not allow auth
如果Duo无法访问failmode = safe
您要命中的Cisco ASA的IP地址和密钥
radius_ip_1=10.x.x.1
radius_secret_1=superSecretPassword
安装了DuoSecurity App的Windows Server
net stop DuoAuthProxy
net start DuoAuthProxy
Cisco ASA 8.4配置
将新的aaa服务器添加到相应的VPN策略
aaa-server DUO protocol radius
!
aaa-server DUO (inside) host 10.x.x.101
accounting-port 1813
authentication-port 1812
key superSecretPassword
retry-interval 10
timeout 300
!
两因素身份验证的定义具有多种方法。这些是方法:
两要素身份验证没有来自两个不同来源的两个不同的登录帐户(如两组不同的用户名和密码),因为它们都是“您所知道的”。两个因素验证的一个示例是将智能卡插入笔记本电脑(您拥有),然后刷指纹扫描仪(您拥有)。
如果我了解您对LDAP的使用,似乎您有Microsoft服务器。为什么不在操作系统附带的最近的Microsoft Windows Server上启用Microsoft证书颁发机构服务,并启用用户证书注册?带有CA根证书的ASA可以验证称为XAUTH的帐户,然后对Windows,Linux和MacOS可以使用的用户证书进行身份验证。
正确,但是,只要您有一个安全的注册流程,手机就可以用作物理密钥卡。Duo还提供了应用程序推送或短信代码的UX灵活性。ASA上的内部CA也很棒,但是如果以HA对或多上下文方式运行,则不是一种选择。根据建议,使用MS / Dogtag CA或Duo。
IMO,通过如下配置vpn组,您可以获得最大的覆盖范围:
因素1-使用证书(CA内置MS / Dogtag / ASA)-可以使用ldap / AD用户生成证书。(最好在本地完成,在交付/安装证书时必须遵循OpSec最佳做法。)
因素2-具有令牌/ OTP密钥卡或移动设备安全注册的FreeRADIUS或Duo代理。
这样,如果以用户为目标,则攻击者必须获取a。)仅应存在于便携式计算机/端点密钥库中的证书副本b。)用户AD / radius用户名/密码c。)FOB(rsa / yubikey)或移动设备(DuoSec)
这也限制了设备丢失/被盗的责任。我相信二人组还提供了一种通过广告来管理用户的方法,这使得整个设置易于管理。您的设备必须允许超时/重试调整,以支持身份验证期间的带外用户交互。(将手机/口袋中的钥匙扣等解锁-允许至少30秒的半径超时)