운영 서버의 보안은 「한 번 강화 → 끝」이 아니라 「지속 점검」.
기본 체크리스트로 시작.
사용자·인증.
1) root 직접 로그인 비활성화 — sshd_config의 PermitRootLogin no.
2) 비밀번호 인증 끄기 — PasswordAuthentication no(SSH 키만).
3) 강한 비밀번호 정책 — pam_pwquality.
4) 정기적인 사용자 점검 — 안 쓰는 계정 삭제.
5) sudo 권한 최소 원칙.
네트워크.
1) 방화벽 활성화(ufw·firewalld) — 필요한 포트만.
2) SSH 포트 변경(약간의 효과).
3) fail2ban — 무차별 대입 자동 차단.
4) 외부 노출 최소 — 내부 서비스는 LAN만, 또는 VPN.
5) HTTPS 강제 — 평문 통신 안 함.
업데이트·패치.
1) sudo apt update && upgrade 정기.
2) unattended-upgrades — 보안 패치 자동.
3) 알림 — 새 보안 업데이트 알림.
4) EOL 버전 사용 안 함 — 지원 종료된 OS·SW 즉시 교체.
감사·모니터링.
1) auth.log·journalctl 정기 검토.
2) auditd로 중요 파일 변경 추적.
3) Sentry·Sentry로 에러 실시간 알림.
4) 로그를 외부 시스템에 (해킹 시 로그 변조 방지).
5) 정기 보안 점검 — Lynis·OpenVAS 같은 도구.
백업 + 격리.
1) 정기 백업 + 오프사이트.
2) 핵심 시스템과 노출 시스템 분리.
3) 컨테이너·VM으로 격리.
4) 「최소 권한 원칙」 — 모든 서비스가 자기 일에 필요한 최소 권한만.
보안은 「깊이의 방어」 — 한 층이 뚫려도 다음 층.
한 줄 요약
보안 체크리스트 — 사용자·인증(root 차단·키 인증·sudo 최소), 네트워크(방화벽·fail2ban·HTTPS), 업데이트(자동 패치·EOL 회피), 감사(로그·auditd), 백업·격리.
깊이의 방어.
더 알아볼 것
- Lynis — 보안 점검 도구
- CIS Benchmarks
- OpenSSF Scorecard