读书人

Linux上rsh服务配置root用户和普通用

发布时间: 2013-03-12 11:19:35 作者: rapoo

Linux下rsh服务配置,root用户和普通用户

1. rsh和ssh的区别

在很多的应用中,我们需要建立节点之间的信任关系,现阶段来看rsh使用的很少了,大部分还是使用ssh,不过有很多老点的机器还是使用rsh。简单来说,rsh和ssh它俩之间的区别就是:ssh是使用密钥加密从而实现无密码登录的,具体来说就是在A主机生成一对密钥对,即公钥和私钥,我把公钥传递给B,然后等A链接B的时候,B会随机生成一个数来使用A提供的公钥进行加密,并将加密后的数字发送给A,A采用自己的私钥解密,并将解密后的数字再传送给B,等B校验A传来的数字和刚开始生成的数字相符时,就允许A登录,这就是ssh无密码登录的原理。而rsh是使用明文传输,没有密钥的机制,总的来说就是他们的安全级别不够。Ssh要比rsh更安全一些。

Ssh配置无密码登录,请参考:

http://blog.csdn.net/houqingdong2012/article/details/8544517

2. Rsh设置主机之间无密码登录

root用户配置:

1. A与B均安装需要的软件:

rsh.x86_64

rsh-server.x86_64

Yum安装:yum -y install rsh* # 这一步A、B均需要

2. 检查是否安装成功

rpm -qa | grep rsh

3. 启动并查看rsh服务

service xinetd restart

netstat -tupln | grep xinetd # 出现如下监听端口说明启动成功

[root@RedHat01 security]# netstat -tunpl| grep xinetd

tcp 0 0 :::512 :::* LISTEN 3593/xinetd

tcp 0 0 :::513 :::* LISTEN 3593/xinetd

tcp 0 0 :::514 :::* LISTEN 3593/xinetd

4. 配置/etc/hosts文件

将A和B的IP地址与主机名对应的写入到该文件,是为了DNS能解析成功:

[root@RedHat01 security]# vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

192.168.171.138 RedHat01 # A

192.168.171.136 RedHat02 # B

查看一下是否可以解析:ping RedHat01

5. 配置/etc/hosts.equiv (若没有该文件请自行建立)

这一步主要是将对方的主机名写进去。

A机器/etc/hosts.equiv的内容为:RedHat02

B机器/etc/hosts.equiv的内容为:RedHat01

注:这里是允许对方机器上的所有用户,如果只允许root就写 RedHat02 root

6. 配置/root/.rhosts文件(自行建立)

和上一步一样,把彼此的主机名写进去

A机器/root/.rhosts的内容:RedHat02

B机器/root/.rhosts的内容:RedHat01

7. 修改/etc/xinetd.d/rsh|rlogin|rexec文件,将 disable = yes 该为 disable = no

8. 修改/etc/securetty文件,添加:rsh rexec rlogin

也可以执行: echo "rsh" >> /etc/securetty ;

echo "rexec" >> /etc/securetty ;

echo "rlogin" >> /etc/securetty ;

注:这一步非常重要,如果想要root登录不需要密码,必须要在这个文件里面输入上面的内容。至于这个文件的作用会在下面讲解。

9. 重启服务

service xinetd restart

10. 测试:rsh RedHat02

no-root(普通用户配置)

普通用户的配置和上面差不多,有几点区别指出:

上面的第6步:

需要在该用户的目录下创建.rhosts文件,输入的内容是一样的。

例如用户rshtest 就需要在 /home/rshtest/ 下创建.rhosts文件

上面的第8步:

作为普通用户的配置,将这一步省略也可以成功。亲自实践。

注意:

作为普通用户在AB之间互相登录,AB上普通用户的用户名必须是相同的,我自己在做实验的时候曾经因为用户名不同,费了好长的时间才找到原因。即:

A机器上有普通用户:mytest 那么响应的

B机器上也要有普通用户:mytest

用rsh登录到另一台主机,他是在另一台主机上以相同用户的身份来执行操作,这也就是为什么必须有相同的用户名的原因了。

补充:

我们主要来说一下:/etc/securetty文件的作用:

/etc/securetty文件规定root用户可以从哪个tty设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的。

把这个文件改名、或注释掉里面的文件,不会影响ssh的应用,因为ssh远程登录使用的是PTS,这个文件可以阻止telnet,rsh , 通过root登录。

读书人网 >UNIXLINUX

热点推荐