Linux系统下telnet登录密码修改的具体步骤是什么?

在Linux系统中,修改telnet密码的核心逻辑并非直接修改telnet服务的独立密码,而是通过修改系统用户的登录密码来实现,因为telnet服务默认依赖系统的PAM(可插拔认证模块)进行用户认证,telnet协议本身存在明文传输密码的安全风险,因此在实际生产环境中强烈建议使用更安全的SSH协议替代,但若因兼容性或旧系统需求必须使用telnet,需确保在可信网络环境中操作,并严格限制登录用户权限,以下是详细的操作步骤和注意事项,涵盖服务安装、用户管理、配置优化及安全加固等关键环节。

linux如何修改telnet密码

检查并安装telnet服务

大多数现代Linux发行版(如Ubuntu、CentOS等)默认不安装telnet服务,需手动安装,不同发行版的安装命令和包管理工具存在差异,具体如下:

基于RPM的发行版(如CentOS、Red Hat、Fedora)

使用yumdnf包管理器安装telnet服务器端组件:

# 更新软件包缓存
sudo yum update -y
# 安装xinetd(若使用xinetd管理telnet服务)
sudo yum install xinetd -y
# 安装telnet-server
sudo yum install telnet-server -y

基于DEB的发行版(如Ubuntu、Debian)

使用apt包管理器安装telnet相关服务:

# 更新软件包列表
sudo apt update
# 安装telnetd(Ubuntu/Debian的telnet服务器包)
sudo apt install telnetd -y

验证安装

安装完成后,检查telnet服务是否已正确安装:

# 查看telnet-server软件包信息(RPM系统)
rpm -qa | grep telnet-server
# 查看telnetd软件包信息(DEB系统)
dpkg -l | grep telnetd

若返回包含telnet-servertelnetd的行,表示安装成功。

创建或修改系统用户

telnet登录的密码即为系统用户的登录密码,因此需先确保存在允许telnet登录的用户,或为已有用户设置密码。

创建新用户(可选)

若需新增telnet用户,使用useradd命令(推荐使用adduser交互式创建,更友好):

# 创建用户(telnetuser)
sudo useradd -m telnetuser
# 设置用户初始密码(必须设置,否则无法登录)
sudo passwd telnetuser
# 按提示输入两次新密码

参数说明:-m表示自动创建用户主目录(若不添加,用户可能无法正常登录)。

修改已有用户密码

若需修改现有用户的telnet登录密码,直接使用passwd命令:

# 修改目标用户密码(user1)
sudo passwd user1
# 按提示输入两次新密码

注意:普通用户只能修改自己的密码(无需sudo),root用户可修改任意用户密码。

linux如何修改telnet密码

配置telnet服务允许登录

默认情况下,telnet服务可能因安全策略限制登录(如禁止root用户登录、未启用服务等),需通过配置文件调整。

检查telnet服务管理方式

Linux中telnet服务可通过两种方式运行:xinetd超级服务器(传统方式)或独立运行(现代系统较少使用),需先确认当前管理方式:

  • xinetd管理:检查/etc/xinetd.d/telnet文件是否存在:

    ls /etc/xinetd.d/telnet

    若文件存在,表示通过xinetd管理;若不存在,可能是独立运行或未安装。

  • 独立运行:检查/etc/init.d/telnetsystemctl单元文件:

    systemctl status telnet.socket  # 或 telnet.service

配置xinetd管理的telnet服务(常见)

若通过xinetd管理,编辑/etc/xinetd.d/telnet文件:

sudo vim /etc/xinetd.d/telnet
```类似如下,需确保`disable = no`(启用服务),并注释或删除`no_access`和`only_from`等限制项(若有):
```ini
service telnet
{
    flags          = REUSE
    socket_type    = stream
    wait           = no
    user           = root
    server         = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable        = no  # 关键:设置为no启用服务
    # 可选:限制允许登录的IP(仅允许内网192.168.1.0/24)
    # only_from     = 192.168.1.0/24
}

配置独立运行的telnet服务(较少见)

若独立运行,需创建或修改/etc/sysconfig/telnet(CentOS)或/etc/default/telnet(Ubuntu)文件,确保TELNET_ENABLE=yes

# CentOS系统
sudo vim /etc/sysconfig/telnet
TELNET_ENABLE=yes
# Ubuntu系统
sudo vim /etc/default/telnet
RUN_DAEMON=yes

禁止root用户telnet登录(安全加固)

出于安全考虑,建议禁止root用户通过telnet直接登录,仅允许普通用户登录后通过su切换至root,操作方法:

  • 编辑/etc/securetty文件,注释或删除pts/0pts/1等虚拟终端行(仅保留物理终端如tty1tty2等):
    sudo vim /etc/securetty
    # 在文件开头添加#注释所有pts开头的行,
    # pts/0
    # pts/1
    # ...

    修改后,root用户仅能通过物理终端或SSH登录,无法通过telnet远程登录。

启动并启用telnet服务

配置完成后,需启动服务并设置开机自启。

linux如何修改telnet密码

xinetd管理方式

# 重启xinetd服务加载配置
sudo systemctl restart xinetd
# 设置xinetd开机自启
sudo systemctl enable xinetd
# 检查服务状态(应显示active)
sudo systemctl status xinetd

独立运行方式

# 启动telnet服务
sudo systemctl start telnet.socket  # 或 telnet.service
# 设置开机自启
sudo systemctl enable telnet.socket
# 检查服务状态
sudo systemctl status telnet.socket

