Linux系统如何禁止Telnet远程登录服务?

在Linux系统中,禁止Telnet服务是提升系统安全性的重要措施,因为Telnet采用明文传输协议,用户名、密码及所有通信数据均未加密,极易被网络嗅探工具截获,导致敏感信息泄露,相比之下,SSH(Secure Shell)协议通过加密传输和身份验证机制,已成为远程管理的安全标准,本文将详细介绍Linux系统中禁止Telnet的多种方法,涵盖服务卸载、防火墙配置、进程管理及系统设置优化,确保从不同层面彻底禁用Telnet服务。

linux如何禁止telnet

卸载Telnet服务软件包

Telnet服务的运行依赖于特定的软件包,彻底卸载这些包是禁止Telnet的基础操作,不同Linux发行版的包管理器不同,需采用对应命令:

基于RHEL/CentOS的系统(使用yum/dnf)

Telnet服务通常由telnet-server包提供,客户端工具由telnet包提供,若仅需禁止服务,可保留客户端用于测试;若需彻底禁用,建议同时卸载客户端:

# 卸载Telnet服务端(彻底禁止Telnet服务)
sudo yum remove telnet-server -y
# 或使用dnf(CentOS 8+/RHEL 8+以上版本)
sudo dnf remove telnet-server -y
# 可选:卸载Telnet客户端(防止误用)
sudo yum remove telnet -y

基于Debian/Ubuntu的系统(使用apt)

# 更新软件包列表
sudo apt update
# 卸载Telnet服务端
sudo apt remove telnetd -y
# 可选:卸载Telnet客户端
sudo apt remove telnet -y

注意事项

  • 卸载前建议通过telnetd --version确认服务端是否已安装;
  • 若系统依赖Telnet客户端进行网络调试(如测试端口连通性),可仅卸载服务端保留客户端。

通过防火墙规则阻断Telnet端口

即使卸载了Telnet服务,若防火墙未配置,攻击者仍可能尝试扫描23端口(Telnet默认端口),需通过防火墙规则主动拒绝23端口的访问请求。

使用iptables(适用于CentOS 7及以下、Ubuntu早期版本)

# 添加拒绝规则(拒绝所有TCP协议的23端口访问)
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
# 保存规则(CentOS 7/RHEL 7以下使用)
sudo service iptables save
# 或Ubuntu中保存
sudo iptables-save > /etc/iptables/rules.v4

使用firewalld(适用于CentOS 7+/RHEL 7+、Fedora)

# 永久拒绝23端口访问
sudo firewall-cmd --permanent --add-port=23/tcp --set-target=DROP
# 或使用rich-rule更直观(拒绝IPv4的23端口)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port protocol="tcp" port="23" reject'
# 重载防火墙使规则生效
sudo firewall-cmd --reload

使用ufw(适用于Ubuntu/Debian)

# 拒绝23端口访问
sudo ufw deny 23/tcp
# 启用ufw(若未启用)
sudo ufw enable

关键点

linux如何禁止telnet

  • 防火墙规则需在服务卸载后配置,形成“服务+网络”双重防护;
  • 若需允许特定IP访问(如运维网段),可添加-s IP地址参数(iptables示例:iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 23 -j ACCEPT)。

终止并禁用运行中的Telnet进程

若Telnet服务正在运行,需先终止进程,再通过系统服务管理工具禁用开机自启,避免重启后服务自动激活。

检查Telnet进程

ps aux | grep telnet
# 或使用systemctl(若服务已通过systemctl管理)
systemctl status telnet.socket

终止进程

# 若进程为inetd/xinetd超级服务管理,需先停止超级服务
sudo systemctl stop inetd  # 或xinetd
# 若直接运行telnetd进程,通过PID终止
sudo kill -9 <PID>  # <PID>为ps命令查到的进程号

禁用开机自启

# 对于systemctl管理的服务(如telnet.socket)
sudo systemctl disable telnet.socket
# 对于inetd/xinetd,需编辑配置文件(如/etc/inetd.conf或/etc/xinetd.d/telnet)
# 注释或删除包含"telnet"的行,然后重启inetd/xinetd
sudo systemctl restart inetd

修改系统配置文件加固防护

注释/etc/services中的Telnet条目

/etc/services文件定义了服务名与端口的映射关系,注释该条目可防止部分服务通过默认端口启动:

sudo vi /etc/services
# 找到以下行,在行首添加#注释
#telnet          23/tcp
#telnet          23/udp

禁用inetd/xinetd中的Telnet服务(若使用超级服务)

若系统通过inetd或xinetd管理Telnet,需编辑对应配置文件:

  • inetd:编辑/etc/inetd.conf,注释telnet行;
  • xinetd:编辑/etc/xinetd.d/telnet,将disable = no改为disable = yes,然后执行sudo systemctl restart xinetd

SSH安全配置作为替代方案

禁止Telnet后,需确保SSH服务已正确配置,避免远程管理中断,建议优化SSH安全设置:

# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 优化项:
1. 修改默认端口(如改为2222,减少暴力破解风险)
Port 2222
2. 禁用root直接登录(降低权限泄露风险)
PermitRootLogin no
3. 强制密钥认证(禁用密码登录,提升安全性)
PasswordAuthentication no
PubkeyAuthentication yes
# 重启SSH服务使配置生效
sudo systemctl restart sshd

方法对比与操作总结

方法 适用场景 命令/操作示例 注意事项
卸载软件包 彻底移除Telnet服务端 yum remove telnet-server 区分服务端与客户端,避免误卸工具
防火墙规则 网络层阻断23端口访问 firewall-cmd --permanent --deny 23/tcp 需结合服务卸载,避免规则失效
进程终止与禁用 停止运行中服务并禁止开机自启 systemctl disable telnet.socket 需确认进程管理方式(systemctl/inetd)
修改/etc/services 防止服务通过默认端口启动 注释telnet 23/tcp 部分服务可能忽略此配置,需结合其他方法
SSH安全配置 替代Telnet的远程管理方案 修改/etc/ssh/sshd_config 禁用root登录前需确保有普通用户权限

相关问答FAQs

Q1:如何验证Telnet已被成功禁止?
A:可通过以下方式验证:

linux如何禁止telnet

  1. 本地测试:执行telnet localhost 23,若显示“Connection refused”或超时,说明端口已被阻断;
  2. 服务检查:运行systemctl status telnet.socket,显示“inactive (dead)”表示服务已停止;
  3. 端口扫描:使用nmap -p 23 localhost,若端口状态为“filtered”或“closed”,说明防火墙规则生效;
  4. 进程检查:执行ps aux | grep telnet,无相关进程输出则确认无运行中服务。

Q2:禁止Telnet后无法通过SSH远程登录,如何排查?
A:可按以下步骤排查:

  1. 检查SSH服务状态:运行systemctl status sshd,确保服务处于“active (running)”状态;
  2. 查看SSH配置:检查/etc/ssh/sshd_config中是否有PermitRootLogin noPasswordAuthentication no导致登录失败,若为密钥认证,需确认客户端密钥是否正确;
  3. 防火墙规则:检查SSH端口(默认22或自定义端口)是否被允许,例如firewall-cmd --list-ports查看开放端口;
  4. 网络连通性:使用telnet <服务器IP> 22测试SSH端口是否可达,或使用ss -tulnp | grep sshd确认监听状态;
  5. 日志分析:查看/var/log/secure/var/log/auth.log,定位登录失败的具体原因(如密码错误、密钥不匹配等)。

通过以上方法,可从软件包、防火墙、进程、系统配置等多个维度彻底禁止Linux系统中的Telnet服务,同时通过SSH安全配置确保远程管理的可靠性,有效提升系统安全性。

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

(0)
酷番叔酷番叔
上一篇 2025年9月18日 04:55
下一篇 2025年9月18日 05:14

相关推荐

  • Linux Qt浏览器如何实现安全下载?

    在Linux的Qt浏览器中实现下载功能,需整合网络请求与本地文件操作,使用Qt网络模块处理请求,文件操作保存数据,注重安全验证与用户交互体验。

    2025年7月12日
    7200
  • Linux如何用Python脚本?操作方法与步骤详解

    在Linux系统中,Python脚本因其简洁高效的语法和强大的库支持,成为自动化运维、数据处理、系统管理等场景的核心工具,本文将从环境准备、脚本编写、执行方式、权限管理、应用场景及调试技巧等方面,详细说明如何在Linux中使用Python脚本,Python环境准备Linux多数发行版默认已安装Python,但版……

    2025年9月23日
    4800
  • ARM架构如何运行Linux系统?

    ARM架构作为全球主流的处理器架构之一,凭借其低功耗、高性能和可扩展性特点,在嵌入式设备、移动终端、服务器等领域广泛应用,Linux系统作为开源操作系统,凭借其稳定性和灵活性,成为ARM平台的首选操作系统之一,ARM设备运行Linux系统涉及硬件基础、系统移植、启动流程和软件生态等多个环节,下面将详细解析这一过……

    2025年10月8日
    4200
  • Linux系统升级PHP7.0版本的具体操作步骤是怎样的?

    在Linux系统中升级或安装PHP 7.0需要根据不同的发行版选择合适的方法,以下是详细步骤,涵盖备份、源配置、安装及测试全流程,确保操作安全可靠,升级前的准备工作在开始操作前,务必备份现有PHP配置、扩展及网站数据,避免升级过程中出现数据丢失或服务中断,需备份的关键文件包括:PHP配置文件:通常位于/etc……

    2025年8月25日
    5600
  • Linux环境下如何验证MPI安装成功与否及功能测试?

    在Linux系统中,MPI(Message Passing Interface)作为高性能计算的核心通信库,其安装成功与否直接影响并行程序的开发与运行,验证MPI安装需从环境配置、基础功能、通信性能及多节点兼容性等多维度进行,以下是详细步骤与操作说明,环境变量与基础命令检查MPI安装后,首先需确认环境变量配置正……

    2025年8月26日
    6100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信