对于PPP,我们这次主要讲解一下PPTP的应用。在很多文章中,我们都可以看到相关内容的信息,这里我们就来总结一下有关内容。PS:pptpd启动后使用的是1723端口,l2tpd使用的是1701端口,启动服务后可以使用 netstat -tnl 来查看端口启动情况)另外:还有配置文章见:http://blog.chinaunix.net/u2/69106/showart_1751714.html
现在使用linux的环境越来越多,比如总部使用linux,但由于分支机构位置分散,不便于管理,所以还是使用windows,通常情况下我们都 是通过VPN的方式把分支机构与总部连接起来。通常情况下VPN有PPTP VPN,IPSEC VPN,L2TP VPN几种,PPTP最简便,IPSEC VPN最通用,各个平台都支持,L2TP VPN最安全,本人经过多次实验,终于成功,今天拿来给大家分享。
下面我们来看看具体配置过程:
(一)下载与安装
由于Linux本身并没有集成PPTP功能,所以需要安装相关组件以让我们的RedHat支持PPP,根据内核的版本,下载相应的安装包,我这里内核是kernel2.6.9-5.EL及2.6.14 ,所用组件如下:
dkms-2.0.6-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
ppp-2.4.3-5.rhel4.i386.rpm
pptpd-1.3.0-0.i386.rpm
1.PPTP需要PPP支持,虽然系统本身有PPP功能,但它并不支持MPPE,所以需要更新系统的PPP组件,下载ppp-2.4.3-5.rhel4.i386.rpm安装命令如下:
# rpm -Uvh ppp-2.4.3-5.rhel4.i386.rpm
2.安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁,安装命令如下:
#rpm –ivh dkms-2.0.6-1.noarch.rpm
#rpm –ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
用以下命令检查内核MPPE补丁是否安装成功,MPPE module可否载如:
#modprobe ppp-compress-18 && echo success
3.安装pptpd,命令如下:
#rpm –ivh pptpd-1.3.0-0.i386.rpm
4.用以下命令检查PPP是否支持MPPE:
#strings '/usr/sbin/pppd'|grep -i mppe|wc --lines
46 <如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,我这里为46>。
(二)修改配置文件
1. 编辑 /etc/pptpd.conf 文件,确定本地VPN服务器的IP地址和客户端登录后分配的IP地址范围。pptpd.conf是PPTP服务PPTPD运行时使用的配置文件,常用选项如下(#号后是选项说明):
option /etc/ppp/options.pptpd #PPP组件将使用的配置文件
#stimeout 10 #开始PPTP控制连接的超时时间,以秒计
debug #把所有debug信息记入系统日志/var/log/messages
localip 192.168.1.4 #服务器VPN虚拟接口将分配的IP地址
remoteip 192.168.1.254 #客户端VPN连接成功后将分配的IP,如果是地址范围可表示为192.168.1.200-234的形式
2. 编辑 /etc/ppp/options.pptpd 文件,它是PPP功能组件pppd将使用的配置文件,由于PPTP VPN的加密和验证都与PPP相关,所以PPTP的加密和验证选项都将在这个配置文件中进行配置。
lock
debug
name vpn1
refuse-pap
refuse-chap
refuse-mschap
rrequire-mschap-v2
require-mppe-128
proxyarp
3. 编辑 /etc/ppp/chap-secrets文件,在此配置能够连接到VPN服务器的用户、密码和IP等信息:
# Secrets for authentication using CHAP
# client server secret IP addresses
aaa vpn1 "qazxsw123456" *
(三)启动PPTP服务
service pptpd start
用 #netstat –an命令查看,TCP 1723端口是否处于监听状态。
(四)防火墙配置
要让外部用户能连接PPTP VPN,还需要在防火墙中加入以下规则(也就是将Linux服务器的1723端口和47端口打开,并打开GRE协议):
(五)在PPTP服务器上开启NAT服务,以便于客户端上网
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j SNAT --to XXX.XXX.XXX.XXX
安装动态域名客户端软件
(六)由于PPTP客户端需要知道PPTP服务器的IP,但这里的ADSL拨号又是动态IP,所以我们需要安装一个动态域名客户端软件,这样 PPTP客户端只要知道服务器的动态域名就行了。
可以使用金万维的免费动态域名,这样ADSL拨号之后动态域名客户端软件将自动更新域名和IP对应 值。。。
==========================================================
到这里Linux pptp vpn server的设置就完成了,剩下任务的就是用Windows客户端进行测试