FreeTstar

loving Freedom + + loving Linux

  • 首页
  • Archive
  • 关于
  • 杂七杂八
  • 留言板
Twitter Sina RSS

VPS搭建OpenVPN教程

发布于 2011年06月17日 由 freetstar
10 条评论发表评论

此文用于技术实验,请勿用于”非法”目的,留言时谢谢”配合”,

我尽量在文章中详细解释每一步,自己对网络的知识也是通过G##F##W##建立起来的,有的地方不对,望指正,如果有更多的网络知识疑问,call@Jasey_Wang(网络信息安全党) @ihipop(VPN老手)

实验环境:

VPN server:米国VPS(网通链接速度比较快),OS:ubuntu server 10.10

VPN Client:本机,国内的一个PC,OS:ubuntu desktop 10.10

整体思路:

在服务器端安装和配置好openvpn,生成服务器端和客户端的证书和认证密钥,同时配置好服务器端的网络情况,设置允许数据包转发,将客户端的证书下方到客户端电脑上,同时客户端电脑安装openvpn,修改必要的配置文件,去链接远程的vpn服务器


第一步:布置VPN server端

1)更新VPS 自身软件至最新

#apt-get update
#apt-get upgrade --upgrade

2)安装Openvpn及其依赖udev

#apt-get install openvpn udev

OpenVPN提供了”easy-rsa”这套加密方面的工具,openvpn安装好之后,easy-rsa在/usr/share/doc/openvpn/examples/easy-rsa/文件夹中,为了使OpenVPN正常工作,需要把easy-rsa复制到/etc/openvpn中.运行下列命令:

#cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn

接下来我们大部分的配置工作都在/etc/openvpn/easy-rsa/2.0/中进行,因为大部分OpenVPN配置都在这个文件夹中

3)配置必要的公钥配置文件,修改一些变量值来方便以后配置公钥和运行脚本

#vim /etc/openvpn/easy-rsa/2.0/vars
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="freetstar"
export KEY_EMAIL="lgxwqq@gmail.com"
export KEY_COUNTRY="US"

##比较关键的是KEY_EMAIL这个变量,最好写成自己的邮箱

4)初始化公钥基础设施,也就是依次运行下面这些脚本

cd /etc/openvpn/easy-rsa/2.0/
. /etc/openvpn/easy-rsa/2.0/vars       //初始化一些变量信息
. /etc/openvpn/easy-rsa/2.0/clean-all  //用来清除以前产生的证书和密钥等
. /etc/openvpn/easy-rsa/2.0/build-ca   //生成新的ca

每一步回车即可

5)产生私钥,为OpenVPN server创建私钥

. /etc/openvpn/easy-rsa/2.0/build-key-server server

challenge password和company names这两项回车即可,接下来几项可能用y来回答,注意问题提示

6)为Client即freetstar创建证书,这里freetstar应该替换为你的对应ID,

. /etc/openvpn/easy-rsa/2.0/build-key freetstar

7)创建Diffie Hellman参数,此参数用来管理OpenVPN密钥交流和认证

. /etc/openvpn/easy-rsa/2.0/build-dh

8)将创建好的ca.crt和freetstar.crt,freetstar.key拷贝至Client端

scp ca.crt freetstar.crt freetstar.key freetstar@60.25.201.209:

#注,60.*是我Client本机的公网ip地址,推荐用scp这些加密的工具进行传输,因为安全性要高

9)将必要的证书和密钥拷贝至/etc/openvpn文件下,这样OpenVPN才能识别必要的证书和密钥

cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn

10)配置/etc/openvpn/server.conf文件,这个配置文件本身不存在,需要从模板中获取,同时修改必要的server.conf配置文件

cd /usr/share/doc/openvpn/examples/sample-config-files gunzip -d server.conf.gz cp server.conf /etc/openvpn/ vim /etc/openvpn/server.conf   push “redirect-gateway def1″ //找到此行并修改,让client使用OpenVPN server作为默认网关 11)将client.conf配置文件拷贝至Client端

cd /usr/share/doc/openvpn/examples/sample-config-files
scp client.conf freetstar@60.25.201.209:

12)配置Server端的网络,设置永久打开路由转发功能

#vim /etc/sysctl.conf

net.ipv4.ip_forward=1

目前先暂时打开路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

配置Iptables

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE  //设置数据转发,10.8.0.0/24是虚拟网卡网段 eth0是实际网卡

VPS采用了xen虚拟,故是eth0,如果vps采用了openvz虚拟化,此处应该修改为venet0

运行

iptabels-save //保存iptables规则
13)安装dnsmasq,所有client的dns请求也通过VPN
#apt-get install dnsmasq
#vim /etc/openvpn/server.conf
修改为push "dhcp-option DNS 10.8.0.1"

14)测试,正常情况下应该出现tun0这个虚拟网卡

#/etc/init.d/openvpn start
#ifconfig
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
RX packets:2762 errors:0 dropped:0 overruns:0 frame:0
TX packets:2920 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:520504 (520.5 KB)  TX bytes:1035346 (1.0 MB)

