CentOS 6.4 x86_64上部署PPTP VPN 服务器的教程

背景介绍:

搭建PPTP VPN Server应该是非常容易的,可身边有不少朋友在参考了一些文章后仍然来求助于我,走了不少的弯路。
因此,觉得自己有必要写一篇文章来讲解一下。毕竟我写文章的习惯是边操作边记录,所以一步一步照着做就可以完成,大家都喜欢看。

相关配置:

OS: CentOS 6.4 x86_64 Minimal

1. 安装EPEL扩展库
# yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

2. 安装PPTP扩展库
# yum install http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

3. 安装PPTP VPN Server
# yum install pptpd

4. 编辑/etc/pptpd.conf
# vim /etc/pptpd.conf

###############################################################################
# $Id: pptpd.conf,v 1.11 2011/05/19 00:02:50 quozl Exp $
#
# Sample Poptop configuration file /etc/pptpd.conf
#
# Changes are effective when pptpd is restarted.
###############################################################################

# TAG: ppp
# Path to the pppd program, default '/usr/sbin/pppd' on Linux
#
#ppp /usr/sbin/pppd

# TAG: option
# Specifies the location of the PPP options file.
# By default PPP looks in '/etc/ppp/options'
#
option /etc/ppp/options.pptpd

# TAG: debug
# Turns on (more) debugging to syslog
#
debug

# TAG: stimeout
# Specifies timeout (in seconds) on starting ctrl connection
#
stimeout 120

# TAG: noipparam
#       Suppress the passing of the client's IP address to PPP, which is
#       done by default otherwise.
#
#noipparam

# TAG: logwtmp
# Use wtmp(5) to record client connections and disconnections.
#
#logwtmp

# TAG: vrf <vrfname>
# Switches PPTP & GRE sockets to the specified VRF, which must exist
# Only available if VRF support was compiled into pptpd.
#
#vrf test

# TAG: bcrelay <if>
# Turns on broadcast relay to clients from interface <if>
#
#bcrelay eth1

# TAG: delegate
# Delegates the allocation of client IP addresses to pppd.
#
#       Without this option, which is the default, pptpd manages the list of
#       IP addresses for clients and passes the next free address to pppd.
#       With this option, pptpd does not pass an address, and so pppd may use
#       radius or chap-secrets to allocate an address.
#
#delegate

# TAG: connections
#       Limits the number of client connections that may be accepted.
#
#       If pptpd is allocating IP addresses (e.g. delegate is not
#       used) then the number of connections is also limited by the
#       remoteip option.  The default is 100.
#connections 100

# TAG: localip
# TAG: remoteip
# Specifies the local and remote IP address ranges.
#
# These options are ignored if delegate option is set.
#
#       Any addresses work as long as the local machine takes care of the
#       routing.  But if you want to use MS-Windows networking, you should
#       use IP addresses out of the LAN address space and use the proxyarp
#       option in the pppd options file, or run bcrelay.
#
# You can specify single IP addresses seperated by commas or you can
# specify ranges, or both. For example:
#
#  192.168.0.234,192.168.0.245-249,192.168.0.254
#
# IMPORTANT RESTRICTIONS:
#
# 1. No spaces are permitted between commas or within addresses.
#
# 2. If you give more IP addresses than the value of connections,
#    it will start at the beginning of the list and go until it
#    gets connections IPs.  Others will be ignored.
#
# 3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
#    you must type 234-238 if you mean this.
#
# 4. If you give a single localIP, that's ok - all local IPs will
#    be set to the given one. You MUST still give at least one remote
#    IP for each simultaneous client.
#
# (Recommended)
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
localip 10.192.168.1
remoteip 10.192.168.100-200
注解:在以上配置文件中,
指定了PPP配置文件路径:option /etc/ppp/options.pptpd
开启了调试日志:debug
设置了建立连接时的超时时间为120秒:stimeout 120
PPTP VPN Server的本地地址,即客户端会自动获取到的网关地址:localip 10.192.168.1
分配给客户端的地址范围:remoteip 10.192.168.100-200

5. 编辑/etc/ppp/options.pptpd

###############################################################################
# $Id: options.pptpd,v 1.11 2005/12/29 01:21:09 quozl Exp $
#
# Sample Poptop PPP options file /etc/ppp/options.pptpd
# Options used by PPP when a connection arrives from a client.
# This file is pointed to by /etc/pptpd.conf option keyword.
# Changes are effective on the next connection.  See "man pppd".
#
# You are expected to change this file to suit your system.  As
# packaged, it requires PPP 2.4.2 and the kernel MPPE module.
###############################################################################

# Authentication

# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
name ec2-tokyo

# Strip the domain prefix from the username before authentication.
# (applies if you use pppd with chapms-strip-domain patch)
#chapms-strip-domain

