国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Linux下rsh配置rhost實(shí)例詳解

2016-10-09 08:41:17 15869

本節(jié)內(nèi)容:
Linux下rsh配置rhost的方法。
              
1,安裝前準(zhǔn)備:
 機(jī)器A:192.168.0.104(machine_a) (安裝rsh server)
 機(jī)器B:192.168.0.106(machine_b) (rsh client )
 
2,首先確認(rèn)機(jī)器A是否安裝rsh包:
 

代碼示例:
[root@ahlinux root]# rpm -aq |grep rsh
 rsh-0.17-14
 rsh-server-0.17-14
 

 如果沒(méi)有安裝以上兩個(gè)包,請(qǐng)找到相關(guān)軟件安裝(如果是LINUX,可以從安裝碟中找到)
 安裝包: 
 

代碼示例:
 rpm -ivh rsh-0.17-5 (linux 操作系統(tǒng))
 rpm -ivh rsh-server-0.17-5 (linux操作系統(tǒng))

或者在root下使用yum install rsh 和 yum install rsh-server來(lái)自動(dòng)安裝。
注:使用yum安裝rsh-server時(shí)xinetd也會(huì)被自動(dòng)安裝。
 
3,確認(rèn)機(jī)器A是否啟動(dòng)rsh 服務(wù):
 方法一:
 使用命令setup,查看service是否將
 

代碼示例:
 rsh/rlogin/rexec 加上*,如果加上*表示可以啟動(dòng)。
 /etc/rc.d/init.d/xinetd restart 或者 service xinetd restart
 

方法二:
或使用chkconfig檢查rsh/rlogin/rexe是有啟動(dòng)。
rsh 屬于xinetd服務(wù),可以直接修改/etc/xinetd.d/rsh腳本文件來(lái)配置。 
 

代碼示例:
 service shell
 {
 disable = no
 socket_type = stream
 wait = no
 user = root
 log_on_success += USERID
 log_on_failure += USERID
 server = /usr/sbin/in.rshd
 }
 

對(duì)/etc/xinetd.d/rlogin 和/etc/xinetd.d/rexec進(jìn)行類(lèi)似的設(shè)置。

 當(dāng)然方法很多,目的就是使用rsh/rlogin/rexec服務(wù)能啟動(dòng)。 
 

代碼示例:
 /etc/rc.d/init.d/xinetd restart

檢查是否啟動(dòng): rsh server 監(jiān)聽(tīng)和TCP 是514。
 

代碼示例:
[root@ahlinux root]# netstat -an |grep 51
 tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN

如果能看到514在監(jiān)聽(tīng)說(shuō)明服務(wù)器已經(jīng)啟動(dòng)。
 
4, 配置機(jī)器A的hosts文件/etc/hosts例如:(貌似不能直接使用ip來(lái)rsh)
 

127.0.0.1       localhost.localdomain localhost
 ::1             localhost6.localdomain6 localhost6
 192.168.0.104   machine_a.localdomain machine_a
 192.168.0.106  machine_b.localdomain machine_b
 

5,配置機(jī)器A的rsh server:
修改/etc/securetty文件: 
 

代碼示例:
  echo rsh >>/etc/securetty
  echo rlogin >>/etc/securetty
  echo rexec >>/etc/securetty 

如果打算用AAA作為rsh用戶的話:
先用AAA登錄到機(jī)器A中進(jìn)行以下操作: 
 

代碼示例:
 cd ~/
 echo "machine_a AAA" >>.rhosts  #允許machine_a 以AAA訪問(wèn) ,即允許從rshserver所在的機(jī)器運(yùn)行rshclient。
 echo "machine_b AAA" >>.rhosts  #允許machine_b以AAA訪問(wèn)。
 echo +AAA >>.rhosts 允許所有的機(jī)器以AAA訪問(wèn),貌似linux下不起作用。

 重?rsh server. (service xinetd restart)

6,測(cè)試與注意事項(xiàng):
 rshserver機(jī)器作為rshclient的機(jī)器測(cè)試:

代碼示例:
rsh -l AAA localhost ps -ef 或者 rsh -l AAA machine_a ps -ef
 

 登錄到B機(jī)器machine_b進(jìn)行測(cè)試:

代碼示例:
rsh -l AAA machine_a ps -ef
 

 看是否能看到結(jié)果。
 
 如果看到 

代碼示例:
rsh -l AAA machine_a ps -ef
 

 Permission denied.
 這是由于權(quán)權(quán)限問(wèn)題,一般是由于 .rhosts沒(méi)有配置正確。.rhosts一般位于rsh server服務(wù)器相對(duì)應(yīng)賬號(hào)目錄下比如AAA(與.bash_profile在同一目錄)
 rsh在執(zhí)行命令有時(shí)會(huì)找不到。rsh 在調(diào)用命令是最好使用絕對(duì)路徑。默認(rèn)搜索路徑為: 
 

代碼示例:
 [root@ahlinux etc]# rsh -l AAA 192.168.0.4 env |grep PATH
 PATH=/usr/bin:/bin 

hosts.equiv和.rhosts文件
遠(yuǎn)程用戶啟動(dòng)rlogin訪問(wèn)你的本地主機(jī),此時(shí)做如下安全性檢查:
1,本地rlogind在本地/etc/passwd文件中尋找遠(yuǎn)程用戶名,沒(méi)有則拒絕訪問(wèn)。
2,/etc/passwd中存在遠(yuǎn)程用戶名,rlogind在/etc/hosts.equiv尋找遠(yuǎn)程主機(jī)名,找到則允許訪問(wèn)。
3,/etc/hosts.equiv無(wú)遠(yuǎn)程主機(jī)名,rlogind在$HOME/.rhosts尋找遠(yuǎn)程主機(jī)名,找到且該項(xiàng)后無(wú)用戶名則允許訪問(wèn),找到且該項(xiàng)后有用戶名,若遠(yuǎn)程用戶名位于其中,則允許訪問(wèn)。

