ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PAM (Pluggable Authentication Modules)
    System 2024. 8. 19. 15:08

    리눅스 시스템에서 사용하는 ‘인증 모듈(Pluggable Authentication Modules)’로써 응용 프로그램(서비스)에 대한 사용자의 사용 권한을 제어하는 모듈이다.

    응용프로그램 자체적으로 사용자 인증하는 과정

    1. User → su root → su 명령어 파일
    2. su 명령어 파일 → root 정보 확인 → passwd 파일
    3. passwd파일 → 정보 확인 결과 반환 → su 명령어 파일
    4. su 명령어 파일 → su 명령어 결과 반환 → User

    PAM 모듈을 통한 사용자 인증 과정

    1. User → su root → su 명령어 파일
    2. su 명령어 파일 → root 정보 확인 → PAM 모듈
    3. PAM 모듈 → 정보 확인 결과 반환 → su 명령어 파일
    4. su 명령어 파일 → su 명령어 결과 반환 → User

    응용프로그램이 자체적으로 사용자 인증을 거치게 되면

    1. 응용프로그램이 직접 /etc/passwd에 접근할 수 있는 권한이 필요
    2. 따라서 침해 사고의 위험 존재

    따라서 PAM 인증 모듈이 그 자리를 대신하여 인증 과정을 수행 함

    → 개발 간소화, passwd 파일 열람 X, 시스템 운영자의 응용프로그램 인증 동작 제어

    → Why? PAM 모듈 자체적으로 인증 조건을 명시하면 됨

    출처: IGLOO

    PAM 기본 구조는 다음과 같다

    Module Type + Control Flag + Moduls Name 및 Module Arguments

    해당 구조를 가지고 PAM 인증 수행

    출처 : IGLOO

    Control Flag 확인

    예시 1

    auth   required   pam_succed_if.so user=honeypunch quiet
    
    auth  usfficient  pam_unix.so try_first_pass
    
    auth   requisite   pam_succed_if.so user=honeypunch quiet
    
    auth   usfficient  pam_unix.so try_first_pass
    

    required 는 인증 성공 여부와 상관없이 다음 인증 모듈 수행

    requisite 는 인증 실패 시 인증 결과 반환

    따라서 1번 항목은 honeypunch 계정이 아니여도 비밀번호를 요구하지만, 2번 항목은 해당 계정이 아닐 시 인증 종료

    예시 2

    auth   required   pam_succed_if.so user=honeypunch quiet
    
    auth  sufficient  pam_unix.so try_first_pass
    
    auth   sufficient pam_rootok.so
    
    auth   required   pam_succed_if.so user=honeypunch quiet
    

    1번 항목은 honeypunch 계정에 대해서 인증 성공 여부 결정

    2번 항목은 root계정 확인 후 honeypunch 계정인지 확인

    순서에 따라 다른 결과를 불러올 수 있다.

    즉, 1번 항목은 root 계정으로 su를 진행해도 통과가 되지 않는다 ⇒ required 후 sufficient의 module_name이 try_first_pass 이므로 처음에 넣은 비밀번호로 인증을 한번 더 수행

    ⇒ 즉, root 계정 이여도 honeypunch의 비밀번호로 인증을 수행

    2번 항목은 root 계정인지 확인 후 honeypunch 계정인지 확인

    ⇒ root 계정이 아니어도 sufficient control flag로 인하여 인증 실패여도 다음 인증 모듈 실행

    ⇒ 계정 확인 가능

    결론

    1. PAM은 기존의 응용프로그램의 인증 과정에서 벗어나고자 새로운 모듈 사용
    2. PAM 사용 시 /etc/passwd 접근을 하지 않고 인증 가능
    3. PAM 인증 설정 시 Control Flag와 순서에 따라 기능이 완전히 달라질 수 있음

    출처

    https://www.igloo.co.kr/security-information/리눅스-pam-모듈의-이해/

    'System' 카테고리의 다른 글

    /etc/passwd & /etc/shadow  (0) 2024.08.19
    su root / sudo su 차이  (0) 2024.08.19
Designed by Tistory.