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 下 Taylor UUCP 完整配置指南:從撥號連線到安全權限的深度實踐

編輯:Linux 教學

前言:經典協議的現代生存之道

UUCP(Unix-to-Unix Copy)誕生於 1970 年代末貝爾實驗室,雖歷經數十年仍活躍於郵件、新聞傳輸與批次檔案同步場景。Taylor UUCP(1.04/1.05 版)作為當前 Linux 發行版主流實作,融合了 HDB、V2 等前輩優點,提供靈活配置語法與強大安全機制。本文系統梳理其核心架構、配置文件體系、撥入/撥出設定、權限控制與故障排查,助您構建可靠的 UUCP 節點網絡。

一、核心架構與工作流程

1. 關鍵守護程式

  • uucico(Copy-In Copy-Out):處理撥號、登入協商、協議協商、檔案傳輸,分「主管」(發起端)與「從屬」(接收端)角色。
  • uuxqt:執行遠端提交的命令請求(如 rmail、rnews)。
  • uucp / uux:用戶端提交檔案傳輸與遠端執行作業。

2. 作業佇列與分級機制

用戶提交作業 → 寫入 /var/spool/uucp/<site> 假脫機目錄(含命令檔 C.、資料檔 D.、執行檔 X.)→ uucico 定期撥號 → 傳輸作業說明與資料 → 遠端斷線後由 uuxqt 執行。作業分級(A-Z,數字越小優先級越高):郵件通常 B/C 級,新聞 N 級,可透過 timegrade 控制傳輸時段。

3. 連線協商流程

  1. 物理連線建立(Modem/TCP/直連)
  2. 登入對話:等待 login: → 發送帳號 → 等待 password: → 發送密碼
  3. 雙向 uucico 啟動,交換主機名、協議列表、最大假脫機等級
  4. 協議協商:Modem 連線偏好 'i','a','g','G','j';TCP 連線支援 't','e','i','a','g','G','j','f'
  5. 雙向傳輸檔案,角色可互換(主管↔從屬)
  6. 交換終止訊息,掛斷連線

二、配置文件體系詳解(/usr/lib/uucp/)

1. config —— 全域參數

nodename your_uucp_hostname    # 必設:UUCP 節點名(≤7 字元,建議與 FQDN 首段一致)
spool-dir /var/spool/uucp      # 假脫機根目錄
pubdir /var/spool/uucppublic   # 公開目錄
unknown permit                 # 允許匿名 UUCP(需配合 unknown 區塊)

2. sys —— 遠端系統定義(核心配置)

system remote_site
    time Any                    # 允許隨時撥號;或 "Wk 0800-1800" 工作日限時
    timegrade C 60              # 僅傳輸 C 級以上作業,失敗 60 分鐘後重試
    phone 123-4567              # 撥號號碼,'=' 等二次撥號音,'-' 暫停 1 秒
    port serial1                # 對應 port 文件條目
    protocol igG                # 強制協議列表
    chat "" \r\d\r "login:" "Uremote" "password:" "secret"
    alternate                   # 備用配置(如備用電話號碼)
        phone 987-6543
    called-login Uremote        # 強制遠端必須用此帳號登入,防偽裝
    sequence true               # 啟用呼叫序號檢查,防重放攻擊
    forward-to remote_site      # 允許轉發給該站點
    forward-from trusted_site   # 允許接受該站點轉發

關鍵字段:system(規範遠端主機名)、phone(支援撥號代碼轉換)、port/speed(匹配 port 文件)、chat(登入腳本,支援子對話處理 getty 重置)、alternate(多路徑備援)、time/timegrade(時間與等級管控)。

3. port —— 通訊埠定義

port serial1
    type modem
    device /dev/cua1            # 必須與鎖檔命名一致(LCK..cua1)
    speed 38400
    dialer hayes                # 對應 dial 文件條目

port serial1-slow               # 針對老舊 Modem 的低速備用埠
    type modem
    device /dev/cua1
    speed 9600
    dialer hayes-slow

同名埠條目會依序嘗試,自動跳過忙碌埠。type 可為 modem、direct(直連)、tcp(TCP 連線)。

4. dial —— Modem 撥號腳本

dialer hayes
    chat "" "ATZ" "OK" "ATDT\T" "CONNECT"
    chat-fail "BUSY" "NO CARRIER" "ERROR" "NO DIALTONE"

\T 會被 sys 中電話號碼替換。chat-fail 讓 uucico 立即識別撥號失敗原因並記錄日誌,避免超時等待。

5. TCP 連線配置

port tcpport
    type tcp
    service uucp                # /etc/services 定義埠 540

