一、 ××× 简介
×××就是虚拟专用网(VirtualPrivateNetwork)的简称,是指在公共网络中建立虚拟的专用网络,使数据通过安全的“加密通道”在公共网络传送的一种技术。由于×××不需要建立或租用专用的数据通信链路,而是通过现有公共网络来实现专用网络的效果,所以称为虚拟专用网。×××作为远程访问和网络互联的高效、低价、安全可靠的解决方案,集灵活性、安全性、经济性及可扩展性于一身,可满足企业分支机构、移动办公等安全通信的需求。×××的应用已经成为网络技术中的热点,在发达国家,×××已成为一项相当普及的网络业务。近年来国内宽带的迅速发展带动了×××及其架构在其平台上的各种高速网络应用,如视频会议、企业ERP/大型分布式海量数据仓库等应用都取得了飞速发展,同时×××的应用反过来也促进了宽带内容的不断丰富,并进一步激活宽带应用。

本文首先简要介绍×××技术,然后从实用角度给出了在Linux操作系统下基于点对点隧道协议PPTP的×××解决方案。

基于PPTP协议的×××服务器的实现

由于开放源代码的Linux操作系统具有安全、稳定和高效等特性,使其迅速成为主要的服务器操作系统之一。下面将介绍Linux操作系统(这里选择与RedHat兼容的Linux发行版)下基于PPTP协议完全免费的×××服务器解决方案。

这里选择了“Poptop-ThePPTPServerforLinux”作为Linux下的×××服务器的软件实现。Poptop是一个开放源代码项目,基于PPTP点对点隧道协议开发,支持Windows95/98/Me/NT/2000/XP及Linux的PPTP客户端。Poptop与微软的加密和认证协议(MSCHAPv2,MPPE40-128bitRC4加密)完全兼容,如果使用RADIUS插件还可以与微软网络环境(LDAP、SAMBA)进行无缝整合。

pptpd是Poptop中最重要的程序,它是Poptop的PPTP守护进程,用来管理所有的基于PPTP隧道协议的×××连接。当pptpd接收到用户的×××接入请求后会自动调用pppd程序去完成相应的认证过程,然后建立×××连接。所以,要使Poptop正常工作必须安装PPP软件套件。下面将详细介绍Poptop的安装、配置和应用。


一、配置环境
Linux:centos6.5
eth0: 192.168.0.124

setenforce 0


二、所需软件
1、kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm (MPPE的内核补丁) wget ftp://bostjan.streznik.org/upload/linux/vpn/kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm
2、dkms-1.12-1.noarch.rpm (http://linux.dell.com/dkms/permalink/
3、pptpd-1.2.1.tar.gz (pptpd服务软件) wget  ftp://ftp.tw.freebsd.org/pub/ports/distfiles/pptpd-1.2.1.tar.gz
注:系统必须安装了PPP服务,否则要单独安装
# rpm -qa | grep ppp
ppp-2.4.5-5.el6.x86_64

三、安装软件
1、首先安装dkms (升级安装)
# rpm -Uvh dkms-1.12-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:dkms                   ########################################### [100%]
  
2、安装mppe
# rpm -Uvh kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm
warning: kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID b56a8bac: NOKEY
Preparing...                ########################################### [100%]
   1:kernel_ppp_mppe        ########################################### [100%]

Creating symlink /var/dkms/kernel_ppp_mppe/0.0.4/source ->
                 /usr/src/kernel_ppp_mppe-0.0.4

DKMS: Add Completed.
Module build for the currently running kernel was skipped
since the kernel source for this kernel does not seem to be
installed.

3、安装pptpd
yum -y install gcc-c++
tar -vxzf pptpd-1.2.1.tar.gz
cd pptpd-1.2.1
./configure
make && make install

四、复制配置文件,配置服务器
cp pptpd-1.2.1/samples/pptpd.conf  /etc/
cp pptpd-1.2.1/samples/chap-secrets  /etc/ppp/
cp pptpd-1.2.1/samples/options.pptpd  /etc/ppp/
ln -s /usr/local/sbin/pptp /sbin/
# mkdir /usr/lib/pptpd/
# ln -s /usr/local/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/   //连接所需的库文件,不然会报错

五、修改配置文件 /etc/pptpd.conf
vim /etc/pptpd.conf
debug                             // 指令打开调试模式,将调试信息发送到系统日志(syslogd),有助于排错
option /etc/ppp/options.pptpd     //指定PPP服务程序 
ppp /usr/sbin/pppd               //ppp指令用来指定pppd程序的具体位置
localip 192.168.10.1            //指定本地IP
remoteip 192.168.10.10-245      //指定分配的远程IP
netmask 255.255.255.0          //指定子网掩码
#logwtmp        //注释

   
六、 配置认证类型/etc/ppp/options.pptpd,好 加密类型, 在这里都不需要,注释即刻。
vim /etc/ppp/options.pptpd
#require-mschap-v2  //在端点进行连接时需要使用微软的 mschap-v2 进行自身验证
#require-mppe-128   //MPPE 模块使用 128 位加密
name pptpd          //vpn 服务器名字
refuse-pap   //拒绝PA P认证
require-chap  //使用CAHP认证
refuse-mschap  //拒绝PAP认证


七、编辑 /etc/ppp/chap-secrets 增加用户登录vpn 使用的账号和密码,该账号和密码都是实时生效的。
 写法:
 用户名       服务名       密码     ip
 # vim /etc/ppp/chap-secrets
wgl     pptpd   123456        192.168.0.234
此时用户就可以登录vpn服务器了,分配的ip地址只有192.168.10.61这一个,也就是说只能一个人同时使用。
如果想多人同时使用,可以将192.168.0.234改为*
这样就不限制这个帐户的使用人数了(同时登录的人数还取决于pptpd服务器的设置,默认40个)
连接之后如果需要用户上网,还需要设置NAT,ip转发
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#net.ipv4.tcp_syncookies = 1   //注释
sysctl -p

八、 增加防火墙策略,方便外放连接。 如果外网不使用 iptables -F ; service iptables save,停止即刻。
iptables -F ; iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to 192.168.10.1 ; service iptables save
//上面的192.168.10.0/24是你要分配给用户的vpn内网ip段,
//192.168.10.1 是你的vpn服务器ip


九、启动服务
pptpd start 
# netstat -nputl | grep pptpd
tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      24869/pptpd
这样vpn 就搭建完成了。


十、用户登录
服务器ip:192.168.10.1
用户:wgl 
密码:123456

 

注:仅在内网测试OK,在外网环境下没有测试