linux下VPN安装配置

来源:互联网 发布:比尔克软件 编辑:程序博客网 时间:2024/05/21 04:16
一位大牛写的VPN配置http://www.xiaohui.com/dev/server/20070514-install-openvpn.htm
一、检测安装环境和下载所需文件(以下操作皆在vpn server上)
1、检测kernel是否支持tun设备
[root@open-server~]#modinfo tun
filename:       /lib/modules/2.6.18-164.el5PAE/kernel/drivers/net/tun.ko
alias:          char-major-10-200
license:        GPL
author:         (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
description:    Universal TUN/TAP device driver
srcversion:     9DE80B8421E85BE6D3B9E06
depends:
vermagic:       2.6.18-164.el5PAE SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
module_sig:     883f3504a8b963d18758d6145e11262900a08de577ccf5622481a585f23bd8c1cfc52962fd30a09eefad9de4596045ca8c83ec4b9cea70c3c8b049
{如果没有 modinfo 命令, 直接找一下, 看看 kernel 里是否有 tun.o 文件: 
代码: 
find -name tun.o 
./lib/modules/2.4.20/kernel/drivers/net/tun.o }
2、OpenSSL。如果需要启用 SSL 连接,则需要先安装 OpenSSL。安装 OpenSSL 的方法在这里不做介绍,具体可以用 Google 搜索。CentOS 下可以用 yum install: 
[root@open-server~]yum install openssl
[root@open-server~]yum install openssl-devel
3、下载openvpn server 的源代码文件和windows 下的客户端文件、lzo文件(用于压缩vpn包)
openvpn-server--> http://openvpn.se/files/install_packages/  
http://www.oberhumer.com/opensource/lzo/download/
windows---------> http://openvpn.se/


二、安装openvpn
1、lzo的安装
[root@open-server~] wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz
[root@open-server~]tar -zxvf lzo-2.02.tar.gz
[root@open-server~]cd lzo-2.02.tar.gz
[root@open-server~]./configure
[root@open-server~]make
[root@open-server~]make check
[root@open-server~]make install
2、安装openvpn
[root@open-server~]wget http://openvpn.net/release/openvpn-2.1.4.tar.gz
[root@open-server~]tar -zxvf openvpn-2.1.4.tar.gz
[root@open-server~]./configure./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib --with-ssl-headers=/usr/local/include/openssl  --with-ssl-lib=/usr/local/lib 
[root@open-server~] make
[root@open-server~] make install
3、生成证书key
[root@open-server~] mkdir -p /usr/local/openvpn 
[root@open-server~] cp -av /root/openvpn/openvpn-2.1.4/easy-rsa/2.0/ /usr/local/openvpn
[root@open-server~] cd /usr/local/openvpn/
[root@open-server~] vim vars
export D=`pwd` 
export KEY_CONFIG=$D/openssl.cnf 
export KEY_DIR=$D/keys 
export KEY_SIZE=1024 
export KEY_COUNTRY=CN 
export KEY_PROVINCE=SC 
export KEY_CITY=CD
export KEY_ORG="jiankang.com" 
export KEY_EMAIL="your-email@jiankang.com" 
[root@open-server~]./clean-all
[root@open-server~]./build-ca 然后一路回车即可
4、生成vpn server端证书
[root@open-server~]./build-key-server server 
还是一路回车,最后两个选"y"
5、生成client端证书
[root@open-server~]./build-key user1
然后一路回车
说明:每操作一次即为一个用户生成一个客户端证书,所以建的客户端名称必须不同,可以是“user2”"user3"之类,也可以是用户名字,方便记忆。
6、生成 Diffie Hellman 参数(这句偶不是很懂,暂且不管)
[root@open-server~]./build-dh
7、创建服务器文件:
[root@open-server~]vim /usr/local/openvpn/server.conf
local 192.168.1.76
port 1198
proto udp
dev tun
ca     /usr/local/openvpn/keys/ca.crt
cert  /usr/local/openvpn/keys/server.crt
key  /usr/local/openvpn/keys/server.key
dh  /usr/local/openvpn/keys/dh1024.pem
server 10.10.10.0 255.255.255.0
push "redirect-gateway"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /usr/local/openvpn/keys/openvpn-status.log
verb 3
push "dhcp-option DNS 10.10.10.1"
push "dhcp-option DNS 61.139.2.69"
push "dhcp-option DNS 8.8.8.8"
push "route 192.168.1.0 255.255.255.0 "
push "route 10.10.10.0 255.255.255.0  "
8、启动openvpn
[root@open-server~]/usr/local/sbin/openvpn --config /usr/local/openvpn/server.conf &


三、vpnserver和网关上防火墙的操作
1、
 [root@open-server~]iptables -t nat -A POSTROUTING -d 10.10.10.0 -j SNAT --to 192.168.1.76   //这句的意思是,当我们的vpn client,通过vpn连上的时候,由于他获得的ip地址段是10.10.10.0,不能直接访问我们的内部服务器,如果要让他访问我们的内网服务器就需要把他的地址转换成192.168.1.76(vpn server)的地址,用这个地址去访问我们的内部服务器。
  [root@open-server~]iptables -t nat -A POSTROUTING -j MASQUERADE   //本句是用来让我们的vpn client能够通过通过我们的vpn server访问internet。
2、
 [root@gate-way~]iptables -t nat -A PREROURING -p udp --dport 1198 -i eth1 -s 0.0.0.0/24 -j DNAT --to-destination 192.168.1.76:1198
  [root@gate-way~]iptables -t nat -A PREROURING -p tcp --dport 1198 -i eth1 -s 0.0.0.0/24 -j DNAT --to-destination 192.168.1.76:1198
//这两句的意思是,当一个ip用1198端口访问我们的网关时,网关就把这个目地地址转成我们的vpn server的址,即192.168.1.76的1198端口。
四、客户端的操作
1、先把下载的客户端软件安装上。
然后,到D:\Program Files\OpenVPN\config(我安装的是这个目录),从vpn server上把客户端认证文件拷下来,
所需要的文件有,ca.crt ca.key和以“user1”开头的三个文件。然后新那一个以ovpn后缀结尾的文件,例如“client.ovpn”
然后打开vpn 图标"connect" 一般就会成功了,如果有问题,找逐步查找。