# Encryption
# (There have been multiple versions of PPP with encryption support,
# choose with of the following sections you will use.)

# BSD licensed ppp-2.4.2 upstream with MPPE only, kernel module ppp_mppe.o
# {{{
refuse-pap
refuse-chap
refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}

# OpenSSL licensed ppp-2.4.1 fork with MPPE only, kernel module mppe.o
# {{{
#-chap
#-chapms
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
#+chapms-v2
# Require MPPE encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
#mppe-40 # enable either 40-bit or 128-bit, not both
#mppe-128
#mppe-stateless
# }}}

# Network and Routing

# If pppd is acting as a server for Microsoft Windows clients, this
# option allows pppd to supply one or two DNS (Domain Name Server)
# addresses to the clients.  The first instance of this option
# specifies the primary DNS address; the second instance (if given)
# specifies the secondary DNS address.
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
ms-dns 172.31.0.2

# If pppd is acting as a server for Microsoft Windows or "Samba"
# clients, this option allows pppd to supply one or two WINS (Windows
# Internet Name Services) server addresses to the clients.  The first
# instance of this option specifies the primary WINS address; the
# second instance (if given) specifies the secondary WINS address.
#ms-wins 10.0.0.3
#ms-wins 10.0.0.4

# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system.  This will have the effect of making the peer appear to other
# systems to be on the local ethernet.
# (you do not need this if your PPTP server is responsible for routing
# packets to the clients -- James Cameron)
proxyarp

# Normally pptpd passes the IP address to pppd, but if pptpd has been
# given the delegate option in pptpd.conf or the --delegate command line
# option, then pppd will use chap-secrets or radius to allocate the
# client IP address.  The default local IP address used at the server
# end is often the same as the address of the server.  To override this,
# specify the local IP address here.
# (you must not use this unless you have used the delegate option)
#10.8.0.100

# Logging

# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
debug

# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
dump

# Miscellaneous

# Create a UUCP-style lock file for the pseudo-tty to ensure exclusive
# access.
lock

# Disable BSD-Compress compression
nobsdcomp

# Disable Van Jacobson compression
# (needed on some networks with Windows 9x/ME/XP clients, see posting to
# poptop-server on 14th April 2005 by Pawel Pokrywka and followups,
# http://marc.theaimsgroup.com/?t=111343175400006&r=1&w=2 )
novj
novjccomp

# turn off logging to stderr, since this may be redirected to pptpd,
# which may trigger a loopback
nologfd

# put plugins here
# (putting them higher up may cause them to sent messages to the pty)

logfile /var/log/pptpd.log
multilink
注解:在以上配置文件中,
定义了PPTP VPN Server的服务名:name ec2-tokyo
定义了加密的规则,如下:
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
定义了推送到客户端的DNS地址:ms-dns 172.31.0.2 (我通常选择PPTP VPN Server所在服务器的默认DNS设置)
允许相同局域网的主机在PPTP VPN Server上互相可见:proxyarp
开启了调试信息:debug
启用了一些通用的设置,如下:
dump
lock
nobsdcomp
novj
novjccomp
nologfd
指定了日志文件的位置:logfile /var/log/pptpd.log
允许把多个物理通道捆绑为单一逻辑信道:multilink

6. 编辑用户账号密码文件/etc/ppp/chap-secrets
# vim /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client server secret   IP addresses
"username"  *       "password"        *
7. 编辑/etc/sysconfig/iptables-config
修改 IPTABLES_MODULES="" 为 IPTABLES_MODULES="ip_nat_pptp" 确保在启动iptables服务时自动加载模块。

8. 编辑/etc/sysconfig/iptables(默认eth0为公网IP地址所在网口)
# vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
-A INPUT -s 10.192.168.0/255.255.255.0 -m state --state NEW -m tcp -p tcp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.192.168.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT
注解:在以上iptables脚本中,
对所有GRE协议的数据包放行;
对TCP端口1723放行;
对整个PPTP VPN的局域网地址段10.192.168.0/24放行;
将整个PPTP VPN的局域网地址段10.192.168.0/24通过NAT映射到eth0网口,实现共享上网;

9. 开启数据转发,编辑/etc/sysctl.conf
修改 net.ipv4.ip_forward = 0 为 net.ipv4.ip_forward = 1
执行 sysctl -p

10. 启动PPTP VPN Server
# /etc/init.d/pptpd restart
# /etc/init.d/iptables restart

11. 设置PPTP VPN Server与iptables服务开机自启动
# chkconfig pptpd on
# chkconfig iptables on

12. 在本地PC上配置客户端并连接PPTP VPN Server

13. 结束

时间: 2024-10-05 17:21:05

CentOS 6.4 x86_64上部署PPTP VPN 服务器的教程的相关文章

