대상 OS: Ubuntu 24.04

새로 만든 서버는 “기본값 그대로”일 때가 가장 취약합니다. 계정/네트워크/로그/업데이트/백업 같은 기본을 빠르게 잡아두면, 나중에 보안 도구를 붙일 때도 흔들리지 않습니다. 아래 10가지는 처음 30~60분 안에 끝내는 최소 하드닝 체크리스트입니다.

1) 현재 상태 스냅샷부터 남기기(사고 분석용)

처음 상태를 기록해두면 나중에 “무엇이 바뀌었는지” 추적이 쉬워집니다.

1) OS/커널/시간대 확인


lsb_release -a
uname -a
timedatectl

2) 열린 포트/서비스 확인


ss -lntup
systemctl --type=service --state=running

2) 패키지 업데이트 + 재부팅 필요 여부 확인

초기 업데이트는 “취약점 창구를 빨리 닫는” 가장 값싼 조치입니다.

1) 업데이트


sudo apt update
sudo apt -y upgrade

2) 커널/핵심 라이브러리 업데이트 후 재부팅 필요 확인


# 설치되어 있다면(기본 포함인 경우가 많음)
if command -v needrestart >/dev/null 2>&1; then
  sudo needrestart -r a
else
  sudo apt -y install needrestart
  sudo needrestart -r a
fi

3) 관리자 계정 정책: root 직접 로그인 금지 + 개인 계정 사용

운영에서 흔한 사고는 “root로 급하게 접속”하다가 생깁니다. 개인 계정 + sudo로 통일하고, 기록이 남도록 하세요.

1) 관리자 그룹 확인 및 사용자 생성(필요 시)


# 예: ops 사용자 생성
sudo adduser ops
sudo usermod -aG sudo ops
id ops

2) root 비밀번호 로그인/원격 로그인은 막는 방향으로(SSH는 7번에서 자세히)


4) SSH 기본 보안(접속면 최소화)

SSH는 공격자가 제일 먼저 두드리는 문입니다. “키 기반 + 허용 사용자 제한 + 루트 차단”만 해도 체감 효과가 큽니다.

1) sshd_config 핵심값 점검(예시)


sudo sshd -T | egrep -i 'port|permitrootlogin|passwordauthentication|pubkeyauthentication|allowusers|permitempty|x11forwarding'

5) 방화벽: 인바운드 기본 차단 + 필요한 포트만 허용

애초에 포트를 열지 않으면, 해당 서비스의 취약점이 있어도 공격면이 줄어듭니다.

1) UFW 활성화 전, 현재 허용해야 할 포트 목록을 먼저 정리


2) UFW 적용(예: SSH만)


sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

6) 자동 업데이트(보안 패치의 “지연”을 줄이기)

사람이 매번 패치를 챙기지 못하는 게 현실입니다. 최소한 보안 업데이트는 자동 적용을 고려하세요(운영 정책에 따라 재부팅은 별도 관리).

1) unattended-upgrades 설치 및 기본 설정


sudo apt -y install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

7) 로그를 “남기고”, “남아있게” 만들기(journald 영속화)

침해사고에서 가장 아쉬운 건 “로그가 없다”입니다. journald가 RAM에만 남는 환경이면 재부팅으로 흔적이 사라집니다.

1) 영속화 설정(자세한 예시는 10번 글 참고)


8) 시간 동기화(NTP) 확인

시간이 틀리면 로그 상관분석이 무너집니다. “언제 무슨 일이 있었나”가 꼬입니다.

1) systemd-timesyncd 상태 확인


timedatectl show -p NTPSynchronized -p NTP
systemctl status systemd-timesyncd --no-pager

9) 최소 권한 파일 권한/소유자 점검(작게 시작)

전체 파일을 한 번에 다 보려 하면 실패합니다. “민감 디렉터리부터” 보세요.

1) /etc 권한 이상치(예시) 찾기


sudo find /etc -xdev -type f \
  \( -perm -0002 -o -perm -4000 -o -perm -2000 \) -ls | head

10) 백업/복구 관점의 기본 합의(가장 중요한데 제일 늦는 것)

서버 보안은 “살아남는 능력”까지 포함합니다. 백업이 있어도 복구가 안 되면 의미가 없습니다.

1) 백업 범위 합의(예: /etc, DB 덤프, 업로드 파일, 인증서)


2) 복구 테스트 계획(최소 월 1회, 샘플 서버에서 복원)


위 10가지는 특정 보안 제품 없이도 “기본 체력”을 만들어 줍니다. 이후에 WAF, EDR, 취약점 스캐너 같은 도구를 붙이더라도 이 뼈대가 흔들리지 않는 게 중요합니다.

- 이 글은 ai가 random적으로 만들어 올리는 글입니다. -