注意,此處的$HOME是與遠(yuǎn)程用戶同名的本機(jī)用戶的主目錄。
 
5,若?過(guò)了/etc/passwd的檢查,但沒(méi)有通過(guò)/etc/hosts.equiv或者$HOME/.rhosts的檢查,遠(yuǎn)程用戶給出口令可以登錄本機(jī),但無(wú)法使用rcp、rsh等。反之則可以使用rcp或者rsh。
 
6,/etc/hosts.equiv中的+意味著任意主機(jī),此時(shí)與/etc/hosts無(wú)關(guān)。netterm下rlogin除root外的所有用戶可以成功,solaris下簡(jiǎn)單的rlogin hostname同netterm,但是rlogin -l username hostname不成功。這個(gè)事實(shí)說(shuō)明netterm下rlogin的時(shí)候,指定的參數(shù)實(shí)際上是遠(yuǎn)程主機(jī)的當(dāng)前用戶名。還說(shuō)?hosts.equiv文件不支持rlogin -l username hostname,不支持root的rlogin。
 
7,rlogin -l username hostname和rlogin hostname的檢查有點(diǎn)細(xì)微的差別,首先在/etc/passwd的檢查中是以-l的參數(shù)為準(zhǔn)的,沒(méi)有-l參數(shù)才使用遠(yuǎn)程主機(jī)的當(dāng)前用戶名,所謂當(dāng)前用戶名是考慮了su出來(lái)的用戶。其次,$HOME也是先以-l參數(shù)為準(zhǔn)。第三,$HOME/.rhosts文件中的用戶名不是針對(duì)-l參數(shù)來(lái)的,而是針對(duì)遠(yuǎn)程主機(jī)的當(dāng)前用戶名來(lái)的,但是對(duì)于這個(gè)遠(yuǎn)程主機(jī)的當(dāng)前用戶名,并不要?出現(xiàn)在/etc/passwd文件中。這第6條尤其重要,許多不成功的$HOME/.rhost就是因?yàn)閷?duì)第6條的不了解。
 
8,$HOME/.rhosts文件的權(quán)限問(wèn)題,chmod 0都沒(méi)有影響,不過(guò)當(dāng)時(shí)是處理root用戶。對(duì)于一般用戶,一定要保證.rhosts文件對(duì)于$HOME的屬主是可讀的。一般來(lái)說(shuō),這個(gè)文件最好chmod 400。對(duì)于root,如果不希望某個(gè)用戶建立自己的.rhosts或者想替該用戶建立.rhosts后不允許該用戶自己修改,可以通過(guò)chown root .rhosts然后chmod 444 .rhosts實(shí)現(xiàn)。除了root,果$HOME/.rhosts文件的屬主和$HOME的屬主不一致,檢查將失敗。
 
9,$HOME/.rhosts文件中每行只跟一個(gè)用戶名,若想多個(gè)指定,只好分多行指定用戶名。
 
10,sco unix下$HOME/.rhosts中若用+代表主機(jī),與其他Unix系統(tǒng)不同,這里的+沒(méi)有任何特殊的意義,所以檢查將失敗。但是用戶名仍然可以用+代表。并且sco unix下若root的.rhosts文件go+w,則檢查失敗。
 
11,建議man rhosts看看,各個(gè)系統(tǒng)有許多細(xì)微的差別。

注意:
1,直接使用 rsh 命令方式和使用 rsh 命令方式,其實(shí)本質(zhì)上是不一樣的,前者實(shí)質(zhì)上調(diào)用的是 rlogin 程序,而后者才是真正意義上的 remote shell。所以,前者對(duì)應(yīng)的是 rlogin 服務(wù)的端口,為 513;

后者對(duì)應(yīng)的才是 remote shell 服務(wù)的端口 514。而使用 rsh 命令方式時(shí),具體過(guò)程還是有些特殊的,那就是,本地機(jī)先鏈接服務(wù)端的 514 端口,然后服務(wù)端還要以約定好的端口(1021~1023)與客戶端相連,所以要順利執(zhí)行該命令的話,即要求服務(wù)端允許 514 端口鏈接,還要求本地機(jī)允許1021~1023端口的鏈接,這樣就必須正確配置防火墻。

如果沒(méi)有在本地機(jī)允許1021~1023端口,則會(huì)出現(xiàn)如下錯(cuò)誤: poll: protocol failure in circuit setup

2,網(wǎng)上資料說(shuō)rsh 連接不正??梢酝ㄟ^(guò)修改 /etc/securetty 文件,添加 rsh 和 rlogin 兩行,并修改 /etc/pam.d/rsh 文件,注釋掉 pam_rhosts_auth.so 那一行就可以。

而事實(shí)證明,在沒(méi)有開(kāi)放相應(yīng)端口的情況下,這么做了沒(méi)有用。
而按我上面說(shuō)的4步做了以后,不做這兩條也完全可以。
所以,這兩條對(duì)我的系統(tǒng)完全不必要。

以上所說(shuō)的只對(duì)普通用戶(非root)有效,若是對(duì)root用戶,上面的設(shè)置還不能實(shí)現(xiàn)無(wú)密碼訪問(wèn),甚至都可能連不上。

對(duì)root用戶,應(yīng)增加以下兩條:
1,必須要在 /etc/securetty 中添加上 rsh 和 rlogin 才?分別使用兩個(gè)服務(wù)。
2,必須要在 /root/.rhosts 中加入等價(jià)的主機(jī)名或IP,這些機(jī)子才能無(wú)密碼訪問(wèn)該機(jī)器。




提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: