烂泥:CentOS上使用PPTP搭建VPN

本文由秀依林枫提供友情赞助,首发于烂泥行天下

目前公司在IDC机房有一台服务器A(linux系统)。该服务器是对外的有两块网卡,一个是公网,一个是私网的。

而另外一台服务器B必须通过A服务器上的VPN拨连接进来,才能管理服务器B。

但是A服务器上通过iptables策略限制,只能是公司的IP地址才能通过VPN拨号连接进来。

这样就相应的提高了服务器的安全性,下面记录下有关A服务器VPN的安装与配置。

介绍下PPTP的相关知识:

PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术。它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输。PPTP使用TCP(传输控制协议)连接的创建,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩。

本次实验使用的centos 6.5 64bit。

安装之前检查系统兼容性。

检查内核MPPE补丁,确定内核是否支持mppe:

modprobe ppp-compress-18 && echo ok

如果显示ok,内核已经具备了mppe支持。

clip_image001

检查PPP是否支持MPPE,若结果显示0则表示不支持,而30或更大的数字就表示支持。

strings ‘/usr/sbin/pppd’|grep -i mppe |wc -l

clip_image002

安装VPN需要安装三个组件ppp、pptp、pptpd。ppp与pptp我们可以通过yum方式进行安装,如下图:

clip_image003

yum –y install ppp pptp

clip_image004

而pptpd无法通过yum方式进行安装。我们可以到http://pkgs.org/search/pptpd?type=name

这个网站上进行下载相应的安装包,如下图:

clip_image005

clip_image006

注意如果你的系统版本是32bit的就下载i686版本。如果是系统是64bit的下载X86_64版本的。

如何查看linux系统的版本,可以参考我另外一篇文章《烂泥:查看linux系统的版本》。你也可以去度娘下。

pptpd下载完毕后,进行安装,如下图:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm

clip_image007

clip_image008

rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm

以上把需要的三个组件都已经安装完毕,我们接下来进行配置。

pptpd的配置文件在/etc/pptpd.conf,pppp的配置文件在/etc/ppp/ options.pptpd.

切换到/etc的根目录下,编辑pptpd.conf文件。如下图:

clip_image009

在这个文件中,我们需要把logwtmp注释掉,如下图:clip_image010

然后配置本机的内网IP地址,以及客户端拨号进来后所要分配的IP地址。如下图:

clip_image011

具体的相关说明如下:

option /etc/ppp/options.pptpd用来表明pptp加密选项文件路径;

stimeout 120 —-开始PPTP控制连接的超时时间,以秒计;

debug —-把所有debug信息记入系统日志/var/log/messages;

localip —-服务器VPN虚拟接口将分配的IP地址,可设置为与VPN服务器内网地址相同网段的IP,也可以设置为另一网段的IP;

remoteip —-客户端VPN连接成功后将分配的IP地址段,同样可设置为与VPN服务器内网地址相同网段的IP地址段,也可以设置为另一网段的IP地址段;

下面开始配置ppp的配置文件,编辑options.pptpd文件。内容如下:

clip_image012

我们需要注释掉require-mschap-v2和require-mppe-128两行,同时还要启用ms-dns。如下图:

clip_image013

该DNS可以填写公共的DNS服务器,也可以是你自己配置的。注意name pptpd表示VPN服务器名称,该名称我们在下面会使用到。

下面开始配置VPN访问的用户名、密码以及分配的IP地址。/etc/ppp目录下的chap-secrets文件。如下图:

clip_image014

该文件主要包括四个部分。

Client是VPN登录的用户名

Server 是VPN服务器名称,就是options.pptpd文件中的name pptpd。

Secret是VPN用户的密码

IP address是分配给用户的IP地址,其中*表示任意一个IP地址。

此实验我们使用的用户名为ilanni。密码也是ilanni。

注意由于VPN的帐号和密码是明文保存,所以我们要修改该文件的权限为600。

clip_image015

以上是对相关配置的的修改,下面就是对iptables的修改。

开启防火墙的IP转发功能,把net.ipv4.ip_forward赋值为1,如下图:

clip_image016

保存并退出,使用sysctl –p命令使刚刚的配置生效。

clip_image017

配置iptables策略,开启VPN的47和1723端口。如下图:

clip_image018

-A INPUT -p gre -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 47 -j ACCEPT

-A INPUT -p tcp -m state –state NEW -m tcp –dport 1723 -j ACCEPT

如果你想限制固定的IP地址才能拨号VPN,可以进行如下设置:

-A INPUT -p gre -s 100.65.2114.134 -j ACCEPT

-A INPUT -p tcp –dport 47 -s 100.65.2114.134 -j ACCEPT

-A INPUT -p tcp –dport 1723 -s 100.65.2114.134 -j ACCEPT

其中100.65.2114.134是可以拨号VPN的IP地址。

现在开始启动pptpd服务,如下图:

clip_image019

/etc/init.d/pptpd start

现在使用客户端进行连接,要注意VPN连接地址。如下图:

clip_image020

在填写VPN的连接地址时,我们要填写的是VPN服务器的外网IP地址。如下图:

clip_image021

clip_image022

填写VPN登录的用户名和密码。

clip_image023

提示加密类型不对,我们需要修改本地的加密类型。选择VPN的名称,安全—数据加密,选择“可选加密”,如下图:

clip_image024

然后重新连接。

clip_image025

可以看到已经连接进去了。

在VPN服务器上查看多了一张网卡,而且也可以看到VPN客户端获取到的IP地址。如下图:

clip_image026

clip_image027

至此VPN的安装与配置结束。

未经允许不得转载:烂泥行天下 » 烂泥:CentOS上使用PPTP搭建VPN

赞 (5) 打赏

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

支付宝扫一扫打赏

微信扫一扫打赏