본문 바로가기
정보보안기사&CISSP관련/System Security

[Day 32] PAM(Pluggable Authentification Modules)

by minimalist_2022 2020. 9. 11.

PAM(Pluggable Authentification Modules)

  • 리눅스 시스템 내에서 각종 서비스 또는 애플리케이션에서 다양한 인증 처리를 위해 제공되는 라이브러리
  • 실행 시 참조하여 사용하는 공유(동적) 라이브러리 형태로 제공됨
  • PAM을 사용하는 애플리케이션은 독자적으로 인증모듈을 개발하지 않고 플러그인 방식의 PAM 모듈을 사용하여 인증함
  • /etc/pam.d : PAM 라이브러리를 이용하는 각 응용 프로그램의 설정 파일이 위치함. 설정파일명은 응용프로그램(서비스)명과 동일함

PAM 활용 사례

root 계정의 원격 접속 제한

  • root 계정은 직접 로그인이 가능하면 공격자의 타겟이 될 수 있으므로 원격 접속을 금지해야 함
  • 대신 아래와 같은 절차로 root 계정 원격 접속
    1. 사용자에게 발급된 별도의 관리자 계정으로 원격 로그인
    2. su 명령어를 통해 root계정으로 로그인
  • /etc/pam.d  디렉토리에 있는 remote 서비스 설정파일에 pam_securetty.so 추가
  • /etc/securetty 파일에서 pts/~ 터미널을 모두 주석처리(또는 제거)
    • pts : telnet 이나 터미널을 통해 접속하는 것
    • tty : 서버에 직접 연결된 콘솔(키보드, 모니터 등)를 통해 로그인하는 것

계정 잠금 임계값 설정

  • 공격자에 의한 Brute Force Attack이나 Dictionary Attack 발생 시 공격시간을 지체시키기 위해 임계값 설정(5회 권장)
  • /etc/pam.d 디렉토리에 있는 system-auth 서비스 설정 파일에 아래와 같이 추가
    • auth required pam_tally2. so deny=5 unlock_time=120
    • deny : 5회 실패 시 계정잠금
    • unlock : 계정잠금 후 계정잠금해제되는 시간(120초)

root 계정 su 제한

  • 권한이 없는 일반 사용자가 su 명령을 사용하여 로그인을 시도하고, Brute Force Attack이나 Password Guessing을 통해  root 권한을 획득할 가능성이 있음
  • 이를 방지하기 위해 su 명령어 사용이 허용된 사용자만 root계정으로 접속할 수 있도록 제한해야 함
  • pam_wheel.so 모듈을 이용하여 설정
  • wheel 그룹에 su 명령어를 사용할 사용자를 추가하고, wheel 그룹 사용자만 su명령어를 허용하도록 /etc/pam.d 디렉토리에 있는 su 서비스 설정파일에 아래와 같이 추가(주석 해제)
    • auth required pam_wheel.so use uid debug

sudo 명령을 이용한 관리자(root) 권한 부여

  • sudo 명령은 다른 사용자 계정 권한으로 명령어를 싱행하고자 할 때 사용하는 명령어
  • su 명령을 사용할 경우 root 비밀번호를 공유해야 한다는 부담이 있기 때문에 권장하지 않음
  • sudo를 통해 관리자 계정으로 실행할 수 있는 명령어를 제한해야 함
  • sudo 명령 설정 파일은 /etc/sudoers 이며, 명령어를 실행할 때 가질 권한의 계정명을 지정하는 방식으로 설정함

※참고

알기사 정보보안실기 교재

'정보보안기사&CISSP관련 > System Security' 카테고리의 다른 글

[Day 54] syslog  (0) 2020.10.03
[Day 33] Linux/Unix Log file  (0) 2020.09.12
[Day 31] TCP Wrapper, hosts.allow, hosts.deny  (0) 2020.09.10
[Day 30] crontab  (0) 2020.09.09
[Day 29] i-node list  (0) 2020.09.08