安装stunnel
1 | $ sudo apt-get install stunnel4 |
stunnel客户端配置:
1 2 3 4 5 | # cat /etc/stunnel/stunnel.conf [openvpn] client = yes accept = 127.0.0.1:8082 connect = vpn.xxx.net:8081 |
client,表示是客户端,默认是服务端。
accept,用于接收要加密的连接,OpenVPN客户端连接到stunnel客户端,所以OpenVPN指定的服务器地址为该配置项的地址。
connect,表示stunnel服务端的地址和端口。
OpenVPN客户端配置
1 2 3 4 5 6 | root@herbert-pc:/etc# cat /etc/openvpn/client.conf client dev tun proto tcp remote 127.0.0.1 8082 ... |
相对于没有stunnel的方式,remote需要修改为stunnel客户端中accept参数指定的地址。
创建SSL证书
1 2 3 | openssl genrsa -out key.pem 2048 openssl req -new -x509 -key key.pem -out cert.pem -days 1095 cat key.pem cert.pem >> /etc/stunnel/stunnel.pem |
stunnel服务端配置
1 2 3 4 5 6 | # cat /etc/stunnel/stunnel.conf cert = /etc/stunnel/stunnel.pem [openvpn] accept = 8081 connect = 127.0.0.1:8082 |
connect是OpenVPN服务端监听的地址。
OpenVPN服务端配置
1 2 3 4 | # cat /etc/openvpn/server.conf port 8082 proto tcp dev tun |
注意:stunnel只支持TCP,所以OpenVPN需要使用tcp协议。
修改/etc/default/stunnel4,将ENABLED修改为1。
将stunnel脚本添加到rc.d
1 | update-rc.d stunnel4 defaults |