강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
원격수행 rlogin 활용1편
조회 : 11,498  


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

 

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

 

 

원격로그인을 위한 rlogin에 대한 실무적인 내용을 배워보도록 하겠습니다.

 

r-commands

rlogin, rsh, rcp

 

한마디로 rlogin은 패스워드를 입력하지 않고 원격서버로 신뢰받는 원격로그인을 하기 위한 리눅스 명령어, 일종의 도구입니다.  참고로 rlogin명령어와 함께 rsh, 그리고 rcp명령어등과 같은 원격에서 수행되는 명령어들을 우리는 원격명령어, r-commands라고 합니다.  

 

, 이들 명령어들이 모두 원격에서 신뢰된 로그인 또는 접근을 할 수 있기 위해서는 접근할 원격서버의 /etc/hosts.equiv 또는 홈디렉토리내에 있는 .rhosts파일의 접근허용설정이 있어야 가능한 정상적인 수행이 되는 명령어들입니다. 

 

따라서 rlogin과 함께 rsh, rcp등의 명령어 사용시에는 /etc/hosts.equiv, 그리고 홈디렉토리내에 있는 .rhosts파일의 설정을 확인해야 합니다.  그리고 이 강좌의 뒷부분에서  배우겠지만 이들 명령어를 정확하게 사용하기 위해서는 /etc/xinetd.d/rlogin, /etc/xinetd.d/rsh등의 xinetd관련 설정파일이 정확하게 설정되어 있어야합니다. 이에 대해서는 이 강좌의 뒷부분에서 자세히 설명합니다.

 

또한 이들 명령어들은 모두 원격에서 패스워드 인증과정없이 바로 실행이 될 수 있기 때문에 서버자체의 보안문제도 심각하게 고려해야합니다. 이를 위해 본 강좌 뒷부분에 r-commands사용에 대한 보안적인 문제로 함께 다루었으므로 꼭 확인하시기 바랍니다.

 

또한 이들 r-commands(rlogin, rsh, rcp)들은 반드시 함께 공부하셔야만 정확한 이해와 효율적인 활용을 할 수 있기 때문에 본 강좌와 함께 rsh강좌, 그리고 rcp강좌를 함께 공부하시길 권해 드립니다.

 

, 그럼 rlogin에 대한 실무사용법을 공부해 보기로 하기 위하여 먼저 rlogin의 명령어위치와 사용형식을 보시겠습니다.

 

 

명령어위치 : /usr/bin/rlogin

사용형식  :  rlogin [-8EL][-e char][-l 사용자명] 호스트

 

화면의 예는 rlogin의 위치와 사용형식을 나타낸 것입니다. 이제 본강좌에서 rlogin의 실제 사용법을 공부해 보도록 하겠습니다.  

 

앞에서 말씀드린바와 같이 rlogin rsh, 그리고 rcp등과 같은 r-commands들이 원격지에서 정상적인 원격실행이 되기 위해서는 이들 명령어를 받아들이는 대상서버에 r-commands의 명령어 허용설정이 되어 있어야합니다.

 

, r-commands를 받아들인다는 것은 서버보안측면에서는 다소 보안적인 측면을 고려해야하기 때문에 이들 명령어를 받아들이기 위한 설정이 되어 있어야한다는 의미입니다.

 

, 원격지의 서버로 rlogin명령어로 신뢰받는 로그인을 하거나 rsh명령어로 신뢰된 명령을 실행시키거나 또는 rcp명령어로 신뢰된 복사를 허용하기 위해서는 대상이 되는 원격서버의 /etc/hosts.equiv파일에 정확한 설정이 있어야만 정상적인 실행이 된다는 의미입니다.

 

, /etc/hosts.equiv파일은 rlogin, rsh, rcp등의 r-commands명령어들로 하여금 원격지의 서버로 부터 신뢰된(trusted) 접근을 허용하기 위한 설정파일입니다. , 원격지에서 rlogin, rsh, rcp등의 명령어 사용시에 패스워드 입력없이 특정호스트나 사용자에게 접근을 허용하거나 제한하는 설정을 하는 파일입니다.

 

/etc/hosts.equiv파일의 설정형식은 다음과 같습니다.

 

        [ + | - ] [호스트명] [사용자명]

 

