黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> *NIX网管 >> 文章正文
[推荐]用openvpn快速建立linux下的加密代理
        ★★★★★
用openvpn快速建立linux下的加密代理
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-12-5

四:开搞
程序在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

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


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里的东西好了,呵呵。

上一页  [1] [2] [3] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886