system remote_tcp
    port tcpport
    time Any
    chat "" "login:" "Uremote" "password:" "secret"

TCP 連線無需 dial,直接建立 Socket 進入登入對話。適合高速專線傳輸大量新聞組資料,可壓縮批次傳輸降低開銷。

三、權限與安全深度防禦

1. 命令執行控制(sys 中 command 關鍵字)

system remote_site
    command rmail rnews rsmtp   # 僅允許執行列出命令
    command-path /usr/bin:/usr/local/bin

預設僅開放 rmail、rnews,嚴防任意命令執行風險。

2. 檔案傳輸目錄限制

system remote_site
    local-send /home /var/spool/uucppublic     # 本地可發送目錄
    local-receive /home /var/spool/uucppublic/receive
    remote-send /var/spool/uucppublic !/var/spool/uucppublic/incoming
    remote-receive /var/spool/uucppublic/incoming

! 表示排除目錄。遠端僅能讀取公開目錄、寫入 incoming,徹底隔離本地檔案系統。

3. 轉發管控

system trusted_relay
    forward-to siteA siteB       # 僅允許轉發給指定站點
    forward-from siteA           # 僅接受來自 siteA 的轉發請求

預設禁止轉發,防止成為開放郵件中繼或被盜用長途電話費。

4. 撥入端安全加固

  • 專用帳號:每站點獨立帳號(如 Uremote),Shell 設為 /usr/lib/uucp/uucico,家目錄指向 /var/spool/uucppublic,群組 uuguest。
  • getty 選擇:使用 ugetty 或 mgetty 支援撥入/撥出共用埠與鎖檔協調。
  • called-login 強制驗證:sys 中每站點必設 called-login Uremote,拒絕偽裝主機名的中間人攻擊。
  • 呼叫序號檢查:雙向維護 .Sequence 計數器(mode 600, owner uucp),初始值隨機化,偵測重放與中間人。
  • 匿名 UUCP 隔離:config 中 unknown 區塊限制命令、目錄、除錯請求,專用 anon-bin 目錄放置經審計的 rmail。

四、協議選擇與效能調優

協議類型適用場景關鍵參數
g / G滑動視窗封包Modem/直連,錯誤率高window (1-7/1-127), packet (64-4096)
i流式可靠連線 (TCP)無
t / e / f流式變體TCP 高速傳輸無
a / j舊版封包相容舊實作packet size

調優範例(sys 中):

system remote_site
    protocol g
    protocol-parameter g window 7 packet 512

嘈雜線路縮小封包與視窗;優質線路增大至 1024/4096 降低開銷。

五、常見故障診斷速查表

現象可能原因排查步驟
Wrong time to call缺 time 或時間窗未到檢查 sys time 設定
站點被鎖殘留鎖檔或並發 uucico刪除 /var/spool/uucp/*/LCK..*,殺掉殘留進程
對話腳本失敗速率不符、提示字串變更uucico -x all -s site 觀察實際收發,調整 chat
Modem 不撥號DTR 線路、裝置檔錯誤終端機測試 ATZ,確認 device、dialer
封包大量丟失序列埠速率過高、無硬體流控降低 speed,啟用 RTS/CTS,確認 UART 16550A
握手失敗 RBADSEQ序號不同步同步雙端 .Sequence,檢查 sequence true
握手失敗 RLOGIN帳號/密碼錯誤核對 chat 與遠端 /etc/passwd 或 /usr/lib/uucp/passwd

六、日誌系統與審計追蹤

  • Taylor 格式:/var/spool/uucp/Log(主日誌)、Stats(傳輸統計)、Debug(除錯輸出,mode 600)。
  • HDB 格式:/var/spool/uucp/.Log/uucico/<site>、.Log/uuxqt/<site> 分站點記錄;除錯輸出至 .Admin/audit.local(撥出)與 .Admin/audit(撥入)。
  • 定期審計 Log 中 Out of sequence call rejected、Handshake failed (RBADSEQ) 等異常條目,及時發現入侵嘗試。

結語:以古老協議構建可信互聯

Taylor UUCP 雖屬經典技術,其模組化設計、細顆粒權限模型、多層次安全機制(序號、called-login、轉發管控、匿名隔離)在當今混合雲、邊緣計算、離線同步場景仍具獨特價值。掌握其配置精髓,不僅能維護既有郵件/新聞網關,更能為受限頻寬、間歇性連線環境提供穩健的資料交換骨幹。願本指南助您駕馭這把「經典利器」,構建安全可靠的 UUCP 節點網絡。

Copyright © Windows教程網 All Rights Reserved