Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux系统 > » 正文

推荐:linux下快速搭建vpn服务器做加密代理

来源: 未知 分享至:

作者:baoz
日期:2009-10-26
1妹儿:perlish(*)gmail.com or fatb@zzu.edu.cn (有时gmail收不到信或者会被当垃圾邮件过滤掉)
欢迎转载任何人任何时候转载到任何地方,转载可保留也可不保留上面的信息。

免责声明:千万别用太好的,重要的,甚至是不大重要的机器做下面的事情,如果被管理员发现了或者肉鸡丢了,本人概不负责。

○:缘起
经常遇到网站被封,前段时间连sf.net都封了,实在受不了,找个资料都得上3389肉鸡找了。

一:背景
  对VPN的分类什么的有个大概的了解,知道是个大概怎么回事,如果不大清楚的朋友可以google一下,喜欢看英文文档的朋友可以看下面两个文档对VPN的介绍,很清晰。本文就不对这些内容进行具体的介绍了。
http://hmyblog.vmmatrix.net/sdbwww/pub/books/Packt.Publishing.OpenVPN.Building.And.Integrating.Virtual.Private.Networks.Mar.2006.pdf
http://hmyblog.vmmatrix.net/sdbwww/pub/books/Packt.Publishing.Building.And.Integrating.Virtual.Private.Networks.With.Openswan.Jan.200620060628185701.rar

  说到这里,baoz忍不住要打个岔,如果是刚接触一个新领域新知识的话,最好少看中国大陆人写的技术文档,那信不过,一来说不清楚(比如本文,呵呵),二来很多地方忽悠人,说不定他自己也不清楚,乱写一气,要不就在关键的地方漏一点或者改一点,照搬人家老外的东西连目录文件名不改竟然还叫原创。具体大家在搜索swan +vpn的时候就有机会遇到了。反正不想被带着瞎走就最好看英文文档或者中国台湾人写的东西,比如那个叫鸟哥的人写的文章还不错,虽然很基础,但讲的很清楚,他出了本书,叫《鸟哥的私房菜》来着,很适合linux的入门者阅读。另外一些大点的程序在官方网站都有DOCUMENT或者HOWTO,FAQ什么之类的,认真看看哪怕不去做也会收获不少,起码知道那软件大概是怎么回事。
baozi大致的看了一下上面的两个PDF,收益良多,再次推荐一下,对VPN和openswan,openvpn介绍的十分详细。

目标系统 red hat linux 9默认安装

二:需求
说白了就是用肉鸡做加密代理
  1:对系统尽可能小的改变,包括添加文件和系统日志,因为我们用的是肉鸡。 :)
  2:是client-->server的模式,而不是net-net的模式,浏览网页而已。
  3:无论server还是client都要配置方便,简单好用,我们要的是快速。

三:选型(这里的优缺点都是baoz我自己认为的,事实上可能不是那样)
  1:*swan
    A:ipsec vpn的代表,默认端口tcp/udp 500

    B:优点:加密强,对网络游戏什么的支持好(我们用不上)

    C:缺点:部署麻烦,配置麻烦,关键是他的nat-t,就是nat穿越功能需要打内核补丁,重新编译内核才行,这事在肉鸡做不得,呵呵。具体的可以看上面的那个openswan的rar,讲的十分详细。大概的说说swan系列吧,最开始是freeswan,然后貌似在2004年停止开发了,衍生出openswan和strongswan两个分支,我看了一下,貌似openswan发展的不错,strongswan连个rpm包都没,当然,那是貌似。因为我不懂得code,说啥都得加貌似二字的,不过千万别小看scriptkid哦,因为你不知道什么时候他就在你的系统里用uid0在script,虽然我还是多次被别人B4,呵呵。绕回来……swan系列分两块,一个是用户空间程序,一个是内核空间程序。用户空间程序叫p什么来o来着,至于到底是p什么o,你装装就知道了,要不装,知道了也没啥意义。:)内核空间的包括模块和补丁,大概就那么回事。就是说,要做到nat-t,就需要用户空间程序,lkm和内核补丁,需要重新编译内核,这个我们在肉鸡没法做,drop之。还有他要用root运行。

