64BitCentOS5.5单网卡配置PPTPD服务器

安全
公司的办公网络是192.168.4.0/24,均只用单网卡eth0,通过Juniper防火墙映射公网IP上网,即内网内所有的机器的网关均是防火墙的固定IP-192.168.4.3,目前想通过外网拨号(VPN服务器IP为192.168.4.222)进公司内部局域网进行办公,因为内网里还有些SVN、samba文件服务器等,即VPN需求要做成点对局的。

【51CTO.com 独家特稿】 公司的办公网络是192.168.4.0/24,均只用单网卡eth0,通过Juniper防火墙映射公网IP上网,即内网内所有的机器的网关均是防火墙的固定IP-192.168.4.3,目前想通过外网拨号(VPN服务器IP为192.168.4.222)进公司内部局域网进行办公,因为内网里还有些SVN、samba文件服务器等,即VPN需求要做成点对局的。

公司的办公拓补很简单,如下图:

公司的办公拓补

初期因为我有成功的opevVPN点对点案例,所以考虑用openVPN来做;却不料失败了,点对点很顺利能成功,但点对局却失败了。大家可看下openVPN的关键之处:

关键一:取消注释 push "route 192.168.4.0 255.255.255.0",并将地址和掩码替换为办公网络的地址和掩码

目的是为客户端加一条路由,这样客户端才有可能访问到办公网络中出VPN Server之外的其它主机(有很多VPN客户端直接添加默认路由,这样客户端的所有连接请求都被路由到 VPN 通道内,结果是客户端此时不能访问VPN,而此项添加指定地址的路由不会导致这一问题)

关键二:server端开启ip转发

配置服务器,运行包转发: echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward关键三:若VPN Server不是办公网络的默认网关,则想办法在默认网关上添加到 10.8.0.0/24 的路由项目,网关为服务器的内部 IP 地址。

关键一中的操作只是能够让客户端知道去往公司网络的包如何路由,而关键三的操作是为了让公司网络里的主机知道去往VPN Client的包如何路由。

其实第三步本来其实也很好实现,但由于我们的办公网络由美国总部划分,防火墙是不能随便添加静态路由的,虽然VPN进行到这步时基本就告失败了。今天特的尝试了单网卡下配置pptpd的过程,很顺利的就将点对局实现了,特将过程跟大家分享下:#p#

操作系统:64位的Centos5.5,IP:192.168.4.222,准备安装pptpd服务,安装过程参考了网友Ren的相关文章,我更喜欢将精力集中在以后的调优、安全及分析上,其过程如下:

1、检查服务器是否有必要的支持。如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:

  1. #modprobe ppp-compress-18 && echo ok 

这条执行执行后,显示"ok"则表明通过。不过接下来还需要做另一个检查,输入指令:

  1. #cat /dev/net/tun 

如果这条指令显示结果为下面的文本,则表明通过:

  1. cat: /dev/net/tun: File descriptor in bad state 

2、修改内核设置,使其支持转发。这步必须做,不然你仅仅能连结你的VPN机器,后面的局域网的资源你均不能访问。编辑/etc/sysctl.conf文件:

  1. #vim /etc/sysctl.conf 

将"net.ipv4.ip_forward"改为1,变成下面的形式:

  1. net.ipv4.ip_forward=1 

保存退出,并执行下面的命令来生效它:

  1. #sysctl -p 

3、安装pptp。这个软件在yum源里是没有的,我们需要手动下载。我们先切换到tmp目录:

  1. #cd /tmp 

然后执行下面的命令来下载pptp安装包:#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)

如果你的CentOS是32位的,则执行32位的那条指令;如果是64位的CentOS,则执行64位的那条指令。注意不要搞错了。

接下来安装pptp,同样分32位和64位系统:

#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)

#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)

PS:这里补充说明一点,由于我的办公网络就是单网卡环境,所以没必要开启iptables的MASQUERADE功能,因为我的VPN拨进来就可以利用防火墙的NAT功能上网,我特的用http://www.ip168.com来观察了我的客户机出去的公网IP,全被替换成防火墙的公网IP了。 #p#

4、配置pptp。首先我们要编辑/etc/pptpd.conf文件:

  1. #vim /etc/pptpd.conf 

找到"locapip"和"remoteip"这两个配置项,将前面的";"注释符去掉,更改为你期望的IP段值。localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间。这里我们使用pptp默认的配置:

  1. localip 192.168.4.222  
  2. remoteip 192.168.4.242-246 

注意,这里的IP段设置,将直接影响后面的iptables规则添加命令。请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了。

5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:

#vim /etc/ppp/chap-secrets

在这个文件里面,按照"用户名 pptpd 密码 *"的形式编写,一行一个账号和密码。比如添加用户名为test,密码为1234的用户,则编辑如下内容:

  1. test pptpd 1234 * 

6、重启pptp服务。输入下面的指令重启pptp:

  1. #/etc/init.d/pptpd restart 

我个人习惯用service pptpd restart

现在你已经可以连接自己的VPN并浏览网页了。不过我们还需要做最后的一步。#p#

7、设置开机自动运行服务。我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了。当然你不需要自动启动服务的话可以忽略这一步。输入指令:

  1. #chkconfig pptpd on 

记得让你的Network Engineer将192.168.4.222映射一个公网IP,如220.249.xx.xx,我是做的DMZ映射;这个即是你的客户机拨号时连接的公网IP。

客户机如何在windows机上进行拨号连接呢?

这样服务器端的配置就完成了,我下面再简单说下windows客户端的VPN连接情况。

选择你的网络邻居,用右键点属性,然后选择"创建一个新的连接"

创建一个新的连接 #p#

网络连接类型 

虚拟专用网络连接 

连接名称 #p#

主机IP地址 

完成连接设置 

当你从公网上面用VPN拨号上来以后,你就身处公司的办公环境,此时你想远程桌面,连接SVN服务器,或连接Samba或公司内部的MySQL0均可,注意安全。

后记:

对比openVPN和pptpd二款VPN软件,我感觉它们做点对点均可,如果是做成点对局效果的话,我建议用pptpd,openVPN复杂不说,对网络要求更为苛刻;如果是做成局对局的VPN环境,我建议用openVPN(当然这种情况直接在防火墙或路由器上做的话更简单)最后,希望上述文档能帮助跟我的网络环境差不多的小伙们,祝大家工作愉快,生活亦愉快!

【51CTO.com独家特稿,非经授权谢绝转载!合作媒体转载请注明原文出处及作者!】

责任编辑:佟健 来源: 51CTO.com
相关推荐

2011-11-03 13:59:05

2012-03-30 15:56:39

ibmdw

2010-03-01 10:53:04

Linux bondi

2010-03-30 09:57:21

CentOS安装

2021-02-02 05:43:40

服务器双网关配置

2009-08-19 13:57:13

telnet服务器配置

2013-06-08 10:13:13

64位ARM服务器

2010-05-19 10:31:07

IIS服务器

2009-02-13 11:06:00

时间同步服务器服务器

2009-09-08 13:48:13

NFS服务器

2010-07-29 10:54:21

VPN设置

2011-08-02 16:17:00

2011-02-22 09:06:57

2010-09-10 16:19:31

配置tftp服务器

2009-09-17 18:05:51

Nis服务器

2017-10-27 10:41:03

2010-01-07 15:37:09

Linux配置DNS

2018-08-07 08:54:18

2013-11-12 16:03:35

红帽ARM服务器

2011-01-10 14:48:22

点赞
收藏

51CTO技术栈公众号