Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 建置撥號伺服器完整實作 (RedHat + mgetty + pppd)

編輯:Linux 教學

在 RedHat Linux AS5 上以 56K Modem (非軟猫) 建立撥號接入伺服器,使用 mgetty 接聽來電、pppd 建立 PPP 連線、系統帳號驗證、IP 動態分配、NAT 轉發上網。附完整配置指令、測試日誌範例。

硬體與軟體需求

  • RedHat Linux AS5 完整安裝
  • 56K 硬體 Modem (序列埠連接,**Win-modem 軟猫在 Linux 無法使用**)

伺服器配置步驟

1. minicom 測試 Modem 通訊


minicom -s
# 選 Serial port setup
# A - Serial Device: /dev/ttyS0  (依實際序列埠修改)
# E - Bps/Par/Bits: 57600 8N1
# F - Hardware Flow Control: Yes
# 存檔離開,畫面出現 AT ... OK 表示通訊正常
# Ctrl-A Z 退出

2. 設定 mgetty 開機自動重生


echo "S0:2345:respawn:/sbin/mgetty ttyS0" >> /etc/inittab
# ttyS0 對應 Modem 序列埠

3. 讓 mgetty 自動啟動 pppd


echo "/AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options" >> /etc/mgetty+sendfax/mgetty.config
# 編輯 /etc/mgetty+sendfax/login.config,取消註解 AutoPPP 行:
# /AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

4. 設定 pppd 參數 (/etc/ppp/options)


echo "-chap +pap login debug modem crtscts proxyarp lock lcp-max-terminate 30 lcp-max-failure 30 lcp-echo-interval 5 passive" > /etc/ppp/options

5. 動態 IP 分配範圍 (/etc/ppp/options.ttyS0)


echo "192.168.1.3:192.168.1.201" > /etc/ppp/options.ttyS0
echo "noauth" >> /etc/ppp/options.ttyS0

伺服器端 IP 192.168.1.3,客戶端分配 192.168.1.201 起。

6. PAP 驗證密碼檔 (/etc/ppp/pap-secrets)


echo "* * \"\" *" > /etc/ppp/pap-secrets
# 使用系統帳號密碼驗證

7. 建立撥號專用帳號


groupadd -g 1001 ppp
adduser thinker
passwd thinker
# 修改 /etc/passwd 將 thinker 的 shell 改為 /usr/sbin/ppplogin
thinker:x:1001:1001:,,,:/home/thinker:/usr/sbin/ppplogin

8. 建立 ppplogin 腳本 (/usr/sbin/ppplogin)


#!/bin/sh
exec /usr/sbin/pppd debug passive asyncmap 0 proxyarp lock modem crtscts lcp-max-terminate 30 lcp-max-failure 30 lcp-echo-interval 5

chown root.ppp /usr/sbin/ppplogin
chmod +x /usr/sbin/ppplogin

9. 允許非 root 執行 pppd


chmod +s /usr/sbin/pppd

10. 重新載入 init 啟動 mgetty


init q

11. 啟用 IP 轉發與 NAT (假設 eth0 為外網卡)


# /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

# iptables NAT
iptables -F
iptables -X
iptables -F -t nat
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.16.11.107
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 將以上指令加入 /etc/rc.local 開機自動執行

192.16.11.107 為 eth0 實際公網 IP,請依環境修改。

測試驗證

客戶端撥號後查看日誌:

  • /var/log/messages - pppd 連線過程
  • /var/log/secure - 登入驗證記錄
  • /var/log/mgetty.log.ttyS0 - mgetty 與 Modem 交互

正常連線日誌特徵:PAP peer authentication succeeded、local IP address 192.168.1.3、remote IP address 192.168.1.201。

已實測可用

上述配置經實機測試可正常提供撥號上網服務。

Copyright © Windows教程網 All Rights Reserved