[xinetd의 경우]
1. xinetd 설정
먼저 /etc/services에
kshell 544/tcp krcmd # Kerberized `rsh' (v5)
가 들어가 있는지 확인합니다.
# vi /etc/services
/etc/xinetd.d/rsh 에서
disable = yes
를
disable = no
로 바꿔줍니다.
# vi /etc/xinetd.d/rsh
xinetd가 설정화일을 다시 읽게 합니다.
# killall -USR1 xinetd
2. in.rshd 설정
/etc/securetty 에 rsh를 추가합니다 (/etc/pam.d/rsh 를 참조)
# vi /etc/securetty
vc/1
...
vc/11
tty1
...
tty11
rsh <-- 추가합니다.
:wq
3. .rhosts 설정
홈디렉토리에 .rhosts 화일을 만듭니다. rsh를 실행할 호스트의 이름이나
IP주소를 적어줍니다.
# cd
# cat .rhosts
localhost
otherhost
.rhosts 의 퍼미션을 group과 other의 write권한을 제거합니다.
# chmod go-w .rhosts
------------------------------------------------------------------------------------------------------
rsh을 사용하기 위한 설정은 저렇게 힘들게 하는 게 아니라 엄청 심플하게 합니다.
1. ntsysv 를 사용해서 rsh와 rlogin을 열어줍니다. 물론 /etc/xinetd.d/rsh 와 /etc/xinetd.d/rlogin 의 disable=no 로 해줘도 됩니다. 둘다 똑같은 겁니다.
2. /etc/hosts.equiv 안에 rsh 접속을 할 호스트네임을 적어줍니다. 여기에 적어줄 hostname은 /etc/hosts 안에 있는 것과 일치해야합니다.
그리고
#/etc/rc.d/init.d/xinetd restart
한판 해줍니다.
1번과 2번만 해주면 일반유저는 rsh과 rlogin을 사용하는데 아무 문제가 없읍니다. 1과 2를 통해서 .rhosts를 만들지 않고도 일반유저는 rsh과 rlogin을 사용하는데 전혀 지장이 없읍니다. rlogin을 열어주는 이유는
$ rsh aaa
라고 호스트네임만 적어주면 이건 rsh로 보이지만 rlogin으로 동작하므로 rlogin을 열어주지 않으면 저건 실행이 안됩니다.
root도 rsh을 암호를 물어보지 않고 할려면, 두가지 과정을 더 거쳐야합니다.
3. /root/.rhosts 파일을 생성하고 여기에 /etc/hosts.equiv와 똑같은 내용을 써줍니다. 물론 다르게 써줘도 상관은 없읍니다.
요렇게 해도 암호를 물어봅니다.
4. /etc/pam.d/rsh 와 /etc/pam.d/rlogin을 열어서 pam_securetty.so 에 해당되는 줄을 주석처리해줍니다.
이러한 과정을 실행하면, 호스트들간에 rsh과 rlogin이 문제없이 작동합니다.
보안때문에 rsh을 안쓴다고 하지만, 클러스터와 같이 외부아이피와 완전히 분리되어 있는 내부 호스트들 사이에는 rsh을 사용해도 별 문제가 없고, 일이 훨씬 쉬워지지요.
인터넷에 올라있는 문서들이 나름대로 고민해서 만든건데, 제가 보기에는 훨씬 간편한 방법이 많은데도, 너무 설정을 어렵게 하도록 만드는 경향이 있더군요.
1. xinetd 설정
먼저 /etc/services에
kshell 544/tcp krcmd # Kerberized `rsh' (v5)
가 들어가 있는지 확인합니다.
# vi /etc/services
/etc/xinetd.d/rsh 에서
disable = yes
를
disable = no
로 바꿔줍니다.
# vi /etc/xinetd.d/rsh
xinetd가 설정화일을 다시 읽게 합니다.
# killall -USR1 xinetd
2. in.rshd 설정
/etc/securetty 에 rsh를 추가합니다 (/etc/pam.d/rsh 를 참조)
# vi /etc/securetty
vc/1
...
vc/11
tty1
...
tty11
rsh <-- 추가합니다.
:wq
3. .rhosts 설정
홈디렉토리에 .rhosts 화일을 만듭니다. rsh를 실행할 호스트의 이름이나
IP주소를 적어줍니다.
# cd
# cat .rhosts
localhost
otherhost
.rhosts 의 퍼미션을 group과 other의 write권한을 제거합니다.
# chmod go-w .rhosts
------------------------------------------------------------------------------------------------------
rsh을 사용하기 위한 설정은 저렇게 힘들게 하는 게 아니라 엄청 심플하게 합니다.
1. ntsysv 를 사용해서 rsh와 rlogin을 열어줍니다. 물론 /etc/xinetd.d/rsh 와 /etc/xinetd.d/rlogin 의 disable=no 로 해줘도 됩니다. 둘다 똑같은 겁니다.
2. /etc/hosts.equiv 안에 rsh 접속을 할 호스트네임을 적어줍니다. 여기에 적어줄 hostname은 /etc/hosts 안에 있는 것과 일치해야합니다.
그리고
#/etc/rc.d/init.d/xinetd restart
한판 해줍니다.
1번과 2번만 해주면 일반유저는 rsh과 rlogin을 사용하는데 아무 문제가 없읍니다. 1과 2를 통해서 .rhosts를 만들지 않고도 일반유저는 rsh과 rlogin을 사용하는데 전혀 지장이 없읍니다. rlogin을 열어주는 이유는
$ rsh aaa
라고 호스트네임만 적어주면 이건 rsh로 보이지만 rlogin으로 동작하므로 rlogin을 열어주지 않으면 저건 실행이 안됩니다.
root도 rsh을 암호를 물어보지 않고 할려면, 두가지 과정을 더 거쳐야합니다.
3. /root/.rhosts 파일을 생성하고 여기에 /etc/hosts.equiv와 똑같은 내용을 써줍니다. 물론 다르게 써줘도 상관은 없읍니다.
요렇게 해도 암호를 물어봅니다.
4. /etc/pam.d/rsh 와 /etc/pam.d/rlogin을 열어서 pam_securetty.so 에 해당되는 줄을 주석처리해줍니다.
이러한 과정을 실행하면, 호스트들간에 rsh과 rlogin이 문제없이 작동합니다.
보안때문에 rsh을 안쓴다고 하지만, 클러스터와 같이 외부아이피와 완전히 분리되어 있는 내부 호스트들 사이에는 rsh을 사용해도 별 문제가 없고, 일이 훨씬 쉬워지지요.
인터넷에 올라있는 문서들이 나름대로 고민해서 만든건데, 제가 보기에는 훨씬 간편한 방법이 많은데도, 너무 설정을 어렵게 하도록 만드는 경향이 있더군요.