CentOS上搭建基于PPTP协议的VPN服务的流程

   关于PPTP

  点对点隧道协议(英语:Point to Point Tunneling Protocol,缩写为PPTP)是实现虚拟专用网(VPN)的方式之一。PPTP使用传输控制协议(TCP)创建控制通道来发送控制命令,以及利用通用路由封装(GRE)通道来封装点对点协议(PPP)数据包以发送数据。这个协议最早由微软等厂商主导开发。

  PPTP的协议规范本身并未描述加密或身份验证的部分,它依靠点对点协议(PPP)来实现这些安全性功能。因为PPTP协议内置在微软视窗系统家族的各个产品中,在微软点对点协议(PPP)协议堆栈中,提供了各种标准的身份验证与加密机制来支持PPTP。 在微软视窗系统中,它可以搭配PAP、CHAP、MS-CHAP v1/v2或EAP-TLS来进行身份验证。通常也可以搭配微软点对点加密(MPPE)或IPSec的加密机制来提高安全性。

  在Windows或Mac OS平台之外,Linux与FreeBSD等平台也提供开放源代码的版本。

  PPTP以通用路由封装(GRE)协议向对方作一般的点对点传输。通过TCP1723端口来发起和管理GRE状态。因为PPTP需要2个网络状态,因此会对穿越防火墙造成困难。很多防火墙不能完整地传递连接,导致无法连接。 在Windows或Mac OS平台,通常PPTP可搭配MSCHAP-v2或EAP-TLS进行身份验证 ,也可配合微软点对点加密(MPPE)进行连接时的加密。

  与PPTP相似的另一种常见的VPN协议是第二层隧道协议(L2TP)。

  搭建步骤

  1、检查服务器是否有必要的支持。如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:

  代码如下:

  #modprobe ppp-compress-18 && echo ok

  这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:

  代码如下:

  #cat /dev/net/tun

  如果这条指令显示结果为下面的文本,则表明通过:

  代码如下:

  cat: /dev/net/tun: File descriptor in bad state

  上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请你的服务商来解决这个问题。

  2、安装ppp和iptables。默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有。我们输入下面的命令来确认,如果没有则进行安装,有的话系统不会做任何动作:

  #yum install -y ppp iptables

  3、安装pptp。这个软件在yum源里是没有的,我们需要手动下载。我们先切换到tmp目录:

  #cd /tmp

  然后执行下面的命令来下载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位的那条指令。注意不要搞错了。

  接下来安装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位系统使用)

  4、配置pptp。首先我们要编辑/etc/pptpd.conf文件:

  代码如下:

  #vim /etc/pptpd.conf

  找到“locapip”和“remoteip”这两个配置项,将前面的“;”注释符去掉,更改为你期望的IP段值。localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间。这里我们使用pptp默认的配置:

  代码如下:

  localip 192.168.0.1

  remoteip 192.168.0.234-238,192.168.0.245

  注意,这里的IP段设置,将直接影响后面的iptables规则添加命令。请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了。

  接下来我们再编辑/etc/ppp/options.pptpd文件,为VPN添加Google DNS:

  代码如下:

  #vim /etc/ppp/options.pptpd

  在末尾添加下面两行:

  代码如下:

  ms-dns 8.8.8.8

  ms-dns 8.8.4.4

  5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:

  代码如下:

  #vim /etc/ppp/chap-secrets

  在这个文件里面,按照“用户名 pptpd 密码 *”的形式编写,一行一个账号和密码。比如添加用户名为test,密码为1234的用户,则编辑如下内容:

  代码如下:

  test pptpd 1234 *

  6、修改内核设置,使其支持转发。编辑/etc/sysctl.conf文件:

  代码如下:

  #vim /etc/sysctl.conf

  将“net.ipv4.ip_forward”改为1,变成下面的形式:

  代码如下:

  net.ipv4.ip_forward=1

  保存退出,并执行下面的命令来生效它:

  代码如下:

  #sysctl -p

  7、添加iptables转发规则。

  代码如下:

  iptables -t nat -A POSTROUTING -s 192.168.85.0/24 (PPTP客户端IP)-j SNAT --to 192.168.0.105(要转发出公网的IP)

  然后我们输入下面的指令让iptables保存我们刚才的转发规则,以便重启系统后不需要再次添加:

  代码如下:

  #/etc/init.d/iptables save

  然后我们重启iptables:

  代码如下:

  #/etc/init.d/iptables restart

  8、重启pptp服务。输入下面的指令重启pptp:

  代码如下:

  #/etc/init.d/pptpd restart

  现在你已经可以连接自己的VPN并浏览网页了。不过我们还需要做最后的一步。

  9、设置开机自动运行服务。我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了。当然你不需要自动启动服务的话可以忽略这一步。输入指令:

  代码如下:

  #chkconfig pptpd on

  #chkconfig iptables on

  这样就大功告成了

时间: 2024-11-03 10:49:40

CentOS上搭建基于PPTP协议的VPN服务的流程的相关文章

ISA2006如何配置基于PPTP协议VPN

