安装及证书生成:
------------------------------------
apt-get install openvpn
使用easy-rsa生成服务端证书:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
生成CA:
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca
生成服务器证书并签名:
./build-key-server server
生成客户端证书:
./build-key client
创建 Diffie Hellman
./build-dh
配置openvpn服务
-------------------------------
编辑服务端配置文件:
例子:/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
位置:/etc/openvpn/server.conf
local 你的服务器IP地址
port 8080
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
#用于记录某个Client获得的IP地址,类似于dhcpd.lease文件,
#防止openvpn重新启动后忘记Client曾经使用过的IP地址
ifconfig-pool-persist ipp.txt
#ifconfig 10.168.1.1 255.255.255.0
#ifconfig-pool 10.168.1.10 10.168.1.254 255.255.255.0
server 10.168.1.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
#允许多个用户使用同一个key
;duplicate-cn
#示每20秒通过VPN通道ping对方,如果连续120秒无法ping通
#认为连接丢失,并重新启动VPN,重新连接
keepalive 20 60
#tls-auth ta.key 0
#对数据进行压缩
comp-lzo
#定义最大连接数
max-clients 50
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
mute 20
配置文件中的
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
在第一步的/etc/openvpn/easy-rsa/2.0目录下可找到,可自行更改路径。
客户端配置文件
例子:/usr/share/doc/openvpn/examples/sample-config-files/client.conf
client
dev tun
proto udp
remote 服务器IP 服务器端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
redirect-gateway
keepalive 20 60
#tls-auth ta.key 1
comp-lzo
verb 3
mute 20
route-method exe
route-delay 2
其中客户端所需的证书
ca ca.crt
cert client.crt
key client.key
在第一步的/etc/openvpn/easy-rsa/2.0目录下可找到
Windows7下安装好openvpn后以管理员权限运行OpenVPN GUI。
最最重要的一步,设置IP转发,否则客户端上不了网
iptables -t nat -A POSTROUTING -s 10.168.0.0/16 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables.rules
在目录/etc/network/if-up.d/下新建 iptables
内容为:
#!/bin/sh
iptables-restore < /etc/iptables.rules
修改/etc/sysctl.conf的内容为:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
运行:
sysctl -p
看是否正确
重启网络及openvpn
/etc/init.d/openvpn restart
/etc/init.d/networking restart
1 条回复
子虚乌有 2011-06-30 12:50 回复
留个脚印,正在研究VPS的debian,这份资料一定有需要的时候!