Security_PAM 활용 사용자 계정 보안

PAM(인증모듈)을 활용한 사용자 계정 보안

 

PAM의 네 가지 기능 모듈

  • authentication module: 비밀번호, 공개 키를 이용하여 사용자 신원을 확인하는 모듈
  • account module: 계정 만료, 특정 서비스 접근 권한 등 인정 조건을 검사하는 모듈
  • password module: 비밀번호 갱신, 비밀번호 복잡도 등을 설정하는 모듈ㅌ`
  • session module: 사용자 세션의 시작부터 끝까지 가능한 작업을 정의하는 모듈 
    PAM 처리 흐름도

PAM의 구성 파일

PAM은 /etc/pam.d/ 폴더 밑에 제어하고자 하는 명령어 또는 서비스에 해당하는 구성 파일을 만들어 제어 가능

PAM 구성 파일의 종류는 4가지

 

  • 모듈 타입
    • 어떤 종류의 인증 모듈을 사용할 것인지 지정하는 필드(authentication, account, password, session)
  • Control Flag
    • PAM의 모듈이 인증한 결과에 따라 어떠한 동작을 실행할 것인지
Control Flag 결과 설명
required 성공 최종 인증 결과는 무조건 성공
실패 최종 인증 결과는 무조건 실패
requisite 성공 다음 인증 모듈을 실행
실패 인증 실패 결과를 즉시 반환
suffcient 성공 인증 성공 결과를 즉시 반환
실패 다음 인증 모듈을 실행
include 성공 다른 PAM 구성 파일을 호출
실패
optional 성공 인증 결과에 반영 X, 다른 인증 모듈의 결과(성공 또는 실패)가 없다면,
모듈 결과를 반환
실패
substack   include와 비슷하지만 인증 결과값에 따라 동작이 달라짐

 

  • PAM 모듈 필드
    • PAM 모듈 파일을 통해 원하는 모듈 인증 기능을 선택할 수 있다. 
    • 예를 들어 사용자의 계정 상태를 확인 필요(Account 모듈)
      1. 예: 계정의 만료 여부, 시간대 제한 등
      2. 예시: pam_time.so, pam_access.so
  • Module Arguments
    • 모듈이 갖고 있는 설정값을 추가로 지정

 

PAM의 보안 설정

 

1. ls /etc/pam.d 명령어를 통해 PAM 구성 파일 확인

모듈 타입 Contron Flag PAM 모듈 파일 설명
auth sufficient pam_rootok.so 사용자가 root라면 인증 성공.
일반 사용자라면 아래 설정에 따라 인증
session required pam_env.so readenv=1 인증을 위한 설정 파일 확인
optional pam_mail.so nopen 로그인 사용자 메일 관련 정보 미노출
required pam_limits.so 사용자 접근 가능한 자원 여부 확인
@include   common-auth common-auth 인증 외부 PAM을
호출 → 일반적인 사용자 인증을 수행
common-account common-account 인증 외부 PAM을 호출
common-session common-session 인증 외부 PAM을 호출

 

2. 관리자 권한으로 사용하기 위한 그룹 생성(wheel)

 

3. 사용자 권한이 없는 테스트 계정 생성(nopamuser)

 

4. 기존 사용자 juwon을 wheel 그룹에 넣기

 

5. 생성한 사용자(nopamuser) 그룹 확인

 

6. vi 편집기를 통해 /etc/pam.d/su 파일(su 명령어 관리 파일)에서 # auth required pam_wheel.so 주석을 삭제

(위 주석을 지우면 wheel 그룹에 사용자들만 su 명령어를 사용 가능)

* su는 사용자가 다른 사용자로 전환하기 위한 명령어임)

 

7. PAM 설정 테스트를 위해 sudo -i 명령어와 passwd 명령어를 사용해 root 계정 비밀번호 설정

 

8. su - root 명령어를 통해 wheel 그룹에 포함된 juwon 사용자가 su 명령어를 통해 root(최고권한) 사용자로 전환 가능

여부 확인 

 

9. su - root 명령어를 통해 whell 그룹에 포함되지 않은 nopamuser 사용자가 su 명령어를 통해 root(최고권한) 사용자로 전환 가능한지 여부 확인 

(su 명령어를 통해 그룹에 속해있지 않은 사용자는 계정 전환을 못하게 함으로써 보안 강화)

 

 

위 실습을 통해 su 명령어의 PAM 구성 파일에서 auth required pam_wheel.so를 활성화하면,

wheel 그룹에 속한 사용자만 su 명령어를 사용할 수 있도록 제한할 수 있음을 확인.

이를 통해 보안성을 강화할 수 있으며,

리눅스의 PAM 구성 파일을 변경하여 비밀번호 정책 등 다양한 보안 설정을 적용할 수 있음

'Security' 카테고리의 다른 글

Security_웹 서버(리눅스) 보안 구축  (0) 2025.01.08
Security_웹 서버 취약점 및 해킹 분석  (1) 2025.01.08
Security_방화벽  (0) 2025.01.07
Security_사용자 계정 보안  (0) 2025.01.07
Security_부트로더(GRUB) 보안  (3) 2025.01.02