피드로 돌아가기
Dev.toDevOps
원문 읽기
How to Harden a Linux VPS in 30 Minutes (Production Checklist)
새로운 Linux VPS 배포 전 8가지 보안 강화 단계를 30분 내에 완료해 일반적인 공격 90%를 차단
AI 요약
Context
새로 프로비저닝된 Linux VPS는 기본 상태로 배포될 경우 SSH 브루트포스 공격, 루트 계정 직접 접근, 불필요한 포트 노출 등 여러 보안 취약점에 노출된다. 프로덕션 배포 전 최소한의 보안 설정이 필수적이다.
Technical Solution
- 시스템 업데이트:
apt update && apt upgrade -y실행으로 패치 적용 - 루트 계정 제거: 비루트 사용자(deploy) 생성 후 sudo 권한 부여, 모든 애플리케이션을 루트가 아닌 사용자로 실행
- SSH 키 기반 인증: ed25519 알고리즘으로 로컬 키 생성 후
ssh-copy-id로 서버에 배포, PasswordAuthentication 비활성화 및 PermitRootLogin 비활성화 - UFW 방화벽 설정: 기본값 deny incoming 정책 적용, SSH(22), HTTP(80), HTTPS(443) 포트만 allow
- Fail2ban 설정: 600초 내 5회 실패 시 3600초(1시간) 차단, SSH는 3회 실패 시 즉시 차단
- 불필요한 서비스 비활성화: bluetooth, avahi-daemon, cups 등 미사용 서비스 systemctl disable로 제거
- 자동 보안 업데이트: unattended-upgrades 패키지 설치로 정기적인 보안 패치 자동 적용
- 포트 검증:
ss -tlnp명령으로 열린 포트 확인, 22/80/443 이외 포트 제거
Impact
아티클에서 정량적 수치가 제시되지 않았으며, '일반적인 공격 90%를 방지한다'는 정성적 효과만 언급되어 있다.
Key Takeaway
Linux VPS 보안 강화의 핵심은 '기본값 거부 원칙(deny by default)'과 '최소 권한 원칙(principle of least privilege)'의 조합이다. 루트 접근 차단, 키 기반 인증, 브루트포스 차단, 포트 제한 등 8가지 단계를 순서대로 실행하면 대다수 공격 벡터를 사전에 차단할 수 있다.
실천 포인트
프로덕션 Linux 서버를 배포하는 팀에서 이 8단계 체크리스트를 자동화 스크립트(Ansible, Terraform, bash)로 구현하면 배포 시마다 일관된 보안 기준을 30분 내에 적용할 수 있으며, SSH 키 로테이션과 Fail2ban 모니터링을 추가하면 지속적인 보안 태세를 유지할 수 있다.