当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 在Linux下建立VPN服务器来做加密代理

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 在Linux下建立VPN服务器来做加密代理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 104 ::
收藏到网摘: n/a

一、背景对VPN的分类什么的有个大概的了解,知道是个大概怎么回事,如果不大清楚的朋友可以google一下。本文就不对这些内容进行具体的介绍了。目标系统:RedHatLinux9默认安装。二、需求说白了就是用肉鸡做加密代理。1:对系统尽可能小的改变,包括添加文件和系统日志,因为我们用的是肉鸡。2:是client-->server的模式,而不是net-net的模式,浏览网页而已。3:无论server还是client都要配置方便,简单好用,我们要的是快速。三、选型1:*swanA:ipsecvpn的代表,默认端口tcp/udp500。B:优点:加密强,对网络游戏什么的支持好(我们用不上)。C:缺点:部署麻烦,配置麻烦,关键是他的nat-t,就是nat穿越功能需要打内核补丁,重新编译内核才行,这事在肉鸡做不得。大概的说说swan系列吧,最开始是freeswan,然后大概在2004年停止开发,衍生出openswan和strongswan两个分支,openswan发展的不错,strongswan连个rpm包都没。swan系列分两块,一个是用户空间程序,一个是内核空间程序。内核空间的包括模块和补丁,大概就那么回事。就是说,要做到nat-t,就需要用户空间程序,lkm和内核补丁,需要重新编译内核,这个我们在肉鸡没法做。还有他要用root运行。2:pptpdA:pptpvpn的典型代表,默认端口tcp1723。B:优点:Windows带了他的client,安装也方便,就几个rpm,配置也不难。C:缺点:一拨进去他就会改缺省网关,很烦,要么拨进去自己routeadd/delete几下改改,一直别断开,看个网站犯得着那么麻烦吗。3:openvpnA:SSLVPN的典型代表,默认端口tcp/udp1194。B:优点:简单好装,一个rpm搞定,要压缩的话多一个lzo的rpm包。配置也是简单的很,就生成一个static.key,还可以chroot,并且可以以nobody运行,肉鸡的安全也是很重要的,保管不好就被抢了,不过chroot就没必要了,有兴趣的朋友可以自己搞搞。一下把要的东西都丢到一个地方然后加上配置文件就差不多了,再改改启动脚本。还有就是拨进VPN之后,他不会改你默认网关,免去了折腾的烦恼,我们可以把sf.net的地址加到静态路由去。在server那边只需要开一个udportcp端口就可以了,不怎么需要去动别人的iptables。C:缺点:除了要额外装一个client之外,相对我们的需求来说基本没什么缺点了。四、开始1:安装clientandserver程序
[root@RH9root]#rpm-ivhlzo-1.08-2_2.RHL9.at.i386.rpmwarning:lzo-1.08-2_2.RHL9.at.i386.rpm:V3DSAsignaturE:NOKEY,keyID66534c2bPreparing...###########################################[100%]1:lzo###########################################[100%][root@RH9root]#rpm-ivhopenvpn-2.0.7-1.rh9.rf.i386.rpmwarning:openvpn-2.0.7-1.rh9.rf.i386.rpm:V3DSAsignaturE:NOKEY,keyID6b8d79e6Preparing...###########################################[100%]1:openvpn###########################################[100%]
2:服务端配置
[root@RH9root]#cat>/etc/openvpn/server.confdevtunifconfig10.8.0.110.8.0.2secretstatic.key;usernobody;groupnobodyport3389;comp-lzo;;keepalivekeepalive1060;ping-timer-rempersist-tunpersist-key;no-log;verb0status/dev/nulllog/dev/nulllog-append/dev/null

server配置完毕。

3:客户端配置安装openvpn-2.0.9-gui-1.0.3-install.exe,然后打开“开始”--“程序”--“openvpn”--“GenerateastaticOpenVPNkey”,这会在C:\ProgramFiles\OpenVPN\config下生成一个叫key.txt的文件,把他重命名为static.key。然后把这个文件复制到linux肉鸡的/etc/openvpn/static.key去,最后在C:\ProgramFiles\OpenVPN\config目录下创建一个叫client.ovpn的文件,内容如下
remote肉鸡的IPdevtunifconfig10.8.0.210.8.0.1secretstatic.keyport3389verb3comp-lzokeepalive1060ping-timer-rempersist-tunpersist-key

client配置完毕。注意,无论是服务端还是客户端的IP,都不要和系统有的IP段冲突,另外改了端口需要在clientandserver都改一致。4:启动并连接A:启动服务端
[root@RH9root]#/etc/init.d/openvpnstartStartingopenvpn:[OK]

这个时候理论上会发现多了一个接口,等会我们要收拾这个口子。
[root@RH9root]#ifconfigtun0tun0Linkencap:Point-to-PointProtocolinetaddr:10.8.0.1P-t-P:10.8.0.2Mask:255.255.255.255UPPOINTOPOINTRUNNINGNOARPMULTICASTMTU:1500Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:100RXbytes:0(0.0b)TXbytes:0(0.0b)[root@RH9root]#netstat-an|grep3389udp000.0.0.0:33890.0.0.0:*

