강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

rsh를 이용하여 원격서버의 특정계정으로 명령어 실행하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

rsh  이용하여 원격서버의 특정계정으로 명령어 실행하기





 

이번 절에서 설명하는 내용은 앞에서 설명한 rsh명령어의 실행환경설정이 모두 되어 있다는 것을 전제로 한 설명이므로 앞 절의 설명과 반드시 함께 보시기 바랍니다. 

 

 

 

 

 

, 이번 절에서는 현재서버와 떨어져 있는 원격서버내의 특정 계정명으로 하나의 명령어를 실행하는 rsh명령어에 대해서 설명하고 있습니다. 

 

 

 

  그리고 아래의 표는  A서버의 특정 계정에서 B서버의 특정 계정명으로 하나의 명령어를 A서버에서 실행하는 실제 예를 위한 상황설정표 입니다. 

 

 

 

 

 

 

A서버의특정계정에서--------B서버의sspark계정명으로 특정명령어 실행

 

A서버

B서버

로컬서버 (Local  Server)

원격서버 (Remote  Server)

192.168.0.100

192.168.0.110

file.superuser.co.kr

bible.superuser.co.kr

A서버에서 rsh명령어 실행함

 

A서버의 bible계정

B서버의 sspark계정

 

, 위와 같은 실행이 가능 하려면 B서버에는 다음과 같은 설정이 되어 있어야 합니다. 

 

 

 

  아래는 B서버내의 sspark계정관련 설정내용입니다. 

 

 

 

 

 

그리고 아래는 B서버의 sspark계정의 홈디렉토리(/home/sspark)내에 .rhosts파일의 설정내용을 확인한 것입니다. 

 

 

 

 

 

cd748e8935a013f3cf536af9b9b6806b_1683595967_3363.png
 

 

위의 .rhosts파일의 설정내용을 보시면 “192.168.0.100 bible”이라고 되어 있습니다. 

 

 

 

 이것은 192.168.0.100(A서버)에서 B서버로의 원격쉘(remote shell) ssh를 허용하기 위한 설정입니다. 

 

 

 

 여기서 주의할 사항은 .rhosts파일의 퍼미션은 꼭 600으로 설정하시기 바랍니다. 

 

 

 

  다른 사용자들이 이 파일의 내용을 볼 수 없도록 설정한 것으로 기본 보안설정사항입니다. 

 

 

 

 

 

cd748e8935a013f3cf536af9b9b6806b_1683595984_159.png
 

 

앞의 예에서 설명드린바와 같이 B서버의 /etc/hosts.allow파일에는 A서버에 대한 접근허용설정이 되어 있어야 합니다

 


cd748e8935a013f3cf536af9b9b6806b_1683595998_2327.png
 

 

그리고 아래와 같이 B서버내의 /etc/xinetd.d/rsh파일의 설정은 다음과 같습니다. 

 

 

 

 

 

cd748e8935a013f3cf536af9b9b6806b_1683596014_782.png
 



 

B서버에 위와 같이 설정되어 있다면 모든 준비가 끝난 것입니다. 

 

 

 

 

 

참고로 rsh, 즉 원격쉘(remote shell)을 실행하기 위해서는 portmap데몬과 rstatd데몬이 실행되어 있어야 rlogin접속이 허용된다 라고 말씀하시는 분들이 많이 계셨던 까닭에 이 부분에 대한 언급을 하려고 합니다. 

 

 

 

  또한 A서버에서 rsh를 사용할 때에 B서버에는 /etc/hosts.equiv파일은 없어도 접속이 정상적으로 이루어 지며, 또한 portmap 데몬과 rstatd데몬은 실행되어 있지 않아도 된다는 점을 분명히 기억하시기 바랍니다. 

 

 

 

 

 

 

, 그럼 이제 모든 준비가 끝났으므로 A서버에서 B서버로 특정명령어를 실행해 보도록 하겠습니다. 

 

 

 

  rsh명령어의 기본적인 실행형식은 다음과 같습니다. 

 

 

 

 

 

       rsh  -l  B서버의계정명  B서버의IP주소  실행할 명령어

       또는

       rsh  -l  B서버의계정명  B서버의IP도메인  실행할 명령어

 

아래는 192.168.1.100(A서버) bible이라는 계정에서 192.168.0.110서버(B서버) sspark계정명으로 “ls -al”명령어를 A서버에서 실행한 것입니다. 

 

 

 

 

 

cd748e8935a013f3cf536af9b9b6806b_1683596032_0652.png
 




 

위의 실행명령어는 A서버의 bible이라는 계정 내에서 실행한 것입니다. 

 

 

 

  , A서버의 bible이라는 계정에서 B서버의 sspark계정내의 파일들을 확인해 보기 위한 실행입니다. 

 

 

 

  그 결과 B서버의 sspark의 홈디렉토리내에 존재하는 파일들의 리스트를 확인하고 있는 것입니다. 

 

 

 

 

 

그리고 다음은 A서버의 bible계정에서 B서버내에 있는 /etc/passwd파일의 내용을 확인하는 예입니다. 

 

 

 

 

 

cd748e8935a013f3cf536af9b9b6806b_1683596045_6978.png
 



 

위의 결과에서 보신 바와 같이 rsh만 허용되도록 설정되어 있다면 B서버의 sspark에 허용된 모든 명령어의 실행이 A서버에서 가능합니다. 

 

 

 

  따라서 rsh의 사용은 허용되지 않도록 해두시는 것이 서버보안을 위해 좋을 것입니다. 

 

 

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,070 명
  • 현재 강좌수 :  35,986 개
  • 현재 접속자 :  498 명