獨(dú)辟蹊徑--實(shí)現(xiàn)Linux下的局域網(wǎng)遠(yuǎn)程接入

字號(hào):

本文介紹一種利用Linux服務(wù)器的兩個(gè)串口構(gòu)建撥號(hào)服務(wù)器的方法,遠(yuǎn)程用戶可以通過(guò)撥號(hào)連接到局域網(wǎng),方便地進(jìn)行信息傳遞和資源共享。
    筆者的配置環(huán)境是Red Hat 8.0 Linux操作系統(tǒng),所需的硬件包括兩個(gè)外置Modem(分別連接到COM1和COM2端口)和兩條電話線。實(shí)現(xiàn)步驟如下:
    1.初始化串口設(shè)備
    在/etc/inittab文件中加入如下兩行,用來(lái)初始化ttyS0和ttyS1兩個(gè)串口設(shè)備:
    S0:345:respawn:/sbin/mgetty -D -X 3 ttyS0
    S1:345:respawn:/sbin/mgetty -D -X 3 ttyS1
    然后,運(yùn)行“/sbin/init q”命令使改動(dòng)生效。
    2.指定認(rèn)證方式
    在/etc/PPP目錄下創(chuàng)建文件ppplogin,內(nèi)容如下:
    #!/bin/sh
    /usr/sbin/pppd auth -chap +pap login
    該文件指定用戶登錄時(shí)采用PAP認(rèn)證。PAP和CHAP是PPP服務(wù)的兩種身份驗(yàn)證協(xié)議。
    保存文件后,給文件設(shè)置執(zhí)行的權(quán)限:
    #chmod a+x /etc/ppp/ppplogin
    然后,更改/etc/mgetty+sendfax/login.config文件,去掉“/AutoPPP/”一行前面的注釋,并改為如下內(nèi)容:
    /AutoPPP/ - - /etc/PPP/ppplogin
    3. 修改options文件
    修改/etc/PPP/Options文件為如下內(nèi)容;
    detach
    Modem
    Lock
    crtscts
    asyncmap 0
    netmask 255.255.255.0
    proxyarp
    ms-dns 192.168.11.1
    “detach”選項(xiàng)非常重要。如果不指定這個(gè)選項(xiàng),撥號(hào)程序就會(huì)進(jìn)入后臺(tái),使得Shell腳本退出,隨之而來(lái)的是串行線路被掛斷,導(dǎo)致連接中止?!癲etach”防止了tty設(shè)備脫離PPPD的控制。
    “Modem”選項(xiàng)使得PPPD監(jiān)視DTR引線,可以觀察到對(duì)等點(diǎn)是否已掉線。
    “Lock”選項(xiàng)指定在串行設(shè)備上使用UUCP風(fēng)格的鎖定。
    “crtscts”選項(xiàng)用以打開(kāi)硬件握手信號(hào)。
    “asyncmap 0”設(shè)置了異步字符映射,這個(gè)映射指定控制字符不能直接通過(guò)連接發(fā)送,需要先進(jìn)行轉(zhuǎn)義。
    “netmask 255.255.255.0”設(shè)定PPP網(wǎng)絡(luò)接口的網(wǎng)絡(luò)掩碼。
    “proxyarp”選項(xiàng)打開(kāi)了ARP代理功能。
    “ms-dns”2.168.11.1”指定了局域網(wǎng)內(nèi)的DNS服務(wù)器地址,如沒(méi)有可以不設(shè)。
    4. 給撥入用戶分配IP
    創(chuàng)建/etc/ppp/Options.ttyS0和/etc/ppp/
    options.ttyS1兩個(gè)文件,內(nèi)容如下:
    # Vi options.ttyS0
    192.168.11.3:192.168.11.242
    # Vi options.ttys1
    192.168.11.3:192.168.11.243
    其中,“192.168.11.3”是用作撥號(hào)服務(wù)器的那臺(tái)Linux機(jī)器的IP地址,“192.168.11.242”和“192.168.11.243”是分別指定給COM1口和COM2口撥入用戶的IP地址。
    5. 口令驗(yàn)證
    編輯文件/etc/PPP/pap-secrets,內(nèi)容如下:
    * * "secret" 192.168.11.242
    * * "passWord" 192.168.11.243
    如上所示,每行代碼包含四列,分別代表用戶名、服務(wù)器地址、口令值和IP地址列表?!?”表示可以與任何內(nèi)容進(jìn)行匹配。
    用戶撥入后,如果需要訪問(wèn)局域網(wǎng)內(nèi)的其它服務(wù)器,就必須打開(kāi)IP轉(zhuǎn)發(fā)功能:
    echo 1> /proc/sys/net/ipv4/ip_forward
    要想在空閑一段時(shí)間后自動(dòng)解除連接,需要在/etc/ppp/options中加入如下一行:
    idle 600
    上述代碼中,“600”表示600秒,即10分鐘。
    如果在相應(yīng)目錄下找不到/sbin/mgetty文件和/etc/mgetty+sendfax/login.config文件,則需要安裝mgetty軟件包。