解决CentOS Telnet权限问题方法
导读:CentOS Telnet 权限问题排查与修复 一 服务与端口就绪 安装组件(以 CentOS 7 为例): 客户端:sudo yum install -y telnet 服务端:sudo yum install -y telnet-s...
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.socket 与 sudo 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 :23 或 ss -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/telnet 中 disable = no,并执行 sudo systemctl restart xinetd;如使用 socket 激活,确保 telnet.socket 与 xinetd 均处于 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。
- firewalld 富规则示例(仅允许 192.168.1.0/24):
- 基于 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/secure 与 journalctl -u xinetd(或 -u telnet.socket)以定位认证与权限拒绝原因。
- 安全回退与加固
- 完成排障后,建议恢复 /etc/securetty(若曾修改),并尽量使用 SSH 替代 Telnet;如必须保留 Telnet,务必仅对受控网段开放、启用 PAM 白名单、保留 SELinux enforcing 并最小化放行策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 解决CentOS Telnet权限问题方法
本文地址: https://pptw.com/jishu/782910.html
