一、准备工作
- 更新操作系统
apt-get update
apt-cache show ocserv
apt-get upgrade
二、安装ocserv
apt-get install ocserv
三、配置证书
- 安装证书工具
apt-get install gnutls-bin
- 创建CA证书
cd ~
mkdir certificates
cd certificates
vim ca.tmpl
certtool --generate-privkey --outfile ca-key.pem #生成ca密钥
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem #生成ca证书
将以下内容贴入ca.tmpl
cn = " your server ip "
organization = " abcd.com "
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
- 创建server证书
vim server.tmpl
certtool --generate-privkey --outfile server-key.pem #生成server密钥
certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem #生成server证书
将以下内容贴入server.tmpl
cn = " Your hostname or IP "
organization = "abcd.com "
expiration_days = 3650
signing_key
encryption_key
tls_www_server
- 将证书移动到指定的目录
cp ca-cert.pem /etc/ssl/certs/ca-cert.pem
cp ca-key.pem /etc/ssl/private/ca-key.pem
cp server-cert.pem /etc/ssl/certs/server-cert.pem
cp server-key.pem /etc/ssl/private/server-key.pem
四、配置ocserv服务
- 配置ocserv.conf文件
vim /etc/ocserv/ocserv.conf
参照以下进行修改
# 登陆方式,目前先用密码登录
auth = “plain[/etc/ocserv/ocpasswd]”
# 允许同时连接的客户端数量
max-clients = 10
# 限制同一客户端的并行登陆数量
max-same-clients = 6
# 服务监听的TCP/UDP端口(选择你喜欢的数字)
tcp-port = xxxx
udp-port = xxxx
# 自动优化VPN的网络性能
try-mtu-discovery = true
# 确保服务器正确读取用户证书(后面会用到用户证书)
cert-user-oid = 2.5.4.3
# 服务器证书与密钥
server-cert = /etc/ssl/certs/server-cert.pem
server-key = /etc/ssl/private/server-key.pem
# 客户端连上vpn后使用的dns
dns = 8.8.8.8
dns = 8.8.4.4
# 注释掉所有的route,让服务器成为gateway
#route = 192.168.1.0/255.255.255.0
# 启用cisco客户端兼容性支持
cisco-client-compat = true
- 配置ocserv账号密码
root# ocpasswd -c /etc/ocserv/ocpasswd vpnuser
Enter password:
Re-enter password:
五、配置iptable
- 自动调整MTU
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
- 开启 NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 开启 IPv4 转发
sysctl -w net.ipv4.ip_forward=1
# 或修改配置文件
/etc/sysctl.conf:net.ipv4.ip_forward = 1
- 允许端口
iptables -I INPUT -p tcp --dport 443 -j ACCEPT;
iptables -I INPUT -p udp --dport 443 -j ACCEPT;
- 保存配置
iptables-save > /etc/iptables.rules
#修改脚本/etc/networks/interfaces文件,在结尾加入以下语句
pre-up iptables-restore < /etc/iptables.rules
六、开启服务和调试模式
- 调试模式启动
ocserv -c /etc/ocserv/ocserv.conf -f -d 1
- 正常启动
/etc/init.d/ocserv stop
/etc/init.d/ocserv start
/etc/init.d/ocserv restart
七、其他问题
- 如果遇到登陆失败的情况,重启ocserv服务即可。
- 对于双网卡转发:iptable规则应作如下配置:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 出口IP
然后新增rt_table规则自动转发即可。
3. 待补充