VPS 보안 강화: 20분이면 끝나는 체크리스트
이 가이드는 영어에서 번역되었습니다. 링크된 일부 페이지는 영어로만 제공됩니다.
기회주의적 공격 대부분을 막아 주는 구체적인 단계.
서버를 완벽하게 안전하게 만들 수는 없습니다. 하지만 약 20분 만에 매력 없는 표적으로 만들 수는 있으며, 이것만으로 자동화된 공격 대부분을 피할 수 있습니다.
1. 키 전용 SSH
SSH 키와 접근에서 자세히 다룹니다. 가장 가치가 큰 단일 단계입니다. 비밀번호 무차별 대입은 공개 인터넷에서 가장 흔한 침입 방법이며, 이것으로 차단할 수 있습니다.
PasswordAuthentication no
PermitRootLogin prohibit-password2. 기본 거부 방화벽
실제로 제공하는 것만 허용하세요. Debian/Ubuntu의 경우:
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH — see the warning below
ufw allow 80,443/tcp # web
ufw enable
ufw status verboseRHEL 계열에서는 firewalld를 사용합니다.
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload경고: SSH 세션을 연 상태에서 방화벽을 켜고, 연결을 끊기 전에 SSH가 허용되어 있는지 확인하세요. SSH 포트를 바꾸는 경우 새 포트를 먼저 허용하세요. 항상 허용해야 하는 저희 프라이빗 메시 인터페이스를 포함한 자세한 내용은 방화벽 기본을 참고하세요.
3. 자동 보안 업데이트
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades # choose yes
# verify:
systemctl status unattended-upgrades --no-pagerRHEL 계열에서는 dnf-automatic이 같은 역할을 합니다. 자동 보안 패치는 취약점이 공개된 뒤 악용되기까지의 틈(실제로는 몇 시간인 경우가 많음)을 막아 줍니다.
4. Fail2ban
로그인 실패가 반복되면 해당 IP를 차단하여 끝없는 무차별 대입 시도를 막다른 길로 만듭니다. Fail2ban 기본을 참고하세요.
apt install -y fail2ban
systemctl enable --now fail2ban5. 쓰지 않는 것은 끄기
대기 중인 서비스는 모두 잠재적인 침입 경로입니다.
ss -tulpn # what is listening, and who owns it
systemctl --type=service --state=running # what is running요청하지 않은 것은 중지하고 비활성화하세요. 최소한의 서버가 안전한 서버입니다.
6. 서비스는 권한 없는 사용자로 실행
데이터베이스, 웹 앱, 워커는 root로 실행하면 안 됩니다. 대부분의 패키지는 전용 서비스 사용자를 자동으로 만들어 주므로 그것을 사용하세요. 직접 유닛 파일을 작성한다면 User=와 Group=을 명시하세요.
7. 비밀 정보 보호
비밀 정보를 git에 커밋하지 마세요.
chmod 600을 적용한 환경 파일을 사용하세요.비밀번호나 키가 들어 있는 설정 파일을 모두가 읽을 수 있게 두지 마세요.
공유 관리자 자격 증명 하나보다 서비스별 자격 증명을 선호하세요.
8. 되돌아올 길 확보
필요해지기 전에 /panel/vps의 복구 콘솔이 작동하는지 확인하세요.
위험한 변경 전에 스냅샷을 만드세요 — 크기 조정, 스냅샷, 재설치를 참고하세요.
평소 쓰는 노트북 이외의 장소에도 SSH 키를 최소 하나 보관하세요.
9. 모니터링
한 번도 들여다보지 않는 서버는 지킬 수 없습니다. 모니터링 점검을 추가하고 가끔 로그를 읽으세요. 방법은 로그 읽기에서 알려 줍니다.
선택 사항: 침입 탐지
가치가 높은 호스트에는 CrowdSec(크라우드소싱 차단, MIT 라이선스)과 Wazuh(호스트 침입 탐지)가 실질적인 깊이를 더해 줍니다. 둘 다 앱 호스팅 가이드에 문서화되어 있습니다.
관련 글