这个时候理论上会起了一个3389的udp口,如果这两个事情都有了,那就好了,一般除了RP有WT之外,这里基本都不怎么可能出现错误。如果有错误的话,就把上面的
verb0status/dev/nulllog/dev/nulllog-append/dev/null

改成
verb9status/usr/lib/0log/usr/lib/1log-append/usr/lib/1
然后重新启动openvpn服务并查看日志,注意,这个时候messages会有日志,调试完毕记得删除/usr/lib/0/usr/lib/1。

B:启动客户端“开始”--“程序”--“openvpn”--“OpenVPNGUI”,连接服务端,点右下角红色的图标--connect。图标变绿,就是成功连接并分配到地址了,注意让你的防火墙通过。如果没变绿色,从那个图标那viewlog,如果发现不到问题,就把client的配置文件的verb设置为9,重新连接,再看日志,再google。C:检查连接:在client里看到有这么个信息
Ethernetadapter本地连接4:Connection-specificDNSSuffix.:IPAddress............:10.8.0.2SubnetMask...........:255.255.255.252DefaultGateway.........:C:\>ping10.8.0.1Pinging10.8.0.1with32bytesofdata:Replyfrom10.8.0.1:bytes=32time=7msTTL=64
连接没有问题,这个时候就根据个人的喜好,是改默认网关还是只根据目的地址routeadd一下了,如果肉鸡速度快的话改默认网关吧。
C:\>routedelete0.0.0.0C:\>routeadd0.0.0.0mask0.0.0.010.8.0.1-->注意,是vpnserver的tun0的地址。

如果DNS服务器不在内网的话,自己再routeadd一次DNS的地址就OK,如果想长期生效,可在routeadd语句最后加-p参数。D:服务端打开转发做个nat,但注意一下eth0需要是可以去外网的接口,否则等会数据走不出去,如果肉鸡是单接口的话就不需要担心。
[root@RH9root]#iptables-tnat-APOSTROUTING-s10.8.0.0/24-oeth0-jMASQUERADE

再看看转发开了没
[root@RH9root]#sysctl-a|grepnet.ipv4.ip_forwardnet.ipv4.ip_forward=0

我们把他打开
[root@RH9root]#sysctl-wnet.ipv4.ip_forward=1
5:找错VPN一般出问题就只有三个地方,client的防火墙,server的防火墙,和转发开关是否打开,所以我们在服务端抓抓包就完全可以找到出问题的地方。ipsecpptp都可以这么找错。A:在server的tun0口抓一切包,以检测client-->server是否连通,当然,一定是连通的,否则那图标就不会是绿色了。
[root@RH9root]#tcpdump-n-itun0tcpdump:listeningontun0
B:在server的eth0口抓目标地址包,以检测转发是否有问题。
[root@RH9root]#tcpdump-n-ieth0dsthostbaoz.nettcpdump:listeningoneth0
C:这个时候我们telnet一下baoz.net看看
C:\>telnetbaoz.net

两边都看到有包就对了。如果有一边看不到包,就自己折腾一下好了。看看一路过来是不是都没搞错。

五、肉鸡中的隐藏1:肉鸡哪来?A:webapp漏洞,awstat什么的,没事就留意一下milw0rm.com的webapp部分,出新漏洞了就googlehacking一把。B:sshortelnet弱口令,没事就找几个ABLOCK扫扫看。推荐xfocus冰河的X-Scan。C:0dayexp?这个我就不清楚了。D:蜜罐,上面三种情况都可能是蜜罐,不过没关系,就做个代理上上网嘛,蜜罐就蜜罐了,只要网速快就行。2:日志日志的处理上面在服务端配置部分已经提到了的,小心处理就是。3:进程、端口和连接A:sk2一装,用sk2的client进去启动openvpn,动态隐藏进程端口和网络连接。B:adore,大概要改改才行,不过我暂时没这个需求,sk2已经很不错了。C:shv5,最近抓到的一个rootkit,替换ELF文件的,很容易被查出来,没啥意思,他的特征是默认有个/usr/lib/libsh目录。4:ifconfig这个是最关键的也是最麻烦的,因为一般的人都会ifconfig敲着玩玩的,一不小心就会被发现多了个tun0。呵呵,我想了想办法有两:A:使用awkorsed脚本替换/sbin/ifconfig,过滤掉tun0相关的输出,但这个比较容易被chkrootkit这样的东西发现,不过即使被人家用chkrootkit发现了也挺光荣的,至少用chkrootkit的人还稍微比较专业点,总比被人家ifconfig发现了好。B:修改ifconfig的源程序,让他输出的时候不显示tunX设备,这个相对稳妥,因为一般检查ifconfig都是对比那混杂模式而已的,当然还有文件类型。
[root@RH9root]#rpm-q--whatprovides/sbin/ifconfignet-tools-1.60-12

查了一下,在这个软件包里,想改的自己可以改改,不想改的就去找找有没人改好的现成的了,就当留给我和各位有兴趣的朋友的家庭作业好了。六、写在最后信息安全是一把双刃剑,自己知道了可以尽可能怎么攻击,该怎么攻击,其中会有什么地方可以被发现,才有可能知道了人家想怎么攻击,会怎么攻击,也才有机会发现入侵企图或入侵者,进而把入侵者赶出去或拦在门外,否则被人家root了几年还不知道怎么回事。

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