Basic Security/_System2007.01.17 19:56

유닉스의 인증 방식은 위도우의 인증 방식보다 훨씬 단순하다. 그러나 유닉스의 인증 방식이 더 취약하다고 말할 수는 없다. 유닉스에서 인증에 가장 중요한 역할을 하는 파일은 /etc/passwd 파일과 /etc/shadow 파일이다.

윈도우에서 패스워드가 저장된 SAM 파일은 로그인한 상태에서는 관리자 권한으로도 접근제어 때문에 읽기가 불가능하다. 그러나 /etc/passwd 파일은 644 권한으로 관리자뿐만 아니라, 일반 계정의 권한으로도 패스워드 파일을 읽을 수 있다. 따라서 일반 사용자라도 시스템에 존재하는 계정을 확인하는 것이 아주 쉽다.

다음은 우분투에서의 패스워드 파일이다.

cat /etc/passwd


root : x : 0 : 0 : root : /root : /bin/bash

    ①   ② ③  ④  ⑤     ⑥        ⑦

① : 사용자 계정을 나타낸다.
② : 패스워드가 암호화되어 shadow 파일에 저장되어 있음을 나타낸다.
③ : 사용자 번호로 관리자이므로 0번이다. 일반 사용자의 경우에는 500번부터 시작된다. ④ : 그룹 ID다. 관리자 그룹이므로 0번이다.
⑤ : 실제 이름이다. 시스템 설정에 별다른 영향이 없는 설정이다. 자신의 이름을 입력해주 어도 된다.
⑥ : 사용자의 홈 디렉토리를 설정한다. 관리자이므로 홈 디렉토리가 /root다.
⑦ : 사용자의 셸을 정의한다.


passwd 파일에 존재하는 계정들을 살펴보자. bin, daemon, adm, lp, sync, games, shutdown 등
기본으로 생성된 계정이 상당수 있음을 확인할 수 있다. 이러한 계정은 쉘이 /bin/nologin으로 할당되어 있어, 해커들이 쉘을 얻어 침투할 수 있는 것은 아니다. 하지만 이미 침투한 해커들에게 악용될 수 있는 계정이므로 일반적으로 시스템 운영에 필요하지 않은 lp, games와 같은 계정은 삭제하도록 한다.

다음은 암호화 되어 있는 shadow 파일을 살펴보자.

cat /etc/shadow



root : $1$pS/cfFID$pzmD10T5rjrl8qnXiM5xr/ : 13520 : 0 : 99999 : 7 : : :

 ①  ②              ③   ④   ⑤    ⑥ ⑦⑧⑨

① : 사용자 계정을 나타낸다. 
② : 암호화된 사용자의 패스워드가 저장된다. 시스템마다 조금씩 다른데, 레드햇의 경우에는 MD5 형식으로 저장된다.
③ : 1970년 1월 1일부터 계산하여 마지막으로 패스워드 바꾼 날까지의 값이다.
④ : 패스워드 바꾸기 전에 패스워드를 사용한 기간이다. 최초 설정 후 바꾸지 않았으므로 0이다.
⑤ : 패스워드 바꾸지 않고 최대한 사용할 수 있는 기간이다.
⑥ : 패스워드 최대 사용기간에 가까워질 경우 사용자에게 미리 그 사실을 알려야 하며, 여기에 패스워드 사용기한 며칠 전에 경고를 보낼 것인지 지정한다.
⑦ : 계정에 대한 사용 제한을 설정한 다음 몇일 후에 완전히 사용 정지되게 할 것인지를 설정한다. 
⑧ : 계정이 완전 사용 정지된 기간을 1970.1.1부터 계산한 값이 기록된다.
⑨ : 관리자가 임의로 사용할 수 있는 부분이다.

Posted by Proneer

댓글을 달아 주세요