实验环境,示意图如下
其中pptpd-1.4.0.tar.gz下载地址如下:
http://sourceforge.net/projects/poptop/files/pptpd/pptpd-1.4.0/pptpd-1.4.0.tar.gz/download
一:编译安装和配置pptpd
1.RHEL5.8默认已经安装了ppp,同时内核也提供了对mppe的支持
[root@vpn~]# rpm -qa |grep ppp
ppp-2.4.4-2.el5
rp-pppoe-3.5-32.1
[root@vpn~]# modprobe -l |grep mppe
/lib/modules/2.6.18-308.el5/kernel/drivers/net/ppp_mppe.ko
[root@vpn~]#
2.编译pptpd
[root@vpnpptpd-1.4.0]# ./configure \
–prefix=/usr/local/pptpd \
–sysconfdir=/etc/pptpd \
–enable-bcrelay \
–with-libwrap
[root@vpnpptpd-1.4.0]# make
[root@vpnpptpd-1.4.0]# make install
[root@vpnpptpd-1.4.0]# mkdir /etc/pptpd
注:RHEL6默认没有安装ppp,首先要安装ppp,同时还要安装ppp-devel(如果不安装make的时候会报错),SLES11已经提供了pptpd的安装包,可以直接安装
3.复制配置文件到相应的目录下
[root@vpnpptpd-1.4.0]# cp samples/pptpd.conf /etc/pptpd/
[root@vpnpptpd-1.4.0]# cp samples/options.pptpd /etc/ppp/
[root@vpnpptpd-1.4.0]# cp samples/chap-secrets /etc/ppp/
4.pptpd.conf配置文件如下
[root@vpn~]# grep -v "^#" /etc/pptpd/pptpd.conf
option/etc/ppp/options.pptpd//指定了ppp的相关选项文件位置
logwtmp //使用wtmp记录客户的连接情况
connections5 //最大连接数限制为5个
localip192.168.0.234-238//对应上面的最大连接数
remoteip10.0.1.234-238 //对应上面的最大连接数,网段可以和内网IP网段不一样
[root@vpn~]#
5. ppp选项文件options.pptpd保持默认配置即可
[root@vpnpptpd-1.4.0]# grep -v "^#" /etc/ppp/options.pptpd
namepptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2 //要求身份验证使用“微软挑战应答协议-版本2”
require-mppe-128 //要求数据传输采用MPPE 128的位RC4加密算法
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
#ms-dns10.0.0.1
#ms-dns10.0.0.2
[root@vpnpptpd-1.4.0]#
6.创建一个测试用户wjc,密码为123456
[root@vpnpptpd-1.4.0]# grep -v "^#" /etc/ppp/chap-secrets
#用户 服务器(固定为pptpd) 用户密码 IP地址(*可以使用所有IP地址)
wjcpptpd 123456 *
[root@vpnpptpd-1.4.0]#
7.创建pptpd的命令连接
[root@vpn~]# ln -s /usr/local/pptpd/sbin/* /usr/local/sbin/
8.创建pptpd-logwtmp.so模块到/usr/lib/pptpd目录的连接(不然客户连接会失败,日志提示为不能载入pptpd-logwtmp.so模块)
[root@vpn~]# mkdir /usr/lib/pptpd/
[root@vpn~]# ln -s /usr/local/pptpd/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/
9.开启数据包转发功能
[root@vpn~]# cat /etc/sysctl.conf |grep net.ipv4.ip_forward
net.ipv4.ip_forward= 1
[root@vpn~]#
10.创建pptpd启动脚本,内容如下所示
#!/bin/bash
#
# Init file for VPN server daemon
#
# chkconfig: 2345 56 26
# description: VPN server daemon
#
# processname: pptpd
# config: /etc/pptpd/pptpd.conf
# pidfile: /var/run/pptpd.pid
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/pptpd ]&& . /etc/sysconfig/pptpd
RETVAL=0
prog="pptpd"
# Some functions to make thebelow more readable
PPTPD=/usr/local/pptpd/sbin/pptpd
CONFIG=/etc/pptpd/pptpd.conf
PID_FILE=/var/run/pptpd.pid
OPTIONS=-c
start()
{
status -p $PID_FILE pptpd >/dev/null
RETVAL=$?
if[ "$RETVAL" = 0 ] ; then
echo"pptpd is already running"
exit
fi
echo-n $"Starting $prog: "
$PPTPD$OPTIONS $CONFIG && success || failure
RETVAL=$?
["$RETVAL" = 0 ] && touch /var/lock/subsys/pptpd
echo
}
stop()
{
echo-n $"Stopping $prog: "
if[ -n "`pidfileofproc $PPTPD`" ] ; then
killproc $PPTPD
else
failure $"Stopping $prog"
fi
RETVAL=$?
["$RETVAL" = 0 ] && rm -f /var/lock/subsys/pptpd
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status-p $PID_FILE pptpd
RETVAL=$?
;;
*)
echo$"Usage: $0 {start|stop|restart|status}"
RETVAL=1
esac
exit $RETVAL
11.加入开机启动并启动pptpd服务
[root@vpn ~]# cp pptpd /etc/init.d/
[root@vpn ~]# chkconfig –add pptpd
[root@vpn ~]# chkconfig pptpd on
[root@vpn ~]# chkconfig –list|grep pptpd
pptpd 0:off 1:off2:on 3:on 4:on5:on 6:off
[root@vpn ~]# /etc/init.d/pptpd start
Starting pptpd: [ OK ]
12.查看进程和监听端口
[root@vpn ~]# ps -eaf |grep pptpd
root 37321 0 20:05 ? 00:00:00 /usr/local/pptpd/sbin/pptpd -c/etc/pptpd/pptpd.conf
root 37383598 0 20:05 pts/0 00:00:00 grep pptpd
[root@vpn ~]# netstat -tulnp|grep 1723
tcp 00 0.0.0.0:17230.0.0.0:* LISTEN 3732/pptpd
[root@vpn ~]#
二:测试VPN
1.在rhel5.8(2)上配置samba,共享目录为share
2.在XP上创建VPN连接
依次选择“开始”—“所有程序”—“附件”—“通讯”—“新建连接向导”,打开“新建连接向导”对话框,直接点击“下一步”,选择“连接到我的工作场所网络”点击“下一步”,选择“虚拟专用网络”点击“下一步”,在公司名称处随便写一个名称如SGI点击“下一步”,在“VPN服务器选择”对话框中输入主机名(如果在网上注册过)或IP地址,这里我们输入上面VPN服务器的public的IP地址192.168.0.113,然后点击“下一步”,勾选“在桌面上创建快捷方式”,最后点击完成,双击桌面SGI快捷方式,出现登录对话框,输入创建的测试用户wjc和密码123456,如下所示
3.点击连接,如果出现下面的提示,就说明连接成功了
4.查看一下获得的IP地址,如下所示,名为PPP的网络适配器的IP:10.0.1.234就是连接VPN后获得的IP地址
5.VPN连接状态如下所示
6.访问rhel5.8(2)的share共享,win+R输入//10.0.1.10,如果出现下图,就说明可以访问内网共享,也证明VPN配置成功
至此VPN配置完成
你会发现,曾经以为很难做到的事情,