温馨提示×

CentOS中Telnet安全设置怎么做

小樊
34
2026-01-09 19:26:45
栏目: 智能运维

CentOS 中 Telnet 安全设置

总体建议

  • Telnet 协议为明文传输,用户名、密码及会话内容均可被窃听,原则上应优先使用 SSH 替代。若因兼容性/维护窗口等必须启用 Telnet,务必叠加多重限制与加固措施,并在完成维护后尽快关闭。为降低风险,建议仅在内网、短时、受控场景下启用。

一 推荐做法 禁用或替代 Telnet

  • 使用 SSH 替代
    • 安装并启用 OpenSSH 服务(如未安装):yum install -y openssh-server
    • 启动并设为开机自启:systemctl start sshd && systemctl enable sshd
    • 防火墙仅放行 22/TCPfirewall-cmd --permanent --add-service=ssh && firewall-cmd --reload
  • 直接禁用 Telnet
    • 停止并禁用 socket 激活:systemctl stop telnet.socket && systemctl disable telnet.socket
    • 如仍保留包,可卸载:yum remove -y telnet-server
    • 防火墙移除 telnet 服务:firewall-cmd --permanent --remove-service=telnet && firewall-cmd --reload
  • 如仅为临时维护窗口启用 Telnet,务必在窗口结束后执行上述禁用步骤。

二 必须使用 Telnet 时的加固要点

  • 最小化暴露面
    • 仅在内网启用;通过 firewalld 精确放行来源网段到 23/TCP,或临时关闭不必要访问: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
  • 访问控制
    • 使用 xinetd 精细限制(示例):仅监听内网地址、仅允许指定网段、禁止某些来源、限定可登录时段
      • 编辑 /etc/xinetd.d/telnet
        • bind = 192.168.1.10(仅在内网接口监听)
        • only_from = 192.168.1.0/24 10.0.0.0/8
        • no_access = 203.0.113.5 198.51.100.10
        • access_times = 08:00-12:00 20:00-23:59
      • 重启 xinetd:systemctl restart xinetd
  • 端口与监听绑定
    • 不建议仅依赖改端口来“隐身”。如确需变更,可修改 /etc/servicestelnet 23/tcp 为非常用端口,并同步防火墙放行新端口;更推荐结合上面的来源限制与访问控制。
  • 系统登录安全
    • 保持默认策略:禁止 root 通过 Telnet 登录(PAM pam_securetty.so 限制),先以普通用户登录再 su - 提权。
  • 加密传输(折衷方案)
    • 若业务必须明文协议但又要加密通道,可用 stunnel 为 Telnet 加 TLS 外层:
      • 安装:yum install -y stunnel
      • 生成证书: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 start stunnel && systemctl enable stunnel
      • 客户端连接 stunnel 监听端口(如 12345/TCP),由 stunnel 与本地 23/TCP 之间建立加密通道。

三 系统与服务加固

  • 强化 Linux 自身安全
    • 保持 SELinux 为 enforcingsetenforce 1(或确保 /etc/selinux/configSELINUX=enforcing),必要时为相关服务配置最小权限策略。
  • 日志与审计
    • 集中关注认证与连接日志:tail -f /var/log/secure,及时发现异常登录尝试与暴力扫描。

四 快速检查清单

  • 服务状态:systemctl is-active telnet.socketsystemctl is-enabled telnet.socket
  • 端口监听:ss -lntp | grep ':23'(或 netstat -ntlp | grep ':23'
  • 防火墙规则:firewall-cmd --list-all(确认仅允许必要来源到 23/TCP,或已移除 telnet 服务)
  • 登录审计:实时查看 /var/log/secure,核对是否存在异常来源、失败登录与时段外访问。

0