服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 8725|回复: 1

CentOS 5.3 下快速安装配置 PPTP VPN 服务器

[复制链接]
dirtysea 发表于 2010-4-14 22:53:05 | 显示全部楼层 |阅读模式
VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用**路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。

  虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。

  PPTP 全称为 Point to Point Tunneling Protocol -- 点到点隧道协议,是VPN协议中的一种。

  一、CentOS 5.3 下 PPTP VPN 服务器安装

  1、安装相关软件
  32位版:
yum install -y ppp iptables    //安装ppp协议
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

  64位版:
yum install -y ppp iptables
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm


  2、配置文件编写
  ①、配置文件/etc/ppp/options.pptpd
mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
vi /etc/ppp/options.pptpd

  输入以下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4


  ②、配置文件/etc/ppp/chap-secrets
mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
vi /etc/ppp/chap-secrets

  输入以下内容
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
myusername pptpd mypassword *

  注:这里的myusername和mypassword即为PPTP VPN的登录用户名和密码


  ③、配置文件/etc/pptpd.conf
mv /etc/pptpd.conf /etc/pptpd.conf.bak
vi /etc/pptpd.conf

  输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30

  注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP


  ④、配置文件/etc/sysctl.conf
vi /etc/sysctl.conf

  修改以下内容:
net.ipv4.ip_forward = 1


  保存、退出后执行:
/sbin/sysctl -p


  3、启动PPTP VPN 服务器端:
/sbin/service pptpd start


  4、为防火墙设置允许端口和转发信任网络:

/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE   //NAT转发代理
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT                                 //允许vpn的服务端口
/etc/rc.d/init.d/iptables save

  二、Windows 下 PPTP VPN 客户端配置
  步骤不详述了,直接看图一步步进行:

  

  

  

  

  

  

  

  


来源:http://blog.s135.com/pptp_vpn/
 楼主| dirtysea 发表于 2010-6-24 08:51:36 | 显示全部楼层
编译安装VPN

RHEL5.4之源码安装VPN


系统环境
uname -a 内核
Linux localhost 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 athlon i386 GNU/Linux
lsb_release -a 版本
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Release:        5.4
Codename:       Tikanga
因RHEL 5 的2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。可以跳过安装 MPPE 和 ppp 。直接安装 PPTP。

如果需要检查 MPPE 是否存在可以使用以下命令:
#modprobe ppp-compress-18 && echo 'ok! MPPE was found !'

一、安装 pptpd
下载最新的 pptpd 源代码: http://sourceforge.net/project/showfiles.php?group_id=44827
将下载到的 pptpd 移动到 /usr/local/src 目录下。

解压缩源代码包:
# tar xzvf pptpd-1.3.4.tar.gz
# cd pptpd-1.3.4

编译安装:
注意:可能需要 libcap、libcap-devel RPM 包支持,如果没有请安装 libcap、libcap-devel RPM 包!
#./configure -prefix=/usr/local/pptpd -enable-bcrelay -with-libwrap
#make
#make install

二、配置 PPTP
编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:
#mkdir /usr/local/pptpd/etc
#cp samples/pptpd.conf /usr/local/pptpd/etc/
#cp samples/options.pptpd /usr/local/pptpd/etc/
上面cp的两个文件是 pptpd 的两个配置文件。
pptpd.conf 是 pptpd 的基本配置文件;
options.pptpd 是 pptpd 的扩展功能属性配置文件。

三.修改配置文件
1、 对 pptpd.conf 进行设置:
# vi /usr/local/pptpd/etc/pptpd.conf
以下是我的配置文件:
[root@localhost etc]# vi /usr/local/pptpd/etc/pptpd.conf
option /usr/local/pptpd/etc/options.pptpd
logwtmp
debug
localip 192.168.1.248
remoteip 192.168.2.191-195

说明:
option /usr/local/pptpd/etc/options.pptpd
指定 pptpd 扩展属性配置文件 options.pptpd 的位置
debug   
开启调试模式,有关 pptpd 的信息和错误都会记录在 /var/logs/message 中,方便排错和调试
stimeout 30   
设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒
localip 192.168.16.192  
pptpd server 所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址
remoteip 192.168.0.188-238
设置客户端连接到 pptpd server 后可供分配的 IP 地址范围(192.168.0.188- 192.168.0.238),也可以这样设置:192.168.0.188,192.168.0.189,192.168.0.188-238效果是一样的

2、 对 options.pptpd 进行配置:
# vi /usr/local/pptpd/etc/options.pptpd
以下是我的配置文件:
[root@localhost etc]# vi /usr/local/pptpd/etc/options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4

