CentOS平台OpenVPN架设
来源:互联网 发布:淘宝网怎么做推广 编辑:程序博客网 时间:2024/06/01 22:44
据说,53 DUP端口的VPN可以突破CMZZ和CHINANET的验证而免费上网,所以研究起OpenVPN,搭建一个特殊的VPN。
为什么说这个VPN特殊呢,特殊在于是OpenVPN,OpenVPN可以在openvz的VPS上跑,比起PPTP,PPTP只能在xen的架构跑,而大多数VPS是基于OpenVPN的。
另外,VPN走的是DNS端口,这个的好处就是如果学校有计费系统,或者周围有电信,移动的WIFI热点,多数情况下是可以越过计费系统直接上网的。
环境声明:
下文,输入的命令以 标注。
VPS内核:Linux vps.lolis.info 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30
18:07:38 MSD 2010 i686 i686 i386 GNU/Linux
Tun的支持。
Tun的支持请在VPS面板启用,比如我的是enable tun/tap
Ssh权限(root)
启用Tun后,在ssh中输入:
cat /dev/net/tun
反馈:
cat: /dev/net/tun: File descriptor in bad state 则说明安装正常。
53端口:
输入:
service named stop以使53端口不被DNS占用。
**存在争议的iptables_nat模块
Black-xstar(下文简称star)文中表示:
另外如果你需要连上OpenVPN后能访问互联网,还需要iptables_nat模块支持,用这个命令检测:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o
venet0 -j MASQUERADE
如果返回信息为:iptables: Unknown error 4294967295 说明正常,否则同样需要发个ticket让VPS公司帮忙开通。
但是,我的VPS输入上述命令没有回显,与文中提到的反馈不同,但是照常可以试用。
请保证有充足的带宽以及内存。
VPN部署:
首先登入ssh,在ssh中输入:
rpm-Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
成功后就可以用yum直接安装了。
以下为shell记录
[root@vps ~]# yum -y install
openvpn
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: serverbeach1.fedoraproject.org
* base: mirror.trouble-free.net
* updates: mirror.trouble-free.net
* addons: mirror.cisp.com
* extras: mirror.atlanticmetro.net
epel
|
3.4 kB 00:00
ebdb729a3d0909032214d70acf18e2b36ab08a21-primary.sqlite.bz2
| 2.5 MB 00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package openvpn.i386 0:2.1.1-2.el5 set to be updated
–> Processing Dependency: liblzo2.so.2 for package: openvpn
–> Processing Dependency: libpkcs11-helper.so.1 for package: openvpn
–> Running transaction check
—> Package lzo.i386 0:2.02-2.el5.1 set to be updated
—> Package pkcs11-helper.i386 0:1.07-2.el5.1 set to be updated
–> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================
Package
Arch
Version
Repository
Size
====================================================================================================================================
Installing:
openvpn
i386
2.1.1-2.el5
epel
371 k
Installing for dependencies:
lzo
i386
2.02-2.el5.1
epel
63 k
pkcs11-helper
i386
1.07-2.el5.1
epel
51 k
Transaction Summary
====================================================================================================================================
Install 3
Package(s)
Update 0
Package(s)
Remove 0
Package(s)
Total download size: 485 k
Downloading Packages:
(1/3):
pkcs11-helper-1.07-2.el5.1.i386.rpm
| 51 kB 00:00
(2/3):
lzo-2.02-2.el5.1.i386.rpm
| 63 kB 00:00
(3/3):
openvpn-2.1.1-2.el5.i386.rpm
| 371 kB 00:00
————————————————————————————————————————————
Total
2.1 MB/s | 485 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID
217521f6
Importing GPG key 0x217521F6 “Fedora EPEL <epel@fedoraproject.org>”
from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing :
pkcs11-helper
[1/3]
Installing :
lzo
[2/3]
Installing :
openvpn
[3/3]
Installed: openvpn.i386 0:2.1.1-2.el5
Dependency Installed: lzo.i386 0:2.02-2.el5.1 pkcs11-helper.i386
0:1.07-2.el5.1
Complete!
完毕后,执行:
locate easy-rsa
回显:
locate: can not open `XXXXXXXXX’: No such file or directory
将XXXXXXXXXX中内容复制,执行:
Cd XXXXXXXXXXX
找出来了原来在这里:/usr/share/openvpn/easy-rsa 大家应该都是一样的。
我们把easy-rsa这个文件夹移出来,用命令:cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/
比如/etc/openvpn/easy-rsa/2.0,则运行: cd /etc/openvpn/easy-rsa/2.0
以下为shell记录:
[root@vps easy-rsa]# cd
/etc/openvpn/easy-rsa/2.0
[root@vps 2.0]# vi vars
然后,我们用vi打开了vars文件,首先输入I 使之成为insert模式
然后操作方向键,调到文件末尾,按照实际修改
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”GD”
export KEY_CITY=”GZ”
export KEY_ORG=”Lolita Ltd.”
export
KEY_EMAIL=”loli@lolis.info”
修改完毕后,按下esc返回查看模式,按下shift+; 输入: 并在:后输入wq 回车。
反馈:
”vars” 68L, 1664C written
使设置生效:输入. Vars
Shell:
[root@vps 2.0]# . vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on
/etc/openvpn/easy-rsa/2.0/keys
首先创建CA证书
./build-ca
接着创建服务器证书:
./build-key-server server
一路回车,直到Sign the certificate? [y/n]: 输入y 回车
1 out of 1 certificate requests certified, commit? 输入y 回车
建立客户端证书:
./build-key user
过程同服务器,也是直到
Sign the certificate? [y/n]: 输入y 回车
1 out of 1 certificate requests certified, commit? 输入y 回车
到此就建立了一个客户端了,如果需要多客户端,请更换user到其他用户名即可。
然后执行:
./build-dh
Shell:
[root@vps 2.0]# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
………………………………………………+.+……………………………………………+…………..+………………………………………………………..+……………………………………………………………………………………………………………+……………………………………………………………………………………………………………………………………………………………..+………………………………………………..+…………………………………………………………………………………………………+………………….+………………………………………………..+………….+……………………………………………………………………………………………………………………………..++*++*++*
[root@vps 2.0]#
运行winSCP(请自行下载),将/etc/openvpn/2.0/keys中的文件下载到本地。
输入: cd
/etc/openvpn/ 返回到OpenVPN文件夹,输入vi server.conf
创建配置文件。输入i到可写模式,将编写好的配置文件写入。以下是我的配置文件,请按需修改。
port 53
proto udp
dev tun
ca
/etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert
/etc/openvpn/easy-rsa/2.0/keys/server.crt
key
/etc/openvpn/easy-rsa/2.0/keys/server.key
dh
/etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push “redirect-gateway def1″
push “dhcp-option DNS 8.8.8.8″
push
“dhcp-option DNS 8.8.4.4″
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
crl-verify
/etc/openvpn/easy-rsa/2.0/keys/crl.pem
然后保存。以上配置均可在winscp修改。
返回ssh,接着输入vi /etc/sysctl.conf
老规矩,找到net.ipv4.ip_forward 将后面的0改成1 保存。
防火墙配置:
输入iptables -t nat -A POSTROUTING -s
10.8.0.0/24 -j SNAT –to-source YOUR-IP
将your ip改成你服务器的IP即可。
执行:
/etc/init.d/iptables save
/etc/init.d/iptables restart
/usr/sbin/openvpn –config
/etc/openvpn/server.conf &
没有报错,在本地连接一遍,能成功即可(下文介绍如何配置客户端。)
添加自启动:
vi /etc/rc.local
最后加上 /usr/sbin/openvpn
–config /etc/openvpn/server.conf &
保存,重启服务器。
到此服务器端配置完毕。
客户端配置:
安装OpenVPN,win安装很简单,不再累述。
首先回头看看下载回来的KEY文件夹,挑出ca.crt,user.key,user.crt
找到C:/Program
Files/OpenVPN/config(如果默认的话)
把以上3个文件放进去,并创建user.ovpn文件。
以下是我的配置文件,请按需修改:
client
dev tun
proto udp
remote “SERVER-IP” 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
ns-cert-type server
comp-lzo
verb 3
route-method exe
route-delay 2
保存。
这里不同于xstar的配置,区别是多了后面两行,因为我发现少了这两行win7和vista不能使用。如果xp用户发现有问题,不妨注释掉这两行。
到此,配置完成。
- CentOS平台OpenVPN架设
- centOS架设openvpn供ios使用
- centos OPENVPN
- OpenVPN on CentOS 4
- centos 安装openvpn
- Centos 搭建OpenVPN 服务器
- centos下安装openvpn
- CentOS安装openvpn
- CentOS 6 安装OpenVPN
- CentOS 7安装OpenVPN
- centos搭建openvpn经验
- OpenVPN for CentOS搭建
- CentOS搭建OpenVPN
- CentOS搭建openVPN
- 不需公网IP架设OpenVPN
- FreeBSD 下用OpenVPN 架设虚拟局域网
- 多用户openvpn的架设与配置
- Windows平台编译openvpn
- Bitmap内存限制问题的一些看法和探索
- GetMessage(), PeekMessage(), PostMessage(), SendMessage()
- js怎么验证验证码是否填写正确
- 存储过程相关
- Ubuntu下玩转VI--在命令行下编辑文件
- CentOS平台OpenVPN架设
- 上任后第一贴--Nginx安全配置
- linux 模块层叠技术和多个ko的编译
- 从替换objc类成员方法观察成员方法寻址
- hdu 1698 Just a Hook 线段树
- 安装Ubuntu
- android用户界面编程技巧——如何使用Adapter
- asp中如何上传文件到数据库中
- 简单的Makefile