redflag6.0下安装基于PPTP的VPN服务器
redflag6.0下基于PPTP的
as4.0,centos4.0/5.0环境也可以
现在linux的环境越来越多,比如总部linux,但由于分支机构位置分散,不便于管理,所以还是使用windows,通常情况下我们都是通过 VPN的方式把分支机构与总部连接起来。通常情况下VPN有PPTP VPN,IPSEC VPN,L2TP VPN几种,PPTP最简便,IPSEC VPN最通用,各个平台都支持,L2TP VPN最安全,本人经过多次实验,终于成功,今天拿来给大家分享。
下面我们来看看具体配置过程:
(一)下载与安装
由于Linux本身并没有集成PPTP功能,所以需要安装相关组件以让我们的RedHat支持PPTP,根据内核的版本,下载相应的安装包,我这里内核是kernel2.6.9-5.EL及2.6.14 ,所用组件如下:
wget
wget
如果是centos 4版本的
wget
wget
CentOS 5的版本
wget
wget
下载回来这4个后安装 [按顺序]
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
以上二个是为CENTOS加载MPPE[MICROSOFT的加密协议] ..不安装的话就不能使用加密连接
rpm -Uvh ppp-2.4.3-7.rhel4.i386.rpm
rpm -Uvh ppp-2.4.4-3.1.rhel5.i386.rpm
[redflag6.0的不用升级,可以直接进行下一步]
rpm -ivh pptpd-1.3.4-1.rhel4.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.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. 编辑 vi /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.250-254 #客户端VPN连接成功后将分配的IP或IP段,如果是地址范围可表示为192.168.1.200-234的形式,客户端被分配的IP范围
注意:为了安全性起见,localip和remoteip尽量不要同一个网段。
2. 编辑 /etc/ppp/options.pptpd 文件,它是PPP功能组件pppd将使用的配置文件,由于PPTP VPN的加密和验证都与PPP相关,所以PPTP的加密和验证选项都将在这个配置文件中进行配置。
编辑/etc/ppp/options.pptpd配置文件,替换成如下内容:
auth #需要使用/etc/ppp/chap-secrets文件来验证#
lock #锁定PTY设备文件#
debug
Proxyarp #启动ARP代理,如果分配给客户端的IP地址与内网网卡在一个子网就需要启用ARP代理。#
name pptpd #VPN服务器的名字#
multilink
refuse-pap #拒绝pap身份验证#
refuse-chap #拒绝chap身份验证#
refuse-mschap #拒绝mschap身份验证#
require-mschap-v2 #注意在采用mschap-v2身份验证方式时可以同时使用MPPE进行加密 #
#require-mppe-128 #使用 128-bit MPPE 加密#
ms-wins 192.168.1.2 #把想要在网络邻居中看到的机器的IP填写到这里(如果你要给公司架设2台VPNserver做冗余,那么这个地址段相互不能重复)
ms-dns 192.168.1.2 #DNS服务器地址
dump
logfile /var/log/pptpd.log #日志存放的路径
3. 编辑 /etc/ppp/chap-secrets文件,在此配置能够连接到VPN服务器的用户、密码和IP等信息:
[root@vpn ppp]# more /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
"lizhi" * "titan*#06#net" *
说明:上面第二行代码的四项内容分别对应第一行中的四项。“lizhi”是Client端的VPN用户名;“server”对应的是VPN服务器的名字, 该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成“*”号来表示自动识别服务器;“secret”对应的是登录密 码,本例为titan*#06#net;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号。{如果指定了IP如 为:192.168.10.20了.也就是说只能一个人同时使用.如果你想多人同时使用...可以将192.168.10.20改为*,这样就不限制这个 帐户的使用人数了[同时登陆的人数.还要取决于PPTPD服务器的设置,默认40个,我没有发现哪里可以设置可以让多少人使用同一个帐户登陆的.
如果加上RADIUS认证就可以.}
4 .设置IP伪装转发
只有设置了IP伪装转发,通过VPN连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:
#echo 1 > /proc/sys/net/ipv4/ip_forward
可以将这条命令放到文件/etc/rc.d/rc.local里面,以实现每次开机时自动运行该命令。也可以编辑/etc/sysctl.conf这个文件中的net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -j SNAT --to XXX.XXX.XXX.XXX
5.打开防火墙端口
要让外部用户能连接PPTP VPN,还需要在防火墙中加入以下规则(也就是将Linux服务器的1723端口和47端口打开,并打开GRE协议)
#/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
#/sbin/iptables -A INPUT -p tcp --dport 47 -j ACCEPT
#/sbin/iptables -A INPUT -p gre -j ACCEPT
(三)启动PPTP服务
service pptpd start
到这里Linux服务器的设置就完成了,客户端使用Windows Server 2003为例来进行测试。
- 最新评论
