SSLVPN 配置.note
注意:登陆到网页后,要退出时,需要先点击:logout 退出登陆,不能直接 关闭浏览器,否则会出现无法登陆的情况
若出现以上情况,重启设备,也就是想要被远程访问的那台设备即可
先在 CML2上进行配置,保障路由可达
需要在桥接的Windows 虚拟机中导入两个文件:

安装 Tftpd 文件传输工具
需要导入 70MB的那个文件
- 打开tftp工具,复制其路径:
1.

Win + R 粘贴 复制后的路径,将 anyconnect-win-4.8.01090-webdeploy-k9 文件 粘贴进去
为了方便输入,将 anyconnect-win-4.8.01090-webdeploy-k9 文件名改为了 sslvpn.pkg
或者直接点击 browse 更改路径为桌面
一、配置 SSLVPN:
- 然后在 ASAv 防火墙上将远程服务器上的文件拷贝到本地:
1.
copy tftp: flash:
192.168.2.10 //输入 Windows上 Tftpd的源地址,也就是 Windows的地址
sslvpn.pkg //输入 要复制的文件名
接下来会提示更改文件名,不更改,直接回车保持文件原名,等待复制完成
- 接下来进行 SSL VPN配置:
1.
确保 NAT正确配置,基础连通性正常
webvpn //启用 webvpn
enable outside //将SSL VPN应用到outside接口
anyconnect image flash:/sslvpn.pkg //加载上传的客户端配置文件
anyconnect enable //启用 客户端配置文件
tunnel-group-list enable //启用 组策略编辑(这条必须要敲)
exit
username cisco password Skills39 //创建一个用户,用户 SSL VPN进行远程登陆
ip local pool SSL_pool 192.168.3.2-192.168.3.3 mask 255.255.255.0 //定义一个 地址池
group-policy SSL_VPN internal //创建一个组策略
group-policy SSL_VPN attributes //设置组的属性
vpn-tunnel-protocol ssl-client //定义 VPN隧道 使用的协议(本次实验使用 ssl-client)
#也可以同时定义两个:vpn-tunnel-protocol ssl-client ssl-clientless
address-pools value SSL_pool //关联 使用前面的配置的地址池进行地址划分
exit
tunnel-group SSL_Login type remote-access //设置一个登陆组,类型为 远程拨号
tunnel-group SSL_Login general-attributes //设置常规属性
default-group-policy SSL_VPN //关联默认组策略(就是前面 第8行 定义的组策略)
exit
tunnel-group SSL_Login webvpn-attributes //进入 webvpn的属性(cml新版本2.7.1必须写,否则会报错)
group-alias WEBVPN enable //定义一个别名(用户登陆时所能够看到的组名字)
exit
以上配置完成
# # #username cisco attributes //定义用户属性然后就可以在客户端上访问 ASAv防火墙的端口 IP:
输入账号登陆即可
然后下载 SSL VPN 客户端
输入 ASAv 防火墙接口 IP进行连接

连接成功后,就会分配一个地址:

并且有一套默认路由指向 ASA:

- 实现隧道分离:
1.
access-list permit_ACL extended permit ip 192.168.2.0 255.255.255.0 any //设置ACL允许 实现隧道分离
split-tunnel-policy tunnelspecified //设置为只进行隧道 network-list(ACL) 所指定的网络
split-tunnel-network-list value permit_ACL //设置启用分割隧道的 ACL在客户端上验证:

- 查看操作:
1.
show run webvpn
show run group-policy
show run ip local pool
show run tunnel-group拓扑图:

二、配置 二次认证:
效果:
需要输入两个用户来进行认证

一般都是和使用radius认证结合使用,例如:第一使用radius认证,第二使用本地用户进行认证
1、配置 radius 服务器:
# Linux:
apt install -y freeradiusvim /etc/freeradius/3.0/clients.conf
# 在末尾添加:
vim /etc/freeradius/3.0/users
# 在末尾添加:
2、配置 SSLVPN:
# 只需要在上面的基础上添加以下配置:
## 连接radius服务器:
aaa-server radius protocol radius
aaa-server radius (inside) host 172.30.33.1
key Pa$$worD
authentication-port 1812
accounting-port 1813
## 配置SSLVPN使用二次认证:
username admin password Pa$$worD privilege 15 //创建一个本地用户用于认证
tunnel-group SSLVPN general-attributes
authentication-server-group radius
secondary-authentication-server-group LOCAL·测试连接:

三、使用证书,让SSLVPN无证书警告:
1、申请证书:
证书subjnet-name 字段需要写域名
注意:证书这里必须要有 ip-address 字段才会信任
crypto ca trustpoint CA
enrollment protocol scep url http://8.8.8.8
fqdn none
subject-name cn=vpn.wsc2024.fr
ip-address 193.215.24.1
keypair CA //不关联私钥无法申请证书
crypto ca authentication ca
crypto ca enroll ca
n
y2、导出根CA证书给客户端信任:
crypto pki export CA pem terminal
# 导出保存在txt文件中,将后缀改为 .cer3、配置 radius:
(1)radius服务器:
# HQ-SRV:
apt install -y freeradiusvim /etc/freeradius/3.0/clients.conf
vim /etc/freeradius/3.0/users
systemctl restart freeradius(2)ASA 连接:
route inside 172.30.33.0 255.255.255.252 10.0.0.1
aaa-server radius protocol radius
aaa-server radius (inside) host 172.30.33.1
key Pa$$worD
authentication-port 1812
accounting-port 18134、配置 SSLVPN:
·(注意)需要关联ssl否则证书会报错不信任
webvpn
enable outside
anyconnect image disk0:/sslvpn.pkg 1
anyconnect enable
tunnel-group-list enable
exit
ip local pool SSLVPN 10.0.0.1-10.0.0.10 mask 255.255.255.248
group-policy SSLVPN internal
group-policy SSLVPN attributes
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
split-tunnel-network-list value SSLVPN
address-pools value SSLVPN
exit
tunnel-group SSLVPN type remote-access
tunnel-group SSLVPN general-attributes
default-group-policy SSLVP
authentication-server-group radius //调用radius
tunnel-group SSLVPN webvpn-attributes
group-alias anyconnect enable
## 如果不加 group-alias 会报错连接不上
ssl trustpoint CA //信任CA,否则证书会报错四、解决 SSLVPN + SNAT导致 SSLVPN客户端ping不通内网客户端的问题(二次NAT):
# 问题原因:
因为配置了snat,导致sslvpn客户端ping内网客户端时,内网客户端的回复包(因为源地址被snat匹配上)被进行了snat转换转换为了公网IP地址,因此当sslvpn接受到这个数据包时会无法识别直接丢弃,因为该数据包的源地址并不是内网客户端的地址,而是ASA DNAT后的公网地址# 解决方法:
object network INSIDE //匹配内网ip 或网段
host 192.168.1.1
或:
subnet 192.168.1.0 255.255.255.0
object network SSLVPN //匹配SSLVPN地址池网段
subnet 123.1.1.0 255.255.255.240
# 配置二次nat,匹配源地址为内网ip、目标地址为SSLVPN网段的数据包,将其进行snat(将源地址转换为源地址,等于不变)和dnat(将目标地址转换为目标地址,也等于没变),此时已经经过一次nat转换后,它就不会再经过snat进行转换了:
nat (Inside,Outside) source static INSIDE INSIDE destination static SSLVPN SSLVPN五、配置连接vpn后使用内网dns:
# 在组策略中配置一条即可:
group-policy SSLVPN attributes
dns-server value 192.168.100.1注意不是 dns server
