SSLVPN 配置.note

noteId: 9009D90C6E76486095F6F83859118E03 · 原始路径:/ALL/网络 - C模块/VPN 合集/SSL VPN(anyconnect)/SSLVPN 配置.note · 图片:15 · 附件待处理:0

 
 
注意:登陆到网页后,要退出时,需要先点击:logout 退出登陆,不能直接 关闭浏览器,否则会出现无法登陆的情况
若出现以上情况,重启设备,也就是想要被远程访问的那台设备即可
 
先在 CML2上进行配置,保障路由可达
 
需要在桥接的Windows 虚拟机中导入两个文件:
安装 Tftpd 文件传输工具
需要导入 70MB的那个文件
Win + R 粘贴 复制后的路径,将 anyconnect-win-4.8.01090-webdeploy-k9 文件 粘贴进去
为了方便输入,将 anyconnect-win-4.8.01090-webdeploy-k9 文件名改为了 sslvpn.pkg
或者直接点击 browse 更改路径为桌面
 
 
一、配置 SSLVPN:
 
 
copy tftp: flash:
    192.168.2.10    //输入 Windows上 Tftpd的源地址,也就是 Windows的地址
    sslvpn.pkg    //输入 要复制的文件名
    接下来会提示更改文件名,不更改,直接回车保持文件原名,等待复制完成
 
 
确保 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     //定义用户属性
 
注意:
1、只能使用 https://... 进行访问,http:// 无法访问
2、只能使用本地用户进行登陆(就算配置了仅radius用户,也只能使用本地用户进行登陆)
然后就可以在客户端上访问 ASAv防火墙的端口 IP:
输入账号登陆即可
然后下载 SSL VPN 客户端
输入 ASAv 防火墙接口 IP进行连接
 
连接成功后,就会分配一个地址:
并且有一套默认路由指向 ASA:
 
 
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
在客户端上验证:
 
 
 
show run webvpn    
show run group-policy
show run ip local pool
show run tunnel-group
 
 
拓扑图:
 
 
 
二、配置 二次认证:
效果:
需要输入两个用户来进行认证
 
一般都是和使用radius认证结合使用,例如:第一使用radius认证,第二使用本地用户进行认证
 
 
1、配置 radius 服务器:
# Linux:
apt install -y freeradius
 
vim /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
y
 
 
2、导出根CA证书给客户端信任:
crypto pki export CA pem terminal
# 导出保存在txt文件中,将后缀改为 .cer
 
3、配置 radius:
 
(1)radius服务器:
# HQ-SRV:
apt install -y freeradius
 
vim /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 1813
 
 
4、配置 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