RSH远程执行环境搭建与配置全指南

一、RSH技术概述与适用场景

RSH(Remote Shell)是一种基于TCP/IP协议的远程命令执行协议,允许用户在本地主机通过简单命令直接操作远程主机。相较于SSH,RSH采用明文传输且依赖主机信任机制,更适合在封闭可信网络环境中实现自动化运维。典型应用场景包括:

  • 批量管理集群节点
  • 定时任务跨主机执行
  • 分布式系统监控数据采集
  • 开发测试环境快速部署

需特别注意:RSH协议存在明文传输安全隐患,仅建议在隔离的专用网络中使用。对于互联网暴露环境,建议采用SSH或VPN+RSH的组合方案。

二、环境准备与规划

1. 主机角色定义

主机名 IP地址 角色定位 关键配置文件
ahost 192.168.200.123 客户端/控制机 /etc/hosts, /etc/xinetd.d/rsh
bhost 192.168.200.200 服务端/被控机 /etc/hosts, /etc/securetty, /etc/pam.d/rlogin

2. 网络连通性验证

执行以下命令确保双向通信正常:

  1. # 在ahost执行
  2. ping -c 3 192.168.200.200
  3. telnet 192.168.200.200 514/tcp # RSH默认端口
  4. # 在bhost执行
  5. ping -c 3 192.168.200.123
  6. telnet 192.168.200.123 514/tcp

三、核心配置实施

1. 主机名解析配置

编辑/etc/hosts文件实现双向解析:

  1. # ahost配置示例
  2. 127.0.0.1 localhost ahost
  3. 192.168.200.200 bhost
  4. # bhost配置示例
  5. 127.0.0.1 localhost bhost
  6. 192.168.200.123 ahost

验证方法

  1. getent hosts ahost
  2. getent hosts bhost

2. 网络基础配置

ahost配置:

  1. # /etc/sysconfig/network示例
  2. NETWORKING=yes
  3. HOSTNAME=ahost
  4. GATEWAY=192.168.200.1

bhost配置:

  1. # /etc/sysconfig/network示例
  2. NETWORKING=yes
  3. HOSTNAME=bhost
  4. GATEWAY=192.168.200.1

3. RSH服务端配置

安装必要组件

  1. # 基于RPM系统
  2. yum install rsh-server rsh -y
  3. # 基于DEB系统
  4. apt-get install rsh-server rsh-client -y

配置xinetd超级服务

编辑/etc/xinetd.d/rsh文件:

  1. service shell
  2. {
  3. socket_type = stream
  4. protocol = tcp
  5. wait = no
  6. user = root
  7. server = /usr/sbin/in.rshd
  8. log_on_failure += USERID
  9. disable = no
  10. bind = 192.168.200.200
  11. only_from = 192.168.200.0/24
  12. access_times = 08:00-18:00
  13. }

安全加固配置

  1. 限制可登录用户:

    1. # 编辑/etc/securetty
    2. echo "rsh" >> /etc/securetty
  2. 配置PAM认证(可选):

    1. # 编辑/etc/pam.d/rlogin
    2. auth required pam_securetty.so
    3. auth sufficient pam_rhosts_auth.so

4. 客户端配置

安装客户端工具

  1. # 客户端安装
  2. yum install rsh -y # 或 apt-get install rsh-client

配置信任关系

~/.rhosts文件中添加信任条目:

  1. # 格式:主机名 用户名
  2. bhost root

重要安全提示

  • 确保.rhosts文件权限为600
  • 建议配合/etc/hosts.equiv实现系统级信任
  • 定期审计信任关系文件

四、服务验证与调试

1. 基础功能测试

  1. # 从ahost执行
  2. rsh bhost "uptime"
  3. rsh bhost -l root "df -h"

2. 常见问题排查

连接拒绝问题

  1. 检查服务状态:

    1. systemctl status xinetd
    2. netstat -tulnp | grep 514
  2. 查看日志:

    1. tail -f /var/log/secure
    2. journalctl -u xinetd -f

权限拒绝问题

  1. 检查SELinux状态:

    1. getenforce
    2. setenforce 0 # 临时关闭测试
  2. 验证文件权限:

    1. ls -ld ~/.rhosts
    2. ls -l /etc/hosts.equiv

五、进阶配置建议

1. 性能优化参数

/etc/sysconfig/rsh中调整:

  1. RSH_MAXCHILDREN=50
  2. RSH_TIMEOUT=300

2. 日志集中管理

配置rsyslog实现日志收集:

  1. # /etc/rsyslog.conf添加
  2. authpriv.* @192.168.200.100:514

3. 替代方案建议

对于新部署环境,推荐考虑:

  • SSH端口转发方案
  • 基于消息队列的远程执行框架
  • 容器化编排工具的exec功能

六、安全最佳实践

  1. 网络隔离:将RSH服务限制在管理VLAN
  2. 访问控制:通过防火墙规则限制源IP
  3. 审计跟踪:完整记录所有远程执行命令
  4. 定期轮换:每季度更新信任关系配置
  5. 最小权限:仅授权必要用户使用RSH

本文通过系统化的配置流程和安全加固措施,帮助运维人员构建可控的RSH远程执行环境。实际部署时需根据具体网络环境和安全要求调整配置参数,建议首次部署在测试环境验证通过后再迁移至生产环境。