(2)启动pppd与客户建立PPP连接
打开/etc/passwd文件,找到用户ppp的那一行,应该是这样的:
ppp:x:500:500::/home/ppp:/bin/bash
由此可以看出,用户ppp使用的shell程序是bash,现在要做的就是用pppd换掉这个bash。这样当用ppp登录时,就不会执行bash,而是执行pppd。如此,pppd就在服务器端启动了。
具体可以在/etc/ppp建立一个ppplogin文件,内容如下:
#!/bin/sh
exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock Modem crtscts
chmod+x ppplogin
用ppplogin替换用户ppp的登录shell,就像如下代码:
ppp:x:500:500::/home/ppp:/etc/ppp/ppplogin
由于pppd执行必须要root权限,所以还要将pppd设成以root权限执行:
chmod u+s/usr/sbin/pppd
替换了登录shell和修改pppd属性之后,可以试一试。与前面介绍方法一样进行拨号,在输入用户名和密码之后,如果能看到pppd所特有垃圾字符,并且一行一行的没完,就说明服务器端pppd已经启动了。接着单击“继续”按钮,也就是启动客户端的pppd,与服务器的pppd进行握手。过了一段时间,就会看到登录网络成功,其标志就是熟悉的绿色小计算机出现了。
(3)针对Windows 98客户的特殊设置
Windows 98要求域名服务器在连接的时候传给它。pppd有个参数ms-dns,就是用来传DNS给客户的。在ppplogin里加上这个参数就可以了,比如:
#!bin/sh
exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock\
Modem crtscts ms-dns 202.106.0.20
这两个DNS中,第一个DNS是主,第二个DNS是辅的。
2.回拨(Callback)
Callback就是当用户拨号连到拨号服务器时,服务器先断掉连接,然后再拨回给用户。用户的Modem接收这个呼叫,从而建立拨号连接。这样就给“家庭办公”创造了有利条件,可以在家里用回拨的方式连到公司进行办公。
(1)服务器端设置
在设置之前,应该确保Mgetty的Callback程序安装好了。将下面这行内容加到/etc/mgetty+sendfax/login.config中:
call_hxf--/usr/sbin/callback-d-l ttyS1-s 115200 -S 62345678
前面的call-hxf是指为Mgetty增加一个名为call_hxf的用户入口。这个用户只是Mgetty用来启动Callback程序的,而不是Linux系统中的用户,不要真的用useradd添加一个call_hxf用户,这个call_hxf用户名只是Mgetty用的,不是系统的。用户通过Modem连到Linux上,Mgetty提示输入用户名时,如果输入的是call_hxf,Mgetty就调用/usr/sbin/callback程序来处理回拨。参数-b是指在/var/log/mgetty.ttyS1留下调试信息;-1 ttyS1是指使用ttyS1为拨出设备;-s 115200是串口速率;-S 62345678是指定的回拨电话号码。如果没有-S参数,Mgetty就会提示输入回拨的目的电话号码。基于安全考虑,建议这里指定回拨的目的号码,否则别人用call_hxf登录,同样也可以使用回拨了。
现在可以试一试在Windows 98环境下,使用“拨号后出现终端窗口”的拨号连接。当出现终端口并提示login时,输入call_hxf。如果在login.config中没有指定回拨号码,现在就会有提示问回拨的电话号码了。输入现在使用的号码,此时服务器断开电话准备回拨,但是Windows 98会认为服务器断了,弹出一个对话框告诉用户服务器断开连接,请稍候再试。过一段时间后,电话会振铃,服务器正在回拨,但是Windows 98已经不响应了,看来Windows 98还要设置一下才能协调起来。现在还是把Linux服务器上的那个callback进程停止,不然它会一直播下去的。
(2)客户端设置
服务器准备回拨的时候要把电话先断掉。目的是让Windows 98检测不到这个变化,这样它就不会退出拨号程序了。打开所使用的拨号连接的属性的“常规”、“设置”、“连接”、“高级”、“附加设置”,将AT&C这个命令写在附加设置里。这个命令的意思就是让串口听载波检测(Carrier Detect)那根线保持有效,这样Windows 98就会认为电话一直是通的,服务器回拨时断掉电话它就检测不出来了。这样Windows 98的拨号客户程序就可以继续与服务器对话,并建立连接了。