본문 바로가기

Linux Unix/Command

[ Linux ] PAM - 사용되는 모듈 용도 살펴보기

반응형

각 PAM 모듈의 사용법과 주요 옵션을 설명해드리겠습니다.

1. pam_env.so

  • 설명: 환경 변수를 설정하는 PAM 모듈입니다.
  • 기능: 로그인 세션 시작 시 특정 환경 변수를 추가하거나 수정할 수 있습니다. 예를 들어, 언어 설정이나 경로 설정을 할 때 유용합니다.
  • 사용 예:
     auth required pam_env.so
  • 주요 옵션:
    • readenv=1: 기본 환경 변수 파일(/etc/environment와 같은)에서 변수를 읽어와 설정합니다.
    • user_readenv=1: 사용자 지정 환경 변수 파일(~/.pam_environment)을 읽어옵니다.
    • envfile=<파일 경로>: 특정 파일에서 환경 변수를 설정합니다.

2. pam_faildelay.so

  • 설명: 인증 실패 후 지연 시간을 설정하는 모듈입니다.
  • 기능: 인증 실패 시 일정 시간 동안 지연을 발생시켜 무차별 대입 공격을 방어하는 데 유용합니다.
  • 사용 예:
     auth required pam_faildelay.so delay=5000000
  • 주요 옵션:
    • delay=<마이크로초>: 인증 실패 후 지연 시간을 설정합니다. 예를 들어 delay=5000000은 5초 지연을 의미합니다.

3. pam_fprintd.so

  • 설명: 지문 인식을 통한 인증을 제공하는 모듈입니다.
  • 기능: fprintd 데몬과 통신하여 지문을 통한 인증을 수행합니다. 지문을 사용한 로그인을 가능하게 해줍니다.
  • 사용 예:
     auth sufficient pam_fprintd.so
  • 주요 옵션:
    • 일반적으로 추가 옵션 없이 기본 설정으로 사용됩니다.

4. pam_usertype.so

  • 설명: 사용자를 관리자와 일반 사용자로 구분하여 인증을 차별화할 수 있는 모듈입니다.
  • 기능: 특정 사용자 그룹에 따라 인증 방식이나 권한을 차별화하는 데 사용됩니다.
  • 사용 예:
     auth required pam_usertype.so
  • 주요 옵션:
    • type=admin: 관리자 권한을 가진 사용자로 구분하여 인증을 처리합니다.
    • type=regular: 일반 사용자로 구분하여 인증을 처리합니다.

5. pam_localuser.so

  • 설명: 시스템의 로컬 사용자만 인증을 허용하는 모듈입니다.
  • 기능: /etc/passwd에 등록된 로컬 계정만 인증을 허용하며, 외부 계정 인증을 막을 때 유용합니다.
  • 사용 예:
     auth required pam_localuser.so
  • 주요 옵션:
    • 특별한 옵션 없이 기본 설정으로 사용됩니다.

6. pam_unix.so

  • 설명: 로컬 사용자 인증을 수행하는 기본 모듈입니다.
  • 기능: /etc/passwd/etc/shadow 파일을 참조하여 로컬 사용자 계정과 비밀번호를 통해 인증합니다.
  • 사용 예:
     auth required pam_unix.so
  • 주요 옵션:
    • nullok: 빈 비밀번호로 인증을 허용합니다.
    • try_first_pass: 이전에 입력된 비밀번호로 인증을 시도합니다.
    • use_first_pass: 이전에 입력된 비밀번호를 사용하며, 비밀번호 입력을 다시 요청하지 않습니다.
    • shadow: /etc/shadow 파일에서 비밀번호를 가져옵니다.

7. pam_sss.so

  • 설명: SSSD(System Security Services Daemon)를 통해 중앙 인증 및 사용자 정보를 관리하는 모듈입니다.
  • 기능: SSSD 데몬과 통신하여 중앙 서버(예: LDAP, Active Directory)에 있는 사용자 정보를 통해 인증을 수행합니다.
  • 사용 예:
     auth required pam_sss.so
  • 주요 옵션:
    • use_first_pass: 이전에 입력된 비밀번호로 인증을 시도합니다.
    • ignore_unknown_user: 중앙 서버에 없는 사용자는 무시합니다.
    • ignore_authinfo_unavail: 인증 정보를 사용할 수 없는 경우에도 무시합니다.

8. pam_deny.so

  • 설명: 항상 인증을 실패하도록 설정하는 모듈입니다.
  • 기능: 인증을 거부하고 싶을 때 사용되며, 보안을 위해 필요합니다.
  • 사용 예:
     auth required pam_deny.so
  • 주요 옵션:
    • 특별한 옵션 없이 기본 설정으로 사용됩니다.

9. pam_faillock.so

  • 설명: 로그인 실패 횟수를 기록하고 계정 잠금 기능을 제공하는 모듈입니다.
  • 기능: 일정 횟수 이상 로그인 실패 시 계정을 잠금으로 설정해 공격을 방어합니다.
  • 사용 예:
     auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600
     auth [success=1 default=bad] pam_unix.so
     auth [default=die] pam_faillock.so authfail deny=3 unlock_time=600
     account required pam_faillock.so
  • 주요 옵션:
    • deny=<횟수>: 지정된 횟수 이상 로그인 실패 시 계정을 잠급니다.
    • unlock_time=<초>: 계정 잠금이 해제되는 시간을 설정합니다.
    • fail_interval=<초>: 실패 시도를 감시하는 시간을 설정합니다.
    • silent: 오류 메시지를 표시하지 않고 조용히 작동합니다.

이러한 모듈들은 PAM 설정 파일에서 필요한 상황에 맞게 조합하여 사용할 수 있으며, 각 모듈의 옵션을 통해 인증 정책을 세부적으로 조정할 수 있습니다.

반응형