linux ppp漏洞,Linux下ppp拨号的实现(Arm)

Linux发行版自带PPP拨号需要的pppd和chat命令,以2.6.18内核的Linux虚拟机为例,在/usr/sbin目录下,/etc/ppp目录也已自动创建。参考模权创建拨号脚本ppp-on,ppp-off,ppp-on-dialer三个文件,on&off放在/usr/sbin目录下,ppp-on-dialer放在/etc/ppp目录下,执行ppp-on脚本,如果设备已连接并成功驱动,即可获得IP地址。ppp-on脚本也可以定义传用参数,如拨号串口、电话号码、用户名、密码等。

Arm开发板中要实现ppp拨号:首先要确认内核提供了ppp协议的支持;然后下载ppp-2.4.4b1.tar.gz进行交叉编译,得到pppd、pppdump、pppstats、chat四个必需的拨号程序,下载到开发板;然后编写脚本,与虚拟机上的流程相同,执行拨号脚本即可连接网络。

开发板中实现拨号需要注意的问题:

1、内核配置

执行 #make menuconfig 添加如下内核选项:

Device Drivers ---> Network device support

--->

PPP (point-to-point protocol)

support

[*] PPP multilink support

PPP support for async serial

ports

PPP support for sync tty

ports

SLIP (serial line) support

[*] CSLIP compressed

headers

添加完成后保存并退出,执行 # make uImage。将成功生成的uImage烧入开发板。

2、交叉编译

进入ppp-2.4.4.tar.gz的目录执行解压命令 #tar zxf ppp-2.4.4.tar.gz,解压后出现

ppp-2.4.4 文件夹,进入该目录( #cd ppp-2.4.4 ),执行配置命令 #./configure,然后执行 #make

CC=arm-linux-gcc (后面的CC表示交叉编译器目录)。

编译完成后,复制如下文件到开发板对应目录。

以下$(PPP)为 计算机上ppp-2.4.4 的目录 ,$(EMB_BIN)代表 开发板中的 /bin

目录,$(EMB_ETC)代表开发板中的 /etc 目录

#cp $(PPP)/chat/chat $(EMB_BIN)

#cp $(PPP)/pppd/pppd $(EMB_BIN)

#cp $(PPP)/pppdump/pppdump $(EMB_BIN)

#cp $(PPP)/pppstats/pppstats $(EMB_BIN)

#mkdir $(EMB_ETC)/ppp

#cp $(PPP)/etc.ppp/* $(EMB_ETC)/ppp

#cp $(PPP)/scripts/ppp-on $(EMB_BIN)

#cp $(PPP)/scripts/ppp-off $(EMB_BIN)

#cp

$(PPP)/scripts/ppp-on-dialer $(EMB_ETC)/ppp

注意,后三项为脚本文件。可根据模板手动编写。

3、注意事项

我在调试过程中,完成这些步骤,成功驱动模块,并在/dev下创建了ttyUSB0~2三个串口,但调用[./ppp-on

/dev/ttyUSB0 “#777” card card]拨号时提示需要调用“mknod ppp c 108

0”创建ppp结点,由于自己的失误,以为应该创建为188,结果再次拨号提示不能绑定到ppp通道,查看pppd源代码也未找到问题的的原因,后来发现/proc/devices下有ID号为108的ppp设备,所以应该以108为主设备号创建节点,然后成功连接到网络并获得IP地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值