윈도우 계열에서는 Active Directory를 이용하여 사용자 계정 정책을 설정할 수 있다. 그렇다면 리눅스 시스템에서 계정 정책은 어떻게 설정할까? 이번 포스트에서 계정 정책 설정하는 방법을 알아본다.
비밀번호 만료일 설정
useradd 명령어를 사용하여 계정을 새로 생성할 때 아래 파일과 파라메터가 사용된다. 이들 세팅은 /etc/shadow 파일에 각 사용자 계정별로 기록된다.
/etc/login.defs | PASS_MAX_DAYS | 60 | 비밀번호가 유효한 최대 일자 |
/etc/login.defs | PASS_MIN_DAYS | 7 | 비밀번호를 변경할 수 있는 최소 일자. 이 파라메터는 아무런 효과가 없다. |
/etc/login.defs | PASS_MIN_LEN | n/a |
이 파라메터는 아무런 효과가 없다. 이는 PAM 모듈 "pam_cracklib"이 우선 적용된다. 자세한 사항은 비밀번호 강화하기를 참고하라. |
/etc/login.defs | PASS_WARN_AGE | 7 | 비밀번호 변경 주의가 시작되는 일자. |
/etc/default/useradd | INACTIVE | 14 |
만료일 이후 계정이 비활성화되는 일자. |
/etc/default/useradd | EXPIRE | 비밀번호 만료 일자(YYYY-MM-DD) |
password inactive와 expire의 기본 설정은 미설정이다. 그리고 pam_cracklib에서 minlen= 항목이 설정되지 않은 경우 최소 비밀번호 길이는 6이다.
기존 계정의 비밀번호 만료일을 수정하기 위해서는 /usr/bin/chage가 사용된다. chage는 /etc/shadow 파일의 비밀번호 변경 필드(3번째 필드)를 변경하지 않기 때문에 실행 즉시 만료될 수 있다. /etc/shadow 파일의 비밀번호 변경 필드를 갱신하기 위해 -d 옵션을 사용할 수 있다.
비밀번호 만료 설정을 아래와 같이 설정하고자 할 때 설정법은 아래와 같다.
- 비밀번호 변경 최소 일자 : 7일
- 90일 이후 비밀번호 만료
- 비밀번호 만료 14일 이전부터 경고 표시
# /usr/bin/chage -m 7 -M 90 -W 14 <account>
비밀번호가 만료되어 비활성화될 경우(chage -l이나 /etc/shadow의 7번째 필드 참조) 사용자는 로그인할 수가 없을 것이며 관리자가 비밀번호를 재설정하여야 한다.
Dec 4 14:33:42 host sshd(pam_unix)[31601]: account hutchib has expired (failed to change password)
비밀번호가 만료되었지만 비활성화되지 않았을 때 로그인 유예 기간이 허용되며 이 기간동안 즉시 비밀번호를 변경하여야 한다. 비밀번호가 변경되는 즉시 연결이 종료되며 다시 로그인하여야 한다.
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user <account>.
Changing password for <account>
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Connection to host closed.
- 비밀번호 최소 길이 : 9자
- 하나 이상 소문자 포함
- 하나 이상 대문자 포함
- 하나 이상 숫자 포함
password requisite pam_cracklib.so retry=3 minlen=12 lcredit=1 ucredit=1 dcredit=1 ocredit=0
비밀번호 이력
이전 비밀번호 재사용을 방지하기 위해 pam_unix와 pam_cracklib를 이용한다. 기본 값으로 비밀번호 이력은 비활성화되어 있다.
과거 24개의 비밀번호 재사용을 방지하고자 할 경우 아래와 같이 한다.
- 비밀번호 데이터베이스를 생성한다.
# touch /etc/security/opasswd
# chown root:root /etc/security/opasswd
# chmod 600 /etc/security/opasswd
- PAM 설정하기
/etc/pam.d/system-auth (Redhat), /etc/pam.d/common-passwd(Debian)에서 아래와 같이 변경한다.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=24
계정 잠금
pam_tally를 사용하여 수 번의 로그인 실패 후 계정을 잠글 수 있다. 본 포스트에서는 6번의 로그인 시도 후 계정을 잠그도록 설정한다. 실패 로그인 카운터는 인증이 성공적으로 이루어지면 재설정된다.
- 실패 로그인 시도를 저장할 파일 생성한다.
# touch /var/log/faillog
# chown root:root /var/log/faillog
# chmod 600 /var/log/faillog
- PAM 설정하기
auth required pam_tally.so onerr=fail no_magic_root
#Debian에서는 /etc/pam.d/common-auth에 추가
account required pam_tally.so deny=5 no_magic_root reset
#Debian에서는 /etc/pam.d/common-account에 추가
'UNIX > 유닉스 공통' 카테고리의 다른 글
FTP LINUX ( Active mode / Passive mode) (0) | 2013.11.06 |
---|---|
[스크랩] snmp 간단히 눈에 들어오는 내용 (0) | 2013.10.30 |
[스크랩] /etc/shadow 파일시스템 (각 탭별 의미) (0) | 2013.10.30 |
프록시 설정하기 (0) | 2013.10.22 |
[스크랩] 로그 분석 더 자세히..... (로그 저장 경로, 저장 데이터, 로그별 내용) (0) | 2013.07.29 |