13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] 하드닝

  • 리눅스 서버 기본 보안 하드닝 체크리스트 — SSH·방화벽·fail2ban

    홈랩 서버를 외부에 노출하거나, VPS를 하나 빌리면 가장 먼저 해야 할 일이 기본 보안 하드닝입니다. 거창한 게 아니라, 공격 표면을 줄이는 몇 가지 기본기죠. 제가 서버를 올릴 때마다 반복하는 하드닝 체크리스트를 정리합니다. 방어 관점의 교육용 내용입니다.

    1. SSH — 비밀번호를 버리고 키로

    서버 침입 시도의 대부분은 SSH 비밀번호 무차별 대입입니다. 답은 키 인증 전환 + 비밀번호 로그인 차단입니다.

    # (로컬에서) 키 생성 후 서버에 등록
    ssh-keygen -t ed25519
    ssh-copy-id user@server
    # /etc/ssh/sshd_config
    PermitRootLogin no
    PasswordAuthentication no
    PubkeyAuthentication yes
    sudo systemctl restart ssh

    키 접속이 되는 걸 반드시 먼저 확인한 뒤 비밀번호를 끄세요(안 그러면 잠깁니다).

    2. 방화벽 — 필요한 포트만

    기본은 “다 막고 필요한 것만 연다”입니다. Ubuntu라면 ufw가 간단합니다.

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 22/tcp      # SSH (포트 바꿨다면 그 포트)
    sudo ufw enable
    sudo ufw status numbered

    웹서버면 80/443만 추가로 엽니다. 열린 포트가 적을수록 안전합니다.

    3. fail2ban — 무차별 대입 자동 차단

    로그를 감시해 반복 실패하는 IP를 자동으로 밴합니다.

    sudo apt install -y fail2ban
    sudo systemctl enable --now fail2ban
    # /etc/fail2ban/jail.local
    [sshd]
    enabled = true
    maxretry = 5
    bantime = 1h
    sudo fail2ban-client status sshd   # 밴 현황 확인

    4. 자동 보안 업데이트

    알려진 취약점 대부분은 패치만 제때 하면 막힙니다. 보안 업데이트는 자동으로.

    sudo apt install -y unattended-upgrades
    sudo dpkg-reconfigure -plow unattended-upgrades

    5. 최소 권한 — root를 쓰지 않기

    • 일반 사용자 + sudo로 작업하고, root 직접 로그인은 차단
    • 서비스는 전용 계정으로 실행(필요 이상 권한 금지)
    • 안 쓰는 서비스·패키지는 제거(공격 표면↓)
    # 열려 있는 포트/서비스 점검
    sudo ss -tulpn

    6. 외부 노출은 터널/VPN 우선

    관리 포트(SSH, 웹 관리자)를 인터넷에 직접 여는 대신, WireGuard VPN이나 Cloudflare Tunnel로 접근하면 포트를 열지 않고도 안전하게 접속할 수 있습니다. 관리 인터페이스는 가능한 한 공개하지 마세요.

    7. 하드닝 체크리스트

    항목 효과
    SSH 키 인증 + 비밀번호 차단 무차별 대입 원천 차단
    방화벽(필요 포트만) 공격 표면 축소
    fail2ban 반복 공격 IP 자동 밴
    자동 보안 업데이트 알려진 취약점 방어
    최소 권한·서비스 정리 피해 범위 축소
    VPN/터널로 접근 관리 포트 비공개

    8. 정리

    보안은 한 방이 아니라 겹겹이 쌓는 기본기입니다. SSH 키, 방화벽, fail2ban, 자동 업데이트, 최소 권한 — 이 다섯 가지만 해도 자동화된 공격의 대부분을 막습니다. 서버를 새로 올릴 때마다 이 체크리스트를 돌리는 습관을 들이세요. 이 글은 본인 소유 서버의 방어 목적에 한합니다.