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 Telnet 服務完整部署與安全強化指南

編輯:Linux 教學

Telnet 為明文傳輸協定,生產環境強烈建議改用 SSH。但在舊系統維護、網路設備管理、教學實驗等場景仍可能需要部署 Telnet。本文詳細說明 Red Hat/CentOS/Fedora 系列下 Telnet Server 的安裝、啟動、連接埠修改、存取控制與 Root 登入限制。

一、安裝 Telnet 套件

# 檢查是否已安裝
rpm -q telnet telnet-server

# 安裝(RHEL/CentOS 7/8/9, Fedora)
dnf install telnet telnet-server -y
# 或 yum install telnet telnet-server -y

# RHEL 9 / Fedora 可能已將 telnet-server 拆分為 krb5-telnet-server
dnf install krb5-telnet-server -y

兩個套件角色:
- telnet / telnet-client:客戶端程式 /usr/bin/telnet。
- telnet-server / krb5-telnet-server:伺服器端 xinetd 服務定義。

二、啟動 Telnet 服務(xinetd 管理)

方法 1:ntsysv 圖形化介面(文字模式選單)

ntsysv
# 在清單中找到 telnet 或 krb5-telnet,按空白鍵選取(*),Tab 到 OK,Enter 確認

方法 2:直接編輯 xinetd 設定檔

# RHEL 6/7 傳統路徑
vi /etc/xinetd.d/telnet
# 或 RHEL 8/9 krb5-telnet
vi /etc/xinetd.d/krb5-telnet

# 修改 disable = yes → disable = no
# 完整範例:
service telnet
{
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable         = no
    only_from       = 192.168.1.0/24 10.0.0.0/8  # 建議限制來源 IP
}

重新載入 xinetd

systemctl restart xinetd
# 或舊版
service xinetd restart

三、驗證連線

telnet 
# 或指定埠
telnet  23

成功將提示 Login: Password:。預設僅允許一般使用者登入,Root 被 PAM 拒絕。

四、修改預設連接埠(23 → 非標準埠)

  1. 編輯服務名稱對應埠:
    vi /etc/services
    搜尋 telnet,將 23/tcp 23/udp 改為未使用埠(如 2023)。
  2. 重啟 xinetd:systemctl restart xinetd。
  3. 客戶端連線指定埠:telnet 2023。

注意:修改 /etc/services 僅影響本機服務名稱解析,防火牆規則需同步開放新埠。

五、存取控制與安全強化(必做)

1. TCP Wrappers(/etc/hosts.allow / hosts.deny)

# /etc/hosts.allow
in.telnetd : 192.168.1.0/255.255.255.0 : ALLOW
in.telnetd : 10.0.0.0/255.0.0.0 : ALLOW

# /etc/hosts.deny
in.telnetd : ALL : DENY

2. xinetd 內建 only_from / no_access

見上方設定檔範例,直接在 service 區塊限制 IP 範圍。

3. 防火牆開放最小範圍

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="23" accept'
firewall-cmd --reload

六、允許 Root 遠端登入(極度不建議,僅限受控實驗環境)

Root 登入被 PAM 模組 pam_securetty.so 阻擋。兩種解除方式:

  1. 編輯 PAM 設定:
    vi /etc/pam.d/login
    註解掉:#auth required pam_securetty.so
  2. 或重命名 securetty 檔案:
    mv /etc/securetty /etc/securetty.bak

最佳實踐:一般使用者登入後 su - 或 sudo -i 切換 Root,保留稽核軌跡。

七、關鍵提醒

  • Telnet 密碼明文傳輸,任何經過的網路節點皆可竊聽。
  • 生產環境務必改用 SSH (OpenSSH),並停用 Telnet 服務:systemctl disable --now xinetd 或 systemctl mask telnet.socket。
  • 若必須跨公網使用 Telnet,請套用 VPN 或 SSH 隧道 封裝流量。

部署 Telnet 易,安全用 Telnet 難。請將本指南視為「不得已而為之」的最小化風險操作手冊,優先推動 SSH 全面取代。

Copyright © Windows教程網 All Rights Reserved