CentOS下PPTP_VPN_Server的安装配置

分类:CentOS教程 阅读:39466 次

实验环境:

(1)公司所有game服务器,只允许一个外网ip去访问,需要维护服务器,必须先拨号到指定外网ip。

(2)公司与总部通信都是走vpn通道,公司内部ip与vpn设备下是不同网段,需要在vpn设备下接一台双网卡服务器

解决方案:通过linux下的pptp协议,远程用户能通过支持点对点协议的所有操作系统,安全访问网络.

实验图:

CentOS下PPTP_VPN_Server的安装配置

根据方案,需在192.168.15.50搭建Poptop服务

关于Poptop介绍信息:

Poptop是一个PPTP服务器的开源实现,采用C预言开发,可运行在x86或者是摩托罗拉嵌入式ColdFire体系。可与微软的PPTPVPN客户端进行完全互操作。

点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过MicrosoftWindowsNT工作站、Windows95和Windows98操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地ISP,通过Internet安全链接到公司网络。

PPTP可以用于在IP网络上建立PPP会话隧道。在这种配置下,PPTP隧道和PPP会话运行在两个相同的机器上,呼叫方充当PNS。PPTP使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP作为一个呼叫控制和管理协议,它允许服务器控制来自PSTN或ISDN的拨入电路交换呼叫访问并初始化外部电路交换连接。

PPTP只能通过PAC和PNS来实施,其它系统没有必要知道PPTP。拨号网络可与PAC相连接而无需知道PPTP。标准的PPP客户机软件可继续在隧道PPP链接上操作。

PPTP使用GRE的扩展版本来传输用户PPP包。这些增强允许为在PAC和PNS之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。

Poptop环境需要软件包:

1.Dkms

2.kernel_ppp_mppeMPPE(MicrosoftPointtoPointEncryption,微软点对点加密)

3.pppèPPP(Point-to-PointProtocol,点到点协议)

4.pptpd

步骤如下:

1.查看还需安装哪些软件,由于RHEL5的2.6.18内核已经集成了MPPE和高版本的ppp

[root@viong~]#rpm-qppp

ppp-2.4.4-2.el5

[root@viong~]#strings'/usr/sbin/pppd'|grep-imppe|wc-l

42

检查PPP是否支持MPPE,若结果显示“0”则表示不支持,而“30”或更大的数字就表示支持。

[root@viong~]#modprobeppp-compress-18&&echo‘ok!MPPEwasfound!’

ok!MPPEwasfound!

检查内核MPPE补丁是否安装成功:若结果显示“ok!MPPEwasfound!”则表示成功。

[root@viong~]#rpm-qdkms

packagedkmsisnotinstalled

[root@viong~]#rpm-qpptpd

packagepptpdisnotinstalled

2.安装软件

[root@viongsoft]#rpm–ivhhttp://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm

[root@viongsoft]rpm–ivhhttp://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

3.修改pptpd.conf配置参数

[root@viongsoft]#vi/etc/pptpd.conf

95#(Recommended)

96#localip192.168.0.1

97#remoteip192.168.0.234-238,192.168.0.245

修改为:

95#(Recommended)

96localip192.168.126.2

97remoteip192.168.126.100-200

注:/etc/pptpd.conf常用配置

option/etc/ppp/options.pptpd

PPP组件将使用的配置文件;

stimeout120

开始PPTP控制连接的超时时间,以秒计;

debug

把所有debug信息记入系统日志/var/log/messages;

localip192.168.1.10

服务器VPN虚拟接口将分配的IP地址,可设置为与VPN服务器内网地址相同网段的IP,也可设置为另一网段的IP;

remoteip192.168.1.11-30

客户端VPN连接成功后将分配的IP地址段,同样可设置为与VPN服务器内网地址相同网段的IP地址段,也可以设置为另一网段的IP地址段;

logwtmp

该功能项的作用是“使用wtmp记录客户端的连接与断开信息

4.修改options.pptpd配置参数

/etc/ppp/options.pptpd默认配置就ok

注:/etc/ppp/options.pptpd常用配置

namepptpd

pptpdserver的名称。

refuse-pap

拒绝pap身份验证模式。

refuse-chap

拒绝chap身份验证模式。

refuse-mschap

拒绝mschap身份验证模式。

require-mschap-v2

在端点进行连接握手时需要使用微软的mschap-v2进行自身验证。

require-mppe-128

MPPE模块使用128位加密。

ms-dns61.139.2.69

ms-dns202.98.96.68

ppp为Windows客户端提供DNS服务器IP地址,第一个ms-dns为DNSMaster,第二个为DNSSlave。

proxyarp

建立ARP代理键值。

debug

开启调试模式,相关信息同样记录在/var/logs/message中。

lock

锁定客户端PTY设备文件。

nobsdcomp

禁用BSD压缩模式。

novj

novjccomp

禁用VanJacobson压缩模式。

nologfd

禁止将错误信息记录到标准错误输出设备(stderr)

5.修改chap-secrets配置参数

[root@viongsoft]#vi/etc/ppp/chap-secrets

#SecretsforauthenticationusingCHAP

#clientserversecretIPaddresse

“viong”pptpd”123”*

注:

viong用户账号

*代表自动识别当前服务器主机名,也可以手动配置

123用户密码

*代表自动分配可用的IP地址,可根据需要指定IP地址

账号和密码需要加上双引号,否则出错

也可以使用vpnuser命令来进行配置:

#vpnuseraddviong123添加一个viong用户

6.开启路由转发

因为VPN客户端在拨号后实际是通过服务器外网网卡进行数据通信的,那么要访问内网网段的地址就必须开启数据包转发,使外网网卡的数据包能够转发到内网网卡上

[root@viongsoft]#vi/etc/sysctl.conf
6#ControlsIPpacketforwarding

7net.ipv4.ip_forward=0

修改为:

6#ControlsIPpacketforwarding

7net.ipv4.ip_forward=1

[root@viongsoft]#sysctl-p/etc/sysctl.conf

路由转发立即生效


7.防火墙配置

对于默认开启了SELinux认证:

需执行以下命令使pppd与pptp穿透SELinux

[root@viongsoft]#setseboolpppd_disable_trans1

[root@viongsoft]#setsseboolpptp_diable_trans1

附上关闭SELinux认证方法:

编辑vi/etc/sysconfig/selinux文件,配置以下选项

SELINUX=disabled

如果不重启生效就执行以下命令使修改生效

[root@viongsoft]#setenforce0

对于开启了iptables过滤的主机,需要开放VPN服务的端口:471723和gre协议

编辑/etc/sysconfig/iptables文件,加入以下规则

-ARH-Firewall-1-INPUT-pgre-jACCEPT

-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW-mtcp--dport47-jACCEPT

-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW-mtcp--dport1723-jACCEPT

[root@viongsoft]#serviceiptablesrestart

重启iptables直接生效

用Iptables做NAT服务
在VPN客户端成功拨号以后,本地网络的默认网关会变为VPN服务器的VPN内网地址,这样会导致客户端只能够连接VPN服务器及其所在的内网,而不能访问互联网;

iptables-tnat-APOSTROUTING-s192.168.126.0/24-jSNAT--to外网IP地址

[root@viong~]#iptables-tnat-APOSTROUTING-s192.168.126.0/24-jSNAT--to192.168.15.50

[root@viong~]#echoiptables-tnat-APOSTROUTING-s192.168.126.0/24-jSNAT--to192.168.15.50>>/etc/rc.local

加入到/etc/rc.local开机自动启动

8.启动pptp

[root@viong~]#servicepptpdrestart

[root@viong~]#netstat-ntpl|grep1723

tcp000.0.0.0:17230.0.0.0:*LISTEN2585/pptpd

9.测试拨号是否成功

客户端:Win7

C:\DocumentsandSettings\Administrator>ipconfig

WindowsIPConfiguration

Ethernetadapter本地连接:

Connection-specificDNSSuffix.:

IPAddress............:192.168.15.253

SubnetMask...........:255.255.255.0

DefaultGateway.........:192.168.15.1

PPPadaptertest:

Connection-specificDNSSuffix.:

IPAddress............:192.168.126.100

SubnetMask...........:255.255.255.255

DefaultGateway.........:192.168.126.100

C:\DocumentsandSettings\Administrator>ping192.168.126.1

Pinging192.168.126.1with32bytesofdata:

Replyfrom192.168.126.1:bytes=32time=144msTTL=127

Replyfrom192.168.126.1:bytes=32time=4msTTL=127

C:\DocumentsandSettings\Administrator>pingwww.baidu.com

Pingingwww.a.shifen.com[119.75.216.20]with32bytesofdata:

Replyfrom119.75.216.20:bytes=32time=33msTTL=52

Replyfrom119.75.216.20:bytes=32time=27msTTL=52

通过以上测试,说明已经成功生效了.

本文出自 “陈胜纲的博客” 博客,请务必保留此出处http://chenshengang.blog.51cto.com/4399161/1425359