1. 首页
  2. IT资讯

linux下openvpn比较详细安装

引用:http://gxjluck.blog.51cto.com/1211751/763752

什么是VPN
IP机制仿真出一个私有的广域网“是通过私有的隧道技术在公共数据网络上仿真一条点到点的专线技术。所谓虚拟,是指用户不再需要拥有实际的长途数据线路,而是使用Internet公众数据网络的长途数据线路。
OpenVPN的功能
可以将两个不同的网段打通一条通道,可以互相访问,对于运维人员来说主要是为了安全,因为OpenVPNssl加密机制,增加了密码的安全度,运维人员可以自定义ip段进行管理服务器,简单点说,安全方便。
SSL VPN原理
如果把SSL 和VPN 两个概念分开,大家对他们的含义应该都非常清楚,但是作为一种新技术,它们之间是如何结合起来的大家也许还不是很了解。从学术和商业的角度来讲,因为他们代表的含义有所不同,因而常常会被曲解。
SSL(安全套接层)协议是一种在Internet上保证发送信息安全的通用协议。它处于应用层。SSL用公钥加密通过SSL连接传输的数据来工作。 SSL协议指定了在应用程序协议(如HTTP、Telnet和FTP等)和 TCP/IP协议之间进行数据交换的安全机制,为TCP/IP连接提供数据加密、服务器认证以及可选的客户机认证。SSL协议包括握手协议、记录协议以及警告协议三部分。握手协议负责确定用于客户机和服务器之间的会话加密参数。记录协议用于交换应用数据。警告协议用于在发生错误时终止两个主机之间的会话。
VPN(虚拟专用网)则主要应用于虚拟连接网络,它可以确保数据的机密性并且具有一定的访问控制功能。VPN是一项非常实用的技术,它可以扩展企业的内部网络,允许企业的员工、客户以及合作伙伴利用Internet访问企业网,而成本远远低于传统的专线接入。过去,VPN 总是和IPSec 联系在一起,因为它是VPN 加密信息实际用到的协议。IPSec 运行于网络层,IPSec VPN 则多用于连接两个网络或点到点之间的连接。
所谓的SSL VPN,其实是VPN设备厂商为了与IPsec VPN区别所创造出来的名词,指的是使用者利用浏览器内建的Secure Socket Layer封包处理功能,用浏览器连回公司内部SSL VPN服务器,然后透过网络封包转向的方式,让使用者可以在远程计算机执行应用程序,读取公司内部服务器数据。它采用标准的安全套接层(SSL)对传输中的数据包进行加密,从而在应用层保护了数据的安全性。高质量的SSL VPN解决方案可保证企业进行安全的全局访问。在不断扩展的互联网Web站点之间、远程办公室、传统交易大厅和客户端间,SSL VPN克服了IPSec VPN的不足,用户可以轻松实现安全易用、无需客户端安装且配置简单的远程访问,从而降低用户的总成本并增加远程用户的工作效率。而同样在这些地方,设置传统的IPSec VPN非常困难,甚至是不可能的,这是由于必须更改网络地址转换(NAT)和防火墙设置。

首先,我所购买的vps是基于OpenVZ类型,无法配置标准的VPN(无测试过),部分手机可能无法支持,但OpenVZ支持pptp和openVPN请登录OPENVPN官网查阅最新资料

linux下openvpn比较详细安装

ok!在安装之前请确认一下你购买的vps是否开启了tun/tap的支持,burst vps默认是不开启tun/tap的,可以使用cat /dev/net/tun 进行检查

linux下openvpn比较详细安装

如果是没有权限的话可以发个ticket要求客服为你开启tun/tap

linux下openvpn比较详细安装

出现File descriptor in bad state说明tun/tap已经开启,可以开始进行openVPN的安装配置我的vps安装的系统为CentOS release 5.5 (Final),下面一系列安装和配置都在此vps上进行,根据 配置

一.服务端安装现在开始在vps上安装和配置openVPN,需要的有下列的软件gcc g++ [gcc g++为系统需要的编译工具]lzo库 [Lzo库的功能是对虚拟链路进行压缩]openssl [囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议]openvpn1.安装编译工具gcc g++

# yum install gcc# yum install gcc-c++

2.安装lzo库

# cd /home/download/# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz# tar -xvzf lzo-2.03.tar.gz# cd lzo-2.03# ./configure -prefix=/usr/local/lzo && make && make install# vi /etc/ld.so.conf (红色部分可选,主要目的是把动态库so加载到内存中,这样访问的时候会变快。如果内存中没有是就从磁盘上加载,当然慢了,不过只是第一次慢,经过第一次从磁盘的加载,动态库就进入内存了,以后速度也变快。这是其一。其二,就是寻找动态库的时候,其中的一条路径是从ldconf加载到内存空间去找动态库so的,这样可以避免有些so不在搜索路径上)

