- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
本節(jié)內(nèi)容:
Linux下rsh配置rhost的方法。
1,安裝前準(zhǔn)備:
機器A:192.168.0.104(machine_a) (安裝rsh server)
機器B:192.168.0.106(machine_b) (rsh client )
2,首先確認(rèn)機器A是否安裝rsh包:
代碼示例:
[root@ahlinux root]# rpm -aq |grep rsh
rsh-0.17-14
rsh-server-0.17-14
如果沒有安裝以上兩個包,請找到相關(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來自動安裝。
注:使用yum安裝rsh-server時xinetd也會被自動安裝。
3,確認(rèn)機器A是否啟動rsh 服務(wù):
方法一:
使用命令setup,查看service是否將
代碼示例:
rsh/rlogin/rexec 加上*,如果加上*表示可以啟動。
/etc/rc.d/init.d/xinetd restart 或者 service xinetd restart
方法二:
或使用chkconfig檢查rsh/rlogin/rexe是有啟動。
rsh 屬于xinetd服務(wù),可以直接修改/etc/xinetd.d/rsh腳本文件來配置。
代碼示例:
service shell
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
}
對/etc/xinetd.d/rlogin 和/etc/xinetd.d/rexec進行類似的設(shè)置。
當(dāng)然方法很多,目的就是使用rsh/rlogin/rexec服務(wù)能啟動。
代碼示例:
/etc/rc.d/init.d/xinetd restart
檢查是否啟動: rsh server 監(jiān)聽和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)聽說明服務(wù)器已經(jīng)啟動。
4, 配置機器A的hosts文件/etc/hosts例如:(貌似不能直接使用ip來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,配置機器A的rsh server:
修改/etc/securetty文件:
代碼示例:
echo rsh >>/etc/securetty
echo rlogin >>/etc/securetty
echo rexec >>/etc/securetty
如果打算用AAA作為rsh用戶的話:
先用AAA登錄到機器A中進行以下操作:
代碼示例:
cd ~/
echo "machine_a AAA" >>.rhosts #允許machine_a 以AAA訪問 ,即允許從rshserver所在的機器運行rshclient。
echo "machine_b AAA" >>.rhosts #允許machine_b以AAA訪問。
echo +AAA >>.rhosts 允許所有的機器以AAA訪問,貌似linux下不起作用。
重?rsh server. (service xinetd restart)
6,測試與注意事項:
rshserver機器作為rshclient的機器測試:
代碼示例:
rsh -l AAA localhost ps -ef 或者 rsh -l AAA machine_a ps -ef
登錄到B機器machine_b進行測試:
代碼示例:
rsh -l AAA machine_a ps -ef
看是否能看到結(jié)果。
如果看到
代碼示例:
rsh -l AAA machine_a ps -ef
Permission denied.
這是由于權(quán)權(quán)限問題,一般是由于 .rhosts沒有配置正確。.rhosts一般位于rsh server服務(wù)器相對應(yīng)賬號目錄下比如AAA(與.bash_profile在同一目錄)
rsh在執(zhí)行命令有時會找不到。rsh 在調(diào)用命令是最好使用絕對路徑。默認(rèn)搜索路徑為:
代碼示例:
[root@ahlinux etc]# rsh -l AAA 192.168.0.4 env |grep PATH
PATH=/usr/bin:/bin
hosts.equiv和.rhosts文件
遠程用戶啟動rlogin訪問你的本地主機,此時做如下安全性檢查:
1,本地rlogind在本地/etc/passwd文件中尋找遠程用戶名,沒有則拒絕訪問。
2,/etc/passwd中存在遠程用戶名,rlogind在/etc/hosts.equiv尋找遠程主機名,找到則允許訪問。
3,/etc/hosts.equiv無遠程主機名,rlogind在$HOME/.rhosts尋找遠程主機名,找到且該項后無用戶名則允許訪問,找到且該項后有用戶名,若遠程用戶名位于其中,則允許訪問。
注意,此處的$HOME是與遠程用戶同名的本機用戶的主目錄。
5,若?過了/etc/passwd的檢查,但沒有通過/etc/hosts.equiv或者$HOME/.rhosts的檢查,遠程用戶給出口令可以登錄本機,但無法使用rcp、rsh等。反之則可以使用rcp或者rsh。
6,/etc/hosts.equiv中的+意味著任意主機,此時與/etc/hosts無關(guān)。netterm下rlogin除root外的所有用戶可以成功,solaris下簡單的rlogin hostname同netterm,但是rlogin -l username hostname不成功。這個事實說明netterm下rlogin的時候,指定的參數(shù)實際上是遠程主機的當(dāng)前用戶名。還說?hosts.equiv文件不支持rlogin -l username hostname,不支持root的rlogin。
7,rlogin -l username hostname和rlogin hostname的檢查有點細(xì)微的差別,首先在/etc/passwd的檢查中是以-l的參數(shù)為準(zhǔn)的,沒有-l參數(shù)才使用遠程主機的當(dāng)前用戶名,所謂當(dāng)前用戶名是考慮了su出來的用戶。其次,$HOME也是先以-l參數(shù)為準(zhǔn)。第三,$HOME/.rhosts文件中的用戶名不是針對-l參數(shù)來的,而是針對遠程主機的當(dāng)前用戶名來的,但是對于這個遠程主機的當(dāng)前用戶名,并不要?出現(xiàn)在/etc/passwd文件中。這第6條尤其重要,許多不成功的$HOME/.rhost就是因為對第6條的不了解。
8,$HOME/.rhosts文件的權(quán)限問題,chmod 0都沒有影響,不過當(dāng)時是處理root用戶。對于一般用戶,一定要保證.rhosts文件對于$HOME的屬主是可讀的。一般來說,這個文件最好chmod 400。對于root,如果不希望某個用戶建立自己的.rhosts或者想替該用戶建立.rhosts后不允許該用戶自己修改,可以通過chown root .rhosts然后chmod 444 .rhosts實現(xiàn)。除了root,果$HOME/.rhosts文件的屬主和$HOME的屬主不一致,檢查將失敗。
9,$HOME/.rhosts文件中每行只跟一個用戶名,若想多個指定,只好分多行指定用戶名。
10,sco unix下$HOME/.rhosts中若用+代表主機,與其他Unix系統(tǒng)不同,這里的+沒有任何特殊的意義,所以檢查將失敗。但是用戶名仍然可以用+代表。并且sco unix下若root的.rhosts文件go+w,則檢查失敗。
11,建議man rhosts看看,各個系統(tǒng)有許多細(xì)微的差別。
注意:
1,直接使用 rsh
后者對應(yīng)的才是 remote shell 服務(wù)的端口 514。而使用 rsh
如果沒有在本地機允許1021~1023端口,則會出現(xiàn)如下錯誤: poll: protocol failure in circuit setup
2,網(wǎng)上資料說rsh 連接不正常可以通過修改 /etc/securetty 文件,添加 rsh 和 rlogin 兩行,并修改 /etc/pam.d/rsh 文件,注釋掉 pam_rhosts_auth.so 那一行就可以。
而事實證明,在沒有開放相應(yīng)端口的情況下,這么做了沒有用。
而按我上面說的4步做了以后,不做這兩條也完全可以。
所以,這兩條對我的系統(tǒng)完全不必要。
以上所說的只對普通用戶(非root)有效,若是對root用戶,上面的設(shè)置還不能實現(xiàn)無密碼訪問,甚至都可能連不上。
對root用戶,應(yīng)增加以下兩條:
1,必須要在 /etc/securetty 中添加上 rsh 和 rlogin 才?分別使用兩個服務(wù)。
2,必須要在 /root/.rhosts 中加入等價的主機名或IP,這些機子才能無密碼訪問該機器。
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP