PAM - Pluggable Authentication Modules
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Basic Information
**PAM (Pluggable Authentication Modules)**는 컴퓨터 서비스에 접근하려는 사용자의 신원을 확인하는 보안 메커니즘으로, 다양한 기준에 따라 접근을 제어합니다. 이는 디지털 게이트키퍼와 유사하여, 권한이 있는 사용자만 특정 서비스에 참여할 수 있도록 보장하며, 시스템 과부하를 방지하기 위해 사용을 제한할 수 있습니다.
Configuration Files
Solaris 및 UNIX 기반 시스템은 일반적으로
/etc/pam.conf
에 위치한 중앙 구성 파일을 사용합니다.Linux 시스템은 디렉토리 방식을 선호하며,
/etc/pam.d
내에 서비스별 구성을 저장합니다. 예를 들어, 로그인 서비스의 구성 파일은/etc/pam.d/login
에 있습니다.
로그인 서비스에 대한 PAM 구성 예시는 다음과 같을 수 있습니다:
PAM 관리 영역
이 영역 또는 관리 그룹에는 auth, account, password, session이 포함되며, 각각 인증 및 세션 관리 프로세스의 다양한 측면을 담당합니다:
Auth: 사용자 신원을 검증하며, 종종 비밀번호 입력을 요구합니다.
Account: 그룹 멤버십이나 시간 제한과 같은 조건을 확인하여 계정 검증을 처리합니다.
Password: 복잡성 검사 또는 사전 공격 방지를 포함하여 비밀번호 업데이트를 관리합니다.
Session: 서비스 세션의 시작 또는 종료 시 작업을 관리하며, 디렉토리 마운트 또는 리소스 제한 설정과 같은 작업을 포함합니다.
PAM 모듈 제어
제어는 모듈의 성공 또는 실패에 대한 반응을 결정하며, 전체 인증 프로세스에 영향을 미칩니다. 여기에는 다음이 포함됩니다:
Required: 필수 모듈의 실패는 결국 실패로 이어지지만, 모든 후속 모듈이 확인된 후에만 발생합니다.
Requisite: 실패 시 즉시 프로세스를 종료합니다.
Sufficient: 성공하면 동일 영역의 나머지 검사를 우회하지만, 후속 모듈이 실패할 경우는 제외됩니다.
Optional: 스택에서 유일한 모듈인 경우에만 실패를 유발합니다.
예시 시나리오
여러 auth 모듈이 있는 설정에서 프로세스는 엄격한 순서를 따릅니다. pam_securetty
모듈이 로그인 터미널이 승인되지 않았다고 판단하면 root 로그인이 차단되지만, "required" 상태로 인해 모든 모듈이 여전히 처리됩니다. pam_env
는 환경 변수를 설정하여 사용자 경험을 향상시킬 수 있습니다. pam_ldap
와 pam_unix
모듈은 함께 작동하여 사용자를 인증하며, pam_unix
는 이전에 제공된 비밀번호를 사용하려고 시도하여 인증 방법의 효율성과 유연성을 높입니다.
References
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated