如何在openwrt路由器上安装使用openconnect客户端?

如何在openwrt路由器上安装使用openconnect客户端?

系统环境:OpenWrt 19.07.1

硬件:极路由1S

一、路由器刷机

在OpenWrt官方网站选择适合自己路由器的固件,然后刷机。

我用的极路由1s的芯片是MT7620,型号为HC5661,所以选择如下固件:

http://downloads.openwrt.org/releases/19.07.2/targets/ramips/mt7620/openwrt-19.07.2-ramips-mt7620-hc5661-squashfs-sysupgrade.bin

二、安装openconnect

putty连接路由器,输入以下命令:

opkg update

opkg install luci-proto-openconnect openconnect

三、openconnect设置

1、OpenWrt 官方的设置说明:
openconnect2.PNG
2、在interface中建立一个新接口,根据官方说明,最好命名为ocvpn,协议选择OpenConnect(CISCO AnyConnect)。
openconnect3.PNG
3、OpenWrt 图形界面设置如下:
openconnect1.PNG

注:如果你填写的是用户名和密码,则不需要填写用户证书和用户密钥。

四、附加说明:

1、VPN server sha1 的获取:

在linux终端中输入以下命令(用你自己的vpn server地址和端口取代vpn.example.com:443):

openssl s_client -connect vpn.example.com:443 -showcerts 2>/dev/null </dev/null | awk '/-----BEGIN/,/-----END/ { print $0 }' | openssl x509 -noout -fingerprint -sha1 | sed 's/Fingerprint=//' | sed 's/://g'
2、你可能需要用到证书分离:

p12(或者pfx)文件里一般存放有CA的根证书,用户证书和用户的私钥

假设我们有一个test.p12文件,在安装了openssl的linux终端上执行以下命令:

提取用户证书:

openssl pkcs12 -in test.p12 -clcerts -nokeys -out cert.pem

提取私钥:

openssl pkcs12 -in test.p12 -nocerts -out key.pem

根据OpenWrt的要求,必须清除秘钥中的密码

openssl rsa -in key.pem -out newkey.pem
3、将pem文件用SCP程序上传到路由器的/etc/openconnect目录下,官方要求pem文件要命名为:user-cert-vpn-ocvpn.pem和user-key-vpn-ocvpn.pem。

或者直接将其base64编码(用记事本打开pem文件即可获取)粘贴到图片所示的输入框中。

参考文章:

Openconnect client for openwrt

OpenWrt Openconnect client setup #280

OpenWrt Project: OpenConnect Client

AnyConnect Server(Ocserv) & Client(Openwrt, Linux, Windows & Mac) Configuares

推荐阅读更多精彩内容