×××属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网服务器资源,这种访问就属于远程访问。

在传统的企业网络配置中,要进行远程访问,传统的方法是租用DDN数字数据网)专线或帧中继,这样的通讯方案必然导致高昂的网络通讯和维护费用。对于移动用户(移动办公人员)与远端个人用户而言,一般会通过拨号线路(Internet)进入企业的局域网,但这样必然带来安全上的隐患。

让外地员工访问到内网资源,利用×××的解决方法就是在内网中架设一台×××服务器。外地员工在当地连上互联网后,通过互联网连接×××服务器,然后通过×××服务器进入企业内网。为了保证数据安全,×××服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上×××使用的是互联网上的公用链路,因此×××称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了×××技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用×××访问内网资源,这就是×××在企业中应用得如此广泛的原因。





环境:阿里云


外网IP:eth1:47.x.x.x 


内网IP:eth0:10.24.126.24


一.编译安装:


1.需要ppp、libcap、libcap-devel ncurses-devel RPM 包支持,如果没有请安装 libcap、libcap-devel RPM 包


yum install -y libcap libcap-devel ncurses-devel ppp


20分钟教你在linux下搭建vpn_vpn


2.下载pptpd的rpm包


新建src文件夹



进入src目录


cd src



下载pptpd


wget -c http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.i386.rpm


20分钟教你在linux下搭建vpn_pptpd_02

3.安装rpm包


rpm -ivh ppthp-1.4.0-1.rhe15.i386 出现下面错误的解决办法


20分钟教你在linux下搭建vpn_vpn_03



ppp的版本问题,用以下的方法安装即可


rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm


20分钟教你在linux下搭建vpn_vpn_04

然后yum自动安装pptpd:


yum install  -y pptpd


20分钟教你在linux下搭建vpn_pptpd_05





二.修改配置文件


1.先把配置文件拷贝一份


cp /etc/ppp/options.pptpd  /etc/ppp/options.pptpd.bak


在打开配置文件


vim /etc/ppp/options.pptpd


ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段

ms-dns 8.8.8.8

ms-dns 8.8.4.4


20分钟教你在linux下搭建vpn_pptpd_06


2.拷贝其他配置文件


cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak


修改配置文件


vim /etc/ppp/chap-secrets


添加用户名 密码 和ip


client       server          secret        ip address


testuser    pptpd           Rise123    *


20分钟教你在linux下搭建vpn_iptables_07




"client" 是Client端的×××用户名
"server"对应的是×××服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成"*"号来表示自动识别服务器;
"secret"对应的是登录密码

"IP addresses"对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号.



3.继续拷贝配置文件


cp /etc/pptpd.conf  /etc/pptpd.conf.bak


修改配置文件


vim /etc/pptpd.conf


开启ip的参数


20分钟教你在linux下搭建vpn_pptpd_08



4.修改配置文件


vim /etc/sysctl.conf

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1


20分钟教你在linux下搭建vpn_vpn_09

保存后执行文件


/sbin/sysctl -p


5.启动pptpd服务并设置为开机启动


/sbin/service pptpd start


查看端口


netstat -lnpe |grep pptpd


20分钟教你在linux下搭建vpn_vpn_10


chkconfig pptpd on



5.将Poptop的运行情况加入系统日志

编辑syslogd的配置文件vi /etc/syslog.conf,增加如下一行命令: 


daemon.debug  /var/log/pptpd.log


20分钟教你在linux下搭建vpn_vpn_11



6.设置iptables规则,设置nat转发,然后保存

/sbin/service iptables start


iptables -t nat -F


 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -jMASQUERADE


注:阿里云的内网网卡是eth0,外网网卡是eth1


service iptables save 保存即可

7. 设置iptables允许×××连接


iptables -I INPUT -p tcp --dport 1723 -j ACCEPT


iptables -I INPUT -p tcp --dport 47 -j ACCEPT


iptables -I INPUT -p gre -j ACCEPT


20分钟教你在linux下搭建vpn_pptpd_12



8..chmod +x /etc/rc.d/rc.local

编辑系统配置:vi /etc/rc.d/rc.local

20分钟教你在linux下搭建vpn_pptpd_13

把刚才那个iptables的命令加入进去。保存退出。

9.开机自启动:

chkconfig pptpd on


chkconfig iptables on





客户端上的操作


win7客户端可以创建一个新的vpn拨号


20分钟教你在linux下搭建vpn_vpn_14



20分钟教你在linux下搭建vpn_vpn_15





20分钟教你在linux下搭建vpn_vpn_16



20分钟教你在linux下搭建vpn_pptpd_17