새 서버를 개설하면 수분 내에 자동화된 공격 스캔이 시작됩니다. 서버를 받자마자 기본 보안 설정을 마쳐야 합니다. 이 체크리스트대로 따라 하면 5분 안에 기본 보안 환경을 구축할 수 있습니다.
1단계: 시스템 업데이트
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo dnf update -y
2단계: 관리자 계정 생성 (root 직접 사용 금지)
# 새 관리자 계정 생성
sudo adduser admin
# sudo 권한 부여
sudo usermod -aG sudo admin
# 새 계정으로 전환 후 sudo 테스트
su - admin
sudo whoami # root가 출력되어야 함
3단계: SSH 키 인증 설정
로컬 PC에서:
# SSH 키 생성 (이미 있으면 생략)
ssh-keygen -t ed25519 -C "my-server"
# 공개키를 서버에 복사
ssh-copy-id admin@서버IP
서버에서 SSH 설정 강화 (/etc/ssh/sshd_config):
# 루트 로그인 비활성화
PermitRootLogin no
# 비밀번호 로그인 비활성화 (키 인증 확인 후)
PasswordAuthentication no
# 빈 비밀번호 금지
PermitEmptyPasswords no
# 최대 인증 시도 횟수
MaxAuthTries 3
# 접속 타임아웃
LoginGraceTime 30
# 설정 적용 전 새 터미널에서 키 인증 테스트!
sudo systemctl restart sshd
4단계: 방화벽 설정
# UFW 설치 및 활성화
sudo apt install -y ufw
# 기본 정책
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH 허용 (변경했다면 해당 포트)
sudo ufw allow 22/tcp
# 웹 서버 운영 시
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 방화벽 활성화
sudo ufw enable
sudo ufw status
5단계: fail2ban 설치
sudo apt install -y fail2ban
# 기본 설정으로 SSH 보호 시작
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
6단계: 자동 보안 업데이트
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 또는
sudo unattended-upgrade --dry-run # 테스트
7단계: 불필요한 서비스 비활성화
# 실행 중인 서비스 확인
sudo systemctl list-units --type=service --state=running
# 불필요한 서비스 비활성화 예시
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
sudo systemctl disable --now bluetooth
8단계: 시간 동기화 설정
# 시간대 설정
sudo timedatectl set-timezone Asia/Seoul
# NTP 동기화 확인
timedatectl status
sudo systemctl status systemd-timesyncd
9단계: 스왑 설정 (메모리가 적은 서버)
# 1GB 스왑 파일 생성
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 영구 적용
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
10단계: 기본 모니터링 도구 설치
# 유용한 도구 설치
sudo apt install -y \
htop \ # 시스템 모니터
iotop \ # 디스크 I/O 모니터
net-tools \ # netstat 등
curl wget \ # 다운로드
vim \ # 에디터
tmux # 터미널 멀티플렉서
초기 설정 완료 확인
# 방화벽 상태
sudo ufw status
# SSH 설정 확인
sshd -T | grep -E "permitrootlogin|passwordauthentication|maxauthtries"
# fail2ban 상태
sudo fail2ban-client status
# 자동 업데이트 상태
systemctl status unattended-upgrades
# 시스템 업데이트 날짜
sudo apt-get -s upgrade 2>/dev/null | grep "^[0-9]"
보안 점검 요약
✅ 시스템 패키지 최신 상태
✅ root 직접 로그인 차단
✅ SSH 키 인증 설정
✅ 비밀번호 로그인 비활성화
✅ 방화벽 활성화 (필요한 포트만 허용)
✅ fail2ban으로 브루트포스 방어
✅ 자동 보안 업데이트 설정
✅ 불필요한 서비스 비활성화
이 체크리스트를 완료하면 기본적인 서버 보안은 갖춰진 상태입니다. 이후에는 서비스에 맞는 추가 보안 설정(Nginx SSL, MySQL 보안, WordPress 강화 등)을 적용하세요.