免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4189 | 回复: 13
打印 上一主题 下一主题

请教一个PPTP Server的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-12 16:48 |只看该作者 |正序浏览
交叉编译ppp 2.4.3时遇到问题,搞了一个周末了,没有进展,希望CU上哪位大哥救我。

uClinux 2.4.31
pppd 2.4.3

均打了MPPE-MPPC补丁

顺利交叉编译pppd 2.4.3后,客户端拨号在身份验认后报“741:ppp链接控制协议终止”
sniffer后,看到是:
客户端发送一个CCP Configure Request后,
服务器加一个LCP Terminate Request,(MPPE Requested but not available)然后
客户端响应一个LCP Terminate Ack,(MPPE Requested but not available)。

感觉上是服务器端MPPE协商上出了问题,
配置的是“mppe required,stateless”(如果服务器端不开MPPE,客户端不要求加密,可以连接)


交叉编译了pppd2.3.8上去,一切OK,说明内核是支持MPPE的,问题应该出在了pppd-2.4.3上边。
所以,想请教一下哪位大哥,pppd-2.4.3交叉编译时,针对MPPE有什么特别的没有,我已把Makefile相关标志打开了:
CHAPMS=y
USE_CRYPT=y
MPPE=y
编译也,也看到相关标志位生效了的。
所以,想请教一下,还有哪些工作需要做,或者是如何判断我的pppd-2.4.3的MPPE已经工作正常了呢?

_____________________________
附:编译pppd的信息
ucfront-gcc arm-linux-gcc -mbig-endian -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DCBCP_SUPPORT -DMAXOCTETS -g -fno-common -fno-builtin -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o eap.o chap-md5.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o spinlock.o cbcp.o  -lcrypt

