treeru.com
TOOL

리눅스 서버 신규 설치 체크리스트 — BIOS부터 SMART 알림까지 8단계

2026-03-04
Treeru

새 서버를 설치하면 OS만 깔고 바로 서비스를 올리는 경우가 많습니다. 하지만 정전 후 자동 부팅이 안 되면 새벽에 출근해야 하고,커널 패닉이 발생하면 모니터를 연결해야 하고,디스크 고장을 감지 못하면 데이터를 잃습니다. 이 글에서는 16대의 서버에 동일하게 적용한 8단계 체크리스트를 공유합니다.

8단계

설정 체크리스트

16대

서버 적용 완료

10초

패닉 시 재부팅

1GB

로그 보존 한도

왜 체크리스트가 필요한가

서버 1대를 설치할 때는 기억에 의존해도 괜찮습니다. 하지만 여러 대를 운영하면 "이 서버는 SSH 키를 등록했나?", "journald 설정은 했나?" 같은 의문이 생깁니다. 실제로 설정을 빠뜨린 서버에서 문제가 발생한 적이 있습니다.

설정을 빠뜨리면 생기는 일

BIOS 자동 부팅정전 후 서버가 꺼진 채로 방치 → 새벽 출근
SSH 키 인증비밀번호 인증 노출 → 브루트포스 공격 대상
kernel.panic커널 패닉 발생 시 멈춤 → 모니터 연결 필요
journald 영구 보존재부팅 시 로그 소실 → 장애 원인 추적 불가
smartmontools디스크 불량 감지 못함 → 데이터 손실

체크리스트가 있으면 누가 설치하든 동일한 품질이 보장됩니다. 한 번 만들어두면 서버가 100대로 늘어도 같은 절차를 적용할 수 있습니다.

1BIOS — 정전 후 자동 부팅

서버는 모니터 없이 운영하는 것이 기본입니다. 정전이 발생했을 때 전원이 복구되면 자동으로 부팅되어야 합니다. 이 설정을 하지 않으면 정전 후 현장에 가서 전원 버튼을 눌러야 합니다.

BIOS 설정 항목

BIOS → Power Management (또는 Advanced → ACPI)

  Restore on AC Power Loss → [Power On]
  ─────────────────────────────────────
  Power Off  : 정전 후 꺼진 상태 유지 (기본값)
  Power On   : 정전 후 자동 부팅 ✅
  Last State : 정전 전 상태 복원

⚠️ 메뉴 이름은 메인보드 제조사마다 다릅니다. "AC Power Recovery", "After Power Failure", "Restore on AC Power Loss" 등으로 표기됩니다. 반드시 Power On으로 설정하세요.

미니 PC(N100 등)는 BIOS 접근이 번거로울 수 있으므로, 초기 설치 시 반드시 확인하는 것이 좋습니다. 이 설정 하나로 새벽 정전 시 원격 복구가 가능해집니다.

2SSH 서버 설치

Ubuntu Desktop 버전에는 SSH 서버가 기본 설치되어 있지 않습니다. Server 버전이라도 설치 시 체크를 놓칠 수 있으므로 확인이 필요합니다.

SSH 서버 설치 및 활성화

# 설치
sudo apt update && sudo apt install -y openssh-server

# 서비스 시작 및 부팅 시 자동 시작
sudo systemctl enable --now ssh

# 상태 확인
sudo systemctl status ssh
# ● ssh.service - OpenBSD Secure Shell server
#   Active: active (running)

SSH 서버가 실행되면 다른 PC에서 ssh user@서버IP로 접속할 수 있습니다. 다음 단계에서 비밀번호 대신 키 인증으로 전환합니다.

3SSH 키 인증 등록

비밀번호 인증은 브루트포스 공격에 취약합니다.ed25519 키 인증으로 전환하면 비밀번호 없이 안전하게 접속할 수 있습니다. 자세한 과정은 SSH 키 인증 다중 서버 관리에서 다루고 있으며, 여기서는 핵심 명령만 정리합니다.

관리 PC에서 실행

# 키 생성 (이미 있다면 생략)
ssh-keygen -t ed25519 -C "admin@office"

# 새 서버에 공개키 등록
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@새서버IP

새 서버에서 비밀번호 인증 비활성화

# /etc/ssh/sshd_config 수정
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' \
  /etc/ssh/sshd_config

# SSH 재시작
sudo systemctl restart ssh

💡 비밀번호 인증을 끄기 전에 키 인증으로 접속이 되는지 반드시 확인하세요. 키가 등록되지 않은 상태에서 비밀번호를 끄면 접속이 불가능해집니다.

4SSH config 별칭 설정

서버가 여러 대면 IP 주소를 외우기 어렵습니다.~/.ssh/config 파일에 별칭을 등록하면 ssh web-server처럼 이름으로 접속할 수 있습니다.

~/.ssh/config 예시

# 관리 PC의 ~/.ssh/config

Host web-server
    HostName 10.0.10.10
    User admin
    IdentityFile ~/.ssh/id_ed25519

