大概阅读时间5分钟
介绍
OpenConnect简介
OpenConnect是一个开源软件,主要用于建立安全的VPN连接。最初,它被设计为Cisco AnyConnect SSL VPN的兼容替代品,但后来增加了对更多VPN协议的支持,使其成为一个多功能的VPN客户端。OpenConnect支持标准的SSL和DTLS协议,能够提供加密的网络连接,保护数据在公共网络中的传输安全。OpenConnect支持多种操作系统,包括Linux、Windows、MacOS等,提供了良好的跨平台支持,因此非常适合中小企业或个人使用。
OpenConnect由于其出色的兼容性、高度的安全性以及开源的特性,对于在寻找一个无需支付许可费用的VPN解决方案的中小型企业或者个人来说是一个理想的选择。
接下来我们将通过在Ubuntu上部署一套OpenConnect服务器来提供服务。
OpenConnect服务器部署
安装OpenConnect
在Ubuntu上部署OpenConnect服务非常简单,只是要注意需要安装的是OpenConnect Server (ocserv)而不是客户端。
首先安装ocserv:
sudo apt install ocserv
配置服务
安装好之后,就可以直接开始配置了,编辑配置文件:
sudo mv /etc/ocserv/ocserv.conf /etc/ocserv/ocserv.conf.back
sudo vim /etc/ocserv/ocserv.conf
在文件中,你可以指定服务器的地址、监听端口、用户认证方式等,下面贴出部分配置:
# 认证方式,密码或是证书
auth = "plain[passwd=/etc/ocserv/userinfo]"
#auth = "certificate"
# 监听端口
tcp-port = 8443
udp-port = 8443
# 客户端使用网段
ipv4-network = 10.0.0.0/24
# Bypass路由
no-route = 192.168.0.0/255.255.255.0
# 推送VPN路由
route = 172.16.0.0/255.255.0.0
route = 192.168.0.0/255.255.0.0
# 推送DNS
dns = 8.8.8.8
# 最大客户端数量和同时在线数量
max-clients = 256
max-same-clients = 2
# 域名,后续使用Let's Encrypt申请证书
default-domain = vpn.yoursite.com
# 证书存放位置
server-cert = /etc/letsencrypt/live/vpn.yoursite.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.yoursite.com/privkey.pem
进行以上主要配置后,保存并退出即可,如果有其他选项需要配置,可以按需进行配置。
申请证书并创建用户
一旦配置完成,就可以使用certbot来申请证书(可以参考前面搭建WordPress网站的文章“安装和配置 Certbot”部分),申请完成后,需要创建用户以提供员工使用:
sudo ocpasswd -c /etc/ocserv/userinfo username
然后输入密码确认即可完成用户创建,后续用户就可以通过使用这个用户名密码进行公司内网访问,需要注意这个userinfo文件需与配置一致。
如果需要修改,可以使用occtl工具,对于删除用户可以直接编辑userinfo文件
启动服务
确保配置正确,用户创建完成后,就可以启动服务了:
sudo systemctl start ocserv
sudo systemctl enable ocserv
启动之后,不要忘了配置服务器的iptables以放通相关流量:
sudo iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 8443 -j ACCEPT
#跟openvpn一样需要添加nat
sudo iptables -t NAT -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
最后确保内核转发开启:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
总结
至此,不出意外的话,你应该已经成功部署了一套OpenConnect服务器了,员工只需要安装Cisco Secure Client(AnyConnect)客户端或者OpenConnect客户端即可随时随地通过VPN安全访问企业内网了。
为了应对复杂的互联网环境,除了需要申请证书外,还建议在客户端设置打开证书相关的安全验证选项,进一步提高安全性,避免中间人攻击。