基于linux操作系统架构openvpn总结( 四 )


comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /opt/openvpn/log/openvpn-status.log
log /opt/openvpn/log/openvpn.log
verb 6
mute 20
writepid /opt/openvpn/log/server.pid
Client的自定义配置:./ccd/
代码:
gz:
iroute 10.1.0.0 255.255.0.0
hz:
iroute 10.3.0.0 255.255.0.0
hb:
iroute 10.2.0.0 255.255.0.0
配置文件解释:
代码:
local a,b,c,d listen的IP
port 1194 listen的端口
proto udp 使用UDP协议
dev tun 使用tunnel的模块
ca ca.crt 公钥(s端和c端使用相同的ca)
cert server.crt server的公钥
key server.key server的私钥(要保管好)(s端和c端使用各自的cert和key)
dh dh1024.pem 产生方法:openssl dhparam -out dh1024.pem 1024
server 10.99.0.0 255.255.255.0 设置为server模式,并指定子网的IP段,server端默认会设为.1的地址 。
ifconfig-pool-persist ipp.txt 当vpn断开或重启后,可以利用该文件重新建立相同IP地址的连接 。
push "route 10.1.0.0 255.255.0.0" 让client端建立到另一个子网的路由 。
client-to-client 让不同的client之间可以互相“看到” 。
max-clients 100 最多的client数量 。
keepalive 10 120 每10秒ping一次,如果120秒没有回应则认为对方已经down 。
user nobody
group nobody 指定运行openvpn的用户和组 。(减少危险) 。
persist-key
persist-tun
status openvpn-status.log 每分钟记录一次连接的状态 。
log openvpn.log 将log记录到指定文件中
verb 3 设置日志要记录的级别 。
0只记录错误信息 。
4能记录普通的信息 。
5和6在连接出现问题时能帮助调试
9是极端的,所有信息都会显示,甚至连包头等信息都显示(像tcpdump)
mute 20 相同信息的数量,如果连续出现20条相同的信息,将不记录到日志中 。
4.5.3 OpenVPN Client端的配置
代码:
目录名 作用
Sbin 放置openvpn的主程序“openvpn”
Conf 放置配置文件
Keys 放置认证文件
Man 放置man文档
配置文件:./conf/client.conf
广州:
代码:
Client
dev tun
proto udp
remote VPNSERVERIP11194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /opt/openvpn/keys/ca.crt
cert /opt/openvpn/keys/gz.crt
key /opt/openvpn/keys/gz.key
comp-lzo
verb 3
mute 20
杭州:
代码:
client
dev tun
proto udp
remote VPNSERVERIP1 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /opt/openvpn/keys/ca.crt
cert /opt/openvpn/keys/hz.crt
key /opt/openvpn/keys/hz.key
comp-lzo
verb 3
mute 20
河北:
代码:
client
dev tun
proto udp
remote VPNSERVERIP2 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /opt/openvpn/keys/ca.crt
cert /opt/openvpn/keys/hb.crt
key /opt/openvpn/keys/hb.key
comp-lzo
verb 3
mute 20
4.5.4 运行OpenVPN
建立脚本:
Server端:
代码:
#!/bin/sh
OPENVPN=/opt/openvpn/sbin/openvpn
CFG=/opt/openvpn/conf/server.conf
PID=`cat /opt/openvpn/log/server.pid`
case "$1" in
start)
$OPENVPN --config $CFG &
stop)
kill $PID
restart)
kill $PID
sleep 5
$OPENVPN --config $CFG &
*)
echo "Usage: `basename $0` {start|stop|restart}"
esac
Client端
代码:
#!/bin/sh
/opt/openvpn/sbin/openvpn --config /opt/openvpn/conf/client.conf &

推荐阅读