Linux PAM, 리눅스 계정정책(PAM) 주요 모듈
# PAM의 주요 모듈 #
< pam_permit.so, pam_deny.so >
# man pam_permit
# man pam_deny
명령어를 통해서 해당 모듈의 메뉴얼을 볼 수 있다.
- pam_permit과 pam_deny는 모든 모듈 타입(auth, account, password, session)에서 사용 가능 하다.
<▲pam_permit>
<▲pam_deny>
- pam_permit (항상 성공)
- pam_deny (항상 실패)
ex) auth sufficient pam_permit.so => 항상 성공
ex) auth required pam_permit.so => 성공, 다음 모듈로 넘어감
auth requisite pam_deny.so => 실패, 다음 모듈을 수행하지 않고 실패 반환
< pam_time.so >
- pam_time.so는 account 모듈타입만 가능하다.
- 시간으로 계정 사용 유무를 검사한다.
ex) root계정에 대하여 화요일 15-16시는 ssh서비스를 사용 할 수 없고, 그 외의 시간에만 사용 가능
1. /etc/pam.d/sshd에 "account required pam_time.so"추가
2. /etc/security/time.conf에 "sushi : * : root : !TU1500-1600"을 추가
<▲ /etc/security/time.conf >
< pam_access.so >
- pam_access.so도 모든 모듈타입을 사용 가능하다.
- Login Access Control Table(로그인 접근 제어 리스트)
- 아이피, 호스트, 도메인, 네트워크를 이용하여 접근 제한을 설정한다.
ex) ssh서비스를 사용할 때, root계정으로 로그인 가능한 사용자의 ip는 192.168.0.100만 가능하게 해라.
1. /etc/pam.sshd에 "auth required pam_access.so"를 추가
2. /etc/security/access.conf에 "+ : root : 192.168.0.100"와 "- : root : ALL"을 추가한다.
<▲/etc/security/access.conf>
< pam_listfile.so >
- 모든 모듈 타입을 사용한다.
- 파일에 있는 목록에 따라 인증을 허용/거부
-옵션
item = [tty : user : rhost : ruser : group : shell]
sense = [allow : deny]
file = /path/filename
onerr = [succeed : fail] (파일이 깨졌을 경우 반환할 값)
ex) ssh서비스를 사용 할 수 있는 계정은 whitehakcer계정만 가능하게 해라.
1. /etc/userlist파일을 생성 후 "whitehacker" 라고 입력 후 저장
2. /etc/pam.d/sshd에 "auth required pam_listfile.so item=user sense=allow file=/etc/userlist onerr=fail"을 추가
< pam_succeed_if.so >
- 모든 모듈타입을 사용한다.
- if문, 조건문을 만들어 성공/실패를 반환한다.
- 조건으로는 user, uid, gid, shell, host, service를 사용
ex) whitehacker 사용자는 성공을 반환해여라
"auth sufficient pam_succeed_if.so user=whitehacker"