Linux PAM
리눅스 (PAM - Pluggable Authentication Modules)
PAM의 정의
- 시스템의 공통적인 인증 방법을 제공
- 손쉬운 인증 모듈의 고체 및 추가/삭제
- 응용 프로그램(서비스)가 패스워드 파일을 읽지 않고 PAM에게 요청
- 응용 프로그램 개발자가 사용자 인증에 신경 쓰지 않아도 되고, 시스템 관리자가 직접 응용프로그램의 인증 동작을 세밀하게 제어 할 수 있음
- 다양한 인증 모듈을 호출해서 사용자 인증 과정을 수행, 모듈 결과에 알맞은 행동
- 모듈의 종류가 다양하며 인증 절차에 확실한 개념이 필요
- PAM은 윈도우즈 응용프로그램의 DLL과 같은 라이브러리
<▲기본 서비스접근 형태>
<▲PAM 서비스접근 형태>
예를 들어, Telnet, FTP, SSH등의 서비스들이 있을 때, 사용자가 각각의 서비스의 인증을 통과해야만 서비스에 접근 할 수 있다. 이때, PAM을 사용하게 되면, 각 서비스의 인증 권한을 PAM에게 넘겨서 인증 절차대로 인증 후, 결과를 서비스에게 통보해주어 서비스 접근을 제어하는 원리이다.
1. 사용자가 특정 서비스 접근
2. 특정 서비스는 PAM에게 인증 요청
3. 특정 서비스는 서비스의 설정 파일 확인
-/etc/pam.d/[서비스이름]
- /etc/pam.d/other(기본 설정파일) : 정의되지 않은 서비스에 대한 요청시
4. 서비스 설정 파일에 있는 인증을 정차에 맞게 수행하고 그 결과를 서비스에 반환
5. 서비스는 인증 결과(True, False)를 토대로 서비스 접근은 허용/거절