Linux - (20) : pam

­이승환·2021년 10월 18일
0

리눅스 정리

목록 보기
19/21

개요


서버 취약점 진단시에 PAM 모듈을 이용하라는 안내를 종종 받는다.
PAM 설정은 단순히 한 줄 수정한다고 해서 되는 것이 아니라 위/아래 줄에 선언된 설정에 의해 결과가 달라지기 때문에(순차적으로 점검을 함) 이해가 필요하다.

PAM이란

Pluggable Authentication Modules의 약자로 응용 프로그램(서비스)에대한 사용자의 권한을 제어하는 모듈이다. 이전에 pam이 존재하기 전에는 프로그램 별 자체 로직을 구현해서 인증과 세션관리가 필요했지만 시스템 파일에 대한 접근 권한을 가지고 있어야 하므로 침해사고에 위험이 존재했다고 한다.

동작원리

  1. 인증이 필요한 응용프로그램은 /etc/passwd 파일을 열람하지 않고 PAM 모듈로 사용자 인증을 받는다.
  2. PAM 인증을 요청한 사용자의 정보를 가지고 결과를 도출해서 응용프로그램에 전달한다.

    <출처 : 이글루시큐리티>

PAM 구성

1) PAM 기본 구조
- Module Type : auth, account, password ...
- Control Flag : required, requiside, sufficient, include ...
- Module Name : pam_rootok.so ... (디렉토리에 존재하는 pam 프로그램 이름)
- Module Arguments : Module에 전달할 인자들

2) Module Type 종류
- auth : 사용자에게 비밀번호를 요청하고 검사하는 ㅁ듈
- account : 입력한 계정이 현재 조건에서 유요한 인증 목표인지 검사하는 것으로 계정에 대한 접근을 통재
- password : 사용자가 인증정보를 변경할 수 이도록 비밀번호 갱신을 관리
- session : 사용자가 인증 받기 전/후에 수행해야할 일을 정의하는 모듈

3) Conrole Flag
- requisite : 인증 결과 확인, 실패의 경우 인증 즉시 반환
- required : 인증 결과 확인, 실패일 경우 다음 인증 모듈 실행(최종인증에 미반영)
- optional : 최종인증결과에 반영하지 않고, 다른 인증 모듈에 성공/실패가 없으면 해당 결과 반환
- include : 다른 PAM 설정 파일 호출

4) Module Name
- pam_rootok : root계정인 경우 추가 인증없이 무조건 허용
- pam_wheel.so
- pam_succed_if.so
- pam_securety.so

5) Module arguments
- Debug : 시스템 로그파일에 디버그 정보를 남기도록 지정
- No warn : 모듈이 경고 메시지를 보내지 않도록 지정
- Use_first_pass : 사용자에게 password 입력 요구를 하지 않ㄷ록, 이전에 password 입력이 없다면 실패 반환
- Try_first_pass : 이전 모듈에서 입력받은 password로 인증을 시도함

결론


pam의 경우 시스템 운영에 편의성이 제공되지만, 잘못사용하면 시스템 침해를 일으킬 수 있으니 주의해야한다.

profile
Mechanical & Computer Science

0개의 댓글