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服务”部分)。