PPP(Point to Point Protocol)協議
即點對點協議
是標准的Internet協議
我們可以利用ppp撥號連接到Internet
也可通過建立撥號服務器
提供ppp撥入服務
例如
有些機構有多個外地部門
在本地已連通Internet
而外地部門有撥號到中心機房連上Internet的需求
則要求中心機房有一台撥號服務器能提供ppp接入服務
而用目前比較流行的Linux操作系統來做
則顯得輕松有余
本文以RedHat Linux為基礎
詳細討論如何安裝配置ppp撥號服務器
一
軟件及網絡環境
Redhat
內核
pppd
局域網
Linux 服務器IP設為
服務器名稱為jsred
分配給撥號用戶的固定IP為
主機名為admin
二
服務器端的安裝
)安裝pppd
在Linux服務器上查看有沒有安裝pppd
缺省安裝是在/usr/sbin/子目錄下
如果存在
再查看系統內核有沒有提供對ppp的模塊支持
如沒有
可以進到/usr/src/liunx 子目錄
用make menuconfig或make config
對內核進行配置
在PPP支持選項上
選上模塊標志
然後重新編譯內核
用如下命令
make dep; make clean; make zlilo; rdev
R /vmlinuz
)安裝調制解調器
在物理線路正確連接後打開Modem的電源
運行minicom來測試Modem是否已經正確安裝
輸入minicom
s 命令設置Modem相關參數
首先查看缺省串行口
缺省為 /dev/modem
根據你所用的串行口將之改為/dev/ttyS
或/dev/ttyS
其次設置通信速率
如果minicom 與Modem連接成功
進入會話狀態
輸入ATS
=
如果緊接著在下一行出現OK
且Modem 的AA燈亮起
modem進入自動應答狀態
表明minicom與Modem通訊正常
Modem可以正常工作了
否則修改串口設置
重復上述步驟
也可用當地的ISP的電話號碼撥號
看能否正確連接
一般是先有撥號音
然後是嘈雜聲
再就是握手
表示接通
出現登錄提示畫面
可證明Modem已正確安裝
如果遇到Modem能接通
網卡不能工作或網卡能工作而Modem接不通
則要查看是否由於Moem與網卡或其它設備中斷沖突引起的
一般檢測串行口所占用的中斷號
輸入
# cat /proc/interrupts 命令查看當前串口占用的中斷號
例
:
timer
:
keyboard
:
serial
可以看到當前串口占用的中斷是
也可以用setserial 命令來給串口設置地址和中斷號(IRQ)
例如
# /sbin/setserial/dev/ttys
irq
賦給串口一(COM
)中斷值為
或
#/sbin/setserial/dev/ttys
auto_irq 賦給串口任意一個空閒中斷號
)創建登錄終端
在Unix中
將設備看成是一個特殊文件來進行訪問控制
通過特殊文件可以訪問特定的設備
Linux也不例外
Linux的標准虛擬終端有mingetty
agetty等
本文介紹用mgetty 作為ppp客戶登錄進來的虛終端
你可以通過網上搜索得到該軟件
Redhat
自帶RPM包
mgetty
i
rpm
安裝命令為
rpm
ivh mgetty
i
rpm
安裝完成後在/sbin子目錄下有二進制文件mgetty
然後進到/etc子目錄
在inittab文件之後加上一句
s
:
:respawn:/sbin/mgetty
D
s
ttyS
保存
用init q命令重啟進程
用ps
aux命令可看到類似於
? S
:
/sbin/mgetty
D
s
ttyS
表明該終端已准備好
可以接受用戶的撥入請求了
)創建或修改PPP相關配置文件
基於對撥號安全性的考慮
pppd默認要求進行主客戶機的身份自驗證
即對等驗證
除非使用root用戶帳號撥號或服務器沒有連上Internet
因此為了使pppd能正常工作
需要在服務器端設置相應的主客戶機驗證信息
)編輯/etc/ppp/options文件
在其中加入
detach
crtscts
netmask
asyncmap
proxyarp
其中
Asyncmap 表示
在對遠程機進行串行聯接時
連接可能將ASCII控制碼(
)用於特殊的用途
所以
這些代碼不能作為數據包的一部分進行傳送
這就要告訴pppd
不要直接用這些控制碼
而用特殊的兩字符的轉義序列來代替它們
Asyncmap
表示不需要對任何控制碼進行轉義處理
基於TCP/IP協議的以太網
並不直接利用IP地址
而是利用網卡MAC地址來傳送數據包
Proxyarp告訴它在遠程主機的Arp表中增加一項
列出本地機的地址和遠程機的網卡MAC地址
Netmask可以根據具體子網劃分
修改為相應的子網掩碼值
)創建/etc/ppp/yS
或/etc/ppp/yS
文件
對相應端口進行設置
在該文件中加入一行
jsred:admin或
:
在/etc/hosts文件中為撥入進來的客戶機登記一項
admin
)編輯/etc/ppp/pap
secrets文件
由於撥號采用PAP驗證時
需在該文件中設置相應主客戶機信息及PAP驗證密碼
在該文件中設置如下
admin jsred
第一項為客戶機名稱或IP
第二項為撥號服務器名稱或IP
第三項為PAP密碼
由於我們使用標准的password文件來進行身份驗證
因而將這裡的密碼置空
第四項為動態分配給客戶機的IP地址
)建立pcguest撥號用戶帳號
創建登錄Shell
用戶通過電話撥號進來
以什麼樣的身份和權限進入網絡呢?這就要為撥入用戶建立相應的帳號和登錄Shell
如
# adduser pcguest
在選擇其Shell時
不要選/bin/bash
而是填入/etc/ppp/ppplogin
ppplogin為撥入用戶的登錄Shell文件
相當於Novell網用戶的登錄腳本
它為撥號用戶初始化登錄環境
腳本如下
#! /bin/sh
/usr/sbin/pppd auth
chap +pap login
:
第一行表示腳本的其余部分用/bin/sh去解釋該腳本
第二行的
+pap login
表示客戶端和服務器端采用PAP的驗證方式但使用/etc/password文件的內容
用
分隔的兩項(IP地址)列出ppp撥號服務器和分配給客戶機的IP地址
將該文件置為可執行模式
chmod
ppplogin
pppd默認只能由root用戶執行
為了使普通用戶能夠執行pppd
需要運行命令
#chmod u+s /usr/sbin/pppd
最後別忘了在/etc/shells文件中加進一句話
/etc/ppp/ppplogin
然後存盤退出
)啟用Linux的IP轉發功能
為客戶機通過撥號服務器上Internet鋪平道路
Redhat
默認是屏蔽IP轉發的功能
為啟用IP轉發功能
修改文件/etc/nf將 net
ipv
ip_forward =
改為net
ipv
ip_forward=
保存退出
重啟Linux服務器
服務器端設置工作完成
三
客戶端的安裝
在Windows
客戶機上
安裝撥號網絡
新建一連接項
選中該連接項
單擊鼠標右鍵彈出菜單
單擊
屬性
打開
服務器
標簽的
TCP/IP配置
對話窗口
在
指定IP地址
欄
填入撥號服務器分配給遠端客戶的IP地址
如
在
主控名稱服務器地址
欄中輸入Internet上有效的DNS服務器的IP地址
如果該Linux服務器能提供DNS服務
也可填入Linux服務器的IP地址
保存退出
雙擊連接項
進入撥號狀態
當終端窗口中出現登錄提示
輸入pcguest用戶名及相應密碼
再點擊
繼續
按鈕
則一個穩定
快速的PPP連接就建立了
四
測試
測試用戶有沒有撥進服務器
可以在Linux服務器的控制台終端輸入
# who
root ttyp
Apr
:
pcguest ttyS
Apr
:
上面的pcguest即為通過ttyS
終端登錄的ppp客戶
或輸入命令
# ifconfig
你會發現除了以太網卡eth
本地環路lo外
還多一個ppp
項
表明客戶已成功撥入
打開客戶端的浏覽器
如Netscape或IE
看能否正常訪問Internet站點
From:http://tw.wingwit.com/Article/program/Oracle/201311/18391.html