如何在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

posted @ 2020-04-10 19:37  河马是个程序员  阅读(8723)  评论(0编辑  收藏  举报