+ 기호는 지정한 호스트나 사용자에게 접근을 허용한다는 의미이며, - 기호는 지정한 호스트나 사용자에게 접근을 허용하지 않는다는 의미입니다.

 

그리고 호스트명에는 도메인명 또는 IP주소를 지정할 수 있습니다.  IP주소대신 도메인명으로 지정할 경우에는 FQDN형식으로 지정하는 것이 좋습니다.

 

FQDN이란 “Fully Qualified Domain Name”의 약어로서 www.superuser.org 또는 bbs.superuser.org, 그리고 ftp.superuser.org등과 같은 호스트명과 도메인명을 함께 지정한 도메인이름을 의미합니다. 

 

그리고 사용자명을 지정하면 패스워드없이 로그인을 허용한다는 의미가 됩니다. , 원칙적으로 r-commands명령어들에 대해서는 보안상의 이유로 root는 허용되지 않습니다.

 

앞에서 설명드린바와 같이 r-commands명령어들은 서버보안측면에서 본다면 패스워드없이 원격에서 특정수행을 가능하게 하므로 괜장히 위험하다고 하였습니다. 따라서 이런 보안문제를 다루어 보도록 하겠습니다.  이번 강좌에서 다루는 r-commands의 보안 문제는 모두 3가지 측면에서 설명하고 있습니다. 첫번째는 /etc/hosts.equiv파일에 대한 보안문제이며, 두번째는 .rhosts파일에 대한 보안 문제, 그리고 세번째는 r-commands들이 원칙적으로 xinetd환경하에서 서비스되므로 r-commands와 관련된 xinetd측면의 보안문제를 다루고 있습니다.

 

, 그럼 첫번째로서 /etc/hosts.equiv파일을 사용하여 접근을 허용할 호스트와 사용자명을 지정하여 원격수행을 할 경우에 서버 보안문제에 있어서 매우 심각한 문제를 야기할 수 있습니다.  , 신뢰받는 호스트로 가장하여 접근을 허용할 수 있기도 하지만 신뢰된 호스트로 로그인 한 후에 접근할 수도 있는 보안상의 허점이 노출될 수 있기 때문입니다.

 

먼저, /etc/hosts.equiv파일의 보안문제를 어떻게 대비해야하는가에 대해서 설명드리겠습니다.  , 꼭 필요한 경우가 아니라면 /etc/hosts.equiv파일은 학습이나 테스트의 목적외에는 위의 파일 자체를 생성해 두는 것은 삼가하는 것이 좋습니다.  

 

실제 서버관리자들은 자기가 관리하고 있는 서버보안점검을 할 때에 필수적으로 점검하는 항목이 /etc/hosts.equiv파일의 생성여부입니다. 거듭 강조하지만 가능한 /etc/hosts.equiv파일은 생성자체를 하지 않는 것이 좋습니다.

 

 

그리고 가능하다면 /etc/hosts.equiv파일을 널파일(/dev/null)로 심볼릭링크파일로 만들어 두는 것이 보다 안전하다고 할 수 있습니다.

 

첫번째 명령문은 ln명령어를 이용하여 /etc/hosts.equiv파일을 널파일(/dev/null)로 심볼릭링크로 생성한 작업입니다. 그리고 두번째는 생성된 링크파일을 ls명령어로 확인한 것입니다. 물론 이 작업은 /etc디렉토리내에서 하셔야합니다.

 

이와같이 /etc/hosts.equiv파일을 널파일로 링크해 둔다면 /etc/hosts.equiv파일에 내용이 저장될 수 없으므로 이 파일의 오용으로 인한 해킹위험이 사라지게 됩니다.

 

 

이번에는 r-commands의 보안대책 2번째인 .rhosts파일에 대한 보안대책입니다.

 

앞의 설명에서는 r-commands명령어들을 허용하기 위한 /etc/hosts.equiv파일의 설정법과 이에 대한 보안대책을 살펴보았습니다. r-commands가 원격에서 정상적인 수행을 하기 위해서는 /etc/hosts.equiv파일에 허용설정이 되어 있어야 하지만 또한 특정 계정으로 원격로그인을 하거나 원격수행을 하기 위해서는 해당 계정의 홈디렉토리내에 .rhosts파일이 설정되어 있어야합니다.

 

따라서 이번에는 각 사용자들의 홈디렉토리에 생성해야하는 .rhosts파일에 대한 보안대책에 대해서 알아보도록 하겠습니다.

 

앞서 설명드린 /etc/hosts.equiv파일과 마찬가지로 .rhosts파일 또한 원격서버에서  rlogin명령어로 신뢰받는 로그인을 하거나 rsh명령어로 신뢰된 명령을 실행시키거나 또는 rcp명령어로 신뢰된 파일복사등을 허용하기 위해서는 대상이 되는 원격서버의 특정 사용자 홈디렉토리 내에 .rhosts파일에 원격수행 설정이 되어 있어야만 가능합니다.

 

, 위의 /etc/hosts.equiv파일과 마찬가지로 각 계정 홈디렉토리내에서는 .rhosts파일 또한 rlogin, rsh, rcp등의 명령어로 하여금 원격지의 서버로부터 신뢰된(trusted) 접근을 허용하기 위한 설정을 하는 파일입니다. , rlogin, rsh, rcp등의 명령어 사용시에 패스워드 입력없이 특정호스트나 사용자에게 접근을 허용하거나 제한하는 설정을 하는 파일입니다.

 

여기에서도 무엇보다 중요한 것은 .rhosts파일 또한 보안적인 문제가 발생할 수 있으므로 이에 대한 보안설정을 해 두어야 한다는 것입니다.

 

 

이 파일의 오용을 방지하고 해킹을 미연에 방지하기 위하여 .rhosts파일을 널파일(/dev/null)로 링크를 해두시기 바랍니다.

 

위의 예는 sspark이라는 계정사용자의 홈디렉토리 내에 .rhosts파일을 /dev/null파일로 링크한 것입니다.  그리고 ls명령어로 생성된 .rhosts링크파일을 확인한 것입니다.

 

이번에는 r-commands의 보안측면의 세번째인 xinetd관련된 보안문제를 설명하겠습니다.

 

rlogin명령어는 xinetd환경에서 실행됩니다. 따라서 rlogin명령어가 원격서버에서 신뢰된 원격로그인을 정상적으로 수행하려면 /etc/xinetd.d/rlogin파일이 정확하게 설정되어 있어야만 합니다. , xinetd데몬은 rlogin에 대한 설정을 /etc/xinetd.d/rlogin파일에서 참조하기 때문에 이 파일에 대한 설정을 확인해야 한다는 것입니다.

 

 

예에서 보고 계신 파일은 리눅스 시스템에 존재하는 /etc/xinetd.d/rlogin파일의 예를 보인 것입니다.  특히 이 파일에서 disable항목이 yes로 설정되어 있는 것이 기본설정이며 이는 rlogin서비스를 허용하겠다라는 의미입니다.  만약 여러분께서 rlogin서비스를 허용하지 않겠다라는 설정을 하고자 한다면 disable값을 no에서 yes로 수정하시기 바랍니다.

 

 

만약 rlogin서비스를 꼭 필요해서 허용하시려면 위의 두가지를 확인하시고 또한 다음 항목을 확인하셔야 합니다. , /etc/xinetd.d/rlogin파일의 마지막부분의 server항목으로 설정되어 있는 /usr/sbin/in.rlogind에 대한 파일은 rlogin을 받아서 처리하게될 데몬파일로서 /usr/sbin/in.rlogind에 이 파일이 실제로 존재하는가를 확인하셔야 합니다.

 

 

그리고 rlogin서비스가 정상적인 수행이 되도록 하기 위해서는 rlogin자체가 xinetd환경에서 실행이 되므로 xinetd데몬이 실행되어 있어야합니다. , ps명령어로 xinetd프로세스가 실행중인가를 확인하시기 바랍니다. 

 

만약 xinetd프로세스가 실행되어 있지 않다면 아래와 같이 xinetd를 실행(재실행)시켜주시기 바랍니다.  /etc/rc.d/init.d/xinetd xinetd데몬을 실행,중지,재시작시키는 스크립트파일입니다.

 

 

위의 예는 리눅스 시스템에서 xinetd를 재시작한 것입니다. restart대신에 start라고 하면 실행을 의미하고, stop이라고 하면 실행된 xinetd를 중지하게 됩니다.

 

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

 

 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1435


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수