温馨提示×

解决CentOS Telnet权限问题方法

小樊
43
2025-12-29 02:25:21
栏目: 智能运维

CentOS Telnet 权限问题排查与修复

一 服务与端口就绪

  • 安装组件(以 CentOS 7 为例):
    • 客户端:sudo yum install -y telnet
    • 服务端:sudo yum install -y telnet-server xinetd
  • 启动与开机自启:
    • 传统方式:sudo systemctl enable --now xinetd
    • 若系统采用 socket 激活:sudo systemctl enable --now telnet.socketsudo systemctl enable --now xinetd
  • 注册并启用 Telnet(若 /etc/xinetd.d/telnet 不存在则创建):
    • 文件内容示例:
      service telnet
      {
          disable     = no
          flags       = REUSE
          socket_type = stream
          protocol    = tcp
          wait        = no
          user        = root
          server      = /usr/sbin/in.telnetd
          log_on_failure  += USERID
      }
      
    • 使配置生效:sudo systemctl restart xinetd
  • 防火墙放行:
    • firewalld:sudo firewall-cmd --permanent --add-service=telnet && sudo firewall-cmd --reload
    • 或按端口:sudo firewall-cmd --permanent --add-port=23/tcp && sudo firewall-cmd --reload
  • 监听检查:
    • 执行:netstat -nlt | grep :23ss -lntp | grep :23
    • 正常应看到 0.0.0.0:23:::23 处于 LISTEN 状态。

二 常见权限问题与修复

  • root 登录被拒
    • 原因:/etc/securetty 默认禁止 root 从非控制台终端登录(如 pts/)。
    • 处理(不推荐用于生产):临时重命名或编辑该文件,加入允许的终端类型(如 pts/0 等),示例:sudo mv /etc/securetty /etc/securetty.bak。更安全的做法是使用普通用户登录后 su -sudo
  • PAM 限制导致登录失败
    • 现象:用户名/密码正确仍被拒,检查 /var/log/secure 的 PAM 报错。
    • 处理:按需调整 /etc/pam.d/telnet 或相关 PAM 配置;若使用列表文件,创建 /etc/telnet.allow/etc/telnet.deny 以白/黑名单方式精确控制可登录用户(每行一个用户名)。
  • SELinux 拦截
    • 检查状态:sestatus
    • 处置思路:优先用策略或布尔值精细化放行;如确需临时排障,可在测试环境将 SELINUX=enforcing 改为 SELINUX=permissive 并重启,验证后再恢复 enforcing 并定制策略(不建议长期关闭 SELinux)。
  • xinetd 未启用或配置未生效
    • 确认 /etc/xinetd.d/telnetdisable = no,并执行 sudo systemctl restart xinetd;如使用 socket 激活,确保 telnet.socketxinetd 均处于 active 状态。

三 精细访问控制

  • 基于源地址的防火墙控制
    • firewalld 富规则示例(仅允许 192.168.1.0/24):
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="23" accept'
      sudo firewall-cmd --reload
      
    • 或使用 iptables 限制来源网段访问 23/tcp
  • 基于 PAM 的用户白/黑名单
    • 示例(仅允许列表内用户):
      # /etc/pam.d/telnet
      auth required pam_listfile.so item=user sense=allow file=/etc/telnet.allow onerr=succeed
      
    • 示例(仅拒绝列表内用户):
      auth required pam_listfile.so item=user sense=deny file=/etc/telnet.deny onerr=succeed
      
    • 创建对应文件并写入用户名,每行一个。
  • 基于 xinetd 的访问控制
    • /etc/xinetd.d/telnet 中使用 only_from 限制来源网段,例如:only_from = 192.168.1.0/24;修改后重启 xinetd

四 验证与回退

  • 连通性与登录验证
    • 本机测试:telnet 127.0.0.1 23
    • 远程测试:telnet <服务器IP> 23
    • 服务端观察日志:tail -f /var/log/securejournalctl -u xinetd(或 -u telnet.socket)以定位认证与权限拒绝原因。
  • 安全回退与加固
    • 完成排障后,建议恢复 /etc/securetty(若曾修改),并尽量使用 SSH 替代 Telnet;如必须保留 Telnet,务必仅对受控网段开放、启用 PAM 白名单、保留 SELinux enforcing 并最小化放行策略。

0