检查端口监听

telnet默认使用23端口,确保服务已监听该端口:

# 使用netstat检查
sudo netstat -tulnp | grep 23
# 或使用ss命令(推荐)
sudo ss -tulnp | grep 23

若返回类似LISTEN 0 128 *:23 *:*的输出,表示23端口已正常监听。

测试telnet登录

本地测试

在Linux服务器本地,使用telnet命令连接本地服务:

telnet localhost

输入用户名和密码(步骤二中设置的账户),若登录成功,会显示类似Login successful的提示,并进入shell界面。

远程测试

在另一台设备(如Windows/Linux客户端),通过IP地址连接服务器:

telnet <服务器IP地址>

telnet 192.168.1.100,输入用户名和密码验证登录是否正常。

常见问题排查

  • 登录失败提示“Login incorrect”:检查密码是否正确,用户是否被锁定(passwd -S username查看状态,若为L表示锁定,需usermod -U username解锁)。
  • 连接超时:检查防火墙是否开放23端口(如CentOS:sudo firewall-cmd --add-port=23/tcp --permanent;Ubuntu:sudo ufw allow 23/tcp)。
  • “Connection refused”:确认telnet服务已启动(步骤四),或检查/etc/xinetd.d/telnetdisable是否为yes

安全性建议

由于telnet协议所有数据(包括密码)均明文传输,存在严重安全隐患,建议:

  1. 替换为SSH:优先使用SSH(默认端口22)替代telnet,可通过sudo apt install openssh-server(Ubuntu)或sudo yum install openssh-server(CentOS)安装SSH服务。
  2. 限制登录IP:在telnet配置文件中通过only_from参数限制允许登录的IP地址,减少暴露面。
  3. 定期更新密码:通过chage命令设置密码过期策略(如sudo chage -M 90 username,90天后强制改密)。
  4. 最小权限原则:仅授予telnet用户必要权限,避免使用root账户直接登录。

相关问答FAQs

Q1:telnet密码修改后登录失败,提示“Login incorrect”,如何排查?
A:首先确认密码是否正确(可通过ssh username@localhost测试SSH登录是否正常,排除键盘输入错误);其次检查用户状态,使用passwd -S username查看是否被锁定(显示L表示锁定,需执行usermod -U username解锁);然后检查/etc/securetty文件,确认用户是否被禁止telnet登录(如root用户需注释pts/相关行);最后检查防火墙是否拦截,使用telnet localhost 23测试本地连接,若失败则可能是服务未启动,需执行systemctl restart xinetdsystemctl restart telnet.socket

Q2:如何禁止特定用户通过telnet登录?
A:可通过两种方式实现:

  1. 锁定用户账户:使用usermod -L username锁定用户,锁定后该用户无法通过telnet、SSH等方式登录,解锁命令为usermod -U username
  2. 限制登录终端:编辑/etc/securetty文件,添加pts/限制规则(如仅允许pts/0pts/1,其他终端禁止),或直接删除用户对应的终端行(如删除pts/2,则用户无法通过pts/2登录)。
  3. 修改PAM配置:编辑/etc/pam.d/login文件,添加auth required pam_listfile.so item=user sense=deny file=/etc/telnet_users onerr=succeed,并在/etc/telnet_users文件中添加禁止登录的用户名(每行一个),实现更精细的控制。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17745.html

(0)
酷番叔酷番叔
上一篇 2025年8月26日 22:47
下一篇 2025年8月26日 23:07

相关推荐

  • Linux端口占用?快速解决强制绑定问题

    释放被占用的端口(强制解除占用)当端口被其他进程占用时,需终止占用进程:查找占用进程sudo lsof -i :端口号 # 如 sudo lsof -i :80# 或sudo netstat -tulnp | grep :端口号输出中记录 PID(进程ID),终止进程sudo kill -9 PID # 强制终……

    2025年7月19日
    14000
  • linux如何进入gcc编译器

    终端输入gcc即可启动GCC编译器,也可通过指定文件名进行编译,如`gcc filename.

    2025年8月16日
    12600
  • U盘如何永久运行完整Linux系统?

    将 Linux 安装到 U 盘可创建便携式操作系统,实现随身携带个人工作环境、安全测试或应急系统,与制作 Live USB(仅临时体验)不同,完整安装能保存所有设置和文件,以下是详细步骤:准备工作硬件要求U 盘:至少 32GB 容量(推荐 USB 3.0+,速度影响体验),另一 U 盘或光盘:用于 Linux……

    2025年7月21日
    13900
  • 如何用Linux开发效率翻倍?

    环境准备安装Linux系统推荐发行版:Ubuntu(新手友好)、Fedora(前沿技术)、Debian(稳定性高),通过官方镜像制作启动盘安装,或使用虚拟机(VirtualBox/VMware),更新系统与依赖sudo apt update && sudo apt upgrade # Debia……

    2025年7月18日
    13000
  • Linux虚拟机没有eth0网络接口如何解决?

    在Linux虚拟机的使用过程中,遇到网络接口中没有eth0的情况是比较常见的,这通常会导致无法配置网络连接,影响系统的正常使用,eth0是Linux系统中传统的以太网接口名称,但在较新版本的Linux发行版中,由于采用了Predictable Network Names(PNN)机制,网卡名称可能变为ens33……

    2025年9月8日
    13700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信