linux下openvpn比较详细安装

编辑完ld.so.conf,执行# ldconfig使动态库生效3.安装openssl(提示:如果linux系统中之前安装过ssl,就没有必要在此用 tar安装openssl了。例如:

[root@yitai01 net]# rpm -qa | grep -i openssl

openssl-devel-0.9.7a-43.17.el4_6.1

openssl096b-0.9.6b-22.46

openssl-0.9.7a-43.17.el4_6.1

xmlsec1-openssl-1.2.6-3

pyOpenSSL-0.6-1.p23

,显然是安装过openssl里。既然已经安装了,还要再次安装何必呢

# cd /home/download/# wget http://www.openssl.org/source/openssl-0.9.8.tar.gz# tar -xvzf openssl-0.9.8.tar.gz# ./config -prefix=/usr/local/openssl && make && make install

4.安装openvpn

# cd /home/download/# wget http://www.openvpn.net/release/openvpn-2.0.9.tar.gz# tar -xvzf openvpn-2.0.9.tar.gz# cd openvpn-2.0.9# ./configure -prefix=/usr/local/openvpn && make && make install

二.配置1.创建配置环境

# mkdir /etc/openvpn# cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn# cd /etc/openvpn/easy-rsa/2.0/# lstotal112rwxrxrx1root root121Oct2603:14buildcarwxrxrx1root root354Oct2603:14builddhrwxrxrx1root root190Oct2603:14buildinterrwxrxrx1root root165Oct2603:14buildkeyrwxrxrx1root root159Oct2603:14buildkeypassrwxrxrx1root root251Oct2603:14buildkeypkcs12rwxrxrx1root root270Oct2603:14buildkeyserverrwxrxrx1root root215Oct2603:14buildreqrwxrxrx1root root160Oct2603:14buildreqpassrwxrxrx1root root430Oct2603:14cleanallrwxrxrx1root root1459Oct2603:14inheritinterrwxrxrx1root root297Oct2603:14listcrlrwrr1root root422Oct2603:14Makefilerwxrxrx1root root7768Oct2603:14openssl0.9.6.cnfrwxrxrx1root root8230Oct2603:14openssl.cnfrwxrxrx1root root12068Oct2603:14pkitoolrwrr1root root8864Oct2603:14READMErwxrxrx1root root894Oct2603:14revokefullrwxrxrx1root root180Oct2603:14signreqrwxrxrx1root root1602Oct2603:14varsrwxrxrx1root root190Oct2603:14whichopensslcnf

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

# cd /etc/openvpn/easy-rsa/2.0/# ./varsNOTE: If you run ./clean-all,I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件修改vars文件

#定义你所在的国家,2个字符export KEY_COUNTRY=CN#你所在的省份export KEY_PROVINCE=”SH”#你所在的城市export KEY_CITY=”SHANGHAI”#你所在的组织export KEY_ORG=”OpenVPN ORG”#你的单位export KEY_OU=”OpenVPN”#你的邮件地址export KEY_EMAIL=”feiyang@163.com”

#. ./vars (注意有两个点,两个点之间有空格)

初始化keys文件

# ./clean-all #[注:删除/etc/openvpn/easy-rsa/2.0/keys下的文件]# ./build-ca #[注:生成一个a 1024 bit RSA的密钥,writing new private key to ‘ca.key’]

linux下openvpn比较详细安装

一路按回车就可以

# cd keys# lsca.crt ca.key index.txt serial
可以看到生成的ca.crt ca.key文件4.生成Diffie-Hellman文件

# cd ..

# ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]# ls keysca.crt ca.key dh1024.pem index.txt serial

注:可以看到生成了1024为的Diffie-Hellman文件5.生成服务器使用的VPN server ca证书# ./build-key-server chenyz #[注:其中chenyz是CA证书的一个名字]
linux下openvpn比较详细安装
一路回车,Sign the certificate? [y/n]:y 选择y然后把刚才生成的CA证书和密钥copy到/etc/openvpn/下# cd keys# cp ca.crt ca.key chenyz.crt chenyz.key dh1024.pem /etc/openvpn/6.生成客户端CA证书及密钥# ./build-key client-chenyz一路回车,Sign the certificate? [y/n]:y 选择y在keys目录下生成了client-chenyz.crt client-chenyz.csr client-chenyz.key三个客户端证书并且将ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key 五个文件打包,以便客户端vpn使用

