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

원격수행 rlogin 활용2편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

 

문서제목 : 원격수행 rlogin 활용2

 

작성 : 리눅스포털(www.superuser.co.kr)수퍼유저코리아 박성수

 

 

, 그럼 이번에는 rlogin을 정상적으로 수행하기 위해서는 어떤 설정이 되어 있어야하는가에 대해서 설명해 보도록 하겠습니다. 지금까지 설명드린 내용을 종합하여 간단히 정리해 보면 다음과 같습니다.

 

첫번째. /etc/hosts.equiv파일의 허용설정

두번째. 해당 계정 홈디렉토리내의 .rhosts파일 허용설정

세번째. /etc/xinetd.d/rlogin파일내의 disable값을 no로 설정하기

네번째. /etc/hosts.allow파일과 /etc/hosts.deny파일의 허용설정

 

이와 같이 4가지의 조건이 모두 충족이 되어야만 rlogin이 정상적으로 수행됩니다.  거듭 말씀드리지만 위의 4가지 조건은 rlogin뿐아니라 r-commands명령어가 정상적으로 수행되기 위한 공통적인 조건이라고 이해하시면 됩니다.

 

, 그럼 첫번째와 두번째, 그리고 세번째는 이미 앞에서 설명을 드렸으므로 마지막 네번째에 대하여 설명을 드리도록 하겠습니다.

 

image001.gif

image002.gif

 

먼저 /etc/hosts.allow파일의 예와 /etc/hosts.deny파일의 예입니다.

 

/etc/hosts.deny파일의 "ALL : ALL"의 설정으로 모든 서비스에 대한 접근을 거부한 후에 /etc/hosts.allow파일내에서 접근허용할 서비스와 IP주소 또는 네트워크주소등을 설정한 것입니다.

 

, r-commands를 이용하여 원격에서 로그인을 시도할 서버의 IP주소가 192.168.0.100이므로 위의 예에서 ALL : 192.168.0.100”으로 설정을 해 둔 것입니다.

 

지금까지 설명드린 내용은 r-commands서비스를 위하여 구체적으로는 rlogin명령어로 신뢰받는 로그인을 위한 /etc/xinetd.d/내의 관련파일의 설정과 rlogin관련데몬, 그리고 /etc/hosts.allow파일과 /etc/hosts.deny파일에 대한 정확한 허용설정에 대해서 설명드렸습니다.

 

이제 r-commands명령어 가운데 하나인 rlogin으로 실제 원격접속을 시도해 보도록 하겠습니다.

 

이제 rlogin을 이용한 원격접속을 시도해 보도록 하겠습니다. , rlogin을 이용한 패스워드 인증절차 없이 바로 원격서버로의 로그인에 대한 실제예를 보도록 하겠습니다.

여러번 강조해 드린바와 같이 rlogin이 정상적으로 수행되기 위해서는 지금까지 설명드렸던 접근허용설정이 되어 있어야만 합니다.

 

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서버에서 rlogin명령어 실행함

 

A서버의 bible계정

A서버의 dorious계정

B서버의 sspark계정

 

 

실제 접속을 위하여 표에서 보시는 바와 같이 A서버의 특정 계정에서 B서버의 특정 계정으로 패스워드 인증절차없이 바로 로그인하는 예를 보겠습니다.

 

접속을 허용하기 위하여 B서버에는 다음과 같은 설정이 되어 있어야 합니다. 

 

image003.gif

 

, B서버내의 sspark의 홈디렉토리인 /home/sspark디렉토리에 .rhosts파일이 이와같이 설정되어 있어야한다는 의미입니다.

 

, 원격서버에서 B서버의 sspark계정의 홈디렉토리(/home/sspark)로 접속하기 위해서는 .rhosts파일내에 원격서버의 IP주소인 192.168.0.100과 계정명이 설정이 되어 있어야하며 이설정의 의미는 192.168.0.100서버의 bible계정에서 이 서버의 sspark홈디렉토리로의 rlogin 원격접속을 허용한다는 의미가 됩니다.

 

다시한번 말씀드리자면 .rhosts파일에 설정된 “192.168.0.100 bible”이라는 설정은  192.168.0.100(A서버) bible이라는 계정에서 B서버의 sspark계정으로 패스워드 인증절차 없는 원격로그인을 허용하겠다라는 설정입니다.

 

여기서 한가지 주의하실 것은 .rhosts파일의 퍼미션을 반드시 600으로 설정하셔야한다는 의미입니다.

 

image004.gif

 

