> Linux服务器 > VPN >

Centos操作系统下 VPN服务器(PPTP)server的安装部署

   VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。VPN可以通过特殊的加密的通讯协议 在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。
      现在的VPN服务主要是为游戏和办公游戏是联结一个外国服务器 让你以外国服务器的网络身份来接触网络办公是让你联结上单位局域网的某个电脑 让你以他的身份出现在单位里 当然这里面还得细分 大致就是这么回事。
     去年考网络工程师考试的时候曾经系统地学习过VPN以虚拟专用网原理,以及它的搭建方法。不过为了应付考试,只是学习了一些理论知识,并未实践过,今天自己动手操作了一回。记录下来。
      下面介绍自己的安装过程:
一、检查服务器是否有必要的支持。
如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
#modprobe ppp-compress-18 && echo ok
这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
#cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请你的服务商来解决这个问题
Cent os 5.5内核版本在2.6.15以上,因此下面检查可以忽略:
检查PPP是否支持MPPE
用以下命令检查PPP是否支持MPPE:
#strings '/usr/sbin/pppd' |grep -i mppe | wc --lines
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。
二、安装ppp和iptables。
默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有。我们输入下面的命令来确认,如果没有则进行安装,有的话系统不会做任何动作:
#yum install -y ppp iptables
三、安装pptp。
这个软件在yum源里是没有的,我们需要手动下载。我们先切换到tmp目录:
#cd /tmp  www.2cto.com 
然后执行下面的命令来下载pptp安装包:
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
如果你的CentOS是32位的,则执行32位的那条指令;如果是64位的CentOS,则执行64位的那条指令。注意不要搞错了,搞错后面会报错客户端连接不上619或者800,并提示pptpd-logwtmp.so找不到。
接下来安装pptp,同样分32位和64位系统:
#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
四、配置pptp。
首先我们要编辑/etc/pptpd.conf文件:
#vim /etc/pptpd.conf
找到“locapip”和“remoteip”这两个配置项,将前面的“;”注释符去掉,更改为你期望的IP段值。localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间。这里我们使用pptp默认的配置:
localip 192.168.1.241
remoteip 192.168.20.9-238
注意,这里的IP段设置,将直接影响后面的iptables规则添加命令。请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了。
接下来我们再编辑/etc/ppp/options.pptpd文件,为VPN添加Google DNS:
#vim /etc/ppp/options.pptpd
在末尾添加下面两行:
一般只需修改ms-dns,分配给VPN客户端的DNS服务器IP地址
name pptpd   www.2cto.com 
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000 72个小时空闲断开
ms-dns 8.8.8.8
五、设置pptp VPN账号密码。
我们需要编辑/etc/ppp/chap-secrets这个文件:
#vim /etc/ppp/chap-secrets
在这个文件里面,按照“用户名 pptpd 密码 *”的形式编写,一行一个账号和密码。比如添加用户名为test,密码为1234的用户,则编辑如下内容:
test pptpd 1234 *(指定分配给test用户的ip)
 
六、修改内核设置,使其支持转发。
编辑/etc/sysctl.conf文件:  www.2cto.com 
#vim /etc/sysctl.conf
将“net.ipv4.ip_forward”改为1,变成下面的形式:
net.ipv4.ip_forward=1
保存退出,并执行下面的命令来生效它:
#sysctl -p
七、添加iptables转发规则。
经过前面的6个步骤,我们的VPN已经可以拨号了,但是还不能访问任何网页。最后一步就是添加iptables转发规则了,输入下面的指令:
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
需要注意的是,这个指令中的“192.168.0.0/24”是根据之前的配置文件中的“localip”网段来改变的,比如你设置的 “10.0.0.1”网段,则应该改为“10.0.0.0/24”。此外还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号,不然是上不了网的!
然后我们输入下面的指令让iptables保存我们刚才的转发规则,以便重启系统后不需要再次添加:
#/etc/init.d/iptables save
然后我们重启iptables:
#/etc/init.d/iptables restart
八、重启pptp服务。
输入下面的指令重启pptp:
#/etc/init.d/pptpd restart
现在你已经可以连接自己的VPN并浏览网页了。不过我们还需要做最后的一步。
九、设置开机自动运行服务。
我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了。当然你不需要自动启动服务的话可以忽略这一步。输入指令:
#chkconfig pptpd on   www.2cto.com 
#chkconfig iptables on
 
这上面一段安装过程是在网上找的,原文如下:
http://www.2cto.com/os/201205/130743.html
VPN的安装教程网络上很多很多,需要自己动手去实践一下才能理解和明白。
 
整个过程我都已经安装完成了,并且在局域网内部能够访问VPN服务器,不过由于没有公司路由器的使用权限,不能做端口映射了,实践就到此为止吧。以后有机会要把VPN服务器放到公网上去试一下,或者要到路由器里做完端口映射再试一下远程访问。
 
下面是自己安装中碰到的一些问题,
一.注意centos的防火墙iptables的设置
二.由于是第一次装VPN,对VPN也不是特别了解,我是在自己虚拟机上试着装VPN,装完之后,在局域网内能访问到,局域网外部访问不到VPN服务器,因为VPN服务器一般要放到公网上,要有公网IP或者域名以供访问,如果像我这样放在内网的话,那必须在路由器上或者交换机上做端口映射,将路由器上的1723和47端口映射到内网中我的虚拟机上,外部通过访问路由器的公网IP来访问我虚拟机上的VPN服务器。
(责任编辑:IT)