基于CentOS5的Linux下PPTP和OpenVPN的搭建及配置

寒星孤照 2012-06-04

根据我目前掌握的信息来看,Linux下通用的有两种VPN技术,分别为pptp和openvpn,pptp,点对点的隧道协议,是一种实现虚拟专用网络的方法,它使用用于封装的PPP数据包的TCP及GRE隧道,远程接入对端网络。这种VPN的好处在于易安装,直接可以在客户端以建立VPN虚拟连接的方式进行操作,同时也支持无线设备,如Iphone,Ipad等设备。PPTP的劣势在于他对防火墙的穿透力不是太强,有些网络接入商会屏蔽其1723端口,因此客户端会出现诸如619等错误的信息报告;同时由于其使用密码作为密钥,它的数据流载有可获取的混编密码,如果中间人拦截到了数据流破译了密码,那么他就可以破译你的信息了,当然,这是一项很难的技术。 pptp的劣势就是OpenVPN 的优势之处,pptp以路由器或桥接配置和远程访问设备方式实现虚拟网专用连接,通过nat转换的方式实现通信,具有穿越防火墙的功能,当然,他也不是全能的,目前openvpn不支持任何移动设备。

好,那现在开始说一下这两种VPN各自的安装方法

一:pptp的安装:

PPTP需要ppp和iptables这两项服务的支持,首先我们用yum来安装这两项服务:

yum install ppp iptables -y

wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm

直接 rpm -ivh  pptpd-1.3.4-2.rhel5.1.x86_64.rpm  进行安装

默认情况下,ppp会安装在 /etc 目录下,其配置文件为:/etc/pptpd.conf 其他相关文件会放在 /etc/ppp 目录下

首先我们修改主配置文件 pptpd.conf   运行命令   vim /etc/pptpd.conf

在这个文件中,与我们配置相关的是 localip   和  remmoteip  这两项,其中 localip 是 pptp 服务器服务端的ip,你可以根据你的实际情况进行配置,remoteip是你连接pptp服务器时,客户端所获得的IP,在这里你可以定义一个IP段,比如我的定义如下:

localip 114.56.23.16

remoteip 10.10.10.100-120

好了,pptpd.conf的配置到此结束,下面我们配置一下 /etc/ppp/ 目录下的相关文件

vim /etc/ppp/options.pptpd

找到ms-dns配置项,这里指定的是客户端在与pptp服务器连通之后,获取到的DNS地址,我的配置如下:

ms-dns 202.106.0.20

ms-dns 8.8.8.8

最后,我们 vim /etc/ppp/chap-secrets 这里配置的是授权用户的信息,它的配置格式为:

name  pptpd   keys   *

其中name和keys即是你定义的授权用户的用户名和密码,pptpd表示采用pptp协议连接,后面的 * ,表示客户端连接以后,获取到的地址为随机的,(就是你在 options.pptpd 文件中定义的IP段中的一个),当然你也可以单独指定一个IP,以下是我的配置信息:

nanxia  pptpd  nanxia@1985  *

好了,至此,我们该定义的基本上已经定义完了,现在需要做的是在服务端进行一个iptables nat 转换。

首先开启服务器的 ip_forward , 你可以 sysctl -w net.ipv4.ip_forward = 1 , 也可以直接修改 /etc/sysctl.conf文件,将 net.ipv4.ip_forward = 0 改为 = 1 ; 保存并退出,执行 sysctl -p 这个命令,使设置生效。

然后我们进行 iptables 的设置,分别执行以下四条命令:

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT (pptp默认的服务端口为 1723 ,这里在防火墙中开放)

iptables -A INPUT -p tcp --dport 47 -j ACCEPT (47 是GRE的协议号,VPN需要GRE协议的支持)

iptables -A INPUT -p gre -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j NAT --to 114.56.23.16 (这里将客户端获取到的地址做一个映射,目的是为了使客户端在连接服务器之后,能够上网)

完成之后,执行 /etc/init.d/iptables save ,  /etc/init.d/iptables  restart 重启防火墙

最后,/etc/init.d/pptpd start , 启动 pptpd 服务。

客户端你可以建立一个VPN虚拟连接,地址输入114.56.23.16这个地址,然后输入用户名,密码,就可以连接openVPN 了。

相关推荐

wenshifang / 0评论 2010-04-14