320x100
320x100

PAM (Pluggable Authentication Module)

: 사용자의 인증과 서비스에 대한 접근을 제어하는 모듈

: 사용자 인증에 대한 공유 라이브러리 패키지 제공

: 소프트웨어 개발과 안전한 권한 부여 및 인증체계를 분리하는 목적

: 대부분의 배포판 리눅스에 기본적으로 설치

: 특정 서비스에 대한 사용자/그룹 허가 목록 파일 및 거부 목록 파일. 비밀번호 길이 제한 등 설정에 사용

 

 

 

 

 

PAM 관련 파일

- /lib/security, /lib64/security

- /etc/pam.d

- /etc/pam.d/other

 

 

 

 

 

/lib/security, /lib64/security

: PAM에서 제공하는 라이브러리가 저장된 디렉터리

: .so 파일들을 내장

 

 

 

 

 

/etc/pam.d

: PAM을 이용하는 서비스가 설정된 디렉터리

 

 

 

 

 

/etc/pam.d/ohter

: PAM에 특별히 지정되지 않는 서비스에 대한 인증을 관리하는 디렉터리  

 

 

 

 

 

PAM 설정 파일의 구성 (.so 파일)

- 기본 구성

type   control   module_name   module-arguments

 

- type (PAM에 인증될 타입)

: account

 > 사용자의 서비스 접근 허용 여부. 비밀번호 기간 만료 여부 검사

: auth

 > 생체인증 등 다른 인증을  통해 사용자 검사

: password

 > 서비스 접근을 위해 사용자 비밀번호 인증

: session

 > 사용자의 인증 전후에 필요한 사항. 홈 디렉터리 마운트/언마운트, 로그인/로그아웃 제한 등

 

- control (PAM에 대한 통제)

: requisite

 > 이 모듈을 이용하는 인증이 실패할 경우 즉시 거부

: required

 > 인증 거부 전, 다른 모듈들에게 인증을 요구함에도 실패할 경우 거부

: sufficient

 > 이전에 요청된 모듈이 실패하더라도 해당 모듈로 성공시 승인

: optional

 > 모듈에 대한 성공/실패가 없을 경우 응용프로그램에게 보내는 결과로 결정

: include 

 > 해당 모듈 대신 사용할 PAM 서비스

 

- module_name (사용하는 모듈명. /lib/security에 있는 모듈명 기입)

 

- module-arguments (지정한 모듈이 사용하는 인수)

 

 

 

 

 

PAM의 주요 모듈

- pam_security.so

: 접속하는 계정이 root인 경우 해당 파일에 기록된 터미널을 통해서만 허가

: /etc/pam.d/login 및 /etc/pam.dremote 파일에 설정된 모듈

 

- pam_lisfile.so

: 임의의 파일에 대한 서비스 허가 및 거부 방법 제공

: 레드햇 계열에서 /etc/pam.d/vsftpd 파일에 설정된 ftp 사용자 거부 목록 파일로 사용된 모듈

 

- pam_nologin.so

: 해당 파일이 존재할 경우 root만 로그인 가능. 다른 사용자에 대해서는 에러 메시지와 함께 거부

: login, remote, sshd 등에 설정된 모듈

 

- pam_deny.so

: 접근을 무조건 거부

: other, system-auth 등에 설정된 모듈

 

- pam_cracklib.so

: 비밀번호를 설정한 정책과 비교

: password-auth, system-auth에 설정된 모듈

 

- pam_wheel.so

: root 권한을 얻을 수 있는 사용자를 wheel이라는 그룹에 포함

: /etc/pam.d/su에 설정할 경우 유용 

 

- pam_rootok.so

: root에 대해 비밀번호 입력 없이 서비스 접근 허용

: su, chsh 등에 설정된 모듈

 

 

 

 

PAM 파일 예시

[root@mybestone /etc/pam.d]#cat /etc/pam.d/login

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_stack.so service=system-auth
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_stack.so service=system-auth
password   required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth
session    optional     /lib/security/pam_console.so
 [root@mybestone /etc/pam.d]#cat other
             
 %PAM-1.0
 auth     required       /lib/security/pam_deny.so
 account  required       /lib/security/pam_deny.so
 password required       /lib/security/pam_deny.so
 session  required       /lib/security/pam_deny.so
[root@www root]# cat /etc/pam.d/ftp
       
#%PAM-1.0
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc
/ftpusers onerr=succeed
auth       required     /lib/security/pam_stack.so service=system-auth
auth       required     /lib/security/pam_shells.so
account    required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth

 

 

 

 

 

 

Refference

 

리눅스마스터 1급 2차 실기 정복하기 | 정성재 - 교보문고

리눅스마스터 1급 2차 실기 정복하기 | 출제 경향을 반영하여 핵심 내용만 요약 정리 시험대비를 위한 최신 기출문제를 해설과 함께 수록본 교재는 독자들이 최근 출간 요구가 많았던 리눅스마

product.kyobobook.co.kr

 

300x250
728x90

'Certification > 리눅스마스터' 카테고리의 다른 글

리눅스 시스템 백업  (1) 2022.10.13
리눅스 ACL (Access Control List) 관리  (1) 2022.10.13
리눅스 SSH 서버 관리  (0) 2022.10.12
리눅스 시스템 보안 관리  (0) 2022.10.12
리눅스 로그 확인 및 기록  (0) 2022.10.12