在企业应用中,VPN应该是用的最多的一种.特别是在公司拥有分部的情况下,可见VPN在企业中的应用是多么的广泛.当然,实现VPN的功能的方式有很多,公司可以购买VPN硬件设备,也可以使用专门的Cisco路由器来实现这特有的功能.在中小型企业里,源于资金的考虑,更多的可能会使用基于软件的VPN功能.(PS:若不是朋友要求,我想本文可能就没有了...呵呵呵) 现在我们来看看如何来配置ISA VPN,以及如何来配置基于L2TP的VPN功能(高安全性) 环境描述: 我们就以为例吧!一个VPN客户端希望通过

CentOS上搭建PHP服务器环境的步骤与方法_服务器其它

本文实例讲述了CentOS上搭建PHP服务器环境的步骤与方法.分享给大家供大家参考,具体如下: 安装apache: yum install httpd httpd-devel 启动apache: /etc/init.d/httpd start 此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口 安装mysql: yum install mysql mysql-server 启动mysql: /etc/init.d/mysqld start 安装

在CentOS上配置基于主机的入侵检测系统(IDS)

在CentOS上配置基于主机的入侵检测系统(IDS) 所有系统管理员想要在他们生产服务器上首先要部署的安全手段之一,就是检测文件篡改的机制--不仅仅是文件内容,而且也包括它们的属性. AIDE ("高级入侵检测环境"的简称)是一个开源的基于主机的入侵检测系统.AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整性,这些文件属性包括权限.文件类型.索引节点.链接数.链接名.用户.组.文件大小.块计数.修改时间.添加时间.创建时间.acl.SELinux安全上下文

搭建基于Spring Cloud的微服务应用

在2017云栖大会-上海峰会上阿里云技术专家李斌做了题为<搭建基于Spring Cloud的微服务应用>的分享.随着时代的发展,用户对于应用服务的要求越来越高,单体应用已经无法满足用户.这就使得微服务应用顺势而生,利用Spring Cloud为用户提供更好的微服务应用.

CentOS 上搭建 PHP7 开发测试环境

最近公司增加了一台测试用的服务器,当然因为只是测试用,所以决定所有东西都装到一个服务器上,用来我们自己撸代码,发测试版功能,做点小实验神码的,等等等等--反正就是方便用吧,所以自己来试了下搭建一台完全的 LAMP 开发/测试环境,当然同样踩到了无数的坑. 准备开始吧! Step.1 准备服务器 那第一步,我们先搞个服务器吧,搞啥服务器呢,既然是测试用那就搞点不要钱的,或者方便的吧,这里就推荐大家试试用 AWS 或者自己机器上搭建虚拟机,比如 Vagrant 这样的开发平台也是可以的,这里,我们就

在CentOS上搭建LAMP+vsftpd环境的简单指南_php技巧

VPS 可以看成是一台只有你一个人使用的服务器(事实上它是一个虚拟机),你可以在上面安装任何软件,拥有最大的权限.正所谓权限越大,责任越大,你需要自行安装 Web 服务器,数据库,PHP,还有其它一些维护工作都要自行处理. 现在大多数 VPS 提供的操作系统都是 Linux,而且是没有图形界面的的,只提 SSH 命令行接口,所以需要会一些简单的 Linux 命令行.Linux 又有众多的发行版,最好的发行版可能是 Redhat,但它是商业软件,不能免费使用,不过好在它还有一个社区版本 CentO

CentOS上搭建Git服务器步骤详解

Git是一个分布式版本控制软件,原来是linux内核开发者Linus Torvalds为了更好地管理linux内核开发而创立的.发展至今,Git已经成为了一个相当好用的版本管理工具.相比于SVN,如果想要保存一些微小的修改也必须得提交服务器保存才可以,这样使服务器的版本号过多,而Git解决了这个问题,一些小的修改只在本地提交即可,只需最后修改完成后再提交服务器.正是由于这样的便捷性,现在越来越多的社区项目都开始使用Git来取代SVN之类较为传统的版本管理工具进行开发. . 使用CentOS搭建G

在darwin上使用基于SecurID的Cisco VPN

借鉴了@jqlblue的这篇 http://blog.sina.com.cn/s/blog_4c6b0c8e01017dev.html 步骤: 1 (如果已经知道组密码了,就直接忽略) 假设你在windows上已经登录过 进入路径如:C:\Program Files\Cisco Systems\VPN Client\Profiles 打开这个文件夹下的文件会看到诸如 enc_GroupPwd=54594DA6120312D2606E5734A17F0061100F77D19C6AB5685582

nginx搭建基于http协议的视频点播服务器

1,于由自己的服务器上已经安装好nginx(具体安装方法见我的另一篇文章,Linux中安装nginx),所以不再安装.   2,下载nginx_mod_h264_streaming-2.2.7.tar.gz(自己在网上搜吧).   3,安装pcre,先看有没有安装.            [root@localhost vsftpd]# rpm -qa pcre     pcre-7.8-7.el6.i686        已经安装(上篇加rtmp模块的时候已经安装了)   4,解压nginx_