本文是博主按使用,参考其他文章修改而来。
参考Stille ( https://www.ioiox.com/archives/89.html )
凯の秘密基地 ( https://wwww.lvmoo.com/1097.love )
前言
由于博主有需求连接家中NAS等设备,之前使用端口转发,需要开放太多端口,端口太多不好记而且也不安全。使用VPN会更简单,并且安全。之前在思科路由器上使用过 AnyConnect VPN
,对它印象极佳,同时支持用户密码和证书登陆等。
Cisco AnyConnect 介绍
OpenConnect VPN 通过实现 Cisco 的 AnyConnect 协议,用 DTLS 作为主要的加密传输协议。AnyConnect 的 VPN 协议默认使用 UDP DTLS 作为数据传输,如果因网络问题导致 UDP传输出现问题,它会利用最初建立的 TCP TLS 通道作为备份通道,降低 VPN 断开的概率。使用了 TLS over UDP 技术,少了 TCP握手和稳定的要求,这也是使用体验大幅提升的原因。
下面为博主的网络情况
- 爱快主路由、OpenWRT 旁路由器
- 拥有
公网 IP
并在爱快端配置端口映射 - 爱快分配IP为
192.168.2.253
,OpenWRT分配IP为192.168.2.252
OP服务端
各项设置
基本配置
登录 OpenWRT
路由器,打开 服务
- OpenConnect VPN
.
默认端口为 4443
,默认 VPN 网段为 192.168.100.0
,根据情况自行更改。
比如我这里演示是修改为 8777
端口,IP网段我设置的是 192.168.2.3
DNS servers
这里的DNS设置为内网网络中的DNS服务器,比如我设置的是我主路由爱快的IP地址 192.168.2.253
Routing table
路由表根据需求有两种设置方法 ,一.全局代理
,二.内网代理
全局代理
- 当客户端连接 VPN 后,客户端所有 内外网
访问都将通过 VPN
所在的局域网代理.(设置方法为清空 Routing table
,保持为空)
内网代理
- 当客户端连接 VPN 后,客户端所有 内网
访问通过 VPN
所在的局域网代理,而 外网
访问则保持使用客户端当前网络.(设置方法为分别添加 内网
和 VPN
两个网段)
推荐使用全局代理,目前我使用的也是全局代理。
以上就完成基本配置了,到这里勾选 Enable server
并点击 保存并应用
。
创建账户
在用户设置中创建用于 VPN 连接的账号和密码。
名称为登陆账户名,密码为账户登陆密码,输入完成后点击 保存并应用
使创建生效
Active users
会显示当前连接的用户状态。
防火墙设置
在OpenWRT路由中,网络 - 防火墙 -自定义规则中添加以下规则,其中192.168.2.0/24为网络ip网段,按需修改。
iptables -I FORWARD -i vpns+ -s 192.168.2.0/24 -j ACCEPT
以上步骤操作完成后并在主路由爱快端添加OpenWRT的端口映射,如下图
安装下方提供的客户端,打开输入DDNS地址+端口,加上账户名和密码,即可正常连接。
高级设置
1.服务器或证书不信任问题
在通过 DDNS域名
连接 VPN时如下图会提示 服务器或证书不受信任
,可以点击 Connect Anyway
或者 更改设置中取消勾选阻止不信任服务器
继续登录.
为彻底解决此问题,首先需要申请域名证书,这个可以在 阿里云
之类申请,有提供免费申请。
上传至OpenWRT路由中,并在OpenConnect VPN 编辑模版中修改配置信息
模版中查找以下字段:
server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem
例如将 DDNS域名证书
文件命名是DDNS,并上传到/etc/ocserv,那修改路径如下:
server-cert = /etc/ocserv/DDNS.pem
server-key = /etc/ocserv/DDNS.key
点击 保存并应用
使创建生效,即无提示不信任问题。
2.证书登陆
使用账户密码登陆麻烦并且不能保存密码,略显麻烦。这时就推荐使用证书登陆。
我下面就在OpenWRT系统内演示创建自签证书并启用证书登陆和账号密码登陆并存。下方命令中的所有 VAY1314 和 VAY 可替换自己为 自己的ID 和 自己的组织 ,生成属于自己的证书。
创建证书目录,创建ssl目录,以存放ca 根证书相关文件。
mkdir -p /etc/ocserv/ssl
创建user目录,以存放用户证书相关文件。
mkdir -p /etc/ocserv/ssl/user
自签 CA 根证书,创建CA 根证书模版。
cat >/etc/ocserv/ssl/ca.tmp<<EOF
cn = "VAY CA"
organization = "VAY"
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
EOF
生成CA 根证书私钥
openssl genrsa -out /etc/ocserv/ssl/ca.key.pem 2048
根据CA 根证书私钥和CA 根证书模版生成CA 根证书。
certtool --generate-self-signed --hash SHA256 --load-privkey /etc/ocserv/ssl/ca.key.pem --template /etc/ocserv/ssl/ca.tmp --outfile /etc/ocserv/ssl/ca.cert.pem
生成 Diffie-Hellman 密钥
certtool --generate-dh-params --outfile /etc/ocserv/ssl/dh.pem
自签用户证书
创建用户证书模版
cat >/etc/ocserv/ssl/user/VAY1314.tmp<<EOF
cn = "VAY1314"
unit = "VAY"
expiration_days = 3650
signing_key
tls_www_client
EOF
生成用户证书私钥
openssl genrsa -out /etc/ocserv/ssl/user/VAY1314.key.pem 2048
根据用户证书私钥,CA 根证书,CA 根证书私钥,用户证书模版生成用户证书。
certtool --generate-certificate --hash SHA256 --load-privkey /etc/ocserv/ssl/user/VAY1314.key.pem --load-ca-certificate /etc/ocserv/ssl/ca.cert.pem --load-ca-privkey /etc/ocserv/ssl/ca.key.pem --template /etc/ocserv/ssl/user/VAY1314.tmp --outfile /etc/ocserv/ssl/user/VAY1314.cert.pem
证书链补全
cat /etc/ocserv/ssl/ca.cert.pem >>/etc/ocserv/ssl/user/VAY1314.cert.pem
生成.p12证书文件
务必替换末尾 pass: 后的自定义密码为自行设置的密码
openssl pkcs12 -export -inkey /etc/ocserv/ssl/user/VAY1314.key.pem -in /etc/ocserv/ssl/user/VAY1314.cert.pem -name "VAY1314" -certfile /etc/ocserv/ssl/ca.cert.pem -caname "VAY CA" -out /etc/ocserv/ssl/user/VAY1314.AnyConnect.p12 -passout pass:自定义密码
上步命令输入完毕后,证书就生成完毕。CA 根证书
所在路径为: /etc/ocserv/ssl/ca.cert.pem.p12 用户证书
所在路径为: /etc/ocserv/ssl/user/VAY1314.AnyConnect.p12
在OpenConnect VPN编辑模版 中修改配置信息,找到如下四行
#auth = "certificate"
auth = "|AUTH|"
#ca-cert = /etc/ocserv/ca.pem
#crl = /etc/ocserv/crl.pem
#cert-user-oid = 0.9.2342.19200300.100.1.1
修改为如下(各个参数的功能见注释)
auth = "certificate" #启用证书登录
enable-auth = "|AUTH|" #证书及账号密码登录并存
ca-cert = /etc/ocserv/ssl/ca.cert.pem #根证书所在位置
cert-user-oid = 2.5.4.3 #证书用户登录信息
编辑完成后点击 保存并应用
使创建生效,然后在客户端导入 .p12 用户证书
,就可使用证书登陆VPN。
客户端
测试最新版客户端不能使用自签证书登陆,因此提供旧版本客户端下载。
下载地址
Windows 10 操作系统
AnyConnect Mobile 4.8.02045
Android 客户端
AnyConnect 4.8.03538
原创文章,作者:VAY冬冬,如若转载,请注明出处:https://blog.vay1314.top/archives/194
ipv6 的怎么配置