Host gpu-server
    HostName 10.0.10.20
    User admin
    IdentityFile ~/.ssh/id_ed25519

Host backup-server
    HostName 10.0.10.30
    User admin
    IdentityFile ~/.ssh/id_ed25519

이 설정은 Linux, macOS, Windows(OpenSSH) 모두 동일하게 적용됩니다. Windows의 경우 C:\Users\사용자\.ssh\config 경로에 같은 형식으로 작성하면 됩니다.

OSconfig 경로비고
Linux / macOS~/.ssh/config기본 제공
Windows 10+%USERPROFILE%\.ssh\configOpenSSH 내장
Windows (PuTTY)세션 저장으로 대체

5kernel.panic 자동 재부팅

커널 패닉이 발생하면 서버는 기본적으로 멈춘 상태로 대기합니다. 모니터를 연결하고 수동으로 재부팅해야 하는데, 원격 서버라면 큰 문제가 됩니다.kernel.panic 파라미터를 설정하면 패닉 발생 시 자동으로 재부팅됩니다.

설정 방법

# /etc/sysctl.conf에 추가
echo "kernel.panic = 10" | sudo tee -a /etc/sysctl.conf

# 즉시 적용
sudo sysctl -p

# 확인
sysctl kernel.panic
# kernel.panic = 10
동작적합한 환경
0 (기본)재부팅하지 않음 (멈춤)개발 환경 (디버깅 필요)
10 (권장)10초 후 자동 재부팅서버 환경 (가동 시간 우선)
3030초 후 자동 재부팅크래시 덤프 수집 필요 시

💡 kernel.panic = 10은 "커널 패닉 발생 시 10초 후 재부팅"을 의미합니다. 10초면 로그가 디스크에 기록될 시간이 충분하면서도 빠르게 복구됩니다.

6journald 영구 보존

Ubuntu의 systemd-journald는 기본적으로 volatile(휘발성) 모드입니다. 재부팅하면 모든 로그가 사라집니다. 장애가 발생해서 재부팅한 후 "재부팅 전에 무슨 일이 있었지?"를 확인할 수 없는 것입니다.

영구 보존 설정

# 로그 디렉터리 생성
sudo mkdir -p /var/log/journal

# /etc/systemd/journald.conf 수정
sudo tee /etc/systemd/journald.conf > /dev/null << 'EOF'
[Journal]
Storage=persistent
SystemMaxUse=1G
SystemMaxFileSize=100M
MaxRetentionSec=3month
EOF

# journald 재시작
sudo systemctl restart systemd-journald

# 확인: 이전 부팅 로그 목록
journalctl --list-boots
설정설명
Storagepersistent디스크에 영구 저장
SystemMaxUse1G전체 로그 최대 크기
SystemMaxFileSize100M개별 로그 파일 최대 크기
MaxRetentionSec3month3개월 이상 된 로그 자동 삭제

SystemMaxUse=1G로 제한하면 디스크를 과도하게 사용하는 것을 방지하면서도 최근 3개월의 로그를 안전하게 보존할 수 있습니다.

7smartmontools + 이메일 알림

디스크 고장은 예고 없이 찾아옵니다. 하지만 SMART(Self-Monitoring, Analysis and Reporting Technology)를 모니터링하면 고장 징후를 미리 감지할 수 있습니다.smartmontools는 자동으로 SMART를 점검하고, 이상 시 이메일로 알려줍니다.

설치 및 설정

# 설치
sudo apt install -y smartmontools

# SMART 지원 확인
sudo smartctl -i /dev/sda
# SMART support is: Available
# SMART support is: Enabled

# 현재 건강 상태 확인
sudo smartctl -H /dev/sda
# SMART overall-health self-assessment test result: PASSED

/etc/smartd.conf 설정

# /etc/smartd.conf 예시
# DEVICESCAN으로 모든 디스크 자동 감지

DEVICESCAN \
  -d removable \
  -n standby \
  -s (S/../../1/02|L/../../5/03) \
  -W 0,45,50 \
  -m admin@example.com \
  -M exec /usr/share/smartmontools/smartd_warning.sh

# -s : Short test 매주 월요일 02시, Long test 매주 금요일 03시
# -W 0,45,50 : 온도 45°C 경고, 50°C 위험
# -m : 알림 수신 이메일
# -M exec : 알림 실행 스크립트

서비스 활성화

# smartd 서비스 시작
sudo systemctl enable --now smartd

# 상태 확인
sudo systemctl status smartd
# ● smartd.service - Self Monitoring and Reporting Technology
#   Active: active (running)
테스트 유형주기소요 시간검사 범위
Short self-test매주 월요일~2분기본 읽기/전기적 검사
Long self-test매주 금요일~2시간 (용량에 비례)전체 표면 스캔

⚠️ NVMe SSD는 smartctl -i /dev/nvme0으로 확인합니다. NVMe는 SMART 속성 이름이 SATA와 다르므로 별도로 임계값을 설정해야 합니다. 이메일 알림을 위해서는 mailutils + SMTP relay 설정이 필요합니다.

