首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Linux&Uinx > 用openvpn快速建立linux下的加密代理 > 正文

用openvpn快速建立linux下的加密代理

出处:5DMail.Net收集整理 作者:请作者联系 时间:2006-11-14 9:49:00
  免责声明:千万别用太好的,重要的,甚至是不大重要的机器做下面的事情,如果被管理员发现了或者肉鸡丢了,本人概不负责。

○:缘起
    经常遇到网站被封,前段时间连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之外,相对我们的需求来说貌似没什么缺点了。
四:开搞
程序在http://baoz.net和http://xsec.org上都有的,害怕有后门就自己搜索一下从官网下好了:)

1:安装client and server程序
[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%]

2:服务端配置
[root@RH9 root]# cat > /etc/openvpn/server.conf
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key 0;天王盖地虎,宝塔镇河妖,最后的参数0是防止重放攻击用的,生成4个key在static.key文件里,就是把4个key放一起了,和client要配对,一个为0,一个为1。
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

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 Files\OpenVPN\config下生成一个叫key.txt的文件,把他重命名为static.key,生成四个,弄到一个文件里去,使用不同的key做加密解密防止重放。
然后把这个文件复制到linux肉鸡的/etc/openvpn/static.key去
最后在C:\Program Files\OpenVPN\config目录下创建一个叫client.ovpn的文件,内容如下
remote 肉鸡的IP
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key 1 最后的参数1是防止重放攻击用的,生成4个key在static.key文件里,就是把4个key放一起了,和client要配对,一个为0,一个为1。
port 3389
verb 3
comp-lzo

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
Default Gateway . . . . . . . . . :

C:\>ping 10.8.0.1

Pinging 10.8.0.1 with 32 bytes of data:

Reply from 10.8.0.1: bytes=32 time=7ms TTL=64
连接木有问题,这个时候就根据个人的喜好改默认网关,如果你的肉鸡不是十分之快的话,还是不建议改默认网关了,这里提供一些修改默认网关相关的命令,有需要的可以参考着改一下,然后存成一个cmd文件,这样需要用的时候执行一下就OK。
route add 肉鸡IP mask 255.255.255.255 当前默认网关 -p   -->这个是保持到肉鸡的连接不断,断了的话,vpn连接也断了:)
route delete 0.0.0.0  -->删除默认网关
route add 0.0.0.0 mask 0.0.0.0 10.8.0.1   -->把VPN的tun0地址改为默认网关
route add DNS服务器IP mask 255.255.255.255 当前默认网关    -->让我们的DNS查询还是走原来的网关,这样会快很多
D:服务端打开转发
做个nat,但注意一下eth0需要是可以去外网的接口,否则等会数据走不出去,如果肉鸡是单接口的话就不需要担心。
[root@RH9 root]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
再看看转发开了没
[root@RH9 root]# sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 0
我们把他打开
[root@RH9 root]# sysctl -w net.ipv4.ip_forward=1

5:诊断
VPN一般出问题就只有三个地方,client的防火墙,server的防火墙,和转发开关是否打开,所以我们在服务端抓抓包就完全可以找到出问题的地方。ipsec pptp都可以这么找错。

A:在server的tun0口抓一切包,以检测client-->server是否连通,废话,肯定连通的,否则那图标怎么会是绿色....
[root@RH9 root]# tcpdump -n -i tun0
tcpdump: listening on tun0


B:在server的eth0口抓目标地址包,以检测转发是否有问题。
[root@RH9 root]# tcpdump -n -i eth0 dst host baoz.net
tcpdump: listening on eth0

C:
这个时候我们telnet一下baoz.net看看
C:\>telnet baoz.net

两边都看到有包就对了。如果有一边看不到包,就自己折腾一下好了。看看一路过来是不是都没搞错。
到此为止,我们已经可以通过加密代理上网了。

D:希望你的内网里不要有10的路由,有朋友出过类似的问题,如果你内网是10的,最好把前面的10.8.0.1和10.8.0.2改成192.168.0.1和192.168.0.2以避免路由上的问题。

6:安全
除了使用nobody:nobody跑openvpn之外,我们还可以chroot一下,一开始我以为也要ldd一下然后把库什么的还有配置文件丢到一目录里去,今天一朋友和我说openvpn貌似有remote 1出,不知道真的假的,不过0day exp这东西,还是宁可信其有,不可信其无,他建议我把chroot的办法也写进去,我又把文档看了看,发现原来他本身有chroot的实现,他的配置文件,key什么的,都在chroot之前装载好了,我们只需要加一个参数到服务端的配置文件去就OK
chroot /var/tmp  -->等会我们可以通过lsof准确的判断openvpn已经chroot了

[root@RH9 root]# ps aux | grep openvpn
nobody   24066  0.0  0.1  4012 1684 ?        S    15:12   0:00 [openvpn]
root     24069  0.0  0.0  3572  624 pts/2    S    15:45   0:00 grep openvpn
[root@RH9 root]# lsof -p 24066 | grep "/var/tmp"
openvpn 24066 nobody  cwd    DIR     8,1    4096  294337 /var/tmp
openvpn 24066 nobody  rtd    DIR     8,1    4096  294337 /var/tmp
这回即使别人有remote exp也不怕了,要能进来的话就请看看/var/tmp里的东西好了,呵呵。


五:肉鸡中的隐藏
0:肉鸡哪来?
A:web app漏洞,awstat什么的,没事就留意一下milw0rm.com的webapp部分,出新漏洞了就google hacking一把。
B:ssh or telnet弱口令 没事就找几个A BLOCK扫扫看。推荐xfocus冰河的X-Scan。
C:0day exp ? 这个我就不清楚了。
D:蜜罐,上面三种情况都可能是蜜罐,不过没关系,就做个代理上上网嘛,蜜罐就蜜罐了,只要网速快就行。