说明:
name VPN-Server  pptpd server 的名称。
refuse-pap  拒绝 pap 身份验证模式。
refuse-chap  拒绝 chap 身份验证模式
refuse-mschap  拒绝 mschap 身份验证模式。
ms-dns 202.96.209.5
ms-dns 202.96.209.133p pp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS          Master,第二个为 DNS Slave。
proxyarp  建立 ARP 代理键值。
debug   开启调试模式,相关信息同样记录在 /var/logs/message 中。
lock   锁定客户端 PTY 设备文件。
nobsdcomp  禁用 BSD 压缩模式。
novj   
novjccomp  禁用 Van Jacobson 压缩模式。
nologfd   禁止将错误信息记录到标准错误输出设备(stderr)
OK,配置好上面的两个文件后,开始添加 pptpd server 连接帐户。

四.添加帐户
pptpd server 连接帐户控制文件位于:/etc/ppp/chap-secrets
vi /etc/ppp/chap-secrets 配置文件,添加如下内容:

# client  server   secret   IP addresses
"helloc"  pptpd    "123456"     *

上面第二行代码的四项内容分别对应第一行中的四项。
"helloc" 是Client端的VPN用户名
"server"对应的是VPN服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成"*"号来表示自动识别服务器;
"secret"对应的是登录密码
"IP addresses"对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号.

五.设置IP伪装转发
配置文件/etc/sysctl.conf
vi /etc/sysctl.conf
  修改以下内容:
net.ipv4.ip_forward = 1
  保存、退出后执行:
/sbin/sysctl -p

六.启动 pptpd server
#/usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd
检查 pptpd server 是否启动成功:
# netstat -ntlp|grep 1723
如果看到有进程 tcp 1723 端口监听就说明 pptpd server 已经启动成功了!

# tail -f /var/log/messages

/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE   //NAT转发代理
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT                                 //允许vpn的服务端口
/etc/rc.d/init.d/iptables save

加入自启动: /etc/rc.d/rc.local
七.测试连接
在 Windows XP/2003 中新建一个 VPN 连接,填写相应的 pptpd server IP 地址、用户名、密码进行连接测试。


附加
加载库文件时报版本错误
Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4

Solution
修改下源文件版本信息,重新编译生成pptpd-logwtmp.so并替换现有的
切换到源码包目录,pptpd-logwtmp.so源文件在源码包的plugins目录下
将patchlevel.h中的#define VERSION   "2.4.3"  改成 #define VERSION     "2.4.4"

#cd pptpd-1.3.4/plugins/    (安装源文件夹下)
#cp patchlevel.h patchlevel.h.bak
#mv pptpd-logwtmp.so pptpd-logwtmp.so.bak
#sed  -i  's/2\.4\.3/2\.4\.4/' patchlevel.h
#make
#mkdir /usr/lib/pptpd/
#cp pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so

启动 pptpd server后
# tail -f /var/log/messages
Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded. (提示加载成功)

[root@localhost plugins]# cat patchlevel.h
/* upstream patchlevel.h,v 1.60 2004/01/13 04:46:52 paulus Exp */
/* $Id: patchlevel.h,v 1.4 2005/02/24 01:25:34 quozl Exp $ */
#define VERSION         "2.4.4"
#define DATE            "13 Jan 2004"



Dec 16 01:17:16 mm pppd[6261]: /usr/lib/pptpd/pptpd-logwtmp.so: cannot open shared object file: No such file or directory
    Dec 16 01:17:16 mm pppd[6261]: Couldn't load plugin /usr/lib/pptpd/pptpd-logwtmp.so

提示缺少pptpd-logwtmp.so文件,我们按照提示复制到相关目录即可:
    # mkdir /usr/lib/pptpd
    # cp /home/pptp/pptpd-1.3.4/plugins/pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so
    再次连接,即可正常连接PPTP VPN Server。




命令如下:
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -I PREROUTING -p tcp --dport 1723 -j DNAT --to xx.xx.xx.xx
#iptables -t nat -I POSTROUTING -p tcp --dport 1723 -j MASQUERADE

#service iptables save

#service iptables restart

===========================================================
第一条命令表示允许数据包转发;

第二条命令表示转发TCP 8081到xx.xx.xx.xx;

第三条命令表示使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道

第四条命令表示将规则保存到/etc/sysconfig/iptables文件

第五条命令表示重启iptables使刚才添加的规则生效

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-26 05:05 , Processed in 0.333883 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表