在Linux系统中,rsh
(Remote Shell)是一种历史悠久的远程登录协议,但由于其明文传输数据且缺乏加密机制,存在严重的安全风险(如密码嗅探、中间人攻击),现代Linux环境强烈建议关闭rsh
服务,并改用更安全的SSH
协议,以下是详细操作步骤:
检查rsh服务状态
在关闭前,确认系统是否启用了rsh
相关服务:
# 检查是否安装了rsh软件包(适用于Debian/Ubuntu) dpkg -l | grep -E "rsh-client|rsh-server" # 检查是否安装了rsh软件包(适用于RHEL/CentOS) rpm -qa | grep rsh
若返回active (running)
或显示已安装软件包,则需关闭。
关闭rsh服务的步骤
立即停止运行中的服务
sudo systemctl stop rsh.socket rsh.service sudo systemctl stop rlogin.socket rlogin.service sudo systemctl stop rexec.socket rexec.service # 关闭相关服务
禁止开机自启动
sudo systemctl disable rsh.socket rsh.service sudo systemctl disable rlogin.socket rlogin.service sudo systemctl disable rexec.socket rexec.service
卸载rsh软件包(推荐)
- Debian/Ubuntu:
sudo apt purge rsh-client rsh-server -y
- RHEL/CentOS:
sudo yum remove rsh rsh-server -y
禁用配置文件(可选)
编辑/etc/inetd.conf
或/etc/xinetd.d/
下的配置文件,注释掉rsh
、rlogin
、rexec
相关行:
sudo sed -i 's/^shell/#shell/g' /etc/inetd.conf # 注释shell(rsh)服务 sudo systemctl restart inetd # 或 xinetd
验证是否关闭成功
# 检查服务状态(应显示inactive) systemctl status rsh.socket # 检查端口是否监听(rsh默认端口514) sudo ss -tuln | grep ':514' # 尝试本地连接(应返回连接失败) rsh localhost
若端口无监听且命令返回Connection refused
,则关闭成功。
安全替代方案:使用SSH
rsh
的替代品是SSH
(Secure Shell),它通过加密保障数据传输安全:
- 安装SSH服务:
sudo apt install openssh-server # Debian/Ubuntu sudo yum install openssh-server # RHEL/CentOS
- 使用SSH远程登录:
ssh username@hostname
为什么必须关闭rsh?
- 安全漏洞:
rsh
传输数据未加密,易被截获。 - 协议过时:现代Linux已弃用,默认不安装。
- 合规要求:安全审计标准(如PCI DSS)明确禁止使用明文协议。
最佳实践:
- 定期扫描开放端口:
sudo nmap -sV localhost
- 配置防火墙阻止514端口:
sudo ufw deny 514/tcp # Ubuntu sudo firewall-cmd --permanent --remove-service=rsh --zone=public # RHEL
引用说明:
本文操作基于Linux官方文档及安全加固指南(如CIS Benchmarks),命令适用于主流发行版(Ubuntu 20.04+、CentOS 7+),其他版本请参考对应手册。
注意:生产环境操作前建议备份配置。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5419.html