Actions
PAM (Pluggable Authentication Modules) » 이력 » 개정판 2
« 뒤로 |
개정판 2/3
(비교(diff))
| 다음 »
이태훈, 2022/08/02 07:57
PAM (Pluggable Authentication Modules)¶
- Linux 시스템 내에서 사용되는 각종 어플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리들
- 프로그램 개발 시 인증모듈을 별도 개발하지 않고 플러그인 방식을 PAM을 사용함으로써 인증 방식 및 정책의 유연성과 중앙 통제가 가능
1) PAM 인증 절차¶
- 각 프로그램이 인증이 필요한 부분에서 PAM 라이브러리를 호출하도록 함
- 해당 프로그램의 PAM 설정파일을 참조해 등록된 여러 PAM 모듈을 수행하고 그 결과를 반환
- 인증 여부 결정
- /etc/pam.d : PAM 라이브러리를 이용하는 프로그램들의 설절파일들이 들어있는 디렉토리
- /lib/security : PAM 라이브러리가 제공하는 인증 모듈들이 들어있는 디렉토리
- /etc/security : PAM 모듈 실행에 필요한 추가 설정 파일들이 들어있는 디렉토리
2) PAM 설정 파일¶
| Module-Type | Control-Flag | Module-Name | Module-Arguments |
|---|
1. Module-Type¶
- 모듈 타입 필드는 PAM에 어떤 종류의 인증을 사용할 것인가를 지정하는 필드로 아래와 같이 4종류의 타입을 설정할 수 있다.
| 모듈 타입 이름 | 설명 |
|---|---|
| auth | 사용자에게 비밀번호를 요청하고 입력 받은 정보가 맞는지 검사하는 모듈 |
| account | 계정에 대한 접근 통제 및 계정 정책을 관리하는 하는 모듈 |
| password | 사용자가 인증 정보(password)를 변경할 수 있도록 비밀번호 갱신을 관리하는 모듈 |
| session | 사용자가 인증을 받기 전/후에 수행해야 할 일을 정의하는 모듈 |
2. Control-Flag¶
- PAM에서 사용되는 모듈들이 결과에 따라 어떤 동작을 해야하는지 결정하는 필드이다.
- 5개의 Control-Flag중 'Required'의 경우, 해당 모듈의 결과와 상관없이 다음 모듈을 실행시킨다. 심지어 다음에 실행된 모듈의 결과보다 더 높은 우선순위를 가지므로 'Required'에서 실패가 되면 최종 인증결과는 실패가 된다.
| Flag 이름 | 설명 |
|---|---|
| requisite | 인증 결과가 실패일 경우, 인증 종료(인증 성공은 결과에 미반영) |
| required | 인증 결과와 관계없이 다음 인증 실행(인증 실패 시 실패, 인증 성공 시 성공) |
| sufficient | 인증 결과가 성공일 경우, 인증 종료(인증 실패는 결과에 미반영) |
| optional | 최종 인증 결과에 반영되지 않음. 단, 다른 인증 모듈의 명확한 성공/실패가 없다면 이 모듈의 결과를 반환 |
| include | argument에 지정된 또 다른 설정 파일의 내용이나 지침을 포함 시킴 |
3. Module-Name¶
- 사용하고자 하는 모둘의 경로와 이름을 지정하는 필드이며 PAM 모둘은 대부분 /lib/security 또는 /etc/pam.d 디렉토리에 위치한다.
| Module 이름 | 설명 | ||||||
|---|---|---|---|---|---|---|---|
| pam_rootok | root 계정인 경우, 추가 인증 없이 무조건 해용하는 모듈 |
pam_wheel.so | SU명령어 사용 인증에 사용되며 특정 그룹(wheel)에 대한 인증을 제어하는 모듈 |
pam_succeed_if.so | 인수로 주어진 조건에 따라 인증을 제어하는 모듈 |
pam_securetty.so | root 계정인 경우만 적용되는 모듈로써 /etc/securetty 파일을 참고하여 해당 파일에 root가 있으면 특정 서비스에 대한 root 접근을 허용하는 모듈(root 이외의 계정은 항상 인증 성공) |
4. module-arguments¶
- 모듈에 전달되는 인수를 나타낸다. 각각의 모듈은 각각의 인수를 가지고 있다. 모듈마다 인수가 필요할 수도 필요 없을 수도 있다.
|_. Arguments 이름|_. 설명| |=. Debug|=. 시스템 로그 파일에 디버그 정보를 남기도록 지정 |=. No_warn|=. 모듈이 경고 메시지를 보내지 않도록 지정 |=. Use_first_pass|=. 사용자에게 password입력을 요구하지 않도록 지정하는 인수. 이전 모듈에서 입력받은 password가 존재하지 않을 경우, 인증 실패 반환 |=. Try_first_pass|=. 이전 모듈에서 입력받은 password로 인증을 시도하며, 이전에 입력받은 password가 존재하지 않을 경우 사용자에게 입력을 요구
이태훈이(가) 3년 이상 전에 변경 · 2 revisions