Telnet 雖然因明文傳輸而不建議在生產環境使用,但在教學、舊系統維護或內網測試場合仍有需求。本文詳細說明在 Red Hat 系列發行版(含 Fedora、CentOS)上安裝、啟動、測試與安全加固 Telnet 服務的完整步驟。
Telnet 分為客戶端與伺服器端兩個套件:
telnet):提供 telnet 指令供連線使用。telnetd 守護程式,監聽連入請求。rpm -q telnet
rpm -q telnet-client
rpm -q telnet-server
若未安裝,可從安裝媒體或套件庫安裝:
# 以 Red Hat 9 為例,從光碟 3 安裝伺服器端
rpm -ivh telnet-server-0.17-25.i386.rpm
# 現代發佈版直接使用 yum/dnf
dnf install telnet-server telnet -y
Telnet 由 xinetd 超級守護程式管理,設定檔位於 /etc/xinetd.d/telnet。
ntsysv
# 在清單中找到 telnet,按空白鍵標記 [*],按 OK 離開
vi /etc/xinetd.d/telnet
# 將 disable = yes 改為 disable = no
systemctl restart xinetd # systemd 系統
# 或
service xinetd restart # SysVinit 系統
telnet <IP或主機名>
# 正確時會提示
Login:
Password:
注意:預設僅允許一般使用者登入,root 登入被 PAM 模組阻擋。
編輯 /etc/services,搜尋 telnet:
telnet 23/tcp
telnet 23/udp
將 23 改為未使用的埠號(如 2000),存檔後重啟 xinetd 即可生效。
編輯 /etc/xinetd.d/telnet,在 service telnet 區塊加入:
service telnet
{
disable = no
bind = 210.45.160.17 # 只綁定特定 IP
only_from = 210.45.0.0/16 # 僅允許該網段
only_from = .edu.cn # 僅允許教育網域
no_access = 210.45.160.100 # 拒絕特定 IP
access_times = 08:00-12:00 20:00-23:59 # 限制服務時間
}
修改後必須 systemctl restart xinetd。
若必須開放,可採用下列任一方式:
/etc/pam.d/login,將 auth required pam_securetty.so 註解掉。/etc/securetty:mv /etc/securetty /etc/securetty.bak。最佳實務:以一般使用者登入後,再用 su - 或 sudo 取得 root 權限。
部分版本預裝 krb5-telnet,設定檔為 /etc/xinetd.d/krb5-telnet,操作方式相同。
Telnet 部署簡單,但安全性低。生產環境請改用 SSH;若必須使用 Telnet,請務必配合 xinetd 的存取控制、防火牆規則與 VPN 隔離,將風險降至最低。