> Linux服务器 > VPN >

Openconnect VPN 服务端 ocserv 的部署

ocserv(Openconnect VPN Server)是一款开源的、兼容Cisco Anyconnect VPN的VPN服务端软件。由于思科在网络设备中的特殊地位,思科的V...
 
 
ocserv(Openconnect VPN Server)是一款开源的、兼容Cisco Anyconnect VPN的VPN服务端软件。由于思科在网络设备中的特殊地位,思科的VPN一直未被特殊照顾(其实这个VPN握手过程特征应该是较为明显的)。目前状况下通讯较为稳定,干扰较小。主要优势是多平台的支持,Windows、Android、iOS都能找到它的客户端。往往可以作为shadowsocks等代理的补充。
下面简要介绍一下部署过程,以在Ubuntu系统中的部署为例。

主页: http://www.infradead.org/ocserv/

下载页面: ftp://ftp.infradead.org/pub/ocserv/

首先在上面的下载页面中找到最新的Release后使用wget下载并解压:

Shell

wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.9.2.tar.xz
tar -Jxvf ocserv-0.9.2.tar.xz
cd ocserv-0.9.2必选依赖包:

Shell

apt-get install libgnutls28-dev可选依赖包:

Shell

apt-get install pkg-config libwrap0-dev libpam0g-dev liblz4-dev libseccomp-dev libreadline-dev libnl-route-3-dev编译工具:

apt-get install build-essential autogen编译安装:

Shell

./configure && make
make install接下来是配置,建立

/ etc / ocserv

文件夹来存储相关的配置文件:

1. 下载下来的ocserv中的

doc 文件夹中有 sample . config 这一例子文件,将其拷贝至 / etc / ocserv
,命名为

ocserv . conf

,用来存储ocserv的配置信息;

2. 新建

/ etc / ocserv / ocpasswd

文件用来存储用户名密码

3. 将PEM格式的服务器证书,存储至

/ etc / ocserv / server - cert . pem

文件中(包含证书链中的中级证书)

4. 将PEM格式的服务器私钥,存储至

/ etc / ocserv / server - key . pem

文件中

5. 将PEM格式的根证书,存储至

/ etc / ocserv / ca - cert . pem

文件中

(PS:想要客户端连接没有证书错误提示的,可以试试使用StartSSL的免费证书。)

接着修改

/ etc / ocserv / ocserv . conf

文件:

设置认证方式为plain,存储文件改成刚才设置的

/ etc / ocserv / ocpasswd

文件:

auth = "plain[/etc/ocserv/ocpasswd]"可以修改允许同时连接的最大客户端数:

max-clients = 16同一个账号能连接的最大客户端数:

max-same-clients = 2修改ocserv使用的端口(客户端连接时候不填写端口的话默认使用443 使用非443端口时候,服务器填写:域名:端口号 这样的形式):

tcp-port = 443
udp-port = 443修改服务器证书和私钥配置:

server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem修改根证书配置:

ca-cert = /etc/ocserv/ca-cert.pem建议将dpd和cookie-timeout改大,避免客户端网络波动时候总是掉线以及无法及时自动重连:

dpd = 600
cookie-timeout = 32400配置VPN子网的的网段:

ipv4-network = 10.250.250.0
ipv4-netmask = 255.255.255.0配置DNS服务器:

dns = 8.8.8.8
dns = 8.8.4.4将其他私有地址排除,不路由:

no-route = 192.168.0.0/255.255.0.0
no-route = 172.16.0.0/255.240.0.0
no-route = 169.254.0.0/255.255.0.0
no-route = 127.0.0.0/255.0.0.0添加自启动,下面给出一个init.d脚本的sample,放到

/ etc / init . d / ocserv

并给上755权限:

点击展开全部内容

配置自启动,使用update-rc.d命令:

Shell

update-rc.d ocserv defaults启动:

service ocserv start添加用户,例:用户名testuser,密码test,用户组vpnusers:

ocpasswd -c /etc/ocserv/ocpasswd -g vpnusers vpnuser然后连续两次键入密码即可。

修改

/ etc / sysctl . conf

打开ipv4_forward:

net.ipv4.ip_forward = 1执行以下命令使其生效:

Shell

sysctl -p配置iptables转发,注意和前面配置的网段保持一致:

Shell

iptables -A FORWARD -s 10.250.250.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.250.250.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -o vpns+ -j ACCEPT
iptables -A FORWARD -i vpns+ -j ACCEPT

 

(责任编辑:IT)