EASY7

[리눅스] PAM 모듈을 이용한 접근 제어 본문

보안 공부/리눅스

[리눅스] PAM 모듈을 이용한 접근 제어

E.asiest 2021. 10. 8. 22:23

PAM

PAM 모듈이란, Pluggable Authentication Modules의 약어로 리눅스 PAM은 리눅스 또는 GNU/kFreeBSD 시스템에서 애플리케이션과 서비스에 대한 동적 인증을 제공한다. '팸'이라고 발음한다.

 

requsite : 해당 인증 실패 시 바로 인증 거부

required : 해당 인증 실패 시 다음 모듈 인증 후 거부

sufficient : 해당 인증 성공 시 다른 아래 인증들 상관 없이 인증 성공(빨간 네모 성공 시 노랑 네모 상관 없이 인증 성공)

optional : 해당 인증 결과 무시

 

PAM을 공부하기에 정말 좋은 유튜브를 찾았다. 이 수업을 들었다면 난 진작에 보안기사를 손에 얻었을 것이다..

 

- 이론 수업

https://www.youtube.com/watch?v=iNGRQaJDMWM  

- 실습 수업

https://www.youtube.com/watch?v=kQnwcBe1E0Q 

 

 

wheel 그룹만 su 명령을 사용할 수 있도록 설정하기

1) /etc/pam.d/su 파일 수정하기

auth required pam_wheel.so use_uid 줄 각주 해제하기

2) wheel 그룹의 계정과 wheel 그룹이 아닌 계정 만들기

3) wheel 그룹의 계정은 su 명령어 가능하다. 

4) wheel 그룹이 아닌 계정은 su 명령 시 Permission denied 에러 발생한다. 

root, 일반 계정으로 su 명령어가 되지 않는다.

 

- 추가로 wheel 그룹이 su 명령 사용 시 패스워드 없이 로그인 할 수 있도록 하려면 trust 추가하면 된다.

 

 

터미널에서 직접 root로 로그인하지 못하도록 막기

내 리눅스에는 /etc/pam.d/gdm-password 파일이 없어서 실습을 하지 못했다.


1) /etc/pam.d/gdm-password 파일 수정하기

auth required pam_succeed_if.so uid >= 1000

 

 

 

root는 다른 계정으로 로그인할 때 패스워드를 입력하지 않아도 되는 이유

/etc/pam.d/su 파일에서 auth sufficient pam_rootok.so 줄로 인해 

root가 다른 계정으로 로그인할 때 패스워드를 입력하지 않아도 로그인이 되게끔한다.

 

그렇다면, 이 줄을 각주 처리한다면 어떻게 될까?

1) pam_rootok.so 줄을 각주 처리한다.

2) root 계정에서 일반 계정으로 로그인할 때 일반적으로 패스워드가 필요가 없겠지만, 지금은 패스워드를 요구한다.

 

 

 

특정 사용자는 root 원격 접속을 평일 9시~17시 접속 불가로 설정하기

1) /etc/pam.d/sshd 파일 수정하기

2) /etc/security/time.conf 파일 수정하기

맨 아래에 내용 추가하기

ssh로 모든 터미널로 접속할 때 root로 접속할 때 평일 9시~17시까지 접속 못하도록 설정

3) putty 등의 툴을 이용하여 ssh 접속하려고 하면 root로 로그인 되지 않는다.

 

왜 일반 계정도 ssh 로그인이 안되는 걸까?

Comments