Debian下Telnet安全設置指南
通過TCP Wrappers或防火墻限制可訪問Telnet服務的IP范圍,降低非法訪問風險。
/etc/hosts.deny文件,添加ALL: telnetd阻止所有IP訪問;再編輯/etc/hosts.allow文件,指定允許的IP或網段(如192.168.1.0/24: telnetd、localhost: telnetd),僅允許可信地址連接。ufw(簡易防火墻)啟用后,添加允許特定IP訪問Telnet端口(23)的規則,例如sudo ufw allow from 192.168.1.100 to any port 23;或直接拒絕Telnet端口(更安全),如sudo ufw deny 23/tcp,隨后重啟防火墻sudo ufw reload。降低非法用戶登錄及提權風險,需調整用戶權限及認證方式。
/etc/pam.d/login文件,注釋掉auth requisite pam_securetty.so行(解除root登錄終端限制),或在/etc/securetty文件中添加允許root登錄的終端(如pts/0),但更推薦通過/etc/passwd將普通用戶的shell設為/sbin/nologin(如sudo usermod -s /sbin/nologin telnetuser),限制其登錄后的操作權限。/etc/pam.d/telnet文件,添加auth required pam_securetty.so(限制登錄終端)和account required pam_permit.so(允許認證通過),增強認證過程的嚴謹性。Telnet默認傳輸明文,易被竊聽,可通過SSL/TLS加密或stunnel隧道解決。
telnetd-ssl(sudo apt install telnetd-ssl),編輯/etc/xinetd.d/telnet文件,添加SSL相關配置(如ssl = true、cert = /etc/stunnel/stunnel.pem),重啟xinetd服務使加密生效。stunnel4(sudo apt install stunnel4),創建配置文件/etc/stunnel/stunnel.conf,添加[telnet] section(accept = 127.0.0.1:23、connect = localhost:23、cert = /etc/stunnel/stunnel.pem);生成自簽名證書(sudo openssl req -new -x509 -days 365 -nodes -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem);啟動stunnel服務(sudo systemctl start stunnel4并sudo systemctl enable stunnel4),將Telnet流量轉發至本地加密端口。通過修改Telnet服務本身的配置,降低潛在風險。
/etc/xinetd.d/telnet文件,確保server_args中包含-h參數(server /usr/sbin/in.telnetd -h),禁用Telnet的“回顯”功能,減少信息泄露。/etc/xinetd.d/telnet文件中添加instances = 10(限制最大并發連接數),避免過多連接導致資源耗盡;添加per_source = 2(限制單個IP的最大連接數),防止IP泛洪攻擊。/etc/sysctl.conf文件,添加net.ipv4.tcp_keepalive_time = 60(空閑60秒后發送keepalive包)、net.ipv4.tcp_keepalive_intvl = 10(keepalive包間隔10秒)、net.ipv4.tcp_keepalive_probes = 6(連續6次未響應則斷開連接),防止僵尸連接占用資源,重啟系統使設置生效。開啟詳細日志記錄,便于追蹤非法訪問及異常操作。
/etc/xinetd.d/telnet文件,修改log_on_failure參數為USERID(記錄失敗登錄的用戶名),如log_on_failure += USERID;確保/etc/rsyslog.conf或/etc/syslog.conf中包含auth.* /var/log/auth.log(將認證日志寫入/var/log/auth.log)。tail -f /var/log/auth.log實時監控登錄日志,或通過grep 'telnet' /var/log/auth.log篩選Telnet相關日志,及時發現異常登錄嘗試(如頻繁的失敗登錄)。Telnet的明文傳輸特性使其不適合生產環境,**SSH(安全外殼協議)**提供加密通信及更強大的認證機制,是Telnet的最佳替代方案。
sudo apt update && sudo apt install openssh-server安裝OpenSSH服務器。/etc/ssh/sshd_config文件,設置PermitRootLogin no(禁止root直接登錄)、PasswordAuthentication no(禁用密碼認證,改用密鑰認證)、AllowUsers your_username(僅允許指定用戶登錄);啟用強密鑰交換算法(KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256)。sudo systemctl start ssh啟動服務,并sudo systemctl enable ssh設置開機自啟,隨后禁用Telnet服務(參考“關閉Telnet服務”部分)。