怎样确保CentOS Telnet安全
导读:总体安全原则 Telnet 以明文传输,用户名、密码及会话内容均可被窃听,原则上仅可在受控、隔离网络中临时使用,生产环境应优先采用 SSH 替代。若必须启用 Telnet,应叠加多重限制与加密手段,并尽快回归 SSH。为降低攻击面,建议仅...
总体安全原则
- Telnet 以明文传输,用户名、密码及会话内容均可被窃听,原则上仅可在受控、隔离网络中临时使用,生产环境应优先采用 SSH 替代。若必须启用 Telnet,应叠加多重限制与加密手段,并尽快回归 SSH。为降低攻击面,建议仅在内网使用、限定来源 IP、最小权限账户、开启日志审计,并在用毕及时关闭。
加固措施清单
- 使用 SSH 替代 Telnet:安装并启用 OpenSSH,将防火墙仅放通 22/TCP,日常运维通过 SSH 完成;Telnet 保留为应急通道。
- 限制来源与访问时间:通过 xinetd 的 only_from、no_access、access_times 等参数,仅允许受信任网段/主机在特定时段访问。
- 禁止 root 直连:保留默认策略(root 通常无法经 Telnet 登录),如需进一步收紧,可结合 PAM 或仅授予普通用户 sudo 权限。
- 更改默认端口:将 /etc/services 中的 23/TCP 改为非常用端口,降低自动化扫描命中率(注意客户端需同步指定端口)。
- 加密通道兜底:若业务只能走 Telnet,使用 stunnel 为 Telnet 建立 TLS 加密隧道(服务端监听高位端口,转发至本机 23/TCP)。
- 主机与内核加固:启用 SELinux/AppArmor 限制 telnet/xinetd 权限;按需收紧内核网络参数(如关闭重定向、不必要的转发),减少被滥用风险。
- 日志与监控:确保登录失败、会话启停等被记录并集中审计,出现异常及时告警与封禁。
最小化配置示例
- 仅允许内网网段在工作时段访问,并禁止特定主机:
- 安装并启用服务(示例为 CentOS 7 常见方式)
- yum install -y telnet-server xinetd
- systemctl enable --now xinetd
- systemctl enable --now telnet.socket
- 编辑 /etc/xinetd.d/telnet,仅保留最小必要项并加入访问控制
- disable = no
- socket_type = stream
- protocol = tcp
- wait = no
- user = root
- server = /usr/sbin/in.telnetd
- only_from = 192.168.1.0/24 10.0.0.0/8
- no_access = 192.168.1.100
- access_times = 08:00-18:00
- 防火墙仅放通内网来源(示例)
- firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“23” protocol=“tcp” accept’
- firewall-cmd --reload
- 验证与回退
- ss -lntp | grep :23 或 netstat -ntlp | grep :23
- 用受控主机 telnet 测试;完成后关闭或恢复默认策略。
- 安装并启用服务(示例为 CentOS 7 常见方式)
使用 stunnel 为 Telnet 加密的示例
- 安装与生成证书
- yum install -y stunnel4
- openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/stunnel/stunnel.pem -out /etc/stunnel/stunnel.pem
- 配置 /etc/stunnel/stunnel.conf
- [telnet]
- accept = 12345
- connect = 127.0.0.1:23
- cert = /etc/stunnel/stunnel.pem
- key = /etc/stunnel/stunnel.pem
- 启动与放通
- systemctl enable --now stunnel4
- firewall-cmd --permanent --add-port=12345/tcp & & firewall-cmd --reload
- 客户端连接
- telnet your_server_ip 12345(流量已由 TLS 加密)
禁用与替代的推荐做法
- 日常禁用
- systemctl disable --now telnet.socket xinetd
- firewall-cmd --permanent --remove-service=telnet 或 --remove-port=23/tcp
- firewall-cmd --reload
- 全面替代
- 安装并启用 OpenSSH:yum install -y openssh-server & & systemctl enable --now sshd
- 防火墙仅放通 22/TCP:firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
- 使用密钥登录、禁用口令、限制 root 登录、开启 Fail2ban/auditd 等。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样确保CentOS Telnet安全
本文地址: https://pptw.com/jishu/765177.html