[ 本帖最后由 独孤九贱 于 2006-3-12 16:54 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2006-03-19 23:42 |只看该作者
原帖由 platinum 于 2006-3-19 13:53 发表
我的 /etc/pptpd.conf 里有一个 logwtmp 参数
logwtmp 参数要求调用一个动态连接库,那个库叫什么名字我忘记了,只记得和 pppd 有关,是在编译时候一起生成的,复制到相应位置即可,之后 last 自然会看到相应记录 ...


发现要pptpd1.2.0以上才支持logwtm选项,我就把我的pptpd1.1.4升级到了1.2.3,结果搞了一下午,到现在都还没有成功,一直报错:
Mar 19 23:37:33 kendo kernel: application bug: pptpctrl(2979) has SIGCHLD set to SIG_IGN but calls wait().
Mar 19 23:37:33 kendo kernel: (see the NOTES section of 'man 2 wait'). Workaround activated.
Mar 19 23:39:28 kendo kernel: application bug: pptpctrl(3009) has SIGCHLD set to SIG_IGN but calls wait().
Mar 19 23:39:28 kendo kernel: (see the NOTES section of 'man 2 wait'). Workaround activated.

……
郁闷,哪位知不知道这是怎么回事啊?
我以前pptpd1.1.4+pppd2.4.3是OK的,现在配置基本没有变(就是根据pptpd1.2.3的示例配置文件把原来的speed 115200去掉,加上了ppp /usr/sbin/pppd,logwtmp选项没有打开)!

论坛徽章:
0
13 [报告]
发表于 2006-03-19 13:53 |只看该作者
我的 /etc/pptpd.conf 里有一个 logwtmp 参数
logwtmp 参数要求调用一个动态连接库,那个库叫什么名字我忘记了,只记得和 pppd 有关,是在编译时候一起生成的,复制到相应位置即可,之后 last 自然会看到相应记录,就像 login 一样

论坛徽章:
0
12 [报告]
发表于 2006-03-19 12:25 |只看该作者
原帖由 platinum 于 2006-3-17 23:16 发表
http://bbs.chinaunix.net/viewthread.php?tid=697601
这篇文章也许能够给你带来很大的启发
知道该 PID 后就可以为所欲为啦 ^_^

另外,至于看什么时间拨上来,什么时间下去的,恐怕要挖 last 了
...


白金兄,我的last中,并没有pptpd有户的登录信息,是要打开什么命令参数开关么?我现在思路已经出来了,就差这块……不会要去修改pppd源码,自己来一个updwtmp吧?有一个login选项似乎有关系,可是这个选项我看帮助是否只是用于PAP……

[ 本帖最后由 独孤九贱 于 2006-3-19 12:36 编辑 ]

论坛徽章:
0
11 [报告]
发表于 2006-03-18 22:47 |只看该作者
原帖由 platinum 于 2006-3-17 23:16 发表
http://bbs.chinaunix.net/viewthread.php?tid=697601
这篇文章也许能够给你带来很大的启发
知道该 PID 后就可以为所欲为啦 ^_^

另外,至于看什么时间拨上来,什么时间下去的,恐怕要挖 last 了
...


是啊,我原本以为有什么很现成而简单的方法,后来找了一通,发现不是那么会事,就读了一个ADS的状态的那个脚本,它的思想可以借鉴一下,哈哈!

论坛徽章:
0
10 [报告]
发表于 2006-03-17 23:16 |只看该作者
http://bbs.chinaunix.net/viewthread.php?tid=697601
这篇文章也许能够给你带来很大的启发
知道该 PID 后就可以为所欲为啦 ^_^

另外,至于看什么时间拨上来,什么时间下去的,恐怕要挖 last 了
我的服务器记录如下

baijin1 ppp1         61.49.136.212    Thu Mar 16 13:28 - 13:33  (00:04)
baijin2 ppp2         221.220.220.83   Thu Mar 16 10:24 - 10:54  (00:29)
baijin2 ppp2         221.220.220.83   Thu Mar 16 10:22 - 10:24  (00:01)
baijin1 ppp1         61.49.136.212    Thu Mar 16 10:22 - 13:27  (03:04)
baijin3 ppp1         211.161.92.116   Tue Mar 14 23:36 - 23:40  (00:03)
baijin1 ppp2         221.219.211.11   Tue Mar 14 19:04 - 21:17  (02:13)
baijin1 ppp1         221.216.227.189  Tue Mar 14 17:17 - 19:04  (01:46)
baijin1 ppp1         221.216.227.189  Mon Mar 13 20:58 - 00:57  (03:59)
baijin1 ppp1         221.219.210.50   Mon Mar 13 08:46 - 09:26  (00:40)
baijin3 ppp1         211.161.92.153   Sun Mar 12 18:21 - 18:29  (00:07)
baijin1 ppp1         61.49.251.204    Sat Mar 11 21:56 - 08:10  (10:13)
baijin1 ppp1         61.49.251.204    Sat Mar 11 21:23 - 21:56  (00:32)
baijin1 ppp2         61.149.166.25    Fri Mar 10 20:45 - 08:50  (12:05)

论坛徽章:
0
9 [报告]
发表于 2006-03-17 16:50 |只看该作者
原帖由 platinum 于 2006-3-13 11:35 发表
uClinux 没有接触过,不知道是不是和 Linux 用起来一样?
2.4.3 应该没有问题
2.3.8 没有用过,也不知道是否有适合他的 mppe-mppc 补丁
总之,必须 kernel 程序与 user 程序都支持才可以

tips: 还有一点,我 ...


今天下午奋斗了好久,终于搞定了,献给与我有同样遭遇的CUer:
环境:
uClinux 2.4.31
Linux 2.4.31 MPPE+MPPC补丁

问题:
将自带的pppd 2.3.8升至2.4.3+MPPE+MPPC,自带的pptpd升至pptpd 1.1.4后,如果开了MPPE,总是报741P链路终止。

解决:

原因,uClinux 2.4.31已经有了MPPE补丁,但是内核编译菜单没有显示出来,(至少我的是这样),但是这个补丁不带MPPC,所以,导致协商失败。
可以通过查看kernel/driver/net/Makefile看出:
obj-$(CONFIG_PPP) += ppp_generic.o slhc.o
obj-$(CONFIG_PPP) += ppp_generic.o slhc.o ppp_mppe.o

解决办法一:用不带MPPC的PPPD进行连接,我自带的2.3.8就是这样;
解决办法二:屏蔽kernel的MPPE,打上MPPE+MPPC补丁;我现在就是这样做的,打了补丁后,把那个ppp_mppe.o去掉即可!

顺便问一个应用的问题:
当服务器建好后,如何查看:
谁什么时间拨上来了,本地/远程分的虚拟IP地址是多少,他的实际IP地址又是多少?如果我高兴,如何切断它?


ps:常常看大家发贴插入图片,可是我的图片都在本地机机上,有什么办法么?

[ 本帖最后由 独孤九贱 于 2006-3-17 16:56 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-03-13 11:35 |只看该作者
uClinux 没有接触过,不知道是不是和 Linux 用起来一样?
2.4.3 应该没有问题
2.3.8 没有用过,也不知道是否有适合他的 mppe-mppc 补丁
总之,必须 kernel 程序与 user 程序都支持才可以

tips: 还有一点,我以前经常犯的低级错误,编译完 patched pppd 后,没有 install 到正确位置,每次使用时仍使用救的程序,导致让我误以为失效

论坛徽章:
0
7 [报告]
发表于 2006-03-13 11:09 |只看该作者
刚才试了,还是一样的结果,服务器发送一个“MPPE required but not available”,我想多半还是我的pppd的问题,可是读了半天的Makefile,看了编译信息,没有找到可以怀疑的地方,哎,服务器端没有任何日志,不知是pppd自己不支持MPPE、内核的问题,还是兼容性性问题,还是客户端的问题等等……郁闷了,我的rp-pppoe又要求pppd 2.4.1以上,否则我就用我的2.3.8的。

论坛徽章:
0
6 [报告]
发表于 2006-03-13 10:55 |只看该作者
原帖由 platinum 于 2006-3-13 10:46 发表
options.pptpd 换成下面的内容试试,不知道这样是否可行
从你的配置来看,你好像没有仔细阅读我的那篇 MPPE-MPPC 感受,不知道你是否试验过我的那个方法
[code]
debug
name mypptpd
lock
-pap
-chap
-msc ...


谢谢!我马上试试先,待会上来贴结果!
加载模块?我是直接编译进内核的……没有用模块,我交叉编译过pppd 2.3.8上去,可以进行MPPE+MSCHAPV2,内核应该没有问题的!
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP