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内存的使用情况及详细信息

    在Linux系统中,内存管理是系统性能优化的核心环节,准确查询内存使用情况有助于排查性能瓶颈、监控资源消耗,本文将详细介绍几种常用的Linux内存查询方法,包括基础命令、系统文件及工具,帮助用户全面掌握内存状态,基础命令:freefree是最直观的内存查询工具,默认以KB为单位显示内存总量、已用、空闲等信息,常……

    2025年9月13日
    4100
  • Linux混合硬盘如何分区?

    在Linux系统中对混合硬盘(通常指SSD+HDD组合,或自带SSD缓存的机械硬盘)进行分区,核心原则是“高速部件优先处理高频访问数据”,以最大化性能与存储空间的平衡,以下是具体分区思路与操作步骤,混合硬盘类型与分区策略差异混合硬盘主要分为两类:SSHD(自带SSD缓存的机械硬盘)和用户自行组装的SSD+HDD……

    2025年9月16日
    2700
  • Linux如何安装Flash?详细操作步骤与方法是什么?

    在Linux系统中安装Adobe Flash Player已不再是主流需求,主要原因在于Adobe已于2020年12月停止支持Flash Player,并推荐用户转向HTML5等现代Web标准,对于仍需访问依赖Flash的旧网站或特定应用的用户,以下将详细介绍几种在Linux中安装Flash Player的方法……

    2025年8月28日
    4300
  • linux 如何安装deb包

    在Linux系统中,尤其是基于Debian和Ubuntu的发行版,.deb是最常见的软件包格式之一,它是一种二进制包,包含了软件运行所需的程序文件、配置信息、依赖关系说明等,用户通过安装deb包可以快速部署软件,而无需手动编译源代码,本文将详细介绍Linux系统中安装deb包的多种方法、操作步骤及注意事项,帮助……

    2025年9月24日
    2600
  • Linux安装软件哪种方法最合适?

    优先使用官方包管理器(推荐)包管理器自动解决依赖关系,确保软件兼容性和安全性,根据发行版选择对应命令:Debian/Ubuntu系(APT)sudo apt update # 更新软件源列表sudo apt install 软件包名 # 安装软件(如 sudo apt install vlc)sudo apt……

    2025年7月5日
    6700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信