CentOS 5.3 下快速安装配置 PPTP VPN 服务器

88971730 2010-01-14

   VPN的英文全称是“Virtual PrivateNetwork”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。

  虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。

PPTP全称为PointtoPointTunnelingProtocol--点到点隧道协议,是VPN协议中的一种。

一、CentOS5.3下PPTPVPN服务器安装

  1、安装相关软件
yum install -y ppp iptables

wgethttp://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

rpm-ivhpptpd-1.3.4-1.rhel5.1.i386.rpm

Kernelversion2.6.15orabovehasMPPEbuilt-inwhichisrequiredforMSCHAPv2.CentOS5kernelversionis2.6.18thatmeansyoudonotneedtoinstalltheMPPEmodule.

CentOS5comeswithppp-2.4.4-1.el5anditisMPPEsupportenabled.

RunthecommandbelowtotestifyourkernelsupportsMPPEandyoushouldgetareturnan“ok”:-

#modprobeppp-compress-18&&echook

检查PPP是否支持MPPE

用以下命令检查PPP是否支持MPPE:

#strings'/usr/sbin/pppd'|grep-imppe|wc--lines

如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。

2、配置文件编写

  ①、配置文件/etc/ppp/options.pptpd
vi /etc/ppp/options.pptpd

输入以下内容:

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

②、配置文件/etc/ppp/chap-secrets

mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bakvi /etc/ppp/chap-secrets

输入以下内容

# Secrets for authentication using CHAP

#clientserversecretIPaddresses

myusername      pptpd   mypassword               *

注:这里的myusername和mypassword即为PPTPVPN的登录用户名和密码


③、配置文件/etc/pptpd.conf

mv /etc/pptpd.conf /etc/pptpd.conf.bakvi /etc/pptpd.conf

输入以下内容:

option /etc/ppp/options.pptpd

logwtmp

localip192.168.9.1

remoteip 192.168.9.11-30

注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP


④、配置文件/etc/sysctl.conf

mv /etc/sysctl.conf /etc/sysctl.conf.bakvi /etc/sysctl.conf

修改以下内容:

net.ipv4.ip_forward = 1

保存、退出后执行:

/sbin/sysctl -p

3、启动PPTP VPN 服务器端:

Run the following command to enable the pptpd to start automatically in runlevel 3 and 5 as below: -

chkconfig--level35pptpdon

/sbin/service pptpd start

4、启动iptables:

/sbin/service iptables start/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE

5、打开防火墙端口

将Linux服务器的1723端口和47端口打开,并打开GRE协议。

#/sbin/iptables-AINPUT-ptcp--dport1723-jACCEPT

#/sbin/iptables-AINPUT-ptcp--dport47-jACCEPT

#/sbin/iptables-AINPUT-pgre-jACCEPT

二、Linux的客户端连接到该vpn

在centos下搭建了一个基于pptpd的vpn,Linux的客户端连接到该vpn的配置方法:

1.确认内核是否在2.6.15之后,如果早于该版本,需要安装MPPE

2.确认是否安装ppp

#rpm-qa|grepppp

如果没有,需要安装ppp的rpm,CentOS光盘中有

#rpm-ivhppp-2.4.4-2.el5.i386.rpm

3.安装客户端pptd(http://pptpclient.sourceforge.net)

#rpm-ivh./pptp-1.7.2-3.rhel5.i386.rpm

4.配置

#pptpsetup--createtunnelname--serverxxx.xxx.xxx.xxx--username用户名--password密码--encrypt

5.连接

#pppdcalltunnelname

6.断开

#killallpppd

注意事项:

在处理路由的时候采用clienttolan方式,需要增加对方lan的路由或者目标网络的路由.

#routeadd-net192.168.39.0netmask255.255.255.0devppp0

ppp0是pptp连接的名字,如果不确定可以使用ifconfig命令查看

7.启动脚本

#!/bin/bash

#pptp.sh

E_NOARGS=65

if[-z"$1"]||["$#"-ne1];then

echo"Usage:`basename$0`start|stop"

exit$E_NOARGS

fi

case"$1"in

start)

cd/etc/ppp/peers/;pppdcallvpn

echo"pppdstartSuccess!!!"

;;

stop)

killallpppd

echo"pppdendSucess!!!"

;;

*)echo"Usage:`basename$0`start|stop"

;;

esac

相关推荐