# cd keys# mkdir userkey# cp ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key userkey/# tar -zcvf userkey.tar.gz userkey/userkey/userkey/ca.crtuserkey/client-chenyz.csruserkey/ca.keyuserkey/client-chenyz.keyuserkey/client-chenyz.crt# sz userkey.tar.gzStarting zmodem transfer. Press Ctrl+C to cancel.Transferring userkey.tar.gzlinux下openvpn比较详细安装

使用的端口,默认1194

linux下openvpn比较详细安装

使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议

linux下openvpn比较详细安装

ca:使用build-ca生成的,用于验证客户是证书是否合法cert:使用build-key-server,Server使用的证书对应的key,注意安全,防止被盗

linux下openvpn比较详细安装

dh:生成的加密文件

linux下openvpn比较详细安装

通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用

linux下openvpn比较详细安装

可以让客户端之间相互访问直接通过openvpn程序转发

linux下openvpn比较详细安装

如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA #和keys连接VPN,一定要打开这个选项,否则只允许一个人连接VPN

linux下openvpn比较详细安装

对数据进行压缩

linux下openvpn比较详细安装

定义用户

linux下openvpn比较详细安装

openvpn状态log

linux下openvpn比较详细安装

每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后8.启动OpenVPN修改完毕后,即可以启动vpn,–daemon为后台守护进程模型启动/usr/local/openvpn/sbin/openvpn –daemon –config /etc/openvpn/openvpn.conf

linux下openvpn比较详细安装

使用netstat -ln 查看1194openvpn的端口是否已经起来二.win客户端的安装和配置下载openvpn客户端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安装完毕把刚刚打包的userkey.tar.gz下载解压到 C:Program FilesOpenVPNconfig 目录下将/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下载到 C:Program FilesOpenVPNconfig 目录下接着是配置这个client.conf客户端配置文件主要修改有以下几个地方dev tunproto tcpremote 你的vpn地址 1194user nobodygroup nogroupca ca.crtcert client-chenyz.crtkey client-chenyz.key ##注:文件名和路径必须对应comp-lzoredirect-gateway def1确保与服务端的配置对应,然后将client.conf修改文件名为client.ovpn,右键点击client.ovpn,选择”Start OpenVPN on this config file”

linux下openvpn比较详细安装

可以看到连接已经成功,并且创建了 [本地连接 6] 一条新的链路

linux下openvpn比较详细安装

linux下openvpn比较详细安装

或者你也可以打开C:Program FilesOpenVPNbinopenvpn-gui-1.0.3.exe进行连接,双击后会在任务栏里有个小连接图标,变成绿色的话就表明你连接成功openvpn的参数配置,感觉不算很多,也比较容易理解,中文的资料也很齐全,大概这个东西在国内还是广泛应用(翻墙^_^)如果只是简单的应用,配置倒真的很简单,不过如果真的是要用起来,网段设置和访问控制各种问题真的不少,入是否配置dhcp,是否分配dns,vpn如何和内网通讯,很多很多,因为我只是拿来做代理这里就不细说了

—————-End Of File —————-

rhel 4.7 :server.conf

[root@yitai01 net]# cat /usr/local/openvpn/etc/server.conf | grep -v ^# | grep -v ‘^$’

;local a.b.c.d

port 1194

proto tcp

;proto udp

;dev tap

dev tun

;dev-node MyTap

ca /usr/local/openvpn/etc/keys/ca.crt

cert /usr/local/openvpn/etc/keys/server.crt

key /usr/local/openvpn/etc/keys/server.key # This file should be kept secre

dh /usr/local/openvpn/etc/keys/dh1024.pem

server 10.8.0.0 255.255.255.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 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

;learn-address ./script

client-to-client

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/etc/keys/openvpn-status.log

log /usr/local/openvpn/etc/keys/openvpn.log

log-append /usr/local/openvpn/etc/keys/openvpn.log

verb 4

;mute 20

—————————————————-

Windows xp(win7):client.ovpn

dev tun

;dev-node MyTap

proto tcp

;proto udp

remote 218.25.10.101 1194

remote 221.204.237.110 1194

;remote my-server-2 1194

;remote-random

resolv-retry infinite

nobind

persist-key

persist-tun

;http-proxy-retry # retry on connection failures

;http-proxy [proxy server] [proxy port #]

;mute-replay-warnings

ca ca.crt

cert client1.crt

key client1.key

;ns-cert-type server

;tls-auth ta.key 1

;cipher x

comp-lzo

verb 3

;mute 20

route-method exe

route-delay 2

21.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

777.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg

12.jpg

122.jpg

13.jpg

14.jpg

15.jpg

16.jpg

18.jpg

19.jpg

20.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-750649/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/195838.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code