Centos vpn(pptpd)的部署

 

网上较多的是,vpn服务器(centos)是双网卡,一外网一内网。

本文的vpn服务器(centos)是单网卡,IP地址是内网的地址,通过路由器连接互联网。

一、安装

下载rpm包pptpd-1.3.4-1.rhel5.1.i386.rpm,并安装。

安装完rpm包后,自动生成几个配置文件,主配置文件/etc/pptpd.conf,选项文件/etc/ppp/options.pptpd, 帐号文件/etc/ppp/chap-secrets.后面配置pptpd主要就是对这几个文件进行修改。

 

二、vpn拓扑结构

   vpn的访问逻辑上存在3个网络:

1、  欲访问的目标网络。vpn服务器所在的内部网络。vpn服务器只用1个网卡,配置为内部网络的其中一个IP地址。

2、  Vpn的公网网络。

3、  Vpn连接后与客户端形成的虚拟网络。建议单独设置一个网络,这样就不会占用vpn后面的私有网络(目标网络)的ip资源/地址。

  

当然vpn隧道网络可以跟目标网络是同一个网段,不过不推荐这样。

 

三、vpn服务器端的配置

1.   修改主配置文件/etc/pptpd.conf.只需要加入下面两行:

   localip  192.168.101.1         这行是给vpn服务器设置一个隧道ip

remoteip 192.168.101.100-250   是自动分配给客户端的ip地址范围。

2.  修改选项文件/etc/ppp/options.pptpd.需要设定分配给客户端的dns,因此仅需把ms-dns前的注释去掉,改成可用的dns如下:

ms-dns 8.8.8.8

 ms-dns 8.8.4.4

为了方便查看调试信息,把debug行前面的注释取消即可。Dump前的注释也取消。

 

3.  添加帐号。通过编辑文件/etc/ppp/chap-secrets逐行加入;一个账号占一行。一行分4列,其表示如下:

用户名

服务器名

密码

ip

没有字符数限制

Pptpd—都用这个。

 

* 表示有pptpd随机分配ip

账号和密码是明文的,所以需要妥善设置访问权限。

四、运行pptpd.执行命令service pptpd start或者执行/etc/init.d/pptpd 即可启动它。通过检查进程、查看系统日志来确定pptpd是否正常。

五、在路由器上,把pptp 1723的端口映射到191.0.0.254 ×××服务器上。

五、客户端配置(windows)。这个应该很容易了,略过。

六、拨号登录。

(windows)上查看其现在的网络参数:

 

七、设置路由及ip伪装。虽然在这里可以登录vpn服务器,但由于没有设置相关的转发规则,因此还是没办法访问vpn后面的私有网络。所以还需要完成下面几步才算真正结束了.

(一)   开启ip转发功能:修改配置文件/etc/sysctl.conf,使net.ipv4.ip_forward = 1

(二)   写个脚本文件,实现路由,其内容大致如下:

[root@max-vpn ~]# more /usr/local/bin/vpn_route.sh

#!/bin/bash

/sbin/iptables -t nat -A POSTROUTING -s 192.168.101.0/24 -o eth1 -j SNAT --to-source 191.0.0.254

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

 目标网络/vpn的内部网络为191.0.0.0/24,vpn服务器有1个网卡,网卡连私有网络,ip是191.0.0.254。这样就能正常地路由所涉及的网络了。手动执行一下这个脚本,看客户端(windows)是否能访问目标网络里的机器:最简单的方法就是ping,假定目标网络里有一个191.0.0.11的机器,并请允许icmp通过,ping 191.0.011 ,正常的话,再进一步访问这个服务器(如远程登录)。没有问题的话,把它加在开机自启里面。