InfraPlatform

웹서버 Apache 설치 보안 유의사항 - 시스템 서비스 계정 생성 관련

IT오이시이 2025. 7. 25. 14:00
728x90

 

 

웹서버 Apache 설치 보안 유의사항  - 시스템 서비스 계정 생성 관련

 

🔐 리눅스에서 Apache 등 서비스/시스템 계정의 홈 디렉토리 설정에 따른 보안 영향

Apache와 같은 시스템 서비스 계정(예: apache, www-data)에 대해 홈 디렉토리를 생성할지 여부는 보안과 관리 편의성에 중요한 영향을 미칩니다. 아래에 홈 디렉토리 생성 여부에 따른 취약점, 장단점, 그리고 권장 사항을 정리했습니다.

 

🔧 Apache 서비스 계정의 핵심 역할

  • 🔹 웹 요청 처리 주체: Apache가 실행되는 프로세스의 사용자로서, 파일 시스템 접근과 권한 관리를 담당
  • 🔹 접근 제어: 웹 서버가 시스템의 민감한 파일이나 사용자 영역에 접근하지 못하도록 격리
  • 🔹 보안 분리: 루트 권한을 사용하는 대신, 별도 계정을 통해 서비스가 돌아가도록 함으로써 해킹 피해 최소화

예: /var/www/html/index.html 파일을 Apache가 읽을 수 있는 권한만 보유하게 설정하는 경우, 시스템 전체에 접근할 필요가 없음

 

 

⚠️ 일반적으로는 서비스 계정이 필수인가?

 

항목 Apache 계정 사용 (o) Apache 계정 미사용 (x)
🔐 보안 수준 높음 (권한 분리) 낮음 (직접 접근 가능성 증가)
📦 시스템 안정성 예측 가능 설정 충돌 위험
🛡 침입 대응 로그 추적·분리 가능 사용자 계정과 뒤섞여 식별 어려움
🧑‍💻 운영 효율 정책 기반 관리 가능 비표준 설정으로 유지보수 어려움

💡 서비스를 루트 또는 일반 사용자로 실행할 경우, 단 하나의 취약점으로 시스템 전체가 공격받을 수 있습니다.


 

✅ Apache 시스템 서비스 계정과 홈 디렉토리를 생성하는 경우

 

장점

  • 🗂 로그 저장이나 일시적인 설정 파일 저장 등 일부 서비스 구성에 필요할 수 있음
  • 👨‍🔧 특정 경우 디버깅이나 관리 편의성 증대 (예: 사용자 쉘 접근)

취약점

  • 🚨 홈 디렉토리에 잘못된 권한 설정 시, 다른 사용자가 접근하거나 악성 파일 업로드 가능
  • ⚠ Apache 서비스 계정에 쉘(shell)이 설정되어 있으면 공격자가 시스템 셸을 활용해 침투 가능
  • 📂 .bash_history, .ssh/authorized_keys 등의 파일이 존재하면 악용 가능성 있음

❌ Apache 시스템 서비스 계정과 홈 디렉토리를 생성하지 않는 경우

 

장점

  • 🔒 불필요한 파일 저장 공간을 차단하여 보안 강화
  • 🛡 공격자가 해당 계정을 통해 직접 로그인하거나 작업하기 어렵게 함

취약점

  • 🧩 일부 스크립트나 프로그램이 계정 홈 디렉토리를 참조할 경우 오류 발생
  • ⚙ 일부 설정(로그 등)이 홈 디렉토리에 의존할 경우 문제 발생 가능

 

📌 권장 사항

 

항목 추천 설정 설명
홈 디렉토리 존재 ❌ 없음 대부분의 서비스 계정은 홈 디렉토리 불필요
쉘 설정 /sbin/nologin 또는 /bin/false 서비스 계정의 쉘 접근을 금지함
권한 최소 권한만 설정 홈 디렉토리가 필요한 경우에도 700 등 제한적 권한 유지
계정 용도 서비스 실행만 사용자 로그인을 위한 용도로 사용하지 않음

💡 일반적으로 서비스 계정은 로그인 가능하지 않게 설정하고, 홈 디렉토리를 만들지 않는 것이 가장 안전한 접근 방식입니다. 예외적으로 특정 서비스가 홈 디렉토리를 요구하는 경우, 철저한 권한 관리와 쉘 설정 제어가 필수입니다.

 

 


ㅁ 시스템 설치 유의사항 예시


🧪 실제 예시: Apache 시스템 서비스 계정의 홈 디렉토리 설정

✔️ 예시 1: 보안에 취약한 설정

# 사용자 생성 시 홈 디렉토리 자동 생성
useradd apache

# 쉘 접근 허용
usermod -s /bin/bash apache

# 홈 디렉토리 권한 확인
ls -ld /home/apache
drwxr-xr-x 3 apache apache 4096 Jul 25 13:00 /home/apache

🧨 문제점

  • 홈 디렉토리가 생성되어 있고, 다른 사용자도 접근 가능한 상태 (r-x)
  • /bin/bash 쉘 설정으로 공격자가 직접 로그인 시도 가능
  • .ssh/authorized_keys 또는 .bash_history 파일이 생성되어 있을 경우, 악성 액세스 경로 제공

🔐 예시 2: 보안에 강한 설정

# 홈 디렉토리 없이 사용자 생성
useradd -r -s /sbin/nologin apache

# 사용자 확인
id apache
uid=48(apache) gid=48(apache) groups=48(apache)

장점

  • -r 옵션으로 시스템 계정으로 생성됨
  • 쉘 접근 차단 (/sbin/nologin)
  • 홈 디렉토리가 없어 불필요한 파일 생성 가능성 제거

🛠 추가 팁

  • passwd -l apache로 계정 잠금 처리하면 비밀번호 기반 로그인도 방지됨
  • 필요 시 /etc/sudoers.d/에 명시적으로 권한 제한 설정
  • /etc/passwd에서 해당 계정의 설정을 정기적으로 점검하는 자동 스크립트 구성
  • 로그 모니터링 도구 (예: auditd)를 통해 서비스 계정의 활동 추적

 

728x90
반응형