VPS之openVPN的安装配置
原文地址:http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html
上次写的<VPS的购买和使用>中提到了openVPN,也做了一点点简单的介绍,有朋友也问了一些关于vpn的问题
首先,我所购买的vps是基于OpenVZ类型,无法配置标准的VPN(无测试过),部分手机可能无法支持,但OpenVZ支持pptp和openVPN
请登录OPENVPN官网查阅最新资料<http://openvpn.net/>
ok!在安装之前请确认一下你购买的vps是否开启了tun/tap的支持,burst vps默认是不开启tun/tap的,可以使用cat /dev/net/tun 进行检查
如果是没有权限的话可以发个ticket要求客服为你开启tun/tap
出现File descriptor in bad state说明tun/tap已经开启,可以开始进行openVPN的安装配置
我的vps安装的系统为CentOS release 5.5 (Final),下面一系列安装和配置都在此vps上进行,根据 <OpenVPN服务器配置(转载)>配置
一.服务端安装
现在开始在vps上安装和配置openVPN,需要的有下列的软件
gcc g++ [gcc g++为系统需要的编译工具]
lzo库 [Lzo库的功能是对虚拟链路进行压缩]
openssl [囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议]
openvpn
1.安装编译工具gcc g++
# yum install gcc-c++
2.安装lzo库
# 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
编辑完ld.so.conf,执行
# ldconfig
使动态库生效
3.安装openssl
# 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
# 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.创建配置环境
# cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn
# cd /etc/openvpn/easy-rsa/2.0/
# ls
total 112
-rwxr-xr-x 1 root root 121 Oct 26 03:14 build-ca
-rwxr-xr-x 1 root root 354 Oct 26 03:14 build-dh
-rwxr-xr-x 1 root root 190 Oct 26 03:14 build-inter
-rwxr-xr-x 1 root root 165 Oct 26 03:14 build-key
-rwxr-xr-x 1 root root 159 Oct 26 03:14 build-key-pass
-rwxr-xr-x 1 root root 251 Oct 26 03:14 build-key-pkcs12
-rwxr-xr-x 1 root root 270 Oct 26 03:14 build-key-server
-rwxr-xr-x 1 root root 215 Oct 26 03:14 build-req
-rwxr-xr-x 1 root root 160 Oct 26 03:14 build-req-pass
-rwxr-xr-x 1 root root 430 Oct 26 03:14 clean-all
-rwxr-xr-x 1 root root 1459 Oct 26 03:14 inherit-inter
-rwxr-xr-x 1 root root 297 Oct 26 03:14 list-crl
-rw-r--r-- 1 root root 422 Oct 26 03:14 Makefile
-rwxr-xr-x 1 root root 7768 Oct 26 03:14 openssl-0.9.6.cnf
-rwxr-xr-x 1 root root 8230 Oct 26 03:14 openssl.cnf
-rwxr-xr-x 1 root root 12068 Oct 26 03:14 pkitool
-rw-r--r-- 1 root root 8864 Oct 26 03:14 README
-rwxr-xr-x 1 root root 894 Oct 26 03:14 revoke-full
-rwxr-xr-x 1 root root 180 Oct 26 03:14 sign-req
-rwxr-xr-x 1 root root 1602 Oct 26 03:14 vars
-rwxr-xr-x 1 root root 190 Oct 26 03:14 whichopensslcnf
结果是程序以及脚本,这个简要的说明一下
vars 脚本,是用来创建环境变量,设置所需要的变量的脚本
clean-all 脚本,是创建生成CA证书及密钥 文件所需要的文件和目录
build-ca 脚本,生成CA证书(交互)
build-dh 脚本,生成Diffie-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 /etc/openvpn/easy-rsa/2.0/keys
注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件
修改vars文件
# vi vars
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GZ"
export KEY_CITY="guangzhou"
export KEY_ORG="NCS"
export KEY_EMAIL="dongbule@163.com"
# ./vars
3.初始化keys文件夹
# ./build-ca #[注:生成一个a 1024 bit RSA的密钥,writing new private key to 'ca.key']
一路按回车就可以
# ls
ca.crt ca.key index.txt serial
可以看到生成的ca.crt ca.key文件
4.生成Diffie-Hellman文件
# ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]
# ls keys
ca.crt ca.key dh1024.pem index.txt serial
注:可以看到生成了1024为的Diffie-Hellman文件
5.生成服务器使用的VPN server ca证书
# ./build-key-server chenyz #[注:其中chenyz是CA证书的一个名字]
一路回车,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
使用
# 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.crt
userkey/client-chenyz.csr
userkey/ca.key
userkey/client-chenyz.key
userkey/client-chenyz.crt
# sz userkey.tar.gz
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring userkey.tar.gz
100% 4 KB 4 KB/s 00:00:01 0 Errors
使用sz将其下载到windows客户端
7.openvpn配置文件
# cp /home/download/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/openvpn.conf
将vpenvpn的原始样例文件复制到/etc/openvpn下,并改名为openvpn.conf,我们将在样例文件上进行修改
使用的端口,默认1194
使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
ca:使用build-ca生成的,用于验证客户是证书是否合法
cert:使用build-key-server,Server使用的证书对应的key,注意安全,防止被盗
dh:生成的加密文件
通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用
可以让客户端之间相互访问直接通过openvpn程序转发
如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA #和keys连接VPN,一定要打开这个选项,否则只允许一个人连接VPN
对数据进行压缩
定义用户
openvpn状态log
每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后
8.启动OpenVPN
修改完毕后,即可以启动vpn,--daemon为后台守护进程模型启动
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf
使用netstat -ln 查看1194openvpn的端口是否已经起来
二.win客户端的安装和配置
下载openvpn客户端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安装完毕
把刚刚打包的userkey.tar.gz下载解压到 C:\Program Files\OpenVPN\config 目录下
将/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下载到 C:\Program Files\OpenVPN\config 目录下
接着是配置这个client.conf客户端配置文件
主要修改有以下几个地方
dev tun
proto tcp
remote 你的vpn地址 1194
user nobody
group nogroup
ca ca.crt
cert client-chenyz.crt
key client-chenyz.key ##注:文件名和路径必须对应
comp-lzo
redirect-gateway def1
确保与服务端的配置对应,然后将client.conf修改文件名为client.ovpn,右键点击client.ovpn,选择"Start OpenVPN on this config file"
可以看到连接已经成功,并且创建了 [本地连接 6] 一条新的链路
或者你也可以打开C:\Program Files\OpenVPN\bin\openvpn-gui-1.0.3.exe进行连接,双击后会在任务栏里有个小连接图标,变成绿色的话就表明你连接成功
openvpn的参数配置,感觉不算很多,也比较容易理解,中文的资料也很齐全,大概这个东西在国内还是广泛应用(FQ^_^)
如果只是简单的应用,配置倒真的很简单,不过如果真的是要用起来,网段设置和访问控制各种问题真的不少,入是否配置dhcp,是否分配dns,vpn如何和内网通讯,很多很多,因为我只是拿来做代理这里就不细说了
VPS之openVPN的安装配置的更多相关文章
- centos 6 安装配置openvpn
下载地址:http://swupdate.openvpn.org/community/releases/http://www.oberhumer.com/opensource/lzo/download ...
- Centos6.5 Openvpn的安装与配置
一.安装准备 ? 1 2 yum -y install openssl-devel openssl yum -y install gcc gcc-c++ 二.OpenVPN服务端安装过程1.lzo下载 ...
- centos6.5 64位 openvpn安装配置
1 查看系统版本 2 cat /etc/redhat-release 3 CentOS release 6.5 (Final) 4 5 查看内核和cpu架构 6 uname -rm 7 2.6.32- ...
- OpenVPN CentOS7 安装部署配置详解
一 .概念相关 1.vpn 介绍 vpn 虚拟专用网络,是依靠isp和其他的nsp,在公共网络中建立专用的数据通信网络的技术.在vpn中任意两点之间的链接并没有传统的专网所需的端到端的物理链路,而是利 ...
- Centos7安装openvpn及客户端配置
1.openvpn介绍 VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,使用OpenSSL加密库中的SSLv3/TLSv1协议函数库. 目前OpenVPN能在Sola ...
- Ubuntu 14.04 VPS安装配置***的方法
#安装*** $ sudo apt-get update $ sudo apt-get install python-gevent python-pip $ sudo pip install shad ...
- openvpn之搭建配置
一.openvpn原理 openvpn通过使用公开密钥(非对称密钥,加密解密使用不同的key,一个称为Publice key,另外一个是Private key)对数据进行加密的.这种方式称为TLS加密 ...
- Archlinux 安装配置指导 2015-05-24
因为用的Linode VPS的系统是Archlinux的,想在本地弄个系统做测试用,这样比较方便.然后发现自己在6年前做的一个Archlinux 安装配置Flash,好怀念的赶脚. 时过进迁,没想到A ...
- Linux安装配置VPN服务器
一.实验简介 VPN ,中文翻译为虚拟专有网络,英文全称是 Virtual Private Network .现在 VPN 被普遍定义为通过 一个公用互联网络建立一个临时的.安全的连接,是一条穿过混乱 ...
随机推荐
- 将UE添加到右键菜单
1.新建UE.reg文件,将如下代码拷贝进去.注意UE安装路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shell] [HK ...
- ANDROID模拟器访问本地WEB应用
一个早上就是想让android的模拟器可以访问到web的应用程序,但是一直是不可以,弄的不知所措. 在一般的Java Web程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的 ...
- 【javascript】js 判断微信浏览器
上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk.然后就发生了问题,经过测试,发现用微信扫一扫打 ...
- 为什么Jquery对input file控件的onchange事件只生效一次
今天在做jquery对input file控件的onchange事件进行监听,就一直只生效一次,不知道Jquery为什么对file控件没有做到每次改变触发onchange事件的效果,但是还是有好几种解 ...
- PhoneGap与Jquery Mobile结合开发android应用配置
由于工作需要,用到phonegap与jquery moblie搭配,开发android应用程序. 这些技术自己之前也都没接触过,可以说是压根没听说过,真是感慨,在开发领域,技术日新月异,知识真是永远学 ...
- 自定义控件如何给特殊类型的属性添加默认值 z
定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该 ...
- C++ 虚拟继承
1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念.虚拟基类是为解决多重继承而出现的.如:类D继承自类B1.B2,而类B1.B2都继 承自类A,因此在类D中两次出现类A中的变量和函数.为了节省内 ...
- 存储过程中使用事务与try catch
一.存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 : ) ) ...
- 使用curl操作openstack swift
openstack官网有专门的开发者文档介绍如何使用curl操作swift(http://docs.openstack.org/api/openstack-object-storage/1.0/con ...
- 笔记:修改centos的IP地址相关配置
最近碰到不少认识的人问相关问题 索性做个笔记 图个方便 修改eth0的网卡配置vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPR ...