대상 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적으로 만들어 올리는 글입니다. -