.rhosts 파일은 보안상 별로 권장되지 않은 파일임에도 불구하고 일부 사용자들은 계속 사용하는 경향이 있다. yspace라는 계정 사용자가 홈디렉토리에 만든 .rhosts을 삭제하고 앞으로도 만들지 못하도록 조치하시오. |
Solution.
.rhosts 파일은 $HOME/.rhosts 형태로 생성하는 파일로 원격 호스트에 접속할 때 사용자 인증을 위한 파일이다.
일면 R command로 불리는 r 계열의 명령어(rsh, rlogin, rcp. rmd)등의 명령어를 사용할 경우 .rhosts 파일을 검사한 뒤
검증된 사용자이면 요청사항을 처리하게 된다.
.rhosts 파일의 형식은 간단하다.
hostname [username] |
+@netgroup 으로 적어줄 시에는 netgroup에 속한 모든 사용자의 접근을 허락하며, -hostname으로 명시할 경우 hostname에서의 모든 사용자 접근을 거부하게 된다.
.rhosts 파일의 보안에 상당히 취약할 수 있으므로 사용하지 않는 것이 좋으며, 생성을 하지 못하게 하기 위한 방법은 여러가지가 있을 수 있지만 같은 경로에 같은 이름의 디렉토리를 만든 뒤 디렉토리 안의 임의의 파일 생성 후 권한을 000으로 주면 .rhost 파일을 생성할 수 없다.
추후에 추가되는 계정에 대해서 .rhosts 파일을 생성하지 못하게 하기 위해서는 /etc/skel 하위에 위와 같이 디렉토리 및 파일을 생성해 준다.
출처 - http://sinun.tistory.com/tag/rhosts
일반 사용자들이 자신의 ID로 remote system에서 password 확인 없이 login을 할수
있도록 하기위해 자신의 home directory에 .rhosts 화일을 만들어 놓는 경우가
있다. 그러나 이 화일의 내용을 잘못 만들면 remote system의 사용자가 다른 사용
자의 ID를 도용하여 사용하는 경우가 생길수 있기 때문에 시스템 관리자는 보안을
위하여 일반 사용자들이 자신의 home directory에 .rhosts 화일을 만들지 못 하도록
할 수 있다.
1. root가 각 사용자의 home directory에 .rhosts directory를 만든후 directory의
permission을 000으로 변경한다.
# mkdir ~"username"/.rhosts
# chmod 000 ~"username"/.rhosts
2. 위와 같이 permission을 000으로 변경하여도 각 사용자는 자신의 home directory
에 대하여 write permission이 있기 때문에 rmdir 명령으로 자신의 home directory
만들어진 .rhosts directory(.rhosts가 empty directory이므로)을 지우고 새로
만들 수 있다. 따라서 .rhosts 화일을 지울수 없도록 하기 위해 아래와 같이
.rhosts directory에 permission이 000인 화일을 하나 만든다.
# cd ~"username"/.rhosts
# touch file
# chmod 000 file
# ls -l file
---------- 1 root other 0 Mar 10 10:10 file
위와 같이 하면 일반 사용자가 자신의 home directory에 있는 .rhosts directory를
없애기 위해 rmdir이라 "rm -rf" 명령을 수행하면 아래와 같이 error가 난다.
% rmdir .rhosts
rmdir: directory ".rhosts": Directory not empty
% rm -rf .rhosts
rm: cannot read directory .rhosts: Permission denied
출처 - http://superkkt.com/43
=== For Solaris ===
.rhosts file policy
이 파일은 보안상 매우 위험한 파일이므로 관리를 잘해야한다.
rlogin 명령어 Remote Login CMD
rsh 명령어 Remote Shell CMD
rcp 명령어 Remote Copy CMD
.rhosts file
+ + # 모든 호스트의 모든 유저가 내 서버로 인증없이 접속가능
hostA # 2번째 필드가 없다면 hostA의 현재 사용중인 유저 접속가능
hostA + # hostA 의 모든 유저가 인증없이 접속 가능
hostA user01 # hostA 의 user01 사용자만 인증없이 접속가능.
이 파일은 2개의 필드로 구성되어 있다.
각 사용자의 홈폴더에 존재해야 사용이 가능하다.
예를 들면 user01 사용자로 인증없이 접속하고자 한다면 user01의 사용자 홈폴더에
.rhosts 파일에 정의가 되어 있어야한다.
.rhosts file management
주기적으로 찾아서 삭제해주어야한다.
# find / -name .rhosts -type f -exec rm {} \;
---> -type d 옵션을 준것은 관리자가 생성한 .rhosts 디렉토리를 제외시키기 위해
유저 추가시 .rhosts 파일을 생성못하도록 설정해야한다.
/etc/skel 및에 .rhosts 디렉토리를 생성하고 그 디렉토리 안에 파일을 생성
퍼미션을 000으로 설정해준다.
# mkdir /etc/skel/.rhosts
# touch /etc/skel/.rhosts/file
# chmod -R 000 /etc/skel/.rhosts
---> 디렉토리도 일종의 파일로 보기때문에 같은이름으로 파일을 생성할수가 없다.
※주의 : 유저가 mv 명령어로 .rhosts 파일을 이름을
변경하고 .rhosts 파일을 생성 할 수 있다.
※ 호스트 이름으로 정의 할때는 /etc/hosts 파일에 정의가 되어 있어야한다.
rlogin 할때 사용자의 uid 번호와는 상관이 없다.
login 프로그램이 실행이되면 아이디와 비밀번호를 물어 보고 /etc/passwd
파일에서 아이디가 있는지를 확인한다음 패스워드를 확인하고 있으면 uid가 세팅.
그렇기 때문에 uid와는 상관이 없고 id에 연관이 있다. 하지만 접속하고 나서는
uid가 변경되는 것을 알수있다.
출처 - http://deandy36.tistory.com/70
'System > Linux' 카테고리의 다른 글
linux - LVM(Linux Volume Manager) 예제 (0) | 2011.11.02 |
---|---|
A typical north/southbridge layout (0) | 2011.11.02 |
TCP-Wrapper (0) | 2011.10.31 |
/etc/profile 예시 (0) | 2011.10.05 |
lsof , fuser, pgrep 명령어 (0) | 2011.09.30 |