扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
经常遇到网站被封,前段时间连sf.net&gmail.com都封了,实在受不了,找个资料都得上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
说到这里,忍不住要打个岔,如果是刚接触一个新领域新知识的话,最好少看中国大陆人写的技术文档,那信不过,一来说不清楚(比如本文,呵呵),二来很多地方忽悠人,说不定他自己也不清楚,乱写一气,要不就在关键的地方漏一点或者改一点,照搬人家老外的东西连目录文件名不改竟然还叫原创。具体大家在搜索 swan +vpn的时候就有机会遇到了。反正不想被带着瞎走就最好看英文文档或者中国台湾人写的东西,比如那个叫鸟哥的人写的文章还不错,虽然很基础,但讲的很清楚,他出了本书,叫《鸟哥的私房菜》来着,很适合linux的入门者阅读。另外一些大点的程序在官方网站都有DOCUMENT或者HOWTO,FAQ什么之类的,认真看看哪怕不去做也会收获不少,起码知道那软件大概是怎么回事。
我大致的看了一下上面的两个PDF,收益良多,再次推荐一下,对VPN和openswan,openvpn介绍的十分详细。
目标系统 red hat linux 9默认安装
二:需求
说白了就是用肉鸡做加密代理
1:对系统尽可能小的改变,包括添加文件和系统日志,因为我们用的是肉鸡。 :)
2:是client-->server的模式,而不是net-net的模式,浏览网页而已。
3:无论server还是client都要配置方便,简单好用,我们要的是快速。
三:选型(这里的优缺点都是我自己认为的,事实上可能不是那样)
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一下。
还有就是拨进VPN之后,他不会改你默认网关,免去了折腾的烦恼,我们可以把sf.net的地址加到静态路由去。
在server那边只需要开一个udp or tcp端口就可以了,不怎么需要去动别人的iptables。
貌似好象还有负载均衡什么的,这个和我们的目的差距有点大了,ignore之。
C:缺点:除了要额外装一个client之外,相对我们的需求来说貌似没什么缺点了。
四:开搞[root@RH9 root]# 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%] |
[root@RH9 root]# cat > /etc/openvpn/server.conf dev tun ifconfig 10.8.0.1 10.8.0.2 |
user nobody ;降权限,保安全 group nobody port 3389 ;改端口,忽啊悠-->不过别改1024以下的端口,那需要root权限,就得把上面两行nobody的删除。 comp-lzo ;起压缩,加速度 ;no-log ;不记录啊不日志 verb 0 status /dev/null log /dev/null log-append /dev/null |
remote 肉鸡的IP dev tun ifconfig 10.8.0.2 10.8.0.1 |
port 3389 verb 3 comp-lzo |
[root@RH9 root]# 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%] |
[root@RH9 root]# cat > /etc/openvpn/server.conf dev tun ifconfig 10.8.0.1 10.8.0.2 |
user nobody ;降权限,保安全 group nobody port 3389 ;改端口,忽啊悠-->不过别改1024以下的端口,那需要root权限,就得把上面两行nobody的删除。 comp-lzo ;起压缩,加速度 ;no-log ;不记录啊不日志 verb 0 status /dev/null log /dev/null log-append /dev/null |
remote 肉鸡的IP dev tun ifconfig 10.8.0.2 10.8.0.1 |
port 3389 verb 3 comp-lzo |
5:诊断
VPN一般出问题就只有三个地方,client的防火墙,server的防火墙,和转发开关是否打开,所以我们在服务端抓抓包就完全可以找到出问题的地方。ipsec pptp都可以这么找错。
A:在server的tun0口抓一切包,以检测client-->server是否连通,废话,肯定连通的,否则那图标怎么会是绿色....
[root@RH9 root]# tcpdump -n -i tun0 tcpdump: listening on tun0 |
[root@RH9 root]# tcpdump -n -i eth0 dst host baoz.net tcpdump: listening on eth0 |
C:\>telnet baoz.net |
[root@RH9 root]# ps aux | grep openvpn nobody 24066 0.0 0.1 4012 1684 ?S15:12 0:00 [openvpn] root 24069 0.0 0.0 3572 624 pts/2S15:45 0:00 grep openvpn [root@RH9 root]# lsof -p 24066 | grep "/var/tmp" openvpn 24066 nobody cwdDIR 8,14096 294337 /var/tmp openvpn 24066 nobody rtdDIR 8,14096 294337 /var/tmp |
[root@RH9 root]# rpm -q --whatprovides /sbin/ifconfig net-tools-1.60-12 |
[root@RH9 root]# rpm -V -f /sbin/ifconfig S.5....T /sbin/ifconfig |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台