最后对四万同学的名字多次引用而没给版权费表示抱歉:)

  2:pptpd
    A:pptp vpn的典型代表,默认端口tcp 1723

    B:优点:windows带了他的client,安装也方便,就几个rpm,配置也不难

    C:缺点:一拨进去他就会改缺省网关,很烦,要么拨进去自己route add/delete几下改改,一直别断开,看个网站犯得着那么麻烦吗

  3:openvpn
    A:SSL VPN的典型代表,默认端口tcp/udp 1194

    B:优点:简单好装,一个rpm搞定,要压缩的话多一个lzo的rpm包。配置也是简单的很,就生成一个static.key,还可以chroot,并且可以以nobody运行,肉鸡的安全也是很重要的,保管不好就被抢了,不过chroot就没必要了,有兴趣的朋友可以自己搞搞:) ldd一下把要的东西都丢到一个地方然后加上配置文件就差不多了,再改改启动脚本。
还有就是拨进VPN之后,他不会改你默认网关,免去了折腾的烦恼,我们可以把sf.net的地址加到静态路由去。
在server那边只需要开一个udp or tcp端口就可以了,不怎么需要去动别人的iptables。
貌似好象还有负载均衡什么的,这个和我们的目的差距有点大了,ignore之。

    C:缺点:除了要额外装一个client之外,相对我们的需求来说貌似没什么缺点了。


四:开搞
  1:安装client and server程序
http://dag.wieers.com/packages/openvpn/openvpn-2.0.7-1.rh9.rf.i386.rpm

[root@RH9 root]# rpm -ivh lzo-1.08-2_2.RHL9.at.i386.rpm
warning: lzo-1.08-2_2.RHL9.at.i386.rpm: V3 DSA signatur    E: NOKEY, key ID 66534c2b
Preparing...                ########################################### [100%]
  1:lzo                    ########################################### [100%]
[root@RH9 root]# rpm -ivh openvpn-2.0.7-1.rh9.rf.i386.rpm
warning: openvpn-2.0.7-1.rh9.rf.i386.rpm: V3 DSA signatur    E: NOKEY, key ID 6b8d79e6
Preparing...                ########################################### [100%]
  1:openvpn                ########################################### [100%]

  2:服务端配置
[root@RH9 root]# cat > /etc/openvpn/server.conf
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key ;天王盖地虎,宝塔镇河妖

user nobody ;降权限,保安全
group nobody
port 3389 ;改端口,忽啊悠-->不过别改1024以下的端口,那需要root权限,就得把上面两行nobody的删除。
comp-lzo ;起压缩,加速度

;keep alive
keepalive 10 60 ;推连接,不掉线
ping-timer-rem
persist-tun
persist-key
;no-log ;不记录啊不日志
verb 0
status /dev/null
log         /dev/null
log-append  /dev/null

server配置完毕。

  3:客户端配置
安装这个http://www.openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
然后打开开始--程序--openvpn--Generate a static OpenVPN key,这会在C:Program FilesOpenVPNconfig下生成一个叫key.txt的文件,把他重命名为static.key。
然后把这个文件复制到linux肉鸡的/etc/openvpn/static.key去
最后在C:Program FilesOpenVPNconfig目录下创建一个叫client.ovpn的文件,内容如下
remote 肉鸡的IP
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
port 3389
verb 3
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

client配置完毕。
注意,无论是服务端还是客户端的IP,都不要和系统有的IP段冲突,另外改了端口需要在client and server都改一致。

  4:启动并连接
    A:启动服务端
[root@RH9 root]# /etc/init.d/openvpn start
Starting openvpn:                                          [  OK  ]
这个时候理论上会发现多了一个接口,等会我们要收拾这个口子。
[root@RH9 root]# ifconfig tun0
tun0      Link encap:Point-to-Point Protocol  
          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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@RH9 root]# netstat -an | grep 3389
udp        0      0 0.0.0.0:3389            0.0.0.0:*    
这个时候理论上会起了一个3389的udp口,如果这两个事情都有了,那就OK了,一般除了RP有WT之外,这里基本都不怎么可能出现错误。:)
如果有错误的话,就把上面的
verb 0
status /dev/null
log         /dev/null
log-append  /dev/null
改成
verb 9
status /usr/lib/0
log         /usr/lib/1
log-append  /usr/lib/1
然后重新启动openvpn服务并查看日志,注意,这个时候messages会有日志,调试完毕记得删除/usr/lib/0 /usr/lib/1。


    B:启动客户端
开始--程序--openvpn--OpenVPN GUI
连接服务端
点右下角红色的图标--connect
图标变绿,就是成功连接并分配到地址了,注意让你的防火墙通过。
如果没变绿色,从那个图标那view log,如果发现不到问题,就把client的配置文件的verb设置为9,重新连接,再看日志,再google。

    C:检查连接:
在client里看到有这么个信息
Ethernet adapter 本地连接   4:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.8.0.2
        Subnet Mask . . . . . . . . . . . : 255.255.255.252


Tags: 加密代理 vpn服务器
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史