Hgta的博客

个人博客

Debian下安装Openvpn过程记录

Posted on | 11月 6, 2011 | No Comments

系统信息:
OS : Debian 6.0

Openvpn版本:2.2.1

 

1. 安装所需的编译工具:
#apt-get install gcc g++ make pkg-config libpam0g-dev sasl2-bin

2,下载lzo库[http://www.oberhumer.com/opensource/lzo/download/ ]:
#wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz

说明:lzo是一个实用的无损压缩工具。[可选]

3,下载openssl[http://www.openssl.org/ ]:
#wget http://www.openssl.org/source/openssl-1.0.0e.tar.gz

说明:OpenVPN依赖OpenSSL库,用于加密,需要安装。

4,下载openvpn[http://www.openvpn.net/ ]:
#wget http://www.openvpn.net/release/openvpn-2.2.1.tar.gz

 

二,安装OpenVPN及相关软件:
1,安装lzo:
#tar -zxvf lzo-2.06.tar.gz
#cd lzo-2.06
#./configure –prefix=/usr/local/lzo
#make
#make install

在/etc/ld.so.conf中加入以下内容:
/lib
/usr/lib
/usr/local/lib
/usr/local/lzo/lib

使用/etc/ld.so.conf中的内容生效,即动态连接库生效:
#ldconfig

2,安装openssl:
#cd ..
#tar -zxvf openssl-1.0.0ek.tar.gz
#cd openssl-1.0.0ek
#./config –prefix=/usr/local/openssl
#make
#make install

3,安装openvpn:
#cd ..
#tar -zxvf openvpn-2.2.1.tar.gz
#cd openvpn-2.2.1
#./configure -prefix=/usr/local/openvpn -with-lzo-headers=/usr/local/lzo/include -with-lzo-lib=/usr/local/lzo/lib -with-ssl-headers=/usr/local/ssl/include -with-ssl-lib=/usr/local/ssl/lib

#make
#make install

 

三,配置OpenVPN Server
1,创建配置环境
# mkdir -p /usr/local/openvpn/etc
# cp -R /usr/local/src/openvpn/openvpn-2.2.1/easy-rsa /usr/local/openvpn/etc/.

#cd /usr/local/openvpn/etc/easy-rsa/2.0
#ls

结果是程序以及脚本,这里简要的说明一下:
vars                脚本,是用来创建环境变量,设置所需要的变量的脚本
clean-all           脚本,是创建生成ca证书及密钥文件所需要的文件及目录
build-ca            脚本,生成ca证书(交互)
build-dh            脚本,生成Diff-Hellman文件(交互)
build-key-server    脚本,生成服务器端密钥(交互)
build-key           脚本,生成客户端密钥(交互)
pkitool             脚本,直接使用vars的环境变量设置,直接生成证书(非交互)

2,生成CA证书及密钥[注意字符输入不要出错]
初始化系统环境变量,你可以看一下这个脚本的内容就知道它在干什么了:
#./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/openvpn/etc/easy-rsa/2.0/keys

请理解警告的意思。

#chmod +rwx *
#source ./vars

生成并初始keys文件夹
#./clean-all

修改vars文件,内容如下:
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”GD”
export KEY_CITY=”GZ”
export KEY_ORG=”HGTA”
export KEY_EMAIL=“hgta23@gmail.com”

修改完保存后,即可生成ca证书及密钥文件了:
#source ./vars

生成Root Ca证书, 用于签发Server和Client证书
#./build-ca
# ls keys

可以看到已经生成了ca.crt ca.key文件
生成Diffie-Hellman文件
#./build-dh
#ls -l keys/dh1024.pem

可以看到生成了1024位的Diffie-Hellman文件
生成服务器使用的VPN server Ca证书
#./build-key-server itcht-server
根据提示输入相关信息,
itcht-server是你为CA证书起的一个名字, 以server名字为例,生成的服务器使用的CA证书文件为: itcht-server.crt itcht-server.key
将生成的CA证书及密钥拷贝到/usr/local/openvpn/etc 下:

#cp keys/ca.* /usr/local/openvpn/etc/.
#cp keys/itcht-server.* /usr/local/openvpn/etc/.
#cp keys/dh1024.pem /usr/local/openvpn/etc/.

生成客户端CA证书及密钥
生成客户端CA证书及密钥使用:build-key程序即可
#./build-key itcht-user1
根据提示输入相关信息,
将在keys目录下生成itcht-user1.crt itcht-user1.csr itcht-user1.key三个客户端证书
将ca.crt ca.key itcht-user1.crt itcht-user1.csr itcht-user1.key五个文件打包,以备客户端vpn使用

#mkdir itcht-user1-key
#cp keys/ca.* ./itcht-user1-key/.
#cp keys/itcht-user1.* ./itcht-user1-key/.

#tar -czvf itcht-user1-key.tar.gz itcht-user1-key
上面这件打包文件要COPY到客户端时使用

生成openvpn配置文件
创建openvpn 配置文件最好的方法是先看openvpn 的样例文件,在源码目录下的sample-config-files下,本例为
/usr/local/src/openvpn/openvpn-2.2.1/sample-config-files
服务器端配置文件名: server.conf
客户端配置文件名为: client.conf
可以根据需要修改.
#cp /usr/local/src/openvpn/openvpn-2.2.1/sample-config-files/server.conf /usr/local/openvpn/etc/server.conf
#mkdir -p /usr/local/openvpn/logs
#groupadd nobody
#vi/usr/local/openvpn/etc/server.conf

 

在 /etc/resolv.conf 中找到你服务器的nameserver地址:

如:

vi /etc/resolv.conf 
nameserver 218.85.157.99 
nameserver 218.85.152.99 
这两个地址用在填入下面的conf的以下两行 
push “dhcp-option DNS 218.85.157.99″ 
push “dhcp-option DNS 218.85.152.99″ 

以下conf 内容我把一些注释去掉了,没贴上来(#号和;号都代表注释,以这两个字符开头的配置都是不起效的)

;local a.b.c.d
#port 1194
port 5194
#proto udp
proto tcp
;dev tap
dev tun
;dev-node MyTap
ca /usr/local/openvpn/etc/ca.crt
#cert server.crt
cert /usr/local/openvpn/etc/itcht-server.crt
key /usr/local/openvpn/etc/ itcht-server.key  # This file should be kept secret
dh /usr/local/openvpn/etc/dh1024.pem
#server 10.8.0.0 255.255.255.0
server 172.16.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

;push “route 192.168.10.0 255.255.255.0″
push “route 172.16.0.0 255.255.0.0″
;push “route 192.168.20.0 255.255.255.0″;

client-config-dir ccd
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
#   ifconfig-push 10.9.0.1 10.9.0.2
;learn-address ./script
# of 0.0.0.0/0.0.0.0.
;push “redirect-gateway”
push “redirect-gateway”
;push “dhcp-option DNS 10.8.0.1″
# name server 地址

push “dhcp-option DNS 218.85.157.99″
push “dhcp-option DNS 218.85.152.99″
;push “dhcp-option WINS 10.8.0.1″
;client-to-client
client-to-client
;duplicate-cn
duplicate-cn
keepalive 10 120
;tls-auth ta.key 0 # This file is secret
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
;max-clients 100
user nobody
group nobody
persist-key
persist-tun
status /usr/local/openvpn/logs/openvpn-status.log
;log         openvpn.log
log         /usr/local/openvpn/logs/openvpn.log
;log-append  openvpn.log
log-append  /usr/local/openvpn/logs/openvpn.log
verb 3
;mute 20

script-security 3

以上为Server端配置文件内容。

切记:以上的文章中使用到的文件最好用约对路径来指定。否则在执行时,不在当前目录,就无法找到相关 文件。造成启动失败。

四,服务端的NAT配置:
编辑:/etc/sysctl.conf,更改net.ipv4.ip_forward=0 net.ipv4.ip_forward=1
#vi /etc/sysctl.conf
net.ipv4.ip_forward=1

或者:
#echo “1″ > /proc/sys/net/ipv4/ip_forward

并执行如下指令[我的外网网卡是eth0,为两个网段做NAT]
#/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
#/sbin/iptables -A POSTROUTING -t nat -s 172.16.0.0/255.255.0.0 -o eth0 -j MASQUERADE

 

五,启动服务器
启动OpenSVN Server:
#/usr/local/sbin/openvpn –config /usr/local/openvpn/etc/server.conf

 

六,WINDOWS XP客户端安装及设置:
下载客户端[切记版本要对上号,否则就会产生一些麻烦]:
http://www.openvpn.net/

到官网下载window客户端版本即可

安装之:
将之前产生的itcht-user1-key.tar.gz 压缩文件解压到 C:\Program Files\OpenVPN\config:
其中需将client.conf改为client.ovpn,并做相应的改变,主要是:
cert itcht-user1.crt
key itcht-user1.key

内容如下:
以下conf 内容我把一些注释去掉了,没贴上来(#号和;号都代表注释,以这两个字符开头的配置都是不起效的)

# from the server.
client
;dev tap
dev tun
;dev-node MyTap
;proto udp
proto tcp
remote 这里填你服务的地址 5194
;remote-random
resolv-retry infinite

# Most clients don’t need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert itcht-user1.crt
key itcht-user1.key
ns-cert-type server
;tls-auth ta.key 1
;cipher x
comp-lzo
verb 3
;mute 20

七,连接OpenVPN服务器:
右击client.ovpn文件,选择”Start OpenVPN on this config file”:
系统就会有如下一堆信息:
……..
Sat Sep 05 07:50:43 2009 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 172.16.0.5
Sat Sep 05 07:50:43 2009 Route addition via IPAPI succeeded [adaptive]
Sat Sep 05 07:50:43 2009 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 172.16.0.5
Sat Sep 05 07:50:43 2009 Route addition via IPAPI succeeded [adaptive]
Sat Sep 05 07:50:43 2009 C:\WINDOWS\system32\route.exe ADD 172.16.0.0 MASK 255.255.0.0 172.16.0.5
Sat Sep 05 07:50:43 2009 Route addition via IPAPI succeeded [adaptive]
Sat Sep 05 07:50:43 2009 C:\WINDOWS\system32\route.exe ADD 172.16.0.0 MASK 255.255.0.0 172.16.0.5
Sat Sep 05 07:50:43 2009 Route addition via IPAPI succeeded [adaptive]
Sat Sep 05 07:50:43 2009 Initialization Sequence Completed

到这里结束就算成功了

看一下我的IP信息:
C:\ipconfig /all

会有类似如下信息
Ethernet adapter Local Area Connection 3:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : TAP-Win32 Adapter V8
Physical Address. . . . . . . . . : 00-FF-AA-B0-60-2B
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 172.16.0.6
Subnet Mask . . . . . . . . . . . : 255.255.255.252
Default Gateway . . . . . . . . . : 172.16.0.5
DHCP Server . . . . . . . . . . . : 172.16.0.5
DNS Servers . . . . . . . . . . . : 这里显示dns server ip地址
Lease Obtained. . . . . . . . . . : 2011年10月25日 15:13:52
Lease Expires . . . . . . . . . . : 2011年10月25日 15:13:52

参考文章: http://blog.csdn.net/msconfig_001/article/details/6123949 http://www.xiaohui.com/dev/server/20070514-install-openvpn.htm

Comments

Leave a Reply





About

博主 hgta

Search

Admin