탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 네트워크 서비스 Oracle Solaris 11 Information Library (한국어) |
rlogin 명령을 사용하면 원격 시스템에 로그인할 수 있습니다. 로그인되면 원격 파일 시스템을 탐색하여 해당 내용을 조작하거나(권한에 따라 달라짐), 파일을 복사하거나, 원격 명령을 실행할 수 있습니다.
로그인 대상 시스템이 원격 도메인에 있는 경우 시스템 이름에 도메인 이름을 추가하십시오. 이 예에서는 SOLAR가 원격 도메인의 이름입니다.
rlogin pluto.SOLAR
또한 Ctrl-d를 누르면 언제든지 원격 로그인 작업을 인터럽트할 수 있습니다.
rlogin 작업을 위한 인증(신원 입증)은 원격 시스템 또는 네트워크 환경에서 수행할 수 있습니다.
이러한 인증 형식의 주요 차이점은 사용자가 관리자에게 요구하는 상호 작용의 유형과 인증 형식이 설정되는 방법입니다. 원격 시스템이 사용자를 인증하려고 하는 경우 사용자가 /etc/hosts.equiv 또는 .rhosts 파일을 설정하지 않았으면 암호를 입력하라는 메시지가 표시됩니다. 네트워크가 사용자를 인증하려고 하는 경우에는 네트워크에 사용자의 신원이 이미 알려져 있으므로 암호를 입력하라는 메시지가 표시되지 않습니다.
원격 시스템은 사용자를 인증하려고 할 때 해당 로컬 파일에 있는 정보에 의존합니다. 이는 특히 다음 중 하나가 참인 경우 그렇습니다.
시스템 이름 및 사용자 이름이 원격 시스템의 /etc/hosts.equiv 파일에 나타납니다.
시스템 이름 및 사용자 이름이 원격 사용자의 .rhosts 파일에서 원격 사용자의 홈 디렉토리 아래에 나타납니다.
네트워크 인증은 다음 두 방법 중 하나에 의존합니다.
/etc/hosts.equiv 파일에는 원격 시스템에 대해 신뢰할 수 있는 호스트 목록이 행당 하나씩 포함되어 있습니다. 사용자가 이 파일에 나열된 호스트 중 하나에서 rlogin을 사용하여 원격으로 로그인하려고 하는 경우 원격 시스템이 사용자의 암호 항목에 액세스할 수 있으면 원격 시스템에서 사용자가 암호 없이 로그인할 수 있습니다.
일반적인 hosts.equiv 파일의 구조는 다음과 같습니다.
host1 host2 user_a +@group1 -@group2
hosts.equiv에서 host1에 대한 이전 항목과 같이 호스트에 대한 단순한 항목이 만들어지면 해당 호스트와 해당 시스템의 모든 사용자를 신뢰할 수 있다는 의미입니다.
예의 두번째 항목에서와 같이 사용자 이름도 언급되면 지정된 사용자가 액세스를 시도할 경우에만 해당 호스트를 신뢰할 수 있습니다.
플러스 기호(+)가 앞에 오는 그룹 이름은 해당 넷 그룹에 있는 모든 시스템을 신뢰할 수 있는 것으로 간주함을 의미합니다.
마이너스 기호(–)가 앞에 오는 그룹 이름은 해당 넷 그룹에 있는 시스템 중 신뢰할 수 있는 것으로 간주되는 시스템이 없음을 의미합니다.
/etc/hosts.equiv 파일은 보안 위험을 초래합니다. /etc/hosts.equiv 파일을 시스템에서 유지 관리하는 경우 네트워크에서 신뢰할 수 있는 호스트만 포함해야 합니다. 이 파일에는 다른 네트워크에 속하는 호스트나 공공 장소에 있는 시스템을 포함해서는 안 됩니다. 예를 들어, 단자실에 있는 호스트는 포함하지 마십시오.
신뢰할 수 없는 호스트를 사용하면 심각한 보안 문제가 발생할 수 있습니다. /etc/hosts.equiv 파일을 올바르게 구성된 파일로 교체하거나 파일을 완전히 제거하십시오.
/etc/hosts.equiv 파일에 단일 + 행이 있으면 알려진 모든 호스트를 신뢰할 수 있다는 의미입니다.
.rhosts 파일은 사용자에게 해당하는 /etc/hosts.equiv 파일입니다. 이 파일에는 일반적인 호스트 대신 호스트-사용자 조합 목록이 포함되어 있습니다. 호스트-사용자 조합이 이 파일에 나열되고, 지정된 사용자에게 암호 없이 지정 호스트에서 원격으로 로그인할 수 있는 권한이 부여됩니다.
.rhosts 파일은 사용자의 홈 디렉토리에서 최상위 레벨에 상주해야 합니다. 하위 디렉토리에 있는 .rhost 파일은 참조되지 않습니다.
사용자는 자신의 홈 디렉토리에서 .rhosts 파일을 만들 수 있습니다. .rhosts 파일을 사용해도 /etc/hosts.equiv 파일 없이 다른 시스템에 있는 사용자 자신의 여러 계정 간에 신뢰할 수 있는 액세스를 허용할 수 있습니다.
.rhosts 파일은 큰 보안 문제를 초래합니다. /etc/hosts.equiv 파일이 시스템 관리자의 제어 하에 있어 효과적으로 관리될 수 있는 동안에는 모든 사용자가 시스템 관리자에게 알리지 않고 원하는 모든 사용자에게 액세스 권한을 부여하는 .rhosts 파일을 만들 수 있습니다.
모든 사용자의 홈 디렉토리가 단일 서버에 있으며 특정 사용자만 해당 서버에 대한 수퍼 유저 액세스 권한을 가지는 경우 빈 파일을 해당 홈 디렉토리에서 수퍼 유저로 만들면 사용자가 .rhosts 파일을 사용하는 것을 막을 수 있습니다. 그런 다음 이 파일의 사용 권한을 000으로 변경하면 수퍼 유저라도 이를 쉽게 변경할 수 없게 됩니다. 이렇게 변경하면 사용자가 .rhosts 파일을 무책임하게 사용하여 시스템 보안에 위험을 초래하는 것을 실질적으로 막을 수 있습니다. 그러나 사용자가 유효 경로를 자신의 홈 디렉토리로 변경할 수 있으면 이렇게 변경한다고 해서 문제가 해결되지 않습니다.
.rhosts 파일을 안전하게 관리하는 유일한 방법은 해당 파일을 아예 허용하지 않는 것입니다. 자세한 내용은 .rhosts 파일을 검색하여 제거하는 방법을 참조하십시오. 시스템 관리자는 시스템을 자주 검사하여 이 정책이 위반되었는지 확인할 수 있습니다. 이 정책의 한 가지 예외가 될 수 있는 것은 루트 계정입니다. 네트워크 백업 및 기타 원격 서비스를 수행하려면 .rhosts 파일이 있어야 할 수 있습니다.
시스템이 적절히 구성된 경우 원격 로그인을 링크할 수 있습니다. 예를 들어, earth에 있는 사용자가 jupiter에 로그인하고, 여기에서 pluto에 로그인하기로 결정합니다.
사용자는 jupiter에서 로그아웃한 다음 pluto에 직접 로그인할 수도 있지만 링크를 만들면 더 편리합니다.
암호를 제공할 필요 없이 원격 로그인을 링크하려면 /etc/hosts.equiv 또는 .rhosts 파일을 올바르게 설정해야 합니다.
rlogin 명령을 사용하면 원격 시스템에 직접 또는 간접적으로 로그인할 수 있습니다.
직접 원격 로그인은 기본 사용자 이름, 즉 현재 로컬 시스템에 로그인되어 있는 개인의 사용자 이름으로 시도됩니다. 이것이 가장 흔한 원격 로그인 방식입니다.
간접 원격 로그인은 원격 로그인 작업 중 제공되는 다른 사용자 이름으로 시도됩니다. 이것은 잠시 빌린 워크스테이션에서 시도할 수 있는 원격 로그인 방식입니다. 예를 들어, 동료의 사무실에 있는데 홈 디렉토리에 있는 파일을 검사해야 하는 경우 동료의 시스템에서 자신의 시스템에 원격으로 로그인해야 할 수 있습니다. 이때에는 자신의 사용자 이름을 제공하여 간접 원격 로그인을 수행할 것입니다.
다음 표에는 직접 및 간접 로그인과 인증 방법 간의 종속성이 요약되어 있습니다.
표 29-2 로그인 방법과 인증 방법 간의 종속성(rlogin)
|
원격 시스템에 로그인하면 rlogin 명령이 사용자의 홈 디렉토리를 찾으려고 합니다. rlogin 명령이 사용자의 홈 디렉토리를 찾지 못하면 사용자가 원격 시스템의 루트(/) 디렉토리에 지정됩니다. 예를 들면 다음과 같습니다.
Unable to find home directory, logging in with /
그러나 rlogin 명령이 사용자의 홈 디렉토리를 찾으면 .cshrc 파일과 .login 파일이 모두 소스가 됩니다. 따라서 원격 로그인 후에는 사용자 프롬프트가 표준 로그인 프롬프트가 되고 현재 디렉토리는 로컬로 로그인할 때와 동일하게 유지됩니다.
예를 들어, 평상시의 프롬프트에 시스템 이름 및 작업 디렉토리가 표시되는 경우 로그인하면 작업 디렉토리가 홈 디렉토리이고 로그인 프롬프트는 다음과 같습니다.
earth(/home/smith):
그런 다음 원격 시스템에 로그인하면 유사한 프롬프트가 표시되고 rlogin 명령을 입력한 디렉토리에 관계없이 작업 디렉토리가 홈 디렉토리입니다.
earth(/home/smith): rlogin pluto . . . pluto(/home/smith):
유일한 차이점은 프롬프트 시작 시 원격 시스템의 이름이 로컬 시스템 대신 사용된다는 것입니다. 원격 파일 시스템은 사용자의 홈 디렉토리와 병렬로 나타납니다.
실질적으로, 디렉토리를 /home으로 변경한 다음 ls를 실행하면 다음이 표시됩니다.
earth(home/smith): cd .. earth(/home): ls smith jones
자세한 내용은 Oracle Solaris 관리: 보안 서비스의 관리 권한을 얻는 방법을 참조하십시오.
# find home-directories -name .rhosts -print -exec rm {} \;
사용자의 홈 디렉토리가 있는 디렉토리에 대한 경로를 식별합니다. 여러 경로를 입력하여 한 번에 둘 이상의 홈 디렉토리를 입력할 수 있습니다.
파일 이름을 식별합니다.
현재 경로 이름을 인쇄합니다.
일치하는 파일 이름을 사용하여 식별된 모든 파일에 rm 명령을 적용할 것을 find 명령에 지시합니다.
find 명령은 지정된 디렉토리에서 시작하여 .rhosts라는 모든 파일을 검색합니다. 해당 파일이 검색되면 find가 경로를 화면에 인쇄하고 제거합니다.
예 29-1 .rhosts 파일을 검색하여 제거
다음 예에서는 /export/home 디렉토리에 있는 모든 사용자의 홈 디렉토리에서 .rhosts 파일을 검색하여 제거합니다.
# find /export/home -name .rhosts -print | xargs -i -t rm {} \;
ping 명령을 사용하여 원격 시스템이 작동 중인지 알아보십시오.
$ ping system-name | ip-address
원격 시스템의 이름
원격 시스템의 IP 주소
ping 명령은 다음 메시지 중 하나를 반환합니다.
|
"핑"하는 시스템이 다른 도메인에 있는 경우 반환 메시지에 경로 지정 정보도 포함될 수 있습니다. 이 정보는 무시할 수 있습니다.
ping 명령의 시간 초과 값은 20초입니다. 실질적으로, 20초 안에 응답을 받지 못하면 세번째 메시지가 반환됩니다. 시간 초과 값(초)을 입력하여 ping이 더 오래 또는 더 짧게 기다리게 만들 수 있습니다.
$ ping system-name | ip-address time-out
자세한 내용은 ping(1M)을 참조하십시오.
rusers(1) 명령을 사용하여 원격 시스템에 로그인한 사용자를 알아보십시오.
$ rusers [-l] remote-system-name
(옵션 없음) 시스템 이름과 시스템에 현재 로그인되어 있는 사용자(루트 포함)의 이름을 차례대로 표시합니다.
각 사용자에 대한 추가 정보(사용자의 로그인 창, 로그인 시간 및 날짜, 로그인 기간, 사용자가 로그온한 원격 시스템의 이름)를 표시합니다.
예 29-2 원격 시스템에 로그인한 사용자 알아보기
다음 예에서는 rusers의 짧은 출력을 보여줍니다.
$ rusers pluto pluto smith jones
다음 예에서 긴 버전의 rusers는 원격 시스템 starbug에 두 사용자가 로그인되어 있음을 보여줍니다. 첫번째 사용자는 9월 10일에 시스템 콘솔에서 로그인하여 137시간 15분 동안 로그온된 상태를 유지하고 있습니다. 두번째 사용자는 9월 14일에 원격 시스템 mars에서 로그인했습니다.
$rusers -l starbug root starbug:console Sep 10 16:13 137:15 rimmer starbug:pts/0 Sep 14 14:37 (mars)
rlogin(1) 명령을 사용하여 원격 시스템에 로그인하십시오.
$ rlogin [-l user-name] system-name
(옵션 없음) 현재 사용자 이름을 사용하여 원격 시스템에 효과적으로 직접 로그인합니다.
제공되는 사용자 이름을 사용하여 원격 시스템에 효과적으로 간접 로그인합니다.
네트워크가 사용자를 인증하려고 하는 경우 암호를 입력하라는 메시지가 표시되지 않습니다. 원격 시스템이 사용자를 인증하려고 하는 경우에는 암호를 제공하라는 메시지가 표시됩니다.
작업이 성공하면 rlogin 명령이 해당 시스템에 대한 사용자의 최신 원격 로그인에 대한 간략한 정보, 원격 시스템에서 실행되고 있는 운영 체제의 버전, 홈 디렉토리에 확인이 필요한 메일이 있는지 여부를 표시합니다.
예 29-3 원격 시스템에 로그인(rlogin)
다음 예에서는 pluto에 대한 직접 원격 로그인의 출력을 보여줍니다. 사용자는 네트워크에 의해 인증되었습니다.
$ rlogin starbug Last login: Mon Jul 12 09:28:39 from venus Sun Microsystems Inc. SunOS 5.8 February 2000 starbug:
다음 예에서는 pluto에 대한 간접 원격 로그인의 출력을 보여줍니다. 사용자는 원격 시스템에 의해 인증됩니다.
$ rlogin -l smith pluto password: user-password Last login: Mon Jul 12 11:51:58 from venus Sun Microsystems Inc. SunOS 5.8 February 2000 starbug:
exit(1) 명령을 사용하여 원격 시스템에서 로그아웃하십시오.
$ exit
예 29-4 원격 시스템에서 로그아웃(exit)
이 예에서는 사용자 smith가 pluto 시스템에서 로그아웃하는 것을 보여줍니다.
$ exit pluto% logout Connection closed. earth%