debian lenny安装配置openvpn

2011-01-01 08:49

安装及证书生成:
------------------------------------

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 条回复

说两句