NAME

pam_tally - 로그인 카운터 (집계) 모듈

SYNOPSIS

pam_tally.so [file=/path/to/counter] [onerr=[fail|succeed]] [magic_root]
             [even_deny_root_account] [deny=n] [lock_time=n] [unlock_time=n]
             [per_user] [no_lock_time] [no_reset] [audit] [silent]
             [no_log_info]

pam_tally [--file /path/to/counter] [--user username] [--reset[=n]] [--quiet]

DESCRIPTION

이 모듈은 접근 시도 횟수를 유지한다. 성공 시 카운트를 초기화할 수 있으며 시도가 너무 많이 실패한 경우 접근을 거부할 수 있다.

pam_tally의 여러 한계점이 pam_tally2에서 해결되었다. 따라서 pam_tally 사용을 권장하지 않으며 향후 릴리스에서 제거될 예정이다.

pam_tally는 pam_tally.sopam_tally 두 요소로 돼 있다. 앞쪽은 PAM 모듈이고 뒤쪽은 단독 프로그램이다. pam_tally는 카운터 파일을 조회하고 조작하는 데 쓸 수 있는 (선택적) 응용이다. 사용자 카운트를 표시하거나, 개별 카운트를 설정하거나, 모든 카운트를 초기화할 수 있다. 카운트를 인위적으로 높게 설정하는 것으로 패스워드를 바꾸지 않고 사용자를 차단할 수도 있다. 그리고 예를 들어 cron 작업으로 자정마다 모든 카운트를 초기화하는 게 유용할 수도 있다. 카운터 파일을 관리하는 데 pam_tally 대신 faillog(8) 명령을 이용할 수 있다.

서비스 거부를 방지하기 위해 기본적으로 root는 접근 시도가 실패해도 계정을 차단하지 않는다. 사용자들에게 셸 계정을 주지 않으며 su나 (telnet/rsh 등이 아닌) 장비 콘솔을 통해서만 root가 로그인할 수 있다면 이렇게 해도 안전하다.

OPTIONS

전역 옵션

authaccount 모듈 타입에 쓸 수 있다.

onerr=[fail|succeed]
이상한 (파일을 열 수 없는 등의) 상황이 발생한 경우에 onerr=succeed이면 PAM_SUCCESS를 반환하고, 아니면 대응하는 PAM 오류 코드를 반환한다.
file=/path/to/counter
카운트를 유지할 파일. 기본은 /var/log/faillog.
audit
알 수 없는 사용자인 경우 시스템 로그로 사용자 이름을 기록한다.
silent
정보성 메시지를 찍지 않는다.
no_log_info
syslog(3)를 통해 정보성 메시지를 기록하지 않는다.

AUTH 옵션

인증 단계에서는 먼저 사용자가 접근이 거부돼야 하는지 확인하고, 아니라면 로그인 시도 횟수를 올린다. 그리고 pam_setcred(3) 호출 시에 시도 횟수를 초기화한다.

deny=n
사용자의 집계 횟수가 n 번을 넘으면 접근을 거부한다.
lock_time=n
시도 실패 후 n 초 동안은 항상 거부한다.
unlock_time=n
시도 실패 후 n 초가 지나면 접근을 허용한다. 이 옵션을 쓰면 최대 시도 횟수를 초과했을 때 지정된 시간 동안 사용자 계정이 잠기게 된다. 이 옵션을 안 쓰면 시스템 관리자가 직접 잠금을 풀어 주기 전까지 계정이 잠겨 있게 된다.
magic_root
uid=0인 사용자로 모듈이 호출됐을 때는 카운터를 올리지 않는다. su처럼 사용자가 띄우는 서비스에는 이 인자를 쓰는 게 좋고 다른 서비스에는 빼는 게 좋다.
no_lock_time
/var/log/faillog의 .fail_locktime 필드를 쓰지 않는다.
no_reset
진입 성공 시 횟수를 초기화하지는 않고 내리기만 한다.
even_deny_root_account
root 계정도 사용 불가능하게 될 수 있다.
per_user
/var/log/faillog에서 사용자의 .fail_max/.fail_locktime 필드가 0이 아니면 deny=n/ lock_time=n 매개변수 대신 그 값을 쓴다.
no_lock_time
/var/log/faillog의 .fail_locktime 필드를 쓰지 않는다.

ACCOUNT 옵션

account 단계에서는 사용자가 magic root가 아니면 시도 횟수를 초기화한다. pam_setcred(3)를 제대로 호출하지 않는 서비스에, 또는 다른 모듈의 account 단계 실패와 상관없이 초기화를 해야 하는 경우에 선택적으로 이 단계를 사용할 수 있다.

magic_root
uid=0인 사용자로 모듈이 호출됐을 때는 카운터를 올리지 않는다. su처럼 사용자가 띄우는 서비스에는 이 인자를 쓰는 게 좋고 다른 서비스에는 빼는 게 좋다.
no_reset
진입 성공 시 횟수를 초기화하지는 않고 내리기만 한다.

제공하는 모듈 종류

authaccount 모듈 타입을 제공한다.

RETURN VALUE

PAM_AUTH_ERR
유효하지 않은 옵션을 줬거나, 모듈에서 사용자 이름을 얻을 수 없거나, 유효한 카운터 파일을 찾을 수 없거나, 너무 많은 로그인 실패.
PAM_SUCCESS
성공적으로 동작했음.
PAM_USER_UNKNOWN
알 수 없는 사용자.

EXAMPLES

/etc/pam.d/login에 다음 행을 추가해서 로그인에 너무 많이 실패했을 때 계정을 잠글 수 있다. 허용 실패 횟수를 /var/log/faillog로 지정하며 pam_tally나 faillog(8)로 미리 설정해 둬야 한다.

auth     required       pam_securetty.so
auth     required       pam_tally.so per_user
auth     required       pam_env.so
auth     required       pam_unix.so
auth     required       pam_nologin.so
account  required       pam_unix.so
password required       pam_unix.so
session  required       pam_limits.so
session  required       pam_unix.so
session  required       pam_lastlog.so nowtmp
session  optional       pam_mail.so standard

FILES

/var/log/faillog
실패 기록 파일

SEE ALSO

faillog(8), pam.conf(5), pam.d(5), pam(7)

AUTHOR

Tim Baverstock과 Tomas Mraz가 pam_tally를 작성했다.


2017-05-18