본문 바로가기
공부/정보보안기사

<정보보안기사> 1. 시스템 이론 - PAM(Pluggable Authentication Modules)

by Richard_Hoon 2024. 11. 23.
반응형

목차

     

     

    PAM 개요

     

    PAM은 리눅스 시스템에서 사용되는 인증 모듈.

    다양한 응용 프로그램에 대한 사용자의 접근 권한을 제어하고, 인증 방식을 유연하게 관리하기 위한 목적으로 사용.

     

    쉽게 말해, PAM은 여러 개의 다른 문 자물쇠를 하나의 문에 연결하여, 필요에 따라 다양한 열쇠로 문을 열 수 있도록 해주는 역할을 수행. 이처럼 PAM은 다양한 인증 방식을 하나의 시스템에서 사용할 수 있도록 해주는 융통성을 제공함

     

     

    PAM 주요 기능

     

    `1. 다양한 인증 방식 지원` : 비밀번호, 지문 인식, 스마트 카드 등 다양한 인증 방식을 지원

    `2. 중앙 집중 관리` : 시스템 전체의 인증 정책을 하나의 파일에서 관리할 수 있어 편리함

    `3. 모듈화된 구조` : 새로운 인증 방식이 추가되더라도 기존 시스템에 영향을 미치지 않고 모듈만 교체하면 됨

    `4. 확장성` : 다양한 추가 기능을 모듈 형태로 개발하여 시스템에 통합할 수 있음

     

     

    PAM의 구성

     

    PAM은 크게 다음 같은 구성요소로 이루어짐

     

    `1. PAM 설정 파일` : `/etc/pam.d` 디렉터리에 위치하며, 각 응용 프로그램 별로 PAM 모듈의 실행 순서와 조건을 설정

    `2. PAM 모듈` : 실제 인증 작업을 수행하는 라이브러리 파일

    `3. 응용 프로그램` : PAM을 호출하여 인증 작업을 위임하는 프로그램

     

     

    PAM 설정 파일

     

    type control module-path module-arguments
    1 2 3 4

     

     

    `1` : type : 모듈 타입 종류

     - account : 사용자 신원을 확인하는 과정을 담당. 일반적으로 사용자 ID와 비밀번호를 비교하여 유효한 사용자인지 확인

     - auth : 사용자 계정 상태를 확인하고, 접근 권한을 부여하는 과정을 담당. 계정의 만료 여부, 시간 제한, 특정 서비스에 대한 접근 권한 등을 검사

     - password : 사용자가 비밀번호를 변경하거나, 새로운 비밀번호를 설정할 때 사용. 비밀번호 강도 검사, 임시 비밀번호 설정 등의 기능을 제공

     - session : 사용자가 시스템에 로그인하거나 로그아웃 할 때, 수행되는 작업을 담당. 로그인 시 홈 디렉터리 생성, 로그아웃 시 세션 정보 삭제 등의 기능을 제공 

     

     

    `2` : control : 각 모듈 실행 후, 성공 or 실패에 따른 PAM 행동 결정

    종류 설명
    required  - 해당 모듈이 실패하면 전체 인증이 실패
     - 다른 모듈의 결과와 상관없이 반드시 성공해야 함
     - 가장 일반적으로 사용되는 flag
    sufficient  - 해당 모듈이 성공하면 전체 인증이 성공, 이후의 모듈은 실행되지 않음
     - 여러 개의 sufficient 모듈 중 하나라도 성공하면 전체 인증 성공
    optional  - 해당 모듈이 실패해도 전체 인증에 영향을 미치지 않음
     - 추가적인 검증이나 로그 기록 등을 위해 사용
    requisite  - 해당 모듈이 실패하면, 이후의 모듈은 실행되지 않고 전체 인증 실패
     - required와 유사하지만, requisite는 다음 모듈의 실행 여부에 영향을 미침

     

     

     

    `3` : module-path : PAM 설정 파일에서 사용되는 필드, 실제 PAM 모듈이 위치한 경로를 지정하는 역할

     

     

    `4` : module-arguments : 모듈에 전달되는 인수를 의미하며, 모듈의 기본적인 동작을 변경, 추가적인 기능을 활성화 할 수 있음

     

     

    PAM 설정 파일 (/etc/pam.d 파일의 일반적 형식)

     

    #%PAM-1.0
    auth		required	pam.unix.so
    account		sufficient	pam.unix.so
    password	require		pam.unix.so
    session		optional	pam.unix.so

     

    `auth`, `account`, `password`, `session` : 각각 인증, 계정, 비밀번호, 세션 관리에 대한 설정을 의미

    `required` : 해당 모듈이 실패하면 최종 인증이 실패, 다른 라인의 모듈은 실행

    `sufficeint` : 해당 모듈이 성공하면 인증이 성공하고, 다음 모듈이 실행되지 않음

    `requisite` : 해당 모듈이 실패할 경우, 즉시 인증이 실패

    `optional` : 해당 모듈이 실패해도 인증이 계속 진행

    `pam_unix.so` : 실제 인증을 수행하는 PAM 모듈, PAM에서 사용할 실제 모듈 파일이 위치한 경로를 위미

     

     

     

     

     

     

    반응형

    댓글