如何去pptpd 连接上不能上网一个pptpd服务器

查看:2215|回复:3
我最近萌生了一个想法,想在家用电脑了装一台centos虚拟机搭建一个pptpd服务,让几个小伙伴连接入来一起玩局内网游戏。可是朋友连接我的pptpd服务器的时候,出现619错误。我详细说下环境:
系统:centos6.4_x64 的虚拟机
网络:用磊科无线路由拨号。
在局内网络测试的时,Windows客户端是可以连接成功的,跑公网的时候据说电信会把一下端口给封掉,所以我修改了pptpd服务的端口,改为:18823 磊科路由上也做了端口映射。
(35.65 KB)
在Windows客户端上,修改了pptp客户端的默认端口:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972- E325-11CE-BFC1-0}\
TcpPortNumber的值改了18823
pptpd 服务器上的错误信息如下:
(108.55 KB)
求指导!!!
第一张图片发错了!
正确如下:
(20.57 KB)
优秀技术经理
有关VPN的问题 你可以看看这篇文章
是我的无线路由不支持gre协议!CentOS 6.4 安装 PPTPD VPN_服务器配置_李昌镜
因为专业,所以放心
快速导航:
CentOS 6.4 安装 PPTPD VPN
在介绍pptp VPN之前我们先来了解一下隧道技术。隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKSv5,我们这里只介绍点到点隧道协议PPTP。一、PPTP协议原理PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据帧通过隧道传送。可以对封装PPP帧中的负载数据进行加密或压缩。下边简单描述PPTP 过程中涉及的封装和解封步骤。封装1.数据封装于IP(或IPX和NetBEUI)封包中。2.该IP(或IPX和NetBEUI)封包封装在PPP帧中。3.该PPP帧封装在GRE 帧中(并加密)。4.该GRE帧封装在IP 封包中。解封1.移除IP包头。2.移除GRE包头(解密过程)。GRE负载中是一个PPP帧。3.移除PPP包头。4.将该IP(或IPX和NetBEUI)封包路由到其最终的目的地。MPPE将通过由MS-CHAP、MS-CHAP v2或EAP-TLS身份验证过程所生成的加密密钥对PPP帧进行加密。为对PPP帧中所包含的有效数据进行加密,虚拟专用网络客户端必须使用MS-CHAP、MS-CHAP v2或EAP-TLS身份验证协议。PPTP将利用底层PPP加密功能并直接对原先经过加密的PPP帧进行封装。PPTP协议将控制包与数据包分开,控制包采用TCP控制,客户端连接到VPN服务器TCP1723端口,用于控制和管理VPN隧道的功能;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中,最后封装到IP协议中传送。因业务需要,公司员工需要通过VPN访问国外网站,便有了以下安装实例。二、PPTP VPN安装前的准备环境:CentOS release 6.4 (Final) i386协议:GRE,PPTP端口:PPTP/TCP/1723(服务端), GRE/TCP/47加密:MPPE(微软点对点加密协议,实现数据链路层的机密性保护)认证:MS-CHAP v2服务:pptpd软件包:(1). ppp-2.4.5-33.0.rhel6.i686.rpmPPTP需要PPP的支持,一般情况下linux系统都已安装有PPP软件包,最好安装较新的ppp软件包,用Uvh这个参数来更新系统的PPP组件。也可以用#yum -y install ppp命令安装。(2). pptpd-1.4.0-1.el6.i686.rpm (pptpd服务端软件)(3). dkms-2.0.17.5-1.noarch.rpm CentOS6x/RHEL6x(内核支持mppe)不用安装DKMS全称是Dynamic Kernel ModuleSupport,它可以帮我们维护内核外的这些驱动程序,在内核版本变动之后可以自动重新生成新的模块。(4). kernel_ppp_mppe-1.0.2-3dkms.noarch(MPPE的内核补丁),CentOS6x/RHEL6x(内核支持mppe)不用安装(5). pptp-release-4-7.rhel6.noarch.rpm (pptpd yum仓库包,安装后可用#yum -y install pptpd命令来安装pptpd)下载地址:http://poptop.sourceforge.net/yum/stable/rhel6Server/i386/dkms-2.0.17.5-1.noarch.rpmhttp://poptop.sourceforge.net/yum/stable/rhel6Server/i386/pptpd-1.4.0-1.el6.i686.rpmhttp://poptop.sourceforge.net/yum/stable/rhel6Server/i386/pptp-release-4-7.rhel6.noarch.rpmhttp://poptop.sourceforge.net/yum/stable/rhel6Server/i386/ppp-2.4.5-33.0.rhel6.i686.rpmhttp://poptop.sourceforge.net/yum/stable/rhel6Server/i386/ppp-devel-2.4.5-33.0.rhel6.i686.rpm我们这里是32位系统,如果是64位系统请下载相应的软件包。第一步:检测是否符合pptp的搭建环境的要求服务器版本:Linux version 2.6.32-358.14.1.el6.x86_64 (mockbuild@c6b10.bsys.dev.centos.org) (gcc version 4.4.7
(Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jul 16 23:51:20 UTC 2013如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:1modprobe ppp-compress-18 && echo ok这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:如果这条指令显示结果为下面的文本,则表明通过12cat /dev/net/tuncat: /dev/net/tun: File descriptor in bad state上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请你的服务商来解决这个问题。Cent os 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略:检查PPP是否支持MPPE,用以下命令检查PPP是否支持MPPE:12rpm -q pppstrings '/usr/sbin/pppd' |grep -i mppe | wc --lines如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。三、安装pptp VPN 服务器端1. 下载把所需的软件包,我们这里把软件下载到/vpnsoft目录2. 安装软件包rpm -Uvh ppp-2.4.5-33.0.rhel6.i686.rpmrpm -ivhppp-devel-2.4.5-33.0.rhel6.i686.rpmrpm -ivh pptpd-1.4.0-1.el6.i686.rpmrpm -ivh dkms-2.0.17.5-1.noarch.rpm (可以不安装)3.查看内核是否加载 mppe模块 .(1)# lsmod |grep ppp 默认情况下不会自动加载,所以命令执行后没有返回结果。(2)# modprobeppp-compress-18 手动加载mppe模块(3)再次查看mppe模块是否加载# lsmod |grep pppppp_mppe 39881 0ppp_generic 62689 1 ppp_mppeslhc 39745 1 ppp_generic出现上面情况说明已ppp模块和mppe加载成功四、PPTP服务配置1.修改主配置文件/etc/pptpd.conf# vi /etc/pptpd.confppp/usr/sbin/pppdoption /etc/ppp/options.pptpddebug第一句指pppd服务在哪儿,第二句是指pptpd的参数配置文件的位置,第三句开启调试日志(保存在/var/log/messages)。在文件最后行修改以下两行localip 192.168.1.4remoteip 192.168.10.234-254,192.168.10.256Localip指本地的地址,就是客户端要连接的VPN服务器的地址,可以是虚拟地址,也可以与remoteip地址同段或异段。remoteip要给客户端分配地址的范围(如果地址不连续,可以用逗号隔开)。2.修改/etc/ppp/options.pptpd参数配置文件# vi/etc/ppp/options.pptpdname vpnservername后面是VPN服务器的名称,默认是pptpd,开启Authentication,默认是注释掉的,是指是否开启身份认证,必须的。debug开启调试日志(保存在/var/log/messages)ms-dns 8.8.8.8ms-dns 8.8.4.4添加DNS地址,我们用的是google的DNS.refuse-pap 拒绝pap身份验证refuse-chap   拒绝chap身份验证refuse-mschap 拒绝mschap身份验证require-mschap-v2 使用mschap-v2身份验证require-mppe-128  使用 128-bit MPPE加密3.修改/etc/ppp/chap-secrets用户账号文件 # vi /etc/ppp/chap-secrets#client server secret IP addressestest001 vpnserver &test& *client栏位指的是用户名,server指VPN服务器名称,要与/etc/ppp/options.pptpd文件里name 后面的VPN服务器名称一样。Secret是指密码,IP addresses 是指客户端用哪个IP访问,*号表示随机分配。4.网络和iptable设置因为要通过VPN服务器上网,所以要开启ip_forward转发功能和伪装IP以及开启相关协议端口. 如果要访问VPN服务器的内部局域网的话,要用route add命令添加路由。(1) 开启转发功能# vi /etc/sysctl.confnet.ipv4.ip_forward = 1(2) 让转发功能立即生效# sysctl -p(3) 伪装IP# iptables -tnat -I POSTROUTING -p tcp -s 192.168.10.0/24 -j SNAT–to-source XX.XX.XX.XXor# iptables -tnat -I POSTROUTING -o eth0 -s 192.168.10.0/24 -j SNAT --to-source 192.168.1.4XX.XX.XX.XX为VPN服务器外网IPPS:也可以使用下面这条规则使用伪装的形式达到同样的效果.--------------------------------------------------------------------------iptables -t nat-A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE--------------------------------------------------------------------------(4) 开启相关协议端口① 开放相应端口DNS/53 DHCP/68 PPTPD/1723----------------------------------------------------------------------------iptables -IINPUT -p udp --dport 53 -j ACCEPTiptables -IINPUT -p tcp --dport 53 -j ACCEPTiptables -IINPUT -p tcp --dport 68 -j ACCEPTiptables -IINPUT -p tcp --dport 1723 -j ACCEPT- ---------------------------------------------------------------------------② 允许建立VPN隧道,否则无法验证用户名及密码.----------------------------------------------------------------------------iptables -IINPUT -p gre -j ACCEPT----------------------------------------------------------------------------③ 允许客户端的路由转发.----------------------------------------------------------------------------iptables -IFORWARD -s 192.168.10.0/24 -j ACCEPTiptables -IFORWARD -d 192.168.10.0/24 -j ACCEPT----------------------------------------------------------------------------service iptablessaveservice iptablesrestart----------------------------------------------------------------------------(5)启动pptpd服务  service pptpd start 启动  service pptpd stop 停止,所有的会话连接都会丢失。  service pptpdrestart 重启服务,现在会话连接不会丢失。(6)查看pptpd服务是否启动netstat –an |grep 1723五、安装linux VPN客户端环境:CentOS release 6.4 (Final) i386软件: libpcap-1.4.0,ppp-2.4.5-33.0.rhel6.i686.rpm,pptp-1.7.2-3.rhel5.i386.rpmyum -yinstall libcaphttp://poptop.sourceforge.net/yum/stable/rhel6Server/i386/ppp-2.4.5-33.0.rhel6.i686.rpmhttp://nchc.dl.sourceforge.net/project/pptpclient/pptp/pptp-1.7.2/pptp-1.7.2-3.rhel5.i386.rpm1. 安装软件包# rpm -ivh ppp-2.4.5-33.0.rhel6.i686.rpm# rpm -ivh pptp-1.7.2-3.rhel5.i386.rpm2. 建立VPN连接通道#pptpsetup --create vpntunnel --server 192.168.1.4 --username test001 --passwordtest --encrypt -startvpntunnel 通道名称  --server 192.168.1.4 指定VPN服务器地址--usernametest001 指定用户名--passwordtest 指定密码--encrypt 启用加密刚才建立的连接用户和密码信息会自动添加到/etc/ppp/chap-secrets文件中,并且在/etc/ppp/peers目录下产生一个vpntunnel文件,文件内容如下:# vi /etc/ppp/peers/vpntunnel# written by pptpsetuppty &pptp 192.168.1.4--nolaunchpppd&locknoauthnobsdcompnodeflatename test001remotename vpntunnelipparam vpntunnelrequire-mppe-128# vi /etc/ppp/chap-secrets# added by pptpsetup forvpntunneltest001 vpntunnel&test& *执行命令# pppd call vpntunnel,就可以连接到VPN Server了。也可用如下命令关闭开启。# /usr/share/doc/ppp-2.4.5/scripts/ponvpntunnel# /usr/share/doc/ppp-2.4.5/scripts/poffvpntunnel3.修改路由采用vpn联网# ip route replace 192.168.1.4 via192.168.1.1 dev eth0 src 192.168.1.180# ip route replace default dev 'ppp0'vpntunnel 通道名称--192.168.1.4 指定VPN服务器地址(vpn server)--192.168.1.1 原网关地址--eth0 原设备看连接--192.168.1.180 原IP--ppp0 vpn连接Windows新建VPN以后默认使用VPN联网,而Linux却不是如果使用VPN连接网络必须为Linux指定VPN路由。六、Windows新建VPN连接1.在window客户端建立一个VPN连接IP地址为VPN服务器地址,输入用户和密码后连接。(具体操作略过)2.查看连接  在命令行运行ipconfig/all命令后,会多出一个PPP连接来,这样就连接到VPN 服务器了。3.在VPN服务器端,运行ifconfig后,也会多出一个PPP连接。4.为了方便排除连接故障,可以在/etc/pptpd.conf主配置文件里开启debug和logwtmp选项,这两个选项会把客户端连接情况记录在/var/log/message里面。5. VPN Client2做FTP服务器,VPN Client2获取FTP数据时可用WireShark抓包,可以查看数据包是加密过的。七、其它命令和技巧1.连接(linux下有效)pppd call tunnelnametunnelname为用ifconfig查看到的PPP连接名称。2.断开所有PPP连接killall pppd3.断开指定ppp连接ps–ef |grep pptpd这样会查出很多进程来,根据客户端外网IP地址找到对应的进程号,然后kill掉就行了。4.添加VPN用户账号vpnuser add vpnuser vpnpasswd5.删除VPN用户账号vpnuser del vpnuser八、参考资料1.软件下载http://poptop.sourceforge.net/http://poptop.sourceforge.net/yum/stable/rhel6Server/i386/http://sourceforge.net/projects/pptpclient/files/pptp/2.配置文档http://yuejun./650/qk_zhu/blog/static///reyleon/item/c48e12e3f9866dLinus_hai 的BLOG
用户名:Linus_hai
文章数:127
访问量:27012
注册日期:
阅读量:5863
阅读量:12276
阅读量:319188
阅读量:1030684
51CTO推荐博文
一、需求1.有时候我们在外地出差,需要连到公司的内网办公,这个时候就需要一个VPN服务器了。2.我们内网的pc想出外网也是可以通过VPN服务器出去的二、测试环境:1.服务器:外网IP&eth0:10.20.230.46&&&&内网IP&eth1:192.168.9.12.VPN外网客户端:IP:10.20.230.48&&&VPN内网客户端:192.168.9.1003.VPV客户端分配的IP网段:172.28.29.11-30三、服务端安装:yum&install&-y&ppp&iptableswget&rpm&-ivh&pptpd-1.3.4-2.rhel5.x86_64.rpm四、修改配置文件:1.配置文件/etc/ppp/options.pptpdmv&/etc/ppp/options.pptpd&/etc/ppp/options.pptpd.bakvi&/etc/ppp/options.pptpd输入如下内容:name&pptpdrefuse-paprefuse-chaprefuse-mschaprequire-mschap-v2require-mppe-128proxyarplocknobsdcompnovjnovjccompnologfdidle&2592000ms-dns&8.8.8.8ms-dns&8.8.4.42.配置文件/etc/ppp/chap-secretsmv&/etc/ppp/chap-secrets&/etc/ppp/chap-secrets.bakvi&/etc/ppp/chap-secrets输入如下内容:#&Secrets&for&authentication&using&CHAP#&client&&&&&&&&server&&secret&&&&&&&&&&&&&&&&&&IP&addressestest&&&&&&&&&&&&&&pptpd&&123&&&&&&&&&&&&&*注:这里的test和123即为PPTP&VPN的登录用户名和密码3.配置文件/etc/pptpd.confmv&/etc/pptpd.conf&/etc/pptpd.conf.bakvi&/etc/pptpd.conf输入以下内容:option&/etc/ppp/options.pptpdlogwtmplocalip&10.20.230.46remoteip&172.28.29.11-30注:为拨入VPN的用户动态分配172.28.9.11~172.28.9.30之间的IP,特别强调:客户端要拨入的IP是:10.20.230.464.配置文件/etc/sysctl.confvi&/etc/sysctl.conf修改以下内容:net.ipv4.ip_forward&=&1保存、退出后执行:/sbin/sysctl&-p五、启动服务:/sbin/service&pptpd&start六、防火墙设置:iptables&-t&nat&-A&POSTROUTING&-s&172.28.29.0/255.255.255.0&-o&eth0&-j&MASQUERADEiptables&-A&FORWARD&-s&172.28.29.0/255.255.255.0&-j&ACCEPTiptables&-A&RH-Firewall-1-INPUT&-s&172.28.29.0/255.255.255.0&-p&tcp&-m&state&--state&NEW&-m&tcp&-j&ACCEPT客户端连上VPN后不能上公网,解决办法有两个:一、把VPN拨号连接属性-网络-高级-把使用默认网关的勾去掉;二、在VPN服务器上做以上防火墙设置。下面我把我的iptables的配置贴一下吧:&[root@localhost&~]#&iptables-save&#&Generated&by&iptables-save&v1.3.5&on&Sun&May&13&11:30:41&2012*nat:PREROUTING&ACCEPT&[]:POSTROUTING&ACCEPT&[9:593]:OUTPUT&ACCEPT&[9:593]-A&POSTROUTING&-s&172.28.29.0/255.255.255.0&-o&eth0&-j&MASQUERADE&COMMIT#&Completed&on&Sun&May&13&11:30:41&2012#&Generated&by&iptables-save&v1.3.5&on&Sun&May&13&11:30:41&2012*filter:INPUT&ACCEPT&[]:FORWARD&DROP&[23:928]:OUTPUT&ACCEPT&[]:RH-Firewall-1-INPUT&-&[0:0]-A&INPUT&-j&RH-Firewall-1-INPUT&-A&FORWARD&-i&eth0&-m&state&--state&RELATED,ESTABLISHED&-j&ACCEPT&-A&FORWARD&-s&172.28.29.0/255.255.255.0&-j&ACCEPT&-A&FORWARD&-j&RH-Firewall-1-INPUT&-A&FORWARD&-s&172.28.29.0/255.255.255.0&-j&ACCEPT&-A&FORWARD&-s&172.28.29.0/255.255.255.0&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-i&lo&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-p&icmp&-m&icmp&--icmp-type&any&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-d&224.0.0.251&-p&udp&-m&udp&--dport&5353&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-p&udp&-m&udp&--dport&631&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-p&tcp&-m&tcp&--dport&631&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-m&state&--state&RELATED,ESTABLISHED&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-p&tcp&-m&state&--state&NEW&-m&tcp&--dport&22&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-s&0.0.0.0/255.255.255.0&-p&tcp&-m&state&--state&NEW&-m&tcp&-j&ACCEPT&-A&RH-Firewall-1-INPUT&-s&172.28.29.0/255.255.255.0&-p&tcp&-m&state&--state&NEW&-m&tcp&-j&ACCEPT&COMMIT#&Completed&on&Sun&May&13&11:30:41&2012七、Windows&下&PPTP&VPN&客户端配置:外网用户通过拨VPN的外网IP进入内网办公&内网用户通过拨VPN的内网IP出去上网&&在内网的机器上ping一下百度,看看可以上网不:ok,成功了。本文出自&“”&博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)Centos下vpn(pptpd)的部署
在centos 5下面安装pptpd最省事的安装就是下载rpm包pptpd-1.3.4-1.rhel5.1.i386.rpm,然后直接执行 rpm &ivh pptpd-1.3.4-1.rhel5.1.i386.rpm 。幸运的是这个包没有其他依赖,因此安装应该是异常的顺利。如果使用源码安装,会出现ppp版本高的情况,需删除pppd2.3.4 再安装pppp2.4.3,反而麻烦了。
安装完rpm包后,自动生成几个配置文件,主配置文件/etc/pptpd.conf,选项文件/etc/ppp/options.pptpd, 帐号文件/etc/ppp/chap-secrets.后面配置pptpd主要就是对这几个文件进行修改。
二、vpn拓扑结构
vpn的访问逻辑上存在3个网络:
1、欲访问的目标网络。通常在vpn服务器所在的内部网络(vpn服务器有2个网卡,一个是公网的,一个是私有网络的)
2、Vpn的公网网络。
3、Vpn连接后与客户端形成的虚拟网络。建议单独设置一个网络,这样就不会占用vpn后面的私有网络(目标网络)的ip资源/地址。
当然vpn隧道网络可以跟目标网络是同一个网段,不过不推荐这样。
三、vpn服务器端的配置[1]&&&&&&
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】

我要回帖

更多关于 pptpd 连接不上 的文章

 

随机推荐