.rhosts파일의 퍼미션이 600으로 설정하는 이유는 다른 사용자들이 이 파일의 내용을  함부로 볼 수 없도록 설정하기 위한 일종의 보안설정입니다.

 

image005.gif

 

그리고 앞서도 설명드렸지만 B서버의 /etc/hosts.allow파일에서 아래와 같이 192.168.0.100 서버에 대한 허용을 해두셔야 합니다.

 

image006.gif

 

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

 

이제 rlogin을 수행하기 위한 모든 준비가 끝났습니다. 다소 복잡하다고 생각되실지 모르지만 rlogin과 같이 원격수행을 하는 r-commands명령어들은 패스워드인증과정을 거치지 않기 때문에 매우 위험한 서비스입니다. 이에 대한 최소한의 보안대책이라고 이해하시기 바랍니다.

 

참고로 어떤 서버관리자분들 중에는 rlogin을 사용하기 위해서는 portmap데몬과 rstatd데몬이 실행되어 있어야 rlogin접속이 허용된다라고 말씀하시는 분들이 의외로 많이 계시다는 것을 알았습니다. 하지만 이는 잘못알고 계신 것으로 rlogin접속에 있어서 B서버에 /etc/hosts.equiv파일은 없어도 접속이 정상적으로 이루어지며, 또한 portmap 데몬과 rstatd데몬은 실행되어 있지 않아도 된다는 점을 알아두시기 바랍니다.

 

, 그럼 이제 모든 준비가 끝났으므로 A서버에서 B서버로 패스워드 인증절차 없이 rlogin을 이용하여 바로 원격로그인하는 예를 보겠습니다.  rlogin명령어로 원격서버로 접속하는 명령의 형식은 다음과 같습니다.

 

        rlogin  -l  B서버의계정명  B서버의IP주소

        또는

        rlogin  -l  B서버의계정명  B서버의IP도메인

 

image007.gif

 

192.168.1.100(A서버) bible이라는 계정에서 192.168.0.110서버(B서버) sspark계정으로 rlogin접속에 성공한 예입니다.

 

이번 예에서 주의깊게 보실 것은 A서버의 bible이라는 계정이 B서버의 sspark이라는 계정으로 rlogin접속을 패스워드 인증절차없이 바로 원격로그인을 하고 있다는 것입니다. 그리고 접속에 성공한 이후에 id라는 명령어로 B서버의 sspark이라는 것을 확인하였습니다.

 

 , 그럼 이번에는 A서버의 dorious라는 계정에서 B서버의 sspark계정으로 원격 접속하는 예를 보도록 하겠습니다.

 

]

image008.gif

 

이를 위하여 B서버의 sspark계정의 홈디렉토리내에 있었던 .rhosts파일에 A서버의 dorious에 대한 설정을 추가로 해주어야합니다.  A서버의 dorious의 접속허용을 위한 B서버의 sspark의 .rhosts파일에 추가설정한 내용을 보인 것입니다.

 

위에서 확인한 .rhosts파일의 내용중 첫번째 “192.168.0.100  bible”설정은 앞의 예에서 이미 설정한 내용이며, 두번째 “192.168.0.100  dorious”라는 행은 이번에 추가한 내용입니다. , 이 설정으로 인하여 A서버(192.168.0.100) dorious라는 계정은 B서버의 sspark계정으로 아무런 인증절차없이 rlogin을 이용하여 바로 로그인할 수 있습니다.

 

image009.gif

 

A서버의 dorious계정에서 B서버(192.168.0.110)sspark계정으로 rlogin을 이용하여 패스워드 인증절차없이 바로 로그인을 하였습니다.

 

이와같이 패스워드 인증절차 없이 원격로그인을 수행하기 위해서 rlogin을 이용하였으며 rlogin과 같은 r-commands명령어들이 정상적인 수행을 위해서는 몇가지 설정이 필요하다는 점도 배워보았습니다.  r-commands명령어들의 보안적인 부분을 보완하기 위하여 반드시 이 설정들이 정상적으로 설정되어 있어야만 가능하다는 점을 꼭 기억하시기 바랍니다.

 

그리고 마지막으로 당부드리고 싶은 것은 r-commands명령어는 가능한 로컬네트웍내에서만 사용하시기 바랍니다. r-commands들의 특징이 신뢰받는 원격접속이기 때문에 사설네트웍이나 내부 로컬네트웍에서만 사용하시기를 권해 드립니다.

 

제공 : 리눅스포털(www.superuser.co.kr)수퍼유저코리아

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  72 명