QQ登录

只需一步,快速开始

微信登录

扫一扫,访问微社区

100部高清纯英文字幕电影打包下载100部适合青少年学习的原声电影合集适合儿童学英语的100部英文原声动画
查看: 2797|回复: 1

[操作指南] CentOS服务器下利用Openvpn实现翻墙

[复制链接]
发表于 2015-1-31 16:21:24 | 显示全部楼层 |阅读模式
在正文开始前,必须要吐槽一番。上周博主的VPS莫名其妙地被Cracker攻击了,此前在服务器上做的好多工作都付诸东流,幸亏此前备份过Blog的几篇博文,不然真的要活活哭死。但是重建的工作依然相当艰辛而漫长。
据我所知,身边所有使用Openvpn的人几乎都是用在翻墙上,大家都知道天朝有个伟大的东西叫GFW,保护了很多善良网民,但是总有人不自重自爱想要越雷池一步,博主做一次坏人;介绍自己如何利用Openvpn实现翻墙,以下以CentOS系统为例。

整体思路相当简单,在安装Openvpn后配置一些基本信息,配置公钥密钥(让有密钥的客户端才能连接Openvpn),接着配置Openvpn的外网连接(让Openvpn真正成为一个中介实现翻墙),最后做一些补漏的工作如随机启动,路由转发等。

1.安装前的准备
确保你的VPS是否已经有以下部分:GCC,FTP,EPEL,TUN
gcc                                     //检测gcc,提示没有该命令则失败
ps -C vsftpd                            //检测ftp,没有该进程则失败                    
yum -y install openvpn                  //检测EPEL,没有安装则失败
cat /dev/net/tun                        //检测tun,提示不存在该文件则失败



如果还没有上面的几个功能,可通过以下方法进行处理:
/*install EPEL*/
rpm -Uvh http:\/\/dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
/*install GCC*/
yum -y install gcc
/*install Vsftpd*/
yum -y install vsftpd                   //要简单的配置,可以自己google一下
/*enable TUN*/
只能发个Ticket给你的VPS商,如果快的话,当天就能得到回复了



这里简单讲解一下:EPEL是一个第三方的软件源,安装之后可以通过很方便利用yum进行一些软件的安装,可谓一劳永逸;Vsftpd和GCC相信大家都知道,就不说了;TUN通常和TAP一起讨论,分别模拟网络第三/第二层来操纵IP数据包/以太网数据帧。
还有一个问题以后可能会遇到,就是大家可能在执行某个命令的时候提示命令不存在,也许是因为你的系统环境变量没配置好,只需要locate一下(如iptables命令执行失败可以通过locate iptables来查找此命令在哪里,从结果可以看出,我们使用/sbin/iptables即可执行)。

2.安装Openvpn及配置
/*安装*/
yum -y install openvpn
/*准备配置*/
cd /home/Dominic           //到你的用户目录下,如Dominic(博主的用户目录)
wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz
                           //纯粹为了获得样例配置文件
tar zxvf openvpn-2.1_rc22.tar.gz
cp openvpn-2.1_rc22/sample-config-files/server.conf /etc/openvpn/
                           //获得样例配置文件
/*配置*/
vim /etc/openvpn/server.conf



主要修改server.conf文件中的以下信息:
local a.b.c.d                              //取消注释,并改成VPS地址
prot 1194                                  //如果没有特别需要,可以不用修改
proto udp                                  //也可以不做修改
dev tun                                    //就是此前enable的东西

//以下是公钥密钥部分,这些文件现在还不存在,需要在第三步创建,但是不影响配置文件,需留意文件名要和第三部一致!
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

push "redirect-gateway def1 bypass-dhcp"   //取消注释即可
push "dhcp-option DNS 208.67.222.222"      //取消注释即可
push "dhcp-option DNS 208.67.220.220"      //取消注释即可
client-to-client                           //取消注释即可



此时配置文件已经完成。

3.公钥密钥的生成
这是保证我们能让有权限的客户端访问我们的Openvpn的方法,即只有拥有密钥的客户才能正常连接服务器;首先做一些前期的配置。
/*准备工作*/
cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0/
vim vars



主要修改vars文件以下内容:
/*根据自己的情况填写即可*/
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”BJ”
export KEY_CITY=”BJ”
export KEY_ORG=”MOVIE”                     
export KEY_EMAIL=”[url=mailtowenlee@en580.com]owenlee@en580.com[/url]”



生效配置信息及生成证书颁发机构,服务器证书和客户端证书:
/*生效配置信息*/
source vars
./clean-all
/*生成证书颁发机构*/
./build-ca server                //一路回车下去,遇到y/n的时候按y即可
/*生成服务器证书*/
./build-key server               //一路回车下去,遇到y/n的时候按y即可
/*生成客户端证书*/
./build-key en580              //其中en580是我的客户端,上同
/*生成dh*/
./build-dh
/*打包准备下载*/
cd keys
tar czvf keys.tar.gz ./*



此时公钥密钥已经设置完毕,并打包好通过ftp下载到本地,等待使用。

4.外网访问设置
通过上面几步,如果操作无误的话,我们的Openvpn已经能和拥有私钥的客户端进行连接了,但是却只能在两台计算机直接进行通信,还不能达到翻墙的目的,所以我们要设置外网访问,让Openvpn成为一个中介,那么就可以访问任何网站啦。以下配置外网:
vim /etc/sysctl.conf                     //找到net.ipv4.ip_forward = 0,把0改为1,保存退出;
sysctl -p
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source a.b.c.d
                                         //其中a.b.c.d改为自己的VPS地址
/etc/init.d/iptables save
/etc/init.d/iptables restart



5.启动服务端的Openvpn
/usr/sbin/openvpn –-config /etc/openvpn/server.conf        //此时如果正常会看到初始化成功的提示,ctrl+c退出
/sbin/service/openvpn restart                              //启动服务



6.启动客户端
还记得我们一开始从服务器上download下来的keys.tar.gz吗?首先我们安装Openvpn客户端(默认已经安装好了),进入安装的根目录下的sample-config文件夹,复制里面的client.ovpn到根目录下的config文件夹中。并把此前的keys.tar.gz解压出来的所有文件放到config文件夹中。然后我们开始编辑client.ovpn,修改如下:
/*其实有很详细的注释,大家看注释也可以理解,主要几个部分如下*/
remote a.b.c.d 1194               //改成VPS上设置的地址和端口号
ca ca.crt                         //下载下来的证书,及密钥
cert Dominic.crt                  
key Dominic.key                  



保存关闭,右键client.ovpn点击Start Openvpn on this config file.在弹出的黑框框里会出现初始化正常的提示

7.大功告成及后续问题
此时进入客户端安装根目录下的bin文件夹,执行里面的openvpn-gui.exe,在任务栏出现的红色电脑上点击connect就完成啦。访问下www.facebook.com是不是可以了呢~:)
最后和大家探讨几个小问题:
1.如果你有很多个client,即你想让很多人用你的Openvpn,那么只需要简单地多次执行生成客户端证书,把相应的证书发给对应的客户端进行配置就行,但是不要把server.crt也公布了。
2.如果想把Openvpn随机自启动,只需要往启动文件里加入Openvpn相关命令就好啦。
3.有个项目叫chnroutes,可以根据你要访问的外网地址决定要不要走Openvpn,也就是说你可以开着Openvpn看迅雷~,不过博主觉得在启动和关闭连接时体验不是很好,如果想用可以直接google,很好上手。

原贴地址:http://www.ccpt.cc/cross-wall-by-openvpn-at-centos/


回复

使用道具 举报

发表于 2015-4-8 10:06:54 | 显示全部楼层
哎,看不懂呀。太专业了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、每个贴内连续回复请勿多余3贴,每个版面回复请勿多余10贴!
4、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!

VIP你的影视英语人生
客服QQ
397839773 周一至周日:09:00 - 21:00
工作室地址:北京市朝阳区科技路88号现代城5号楼

英语我帮您网站:推荐最新适合英语学习的电影、美剧,提供欧美电影及电视剧音频剧本、台词笔记、视频字幕下载,鼓励大家充分利用:电脑、智能手机、IPAD等移动设备随时随地收听观看电影美剧、轻轻松松提高英语听力口语。

技术支持: 看电影学英语  © 2008-2021 英语我帮您

客服邮箱: {赞助会员发邮件必回复!}

GMT+8, 2024-4-30 11:04 , Processed in 0.091973 second(s), 30 queries .

快速回复 返回顶部 返回列表