第二步:配置Client端

1)安装openvpn

sudo apt-get install openvpn

2)将之前下载到client端的文件,拷贝至/etc/openvpn文件中

sudo cp ca.crt freetstar.crt freetstar.key client.conf /etc/openvpn

3)编辑client.conf,配置远程VPN的ip地址,本地证书和公钥
sudo vim /etc/openvpn/client.conf
remote remoteIP 1194  //注,remoteIP改成OpenVPN Server的ip,也就是VPS的IP地址
ca ca.crt
cert freetstar.crt
key freetstar.key  

4)开启OpenVPN客户端

sudo /etc/init.d/openvpn start

5)通过http://formyip.com/检测自己的ip地址是否已经变更为OpenVPN server IP地址

6)尽情享受吧


备注

1:首先需要VPS支持搭建OpenVPN,一般是通过tun来获取支持的

2:肯定会在配置过程中出现各种问题, 可以参考p哥的解决办法,非常详尽

3:以debug模式来调试vpn

 openvpn /etc/openvpn/server.conf


参考文档:

http://library.linode.com/networking/openvpn/ubuntu-10.04-lucid#sph_id2

https://www.deleak.com/blog/2010/06/04/openvpn-on-vps/

http://pityonline.info/?p=1054

分类:服务器
WHAT A BUG!一个空格引发的血案
GNU/Linux中的su

10 则回应给 “VPS搭建OpenVPN教程”

  1. 林海草原 Mozilla Firefox Windows 说道:
    2011年06月24日 2:18 下午

    我和几个朋友合伙弄了一个,但是我没有插手技术方面的问题,我也没有所要技术材料,今天看到你这,我学习了。

    [回复]

  2. 布布 JAPAN Mozilla Firefox Linux 说道:
    2011年06月23日 12:27 上午

    最近怎么都折腾vpn了? 这方面我还欠缺,看来要多学习呀

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    六月 24th, 2011 at 6:34 下午

    @布布, 偶尔用到了 :twisted:

    [回复]

    囧啊囧 CHINA Google Chrome Windows 回复:
    七月 9th, 2011 at 10:31 下午

    @布布, 不翻墙不行了。

    [回复]

  3. Linux下OpenVPN+chnroute聪明访问WEB | FreeTstar WordPress 说道:
    2011年06月18日 10:47 下午

    [...] Linux下搭建OpenVPN方法:here,默认搭建好OpenVPN之后所有流量和数据都是通过VPS上的OpenVPN server提出的,也就是自身的访问IP总是美国的IP,内地网站可能屏蔽外国IP, [...]

  4. Mucid CHINA Mozilla Firefox Ubuntu Linux 说道:
    2011年06月17日 3:49 下午

    这次要买个强劲到VPS的说!!!

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    六月 17th, 2011 at 4:22 下午

    恩恩!

    [回复]

  5. 大智若鲁 CHINA Mozilla Firefox Windows 说道:
    2011年06月17日 2:15 下午


    比起ubuntu ser ,我还是比较习惯centos

    [回复]

  6. nelson CHINA Mozilla Firefox Windows 说道:
    2011年06月17日 9:21 上午

    你用的是VPS?

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    六月 17th, 2011 at 11:26 上午

    是的

    [回复]

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注

*

*


疑问 开心 悲伤 邪恶 惊叹 微笑 脸红 笑 惊讶 惊奇 迷惑 酷 憨笑 生气 阴险 转眼球 眨眼 主意 箭头 中立 哭 大笑

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image

点击取消回复
第 1 页,共 1 页1
  • 欢迎订阅

  • Github

  • 近期评论

    • freetstar CHINA Mozilla Firefox Linux 发表在《留言板》
    • _Fly CHINA Google Chrome Linux 发表在《使用e4rat加速你的linux启动速度(ext4文件系统专用)》
    • walfred Mozilla Firefox Windows 发表在《留言板》
    • freetstar CHINA Mozilla Firefox Windows 发表在《用landslide创建html5 slide》
  • Spread Firefox Affiliate Button
  • 我的豆瓣

  • 链接表

    • 51开源社区
    • Adam's
    • delectate's blog
    • Don's
    • fl
    • ghostunix
    • Jasey Wang
    • Jerry's Blog
    • Moolight@Ericyue
    • OSMSG
    • panda
    • Pity is the Bomp
    • PT ubuntu
    • Tao Zhu
    • ubuntuhome
    • WOW!ubuntu
    • zhangzhfang
    • 丕字的blog
    • 傻东の学习笔记
    • 奶牛的blog
    • 孤风颠影
    • 弯柚博客
    • 熊猫党军委主席
    • 靖 轩
    • 马力哥
    • 黑孩儿
  • 我的支付宝

  • 功能

    • 登录
    • 文章 RSS
    • 评论 RSS
    • WordPress.org
© FreeTstar. WordPress 强力驱动 | Nest Theme by YChong