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)
酷番叔酷番叔
上一篇 2小时前
下一篇 2小时前

相关推荐

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信