8원커맨드 검증

7단계를 모두 마쳤다면, 모든 설정이 올바르게 적용되었는지 한 번에 확인할 수 있는 검증 스크립트를 실행합니다. 사람이 하나씩 확인하는 것보다 스크립트로 일괄 점검하는 것이 빠르고 정확합니다.

server-check.sh

#!/bin/bash
# server-check.sh — 서버 초기 설정 검증 스크립트

echo "=== 서버 초기 설정 검증 ==="
echo ""

# 1. SSH 서비스
echo -n "[1] SSH 서비스: "
systemctl is-active ssh > /dev/null 2>&1 && echo "✅ 실행 중" || echo "❌ 미실행"

# 2. 비밀번호 인증
echo -n "[2] 비밀번호 인증: "
grep -q "^PasswordAuthentication no" /etc/ssh/sshd_config && \
  echo "✅ 비활성화" || echo "⚠️  활성 상태"

# 3. kernel.panic
echo -n "[3] kernel.panic: "
val=$(sysctl -n kernel.panic 2>/dev/null)
[ "$val" -gt 0 ] 2>/dev/null && \
  echo "✅ ${val}초 후 재부팅" || echo "❌ 미설정 (0)"

# 4. journald 영구 보존
echo -n "[4] journald 보존: "
[ -d /var/log/journal ] && echo "✅ persistent" || echo "❌ volatile"

# 5. smartd 서비스
echo -n "[5] smartd 서비스: "
systemctl is-active smartd > /dev/null 2>&1 && echo "✅ 실행 중" || echo "❌ 미실행"

echo ""
echo "=== 검증 완료 ==="

실행 결과 예시

=== 서버 초기 설정 검증 ===

[1] SSH 서비스: ✅ 실행 중
[2] 비밀번호 인증: ✅ 비활성화
[3] kernel.panic: ✅ 10초 후 재부팅
[4] journald 보존: ✅ persistent
[5] smartd 서비스: ✅ 실행 중

=== 검증 완료 ===

이 스크립트를 새 서버에 scp로 전송하고 실행하면 됩니다. ❌가 하나라도 있으면 해당 단계를 다시 확인합니다. 여러 대의 서버를 점검할 때는 SSH config와 함께 사용하면 ssh web-server 'bash -s' < server-check.sh 형태로 원격 일괄 점검이 가능합니다.

체크리스트 템플릿

아래 표를 복사해서 새 서버를 설치할 때마다 사용하세요. 모든 항목에 ✅가 채워지면 서버가 운영 준비 완료 상태입니다.

#항목확인 명령 / 방법기대 결과
1BIOS 자동 부팅BIOS → AC Power LossPower On
2SSH 서버systemctl is-active sshactive
3SSH 키 인증ssh 별칭 (비밀번호 없이)접속 성공
4비밀번호 인증 비활성화grep PasswordAuthentication /etc/ssh/sshd_configno
5SSH config 별칭~/.ssh/config 에 Host 추가이름으로 접속 가능
6kernel.panicsysctl kernel.panic10
7journald 영구 보존ls /var/log/journal디렉터리 존재
8smartmontoolssystemctl is-active smartdactive

💡 이 체크리스트는 최소한의 필수 설정입니다. 서버 역할에 따라 방화벽(ufw), fail2ban, 시간 동기화(chrony), 스왑 설정 등을 추가할 수 있습니다. 모니터링까지 필요하다면 Grafana + Prometheus 통합 모니터링을 함께 설정하세요.

16대 서버에 이 체크리스트를 적용한 결과, 정전 후 자동 복구, 커널 패닉 자동 재부팅, 디스크 이상 사전 감지가 모두 정상 동작하는 것을 확인했습니다. 서버를 새로 추가할 때마다 같은 절차를 반복하면 일관된 품질의 인프라를 유지할 수 있습니다.

T

Treeru

웹 개발, IT 인프라, AI 솔루션 분야의 실무 인사이트를 공유합니다. 기업의 디지털 전환을 돕는 IT 파트너, Treeru입니다.

공유

댓글

(4개)
4.63/ 5

로그인하면 댓글을 작성할 수 있습니다.

2026-03-14
555.0

마지막 원커맨드 검증 스크립트가 핵심이네요. 팀원이 설정을 빠뜨려도 한 번에 잡을 수 있어서 실무에 바로 적용했습니다.

2026-03-10
454.0

BIOS에서 AC Power Loss 설정이 이렇게 중요한 줄 몰랐습니다. 새벽에 정전 나면 서버가 꺼진 채로 있을 뻔했네요.

2026-03-07
4.554.5

16대 서버에 실제 적용해본 경험이라 신뢰가 갑니다. journald 영구 보존은 재부팅 후 로그 추적에 필수인데 놓치기 쉽죠.

관련 글

© 2026 TreeRU. All rights reserved.

본 콘텐츠의 저작권은 TreeRU에 있으며, 출처를 밝히지 않은 무단 전재 및 재배포를 금합니다. 인용 시 출처(treeru.com)를 반드시 명시해 주세요.