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
반응형
'InfraPlatform' 카테고리의 다른 글
| 파일시스템-RAID-ZFS - Zettabyte File System (1) | 2025.08.12 |
|---|---|
| 금융산업에서 ITIL과 ISMS 관련 전략과 관리 방안 (0) | 2025.08.11 |
| 통합 파일시스템 관리 ZFS LVM RAID (0) | 2025.08.06 |
| Redis vs HazleCast 개발 소스 비교 (0) | 2025.07.21 |
| APT(Advanced Persistent Threat) 공격 과 NTP 취약점 공격 (3) | 2025.07.02 |
| [리눅스] Local YUM Repository 구성 - RHEL, CentOS : cdrom 마운트 yum dnf 명령 사용 (2) | 2025.06.19 |
| RHEL과 SUSE Multi-Linux Support로 전환하여 비용절감 (10) | 2025.05.17 |