Linux PAM (Pluggable Authentication Modules)은 리눅스 시스템에서 사용자 인증을 관리하기 위한 프레임워크이다.
PAM은 모듈 형태로 제공되며, 이 모듈들은 인증, 계정, 패스워드 등 다양한 인증 기능을 제공하며, 리눅스 시스템의 로그인, su 및 sudo와 같은 명령어, SSH 접속, FTP 및 이메일 인증과 같은 다양한 서비스에 대한 사용자 인증을 제공한다.
PAM은 /etc/pam.d 디렉토리에 있는 파일들을 통해 구성된다.
각각의 파일은 하나 이상의 PAM 스택을 정의하며, 스택은 사용자 인증을 처리하는 데 사용되는 PAM 모듈의 순서를 결정한다.
PAM 스택은 일반적으로 다음과 같은 네 가지 유형의 모듈로 구성된다.
사용자가 자신의 신원을 증명하는 데 사용된다.
사용자 이름과 비밀번호, 스마트 카드 또는 생체 인식 등 다양한 인증 방법을 지원한다.
사용자 계정이 유효하고 활성화되어 있는지 확인한다.
예를 들어, 계정이 만료되었거나 잠긴 경우 로그인을 거부할 수 있다.
사용자 세션을 설정하고 관리한다.
예를 들어, 사용자 로그인 시간을 추적하거나 사용자 로그아웃 시에 실행해야 하는 작업을 지정할 수 있다.
사용자의 패스워드를 검증하고 변경하는 데 사용된다.
예를 들어, 패스워드의 강도를 확인하거나 패스워드 변경 주기를 지정할 수 있다.
Linux PAM 설정은 /etc/pam.d 디렉터리 내부의 파일을 수정하여 설정할 수 있다.
다음 예시는 # su root 권한을 wheel 그룹만 사용할 수 있도록 설정하는 예시이다.
- /etc/pam.d/su 파일 수정
# vi /etc/pam.d/su
... auth required pam_wheel.so use_uid // 주석 해제 ...
PAM 설정은 파일이 저장될 경우 자동 적용된다.
PAM 설정이 잘못될 경우 콘솔 및 SSH 로그인이 거부당할 수 있으므로 오타가 없도록 주의해야 한다. 따라서 콘솔 및 SSH 로그인 설정을 할 경우 휴먼에러 방지를 위해 두 개 이상의 세션을 연결한 후 작업하는 것이 권장 사항이다.