基于CentOS5的Linux下pptp和openvpn的搭建及配置
2012-06-04 07:03:02 来源:WEB开发网根据我目前掌握的信息来看,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
接着,我们下载pptp的安装包,由于我的系统是64位的CentOS系统,因此,要下载64位的软件包:
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 了。
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
更多精彩
赞助商链接