서버 보안: PAM 모듈로 접근 제어·인증 강화

반응형
Rocky Linux PAM 모듈을 이용한 서버 보안 조치

Rocky Linux PAM 모듈을 이용한 서버 보안 조치

Rocky Linux 계열 서버에서는 PAM(Pluggable Authentication Modules)을 통해 세밀한 접근제어와 인증 정책을 구현할 수 있습니다. 아래는 대표적인 PAM 보안 강화 구성 예시입니다.

1️⃣ 접근 허용·차단 제어 — pam_access.so

pam_access.so 모듈은 /etc/security/access.conf 파일을 기반으로 로그인 접근을 제어합니다. 특정 IP, 사용자, 그룹 단위로 화이트리스트 또는 블랙리스트를 설정할 수 있습니다.

# 예시: SSH 접속 허용 사용자 정의
/etc/security/access.conf

+ : admin : 192.168.0.10
+ : wheel : 192.168.0.0/24
- : ALL : ALL

위 설정은 admin 계정과 wheel 그룹 사용자만 내부 네트워크에서 SSH 로그인 가능하도록 제한하며, 나머지 사용자는 모두 차단됩니다.

2️⃣ sudo / su 권한 제한

pam_wheel.so를 사용하면 특정 그룹 사용자만 su 또는 sudo 명령을 사용할 수 있도록 제한할 수 있습니다.

# /etc/pam.d/su 예시
auth required pam_wheel.so use_uid group=wheel

# /etc/pam.d/sudo 예시
auth required pam_wheel.so group=sudo

sudo/su 명령은 wheel 또는 sudo 그룹에 속한 사용자만 사용할 수 있으며, 그 외 사용자는 즉시 접근이 거부됩니다.

3️⃣ 로그인 시도 제한 — pam_tally2.so

pam_tally2.so를 이용하면 로그인 실패 횟수를 기반으로 계정 잠금을 설정할 수 있습니다.

# /etc/pam.d/sshd
auth required pam_tally2.so deny=5 unlock_time=600

# 로그인 실패 5회 시 10분 동안 계정 잠금

4️⃣ 근무시간/요일 기반 접근제어 — pam_time.so

pam_time.so 모듈은 근무시간이나 특정 요일에 따라 로그인 허용 여부를 제어할 수 있습니다.

# /etc/security/time.conf 예시
login ; * ; admin ; Wk0800-1800
# admin 사용자는 평일 08:00~18:00에만 로그인 가능

# /etc/pam.d/login
account required pam_time.so

5️⃣ root 직접 로그인 차단

/etc/ssh/sshd_config 파일에서 root 로그인을 직접 차단하고, 관리자 계정으로 로그인 후 sudo를 사용하는 것이 권장됩니다.

PermitRootLogin no
AllowUsers admin wheel

6️⃣ 추가 PAM 모듈 및 관리 팁

  • pam_listfile.so — 특정 사용자/그룹을 파일 기반으로 차단
  • pam_env.so — 로그인 시 환경 변수 제어
  • pam_exec.so — 로그인 시 스크립트 실행 (감사 로깅 등)
  • pam_faillock.so — 계정 잠금/차단 강화 기능

이러한 PAM 구성을 통해 SSH, 콘솔, su, sudo, cron 등 다양한 인증 경로를 제어할 수 있습니다. 구성 변경 시 systemctl restart sshd 또는 authselect apply-changes 명령으로 즉시 반영할 수 있습니다.

반응형
LIST