1. Rocky Linux 초기 설치 및 운영 기본 정책¶
Rocky Linux (9.6 이상) minimal 설치 시 1TB SSD 단일 디스크를 OS 전용으로 사용하는 표준 파티션 구성임.
Gateway + 다중 서비스(Node.js / Next.js / DB / Redis)가 동시에 운영되는 서버 환경을 전제로 설계함.
운영 안정성, 장애 격리, 디스크 관리 편의성을 최우선 목표로 함.
파일시스템 선택 기준¶
- 운영 서버 표준에 따라 XFS를 기본 파일시스템으로 사용함.
- 로그 증가, 대용량 파일, DB I/O에 유리함.
- /boot 영역만 예외적으로 ext4 사용함.
/etc/fstab 예시 표기 규칙¶
이 문서의 /etc/fstab 예시는 다음 기준으로 읽음.
- device / LVM / UUID 기반 마운트는
SOURCE값이 서버마다 다를 수 있으므로[SOURCE]placeholder 를 사용함 tmpfs,proc같은 pseudo filesystem 은tmpfs,proc를 그대로 사용함- bind mount 는 source path 자체를 그대로 사용함
[SOURCE] 확인 방법:
findmnt -no SOURCE /home
findmnt -no SOURCE /var
lsblk -f
예:
findmnt -no SOURCE /home
/dev/mapper/rl-home
위 결과라면 /etc/fstab 에는 다음과 같이 넣음.
/dev/mapper/rl-home /home xfs defaults,nodev,nosuid 0 0
반대로 아래 항목들은 [SOURCE] 로 치환하지 않음.
tmpfs /tmp tmpfs defaults,nodev,nosuid,noexec,mode=1777 0 0
tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
/var/tmp /var/tmp none bind 0 0
/boot¶
- 크기: 1024 MiB
- 타입: 표준 파티션
- 파일시스템: ext4
- 설명:
- 커널 및 부트 로더 영역임.
- 단순성과 안정성을 위해 ext4 사용함.
/boot/efi¶
- 크기: 600 MiB
- 타입: 표준 파티션
- 파일시스템: EFI System Partition (자동으로 vfat)
- 설명:
- UEFI 부팅을 위한 필수 파티션임.
/swap¶
- 크기: 8~16 GiB
- 타입: LVM
- 파일시스템: swap
- 설명:
- OOM 방지 및 메모리 보호 목적임.
- 메모리 32GB 기준으로 과하지 않은 최소 스왑만 사용함.
- Memory × 2 방식은 현대 서버 환경에서는 과도하므로 사용하지 않음.
/¶
- 크기: 200 GiB
- 타입: LVM
- 파일시스템: XFS
- 설명:
- OS 및 기본 시스템 파일 전용 영역임.
- 서비스 데이터와 명확히 분리하여 시스템 안정성을 확보함.
/home¶
- 크기: 200 GiB
- 타입: LVM
- 파일시스템: XFS
- 설명:
- 운영자 및 관리 사용자 홈 디렉토리임.
- 소스 코드 저장, 원격 접속 개발, 서버 직접 빌드가 필요한 경우의 작업 영역으로 사용할 수 있음.
- 서비스의 최종 실행 경로는
/var/www로 분리함. nodev,nosuid옵션은 기본 적용함.noexec는/home을 작업 경로로 사용하지 않는 서버에서만 적용함.
/home 을 작업 경로로 사용하지 않는 경우¶
[SOURCE] /home xfs defaults,nodev,nosuid,noexec 0 0
/home 을 작업 경로로 사용하는 경우¶
[SOURCE] /home xfs defaults,nodev,nosuid 0 0
/var¶
- 크기: 나머지 전체 용량
- 타입: LVM
- 파일시스템: XFS
- 설명:
- 주요 서비스 운영 영역임.
- 다음 데이터가 위치함:
- Node.js / Next.js 실행 디렉토리
- DB 데이터
- Redis 데이터
- 로그 파일
- 캐시 및 런타임 데이터
- 디스크 사용량 증가 가능성이 가장 높은 영역이므로 고정 용량으로 충분히 확보함.
- 디스크 Full 상황에서도 OS 영역을 보호하기 위해 반드시 분리함.
추가 보안 및 운영 권장 사항¶
- /tmp 는 tmpfs + noexec 옵션으로 마운트함.
- 서비스 실행은 /var 하위에서만 수행함.
- /home 을 작업 경로로 사용하지 않는 서버라면 noexec 적용을 권장함.
- SELinux 는 Enforcing 모드를 유지함.
2. 시스템 업데이트 정책¶
본 서버는 운영 안정성을 우선으로 하여 보안 업데이트 자동 적용 + 전체 업데이트 수동 적용 정책을 사용함.
2.1 보안 업데이트 자동 적용¶
Rocky Linux 9에서는 dnf-automatic을 사용하여
보안 패치만 자동으로 다운로드 및 적용함.
2.1.1. dnf-automatic 설치¶
sudo dnf install -y dnf-automatic
2.1.2. 설정 파일 수정¶
sudo vi /etc/dnf/automatic.conf
[commands] 블록을 다음과 같이 설정함.
[commands]
upgrade_type = security
random_sleep = 0
download_updates = yes
apply_updates = yes
reboot = no
- 보안 업데이트만 자동 적용함.
- 자동 재부팅은 수행하지 않음.
2.1.3. 타이머 활성화¶
sudo systemctl enable --now dnf-automatic.timer
상태 확인:
systemctl status dnf-automatic.timer
systemctl list-timers | grep dnf
2.2 전체 패키지 수동 업데이트¶
전체 패키지 업데이트는 관리자가 직접 수행함.
sudo dnf update
또는
sudo dnf upgrade
Rocky Linux 9 기준으로
dnf update와dnf upgrade는 동일하게 동작함.
2.3 재부팅 필요 여부 확인¶
커널 또는 핵심 라이브러리 업데이트 후 재부팅 필요 여부를 확인함.
sudo needs-restarting -r
출력 결과가 있을 경우, 운영 일정에 맞춰 재부팅을 수행함.
2.4 운영 원칙 요약¶
- 보안 패치는 자동 적용함.
- 커널 재부팅은 수동으로 수행함.
- 전체 업데이트는 점검 후 수동 실행함.
- 주기적으로 보안 업데이트 현황을 점검함.
sudo dnf updateinfo list security
3. 기본 패키지 최소 구성¶
Rocky Linux minimal 설치 이후 운영 및 보안 설정을 위해 최소 필수 패키지만 설치함.
설치 대상 패키지¶
| 패키지 | 용도 |
|---|---|
| htop | 프로세스 모니터링 |
| net-tools | netstat 등 네트워크 점검 |
| policycoreutils-python-utils | SELinux 관리 도구 |
EPEL 저장소 추가¶
sudo dnf install -y epel-release
메타데이터 갱신¶
sudo dnf makecache
패키지 설치¶
sudo dnf install -y htop net-tools policycoreutils-python-utils
설치 확인¶
which htop netstat semanage
정상 경로가 출력되면 설치 완료 상태임.
4. /tmp tmpfs 적용 (보안 및 성능 강화)¶
운영 서버 보안 강화를 위해 /tmp 디렉토리를 디스크 기반이 아닌 메모리(tmpfs) 기반으로 운영함.
이를 통해 임시 파일을 통한 공격 지속성(persistence)을 차단하고, 디스크 오염 및 불필요한 I/O를 방지함.
적용 정책¶
/tmp는 tmpfs로 마운트함- 실행 파일 실행을 차단함 (
noexec) - setuid 비활성화 (
nosuid) - 디바이스 파일 생성 차단 (
nodev) - sticky bit 유지 (
mode=1777) - tmpfs 최대 크기는 메모리의 50%를 커널이 자동 관리하도록 설정함
- 일부 패키지 또는 컴파일 과정에서 /tmp 실행이 필요한 경우 예외 정책을 검토함.
/etc/fstab 설정¶
sudo vi /etc/fstab
파일 하단에 다음 항목을 추가함.
tmpfs /tmp tmpfs defaults,nodev,nosuid,noexec,mode=1777 0 0
size옵션을 명시하지 않아 시스템 메모리(32GB 기준)의 최대 50%까지 동적으로 사용 가능함.
설정 적용¶
sudo systemctl daemon-reload
sudo mount -a
적용 확인¶
sudo findmnt /tmp
sudo df -h /tmp
정상 적용 시 /tmp의 파일시스템 타입이 tmpfs로 표시되어야 함.
운영 시 주의사항¶
- 대용량 임시 파일이 필요한 경우
/var/tmp사용을 권장함. /tmp는 재부팅 시 자동 초기화됨.- 실행 파일은
/var하위에서만 운영함.
5. /home mount 옵션 적용 기준¶
/home 은 운영자 및 관리 사용자 작업 영역임.
다만 서버 운영 방식에 따라 noexec 적용 여부가 달라질 수 있으므로
무조건 noexec를 넣지 않고, 작업 방식에 따라 구분 적용함.
기본 원칙¶
- 서비스의 최종 실행 경로는
/var하위로 유지함 /home/[User]/[ProjectName]를 서버 직접 빌드, 원격 접속 개발, 검증 작업 경로로 사용할 수 있음/home을 단순 홈 디렉토리/소스 보관 영역으로만 쓰는 서버라면noexec적용 권장
/home 을 작업 경로로 사용하지 않는 경우¶
적용 목적:
- 침해 발생 시 lateral movement 차단
- 사용자 영역에서 악성 바이너리 실행 방지
- 실행 경로와 작업 경로 강제 분리
적용 목표 옵션:
[SOURCE] /home xfs defaults,nodev,nosuid,noexec 0 0
/home 을 작업 경로로 사용하는 경우¶
다음 중 하나라도 해당하면 /home noexec 를 적용하지 않음.
- 서버에서 직접 build 가 필요한 경우
- 원격으로 접속해서 코드 수정/검증을 수행하는 경우
- 위 두 작업을 함께 수행하는 경우
적용 목표 옵션:
[SOURCE] /home xfs defaults,nodev,nosuid 0 0
이 경우에도:
nodev,nosuid는 유지함- 실제 서비스 실행은
/var/www기준으로 유지함 /var/www에서 직접 개발/빌드하지 않음
⚠️ 적용 전 반드시 디바이스 확인¶
서버마다 LVM 볼륨 그룹(VG) 이름이 다를 수 있으므로 fstab에 고정 경로를 그대로 사용하지 않음.
먼저 현재 /home의 실제 디바이스를 확인함.
lsblk -f
또는
findmnt /home
예시 출력:
TARGET SOURCE FSTYPE OPTIONS
/home /dev/mapper/rl-home xfs rw,relatime
위 출력에서 SOURCE 값이 fstab에 사용할 실제 디바이스임.
/etc/fstab 설정 수정¶
sudo vi /etc/fstab
lsblk -f 또는 findmnt /home 로 확인한 SOURCE 값을 적용해야 함.
경우 1) /home 을 작업 경로로 사용하지 않는 서버¶
[SOURCE] /home xfs defaults,nodev,nosuid,noexec 0 0
경우 2) /home 을 작업 경로로 사용하는 서버¶
[SOURCE] /home xfs defaults,nodev,nosuid 0 0
설정 적용¶
sudo systemctl daemon-reload
sudo mount -o remount /home
적용 확인¶
sudo findmnt /home
작업 경로로 사용하지 않는 서버라면 다음 값이 포함되어야 함.
nodev,nosuid,noexec
작업 경로로 사용하는 서버라면 다음 값이 포함되어야 함.
nodev,nosuid
6. /var mount 보안 옵션 강화¶
운영 서버 보안 강화를 위해 /var에는 다음 mount 옵션을 적용함.
- nodev
- nosuid
noexec는 적용하지 않음 (서비스 실행 경로이기 때문임).
적용 방법¶
먼저 /var의 실제 디바이스 확인:
lsblk -f
또는
findmnt /var
/etc/fstab 설정 수정¶
sudo vi /etc/fstab
lsblk -f 로 확인한 SOURCE 값을 적용해야함.
[SOURCE] /var xfs defaults,nodev,nosuid 0 0
설정 적용¶
sudo systemctl daemon-reload
sudo mount -o remount /var
적용 확인¶
sudo findmnt /var
옵션에 다음 값이 포함되어야 함.
nodev,nosuid
운영 시 주의사항¶
/home에서는 실행 파일 실행이 차단됨.- git, 코드 수정 등은 정상 동작함.
- 일시적으로 실행이 필요한 경우에만
remount,exec사용을 검토함.