1:日志
日志的处理上面在服务端配置部分已经提到了的,小心处理就是,只要你比系统(安全)管理员更XX你就可以玩的下去,其中XX可以用细心,坚韧,不拔等形容词代替。

2:进程、端口和连接
A:sk2一装,用sk2的client进去启动openvpn,动态隐藏进程端口和网络连接
B:adore,貌似要改改才行,不过我暂时没这个需求,sk2已经很爽了。
C:shv5,最近抓到的一个rootkit,替换ELF文件的,很容易被查出来,没啥意思,他的特征是默认有个/usr/lib/libsh目录。

3:ifconfig
这个是最关键的也是最麻烦的,因为一般的人都会ifconfig敲着玩玩的,一不小心就会被发现多了个tun0。。。。呵呵,我想了想办法有两:
A:使用awk or sed脚本替换/sbin/ifconfig,过滤掉tun0相关的输出,但这个比较容易被chkrootkit这样的东西发现,不过即使被人家用 chkrootkit发现了也挺光荣的,至少用chkrootkit的人还稍微比较专业点,总比被人家ifconfig发现了好吧……
B:修改ifconfig的源程序,让他输出的时候不显示tunX设备,这个相对稳妥,因为一般检查ifconfig都是对比那混杂模式而已的,当然还有文件类型。
[root@RH9 root]# rpm -q --whatprovides /sbin/ifconfig
net-tools-1.60-12
查了一下,在这个软件包里,想改的自己可以改改,不想改的就去使用wzt修改的ifconfig程序覆盖掉系统的/sbin/ifconfig文件,这就不会显示出tunX接口了。
这个程序在http://baoz.net或http://xsec.org可以下载。

C:
我们知道rpm是可以自校验的,如果我们换了他的ifconfig,然后我们检查一下,就会发现下面的信息
[root@RH9 root]# rpm -V -f /sbin/ifconfig
S.5....T   /sbin/ifconfig
这个结果告诉我们一个事,ifconfig被篡改了,它的文件大小,MD5和时间都改变了。
现在的想法是修改rpm程序,再替换rpm,因为rpm在RH各版本中变化比较大,特别是RH9为界的,涉及到是否支持NTPL等等问题,并且rpm本身就比较庞大而且是系统的主要组件之一,如果替换的话还不知道会不会引发别的问题,关键是有多少人会rpm -V -a ?反正也就肉鸡嘛,丢了就换一个就是。权衡了一下,暂时还是不用替换rpm的办法,我倒是想修改他的md5数据库,不过我rebuilddb和 initdb了一下,发现md5数据库并没变化:( 哪位高人知道怎么对付rpm的校验麻烦指点一二。

本着早睡早起的原则,是时候睡觉了。

六:TODO
chroot -->已经搞定
tunX的稳妥隐藏 -->已经搞定,thx wzt
对付rpm校验检查

七:参考
http://openvpn.net/howto.html
http://www.securityfocus.com/infocus/1821
Packt.Publishing.OpenVPN.Building.And.Integrating.Virtual.Private.Networks.pdf
Packt.Publishing.Building.And.Integrating.Virtual.Private.Networks.With.Openswan.pdf

八:写在最后
信息安全是一把双刃剑,自己知道了可以尽可能怎么攻击,该怎么攻击,其中会有什么地方可以被发现,才有可能知道了人家想怎么攻击,会怎么攻击,也才有机会发现入侵企图或入侵者,进而把入侵者赶出去或拦在门外,否则被人家root了几年还不知道怎么回事。呵呵,我是不是做XX还立牌坊了?无论怎样那却是不争的事实。
BTW:我正在写《linux后门掠影》,此文对本人接触过的linux下的后门技术进行了比较详细的攻防分析,有兴趣的朋友敬请关注下列站点以获得这些文章的最新版本。
http://baoz.net
http://xsec.org
scriptkid写文,错误多多,还请各位斧正。如果您对本文或者《linux后门掠影》有什么建议或者意见,请联系我
perlish(*)gmail.com or fatb@zzu.edu.cn

##############
Changes
1:去掉server和client的keep alive段,是我对那几个参数的错误理解,事实上这个是server通过每10秒发送icmp包检查client是否在60秒内回应,如果client有防火墙过滤了icmp包,这样client会老掉线的。
2:修改配置防止重放攻击
3:应网友需求,增加修改默认网关的部分
4:应网友需求,增加chroot部分
5:tunX稳妥隐藏搞定

相关文章 热门文章
  • Linux启动 Sendmail速度慢的解决办法
  • Linux系统下防垃圾邮件基本功能
  • Linux启动sendmail速度慢的解决办法
  • Domino V8 在 UNIX/Linux 平台上的安装及其常见问题
  • IBM Lotus Domino,Linux,虚拟化,可伸缩性:不再是相互排斥的术语
  • 19.11 参 考 资 料
  • 19.10 课 后 练 习
  • 19.9 重 点 回 顾
  • 19.8.3 quota与目录转移
  • 19.8.2 关于备份
  • 19.8.1 问题检查
  • 19.7.8 其他设置技巧
  • linux的基本操作(上)
  • Linux系统下应用知识大荟萃
  • GNU GRUB启动管理器
  • 制作基于软盘的Linux系统
  • 网络配置文件快速解读
  • linux的基本操作(下)
  • 剖析Linux系统启动过程
  • DameWare让局域网管理不再繁琐
  • 在Redhat 9下实现双机热备和集群功能
  • LINUX守护进程介绍
  • Redhat advance server 2.1集群的安装与管理
  • Linux必须学会的60个命令-文件处理
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号