블로그로 돌아가기
1월 13, 2026가이드

Linux 서버 보안 설정 방법(하드닝)

무단 액세스 및 공격으로부터 Linux 서버를 보호하기 위한 필수 단계.

Linux 서버 보안 설정 방법(하드닝)

인터넷에서 서버를 운영할 때 보안은 가장 중요합니다. 이 가이드는 Linux 서버를 '강화(harden)'하고 일반적인 위협으로부터 보호하기 위한 필수 단계를 다룹니다.

1. 시스템 최신 상태 유지

bash
# Ubuntu/Debian용
sudo apt update && sudo apt upgrade -y

# RHEL / CentOS / Alma / Rocky용
sudo yum update -y

2. SSH 접속 보안

무차별 대입 공격을 방지하기 위해 비밀번호 인증과 root 로그인을 비활성화하세요. /etc/ssh/sshd_config를 편집하세요:

중요: 비밀번호 인증을 비활성화하기 전에 SSH 공개 키가 서버에 성공적으로 추가되었는지(보통 ~/.ssh/authorized_keys), 그리고 비밀번호 없이 로그인할 수 있는지 테스트했는지 확인하세요. 그렇지 않으면 서버에서 완전히 차단됩니다!
bash
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
# 보안 강화를 위해 포트 변경
Port 2222

3. 방화벽 구성

필요한 포트만 허용하세요. SSH 포트를 변경했다면 해당 포트 허용을 잊지 마세요!

bash
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

4. Fail2Ban 설치

Fail2Ban은 악의적인 징후를 보이는 IP를 차단하여 무차별 대입 공격으로부터 보호합니다.

bash
sudo apt install fail2ban -y
# 기본 구성으로도 충분한 경우가 많습니다

5. 일반 사용자 계정 사용

일상적인 작업에 root 계정을 사용하지 마세요. sudo 권한이 있는 새 사용자를 생성하세요:

bash
sudo adduser username
sudo usermod -aG sudo username

보안 체크리스트

  • 비밀번호 대신 SSH 키를 사용하세요
  • 자동 보안 업데이트를 활성화하세요
  • 열린 포트를 정기적으로 감사하세요(netstat -tulpn)
  • 모든 계정에 강력하고 고유한 비밀번호를 사용하세요
  • 시스템 로그를 모니터링하세요(/var/log/auth.log)
  • 사용하지 않는 서비스를 비활성화하고 불필요한 소프트웨어를 제거하세요