CentOS 7 系统中安装与配置 Telnet 服务详解(使用非root用户登录)

server/2024/10/5 20:09:04/

目录

  • 前言
  • 1. 安装 Telnet 服务端
    • 1.1 更新系统软件源
    • 1.2 安装 Telnet 和 xinetd
  • 2. 增加具有管理员权限的用户
    • 2.1 添加新用户
    • 2.2 配置 sudo 权限
  • 3. 启动和管理 Telnet 服务
    • 3.1 启动服务
    • 3.2 设置服务自启动
  • 4. 配置防火墙允许 Telnet 通信
  • 5. 配置 Telnet 服务
  • 6. 添加 `pts/0` 终端
  • 7. 重启 xinetd 服务
  • 8. 在 Windows 本地终端安装 Telnet 客户端
  • 结语

前言

Telnet 是一种常用于远程终端控制的网络协议。然而,由于缺乏加密功能,Telnet 容易受到安全攻击,尤其是在公共网络环境下已逐渐被 SSH 替代。尽管如此,在某些内网环境或调试任务中,Telnet 仍然是一个有效的工具。本文将详细介绍如何在 CentOS 7 系统中安装、配置并启用 Telnet 服务,同时展示如何允许 root 用户登录 Telnet 进行远程操作。本指南将逐步演示 Telnet 服务的安装、配置、防火墙设置等内容,确保读者能够顺利完成 Telnet 服务的部署。

1. 安装 Telnet 服务端

在 CentOS 7 系统中,默认没有预装 Telnet 服务。因此,我们首先需要通过软件包管理器安装 xinetdtelnet-server,它们是 Telnet 服务的基础组件。

1.1 更新系统软件源

在安装 Telnet 之前,先确保系统的软件源是最新的。可以使用以下命令更新软件包列表:

yum update

1.2 安装 Telnet 和 xinetd

通过以下命令安装 xinetdtelnet-server

yum -y install xinetd telnet-server

这将自动下载并安装所有必要的依赖包。安装完成后,xinetd 的配置文件将存储在 /etc/xinetd.d 目录中。

2. 增加具有管理员权限的用户

在配置 Telnet 服务时,通常建议创建一个具备管理权限的用户,而不是直接使用 root 登录。以下步骤将展示如何添加用户 test 并为其配置 sudo 权限。

2.1 添加新用户

使用以下命令创建一个新的用户 test

adduser test
passwd test

2.2 配置 sudo 权限

修改 sudoers 文件,赋予 test 用户管理员权限:

chmod u+w /etc/sudoers
vim /etc/sudoers

root ALL=(ALL) ALL 行下添加以下内容,允许 test 用户执行所有命令时不需要输入密码:

test ALL=(ALL) NOPASSWD:ALL

完成后,将 sudoers 文件设为只读:

chmod u-w /etc/sudoers

3. 启动和管理 Telnet 服务

安装完成后,我们需要启动 Telnet 服务和 xinetd,并确保它们在系统重启后自动启动。

3.1 启动服务

使用以下命令启动 Telnet 和 xinetd

systemctl restart telnet.socket
systemctl restart xinetd

3.2 设置服务自启动

为了确保服务在系统重启后仍然自动启动,执行以下命令:

systemctl enable telnet.socket
systemctl enable xinetd

此时,Telnet 服务已经启动并可以接受远程连接。

4. 配置防火墙允许 Telnet 通信

为了确保外部主机能够通过 Telnet 访问服务器,我们需要在防火墙中开放 Telnet 使用的 23 端口。

修改防火墙规则

使用以下命令放行 23 端口:

firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload

此命令会重新加载防火墙规则,允许外部主机通过 23 端口连接。

5. 配置 Telnet 服务

Telnet 服务的配置文件存储在 /etc/xinetd.d 目录中。如果文件不存在,您需要手动创建。

创建和编辑配置文件

进入 /etc/xinetd.d 目录,并创建 Telnet 服务的配置文件:

cd /etc/xinetd.d
vi telnet

在文件中添加以下内容:

service telnet
{disable = noflags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID
}

配置完成后保存并退出。

6. 添加 pts/0 终端

为了允许 root 用户通过 Telnet 登录,还需在 securetty 文件中添加虚拟终端。

6.1 修改 securetty 文件

备份原有的 securetty 文件:

cp /etc/securetty /etc/securetty.bak

然后在文件末尾添加以下内容:

pts/0
pts/1
pts/2
pts/3

保存并退出。

7. 重启 xinetd 服务

完成所有配置后,重启 xinetd 服务以使更改生效:

systemctl restart xinetd

8. 在 Windows 本地终端安装 Telnet 客户端

为了验证 Telnet 服务是否配置成功,您可以通过 Windows 的 Telnet 客户端进行连接。

启用 Windows Telnet 客户端

  1. 打开“控制面板”,选择“程序和功能”。
  2. 点击左侧的“启用或关闭 Windows 功能”。
  3. 勾选“Telnet 客户端”,点击确定。

启用 Telnet 客户端后,打开命令提示符,输入以下命令进行连接:

telnet <服务器IP地址>

结语

通过本文的详细步骤,您可以在 CentOS 7 系统中成功安装和配置 Telnet 服务。虽然 Telnet 在现代生产环境中并不常用,但在内网调试和测试中,它依然具有一定的应用价值。考虑到 Telnet 的安全性问题,建议仅在内网环境中使用,并尽量避免将其用于生产服务器的管理任务。在生产环境中,推荐使用 SSH 作为远程管理工具,以提高系统的安全性。


http://www.ppmy.cn/server/127613.html

相关文章

鸿蒙harmonyos next flutter通信之EventChannel获取ohos系统时间

建立通道 flutter代码&#xff1a; EventChannel eventChannel EventChannel("com.xmg.eventChannel"); ohos代码&#xff1a; //定义eventChannelprivate eventChannel: EventChannel | null null//定义eventSinkprivate eventSink: EventSink | null null//建…

AI不可尽信

看到某项目有类似这样的一段代码 leaves : make([]int, 10) leaves leaves[:0]没理解这样的连续两行,有何作用? 初始化一个长度和容量都为10的切片,接着把切片长度设置为0 即如下demo: (在线地址) package mainimport "fmt"func main() {leaves : make([]int, 1…

HTB:Explosion[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What does the 3-letter acronym RDP stand for? 2.What is a 3-letter acronym that refers to interaction with the host through a command line interface? 3.What about graphical user interface interactions? 4.What is the…

闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨

上图为执行语义搜索前的聚类演示 &#xff0c;嵌入技术是自然语言处理的核心组成部分。虽然嵌入技术的应用范围广泛&#xff0c;但在检索应用中的语义搜索仍是其最常见的用途之一。 尽管知识图谱等可以提升检索的准确率和效率&#xff0c;但标准向量检索技术仍然具有其实用价值…

HTML+CSS表单控件(11个案例+代码+效果图)

目录 单行文本框 (text) 案例:制作一个单行文本框 1.代码 2.效果 密码输入框 (password) 案例:制作密码输入框 1.代码 2.效果 单选按钮 (radio) 案例:制作单选按钮 1.代码 2.效果 复选框 (checkbox) 案例:制作一个复选框 1.代码 2.效果 普通按钮 (button) 案例:制作一个普通按钮…

二叉树深度学习——将二叉搜索树转化为排序的双向链表

1.题目解析 题目来源&#xff1a;LCR 155.将二叉搜索树转化为排序的双向链表 测试用例 2.算法原理 首先题目要求原地进行修改并且要求左指针代表前驱指针&#xff0c;右指针代表后继指针&#xff0c;所以思路就是 1.使用前序遍历创建两个指针cur、prev代表当前节点与前一个节点…

计算机网络各层有哪些协议?计算机网络协议解析:从拟定到实现,全面了解各层协议的作用与区别

在数字化时代&#xff0c;计算机网络无处不在&#xff0c;已经成为不可或缺的一部分。为了让不同设备能够有效地进行通信&#xff0c;网络协议作为一种约定和规则&#xff0c;确保了数据在网络中的可靠传输。今天&#xff0c;我们将深入探讨计算机网络的各层协议&#xff0c;详…

深入浅出Vue.js组件开发:从基础到高级技巧

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 Vue.js 是一个轻量级且功能强大的 JavaScript 框架,专注于构建用户界面。它的核心优势之一是组件系统,它允许开发者通过模块化、可复用的方式构建复杂的应用程序。在这篇文章中,我们将详细探讨如何开发 Vue.js…