轻松建立Linux拨号服务
作者:未知 来源:- 添加时间:2006-5-21 15:39:57一、软件及网络环境
Redhat 7,内核2.2.16-22,pppd-2.3.11,局域网,Linux 服务器IP设为202.194.177.9,服务器名称为jsred,分配给拨号用户的固定IP为202.194.177.66,主机名为admin。
二、服务器端的安装
1)安装pppd
在Linux服务器上查看有没有安装pppd,缺省安装是在/usr/sbin/子目录下。如果存在,再查看系统内核有没有提供对ppp的模块支持,如没有,可以进到/usr/src/liunx 子目录,用make menuconfig或make config,对内核进行配置。在PPP支持选项上,选上模块标志。然后重新编译内核,用如下命令:
make dep; make clean; make zlilo; rdev -R /vmlinuz
2)安装调制解调器
在物理线路正确连接后打开Modem的电源,运行minicom来测试Modem是否已经正确安装。输入minicom -s 命令设置Modem相关参数,首先查看缺省串行口,缺省为 /dev/modem。根据你所用的串行口将之改为/dev/ttyS0或/dev/ttyS1,其次设置通信速率。如果minicom 与Modem连接成功,进入会话状态,输入ATS0=1,如果紧接着在下一行出现OK , 且Modem 的AA灯亮起,modem进入自动应答状态。表明minicom与Modem通讯正常,Modem可以正常工作了;否则修改串口设置,重复上述步骤。也可用当地的ISP的电话号码拨号,看能否正确连接。一般是先有拨号音,然后是嘈杂声,再就是握手,表示接通,出现登录提示画面,可证明Modem已正确安装。
如果遇到Modem能接通,网卡不能工作或网卡能工作而Modem接不通,则要查看是否由于Moem与网卡或其它设备中断冲突引起的。一般检测串行口所占用的中断号。输入:
# cat /proc/interrupts 命令查看当前串口占用的中断号,例:
0: 8889830 timer
1: 11557 keyboard
4: 1940 serial
可以看到当前串口占用的中断是4。也可以用setserial 命令来给串口设置地址和中断号(IRQ), 例如:# /sbin/setserial/dev/ttys0 irq 4 赋给串口一(COM1)中断值为4。或:#/sbin/setserial/dev/ttys0 auto_irq 赋给串口任意一个空闲中断号。
3)创建登录终端
在Unix中,将设备看成是一个特殊文件来进行访问控制。通过特殊文件可以访问特定的设备,Linux也不例外。 Linux的标准虚拟终端有mingetty、agetty等,本文介绍用mgetty 作为ppp客户登录进来的虚终端,你可以通过网上搜索得到该软件,Redhat 7自带RPM包:mgetty-1.1.22-1.i386.rpm,安装命令为:rpm -ivh mgetty-1.1.22-1.i386.rpm ,安装完成后在/sbin子目录下有二进制文件mgetty。然后进到/etc子目录,在inittab文件之后加上一句:
s1:1235:respawn:/sbin/mgetty -D -s 38400 ttyS0
保存,用init q命令重启进程。用ps -aux命令可看到类似于:
219 ? S 0:00/sbin/mgetty -D -s 38400 ttyS0
表明该终端已准备好,可以接受用户的拨入请求了。
4)创建或修改PPP相关配置文件
基于对拨号安全性的考虑,pppd默认要求进行主客户机的身份自验证,即对等验证。除非使用root用户帐号拨号或服务器没有连上Internet,因此为了使pppd能正常工作,需要在服务器端设置相应的主客户机验证信息。
4.1)编辑/etc/ppp/options文件,在其中加入:
-detach
crtscts
netmask 255.255.255.0
asyncmap 0
proxyarp
其中,Asyncmap 表示,在对远程机进行串行联接时,连接可能将ASCII控制码(0-31)用于特殊的用途,所以,这些代码不能作为数据包的一部分进行传送,这就要告诉pppd,不要直接用这些控制码。而用特殊的两字符的转义序列来代替它们。Asyncmap 0表示不需要对任何控制码进行转义处理。
基于TCP/IP协议的以太网,并不直接利用IP地址,而是利用网卡MAC地址来传送数据包。Proxyarp告诉它在远程主机的Arp表中增加一项,列出本地机的地址和远程机的网卡MAC地址。Netmask可以根据具体子网划分,修改为相应的子网掩码值。
站内搜索