홈 디렉토리에 불필요한 파일 검출 문제
 .rhosts 파일은 보안상 별로 권장되지 않은 파일임에도 불구하고 일부 사용자들은 계속 사용하는 경향이 있다. yspace라는 계정 사용자가 홈디렉토리에 만든 .rhosts을 삭제하고 앞으로도 만들지 못하도록 조치하시오.


Solution.
 
.rhosts 파일은 $HOME/.rhosts 형태로 생성하는 파일로 원격 호스트에 접속할 때 사용자 인증을 위한 파일이다.
일면 R command로 불리는 r 계열의 명령어(rsh, rlogin, rcp. rmd)등의 명령어를 사용할 경우 .rhosts 파일을 검사한 뒤
검증된 사용자이면 요청사항을 처리하게 된다.

.rhosts 파일의 형식은 간단하다.
 hostname [username]
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
Posted by linuxism
,