PAM(Pluggable Authentication Modules)은 「인증을 모듈로 갈아 끼울 수 있게」 하는 리눅스 인증 프레임워크.
비밀번호·LDAP·생체인증 등 다양한 방식을 통합.
구조.
/etc/pam.d/ 안에 서비스별 파일(login·sshd·sudo 등).
각 파일에 「auth·account·password·session」 4가지 단계 + 「required·sufficient·optional」 같은 결과 처리 정책.
예시.
/etc/pam.d/sshd에 auth required pam_unix.so — UNIX 비밀번호 인증.
추가로 auth required pam_google_authenticator.so — 2단계 인증(OTP).
두 줄로 「비밀번호 + OTP」 강제.
흔한 모듈.
pam_unix.so — 표준 비밀번호.
pam_ldap.so — LDAP.
pam_krb5.so — Kerberos.
pam_google_authenticator.so — Google Authenticator OTP.
pam_faillock.so — 실패 횟수 제한.
주의.
PAM 설정 잘못하면 「전혀 로그인 못 함」 사고.
변경 전에 별도 root 셸 열어 두기 — 새 SSH로 테스트하다 막히면 그 셸로 복구.
가능하면 콘솔 접근(VM·물리적)이 있는 환경에서 시험.
한 줄 요약
PAM은 인증 모듈 프레임워크 — /etc/pam.d/에 서비스별 정책.
auth·account·password·session 단계, required·sufficient 등 처리.
2FA·LDAP 등 통합.
잘못 설정 시 로그인 불가, 사전 백업 셸 필수.
더 알아볼 것
- Google Authenticator + PAM 2FA
- pam_tally2 → pam_faillock
- pamtester로 정책 검증