CentOS 6.0中如何配置pptp VPN Client和Squid透明网关

目的: 构建一台单网卡Linux网关(透明代理),该网关拨入某海外VPN服务器,客户端设定该网关后,网络出口则为海外VPN服务器,实现加速访问一些网站的目的. 环境信息: 硬件:DELL机器一台,单网卡(IP:10.39.100.253): 机器名:VpnGW 操作系统:CentOS 6.0  Kernel Linux 2.6.32-71.el6.i686 网络环境:局域网防火墙需允许该机器使用PPTP协议拨入某公网IP 安装步骤: 一. 安装操作系统,设定IP,机器名,可关闭防火墙,SELin

在CentOS 7系统建立基于IPSEC上的L2TP VPN服务器

前言:有时候出于安全考虑,对某些地址.端口的访问会做些限制,比如像外出人员访问内网资源时,就不能让直接访问,这时最简易快速的方法就是搭建一台VPN服务器,通常为了稳定我们会选择LINUX系统,在LINUX系统上建立拨号VPN的方式通常有PPTP.L2TP.OPENVPN等. 以下为linux的最新系统centos7/rhel7上的l2tpd服务器配置方法. 本文为在linux的最新系统centos7和rhel7上的l2tpd服务器配置方法. 在Centos7上提供L2TP服务的最新程序包为:xl

Linux服务器上的PPTP VPN搭建全攻略

  PPTP的基本概念 首先,先来理解下什么是 PPTP.PPTP将PPP(Point-to-Point Protocol)帧封装进IP数据报中,通过IP网络如Internet或其他企业专用Intranet等发送.PPTP通过PPTP控制连接来创建.维护.终止一条隧道,并使用通用路由封装GRE(Generic Routing Encapsulation)对PPP帧进行封装.封装前,PPP帧的有效载荷即有效传输数据一般会经过加密.压缩或是两者的混合处理.PPTP协议假定在PPTP客户机和PPTP服

Windows VPN服务器图文教程

  当然VPN的用处远不止于此,比如游戏代理等等.下面介绍一下在Windows下面架设VPN的详细教程.希望对需要的朋友能有所帮助. 首先是准备工作:windows自带防火墙(windows firewall/internet connection sharing(ICS))要停止(或允许1723端口通过);远程注册表服务(remote Registry) 并且开启;server服务(Server)必需开启;router路由服务(Routing and Remote Access)必需开启.如果

Windows Server 2008 R2上部署Exchange Server 2010图文教程_win服务器

这两个产品可谓是09年下半年微软推出的重头产品,均为64位架构,而且其功能和性能远远超出了其早期版本,在此不再对这方面的内容做过多的描述. Windows Server 2008 R2和Exchange Server 2010的结合是"完美"的.对于Exchange Server 2010的前一版本Exchange Server 2007来讲,只能运行在Windows Server 2008操作平台上,因此,想要在Windows Server 2008 R2部署Exchange 看来只

在ubuntu上部署一个samba服务器

今天公司装了一天新电脑,准备把它装成服务器,于是为了方便开发的使用,我在上面部署了一个samba,用来实现window和linux的联系: 具体步骤,我详细的查看了百度,高手云集,以下就是总结了网友的经验,现在记下来,以后有用就不用到处找了. 一. samba的安装: sudo apt-get install samba sudo apt-get install smbfs 二. 创建共享目录: mkdir /home/phinecos/share sudo chmod 777 /home/Sh

在Linux系统上安装配置DNS服务器的教程

  简介 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器.其中域名必须对应一个IP地址,而IP地址不一定有域名.域名系统采用类似目录树的等级结构.域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器.将域名映射为IP地址的过程就称为"域名解析".在Intern

Windows Server 2008中如何部署VPN服务器

部署PPTP VPN服务器建议遵循以下流程: 域控制器中部署Active Directory Domain Services服务.WINS服务以及DHCP服务. 域控制器中创建域用户,并赋予"允许远程访问"的权限. PPTP VPN服务器加入域. PPTP VPN服务器中部署"网络策略和访问服务",配置"路由和远程访问". 客户端计算机创建VPN连接. 部署SSL VPN服务器建议遵循以下流程: 域控制器中部署Active Directory D

linux中RouterOS 配置L2TP VPN服务器步骤

说明: RouterOS服务器IP:172.31.101.80 RouterOS版本:RouterOS V6.15 需求: 在RouterOS服务器上配置PPTP VPN服务器,PPTP VPN客户端拨入网段为:172.31.101.60- 172.31.101.79 操作步骤: 一.登录RouterOS服务器 这里使用winbox登录RouterOS winbox下载:http://download2.mikrotik.com/routeros/winbox/3.0beta3/winbox.e