리눅스 서버에 방화벽(ufw) 설정하는 기본기


    방화벽은 서버 보안의 가장 기본적인 출입문입니다. 허용한 통신만 통과시키고 나머지는 모두 막아 불필요한 공격 경로를 차단합니다. 우분투를 비롯한 리눅스에서는 **ufw(Uncomplicated Firewall)**라는 도구로 방화벽을 아주 간단하게 다룰 수 있습니다. 이 글에서 기본기를 정리합니다.

    1. ufw란

    ufw는 복잡한 iptables를 쉽게 쓸 수 있도록 만든 방화벽 관리 도구입니다. 이름 그대로 “복잡하지 않은 방화벽”을 지향해, 명령어 한 줄로 포트를 열고 닫을 수 있습니다.

    2. 현재 상태 확인

    먼저 방화벽이 켜져 있는지 확인합니다.

    sudo ufw status
    

    inactive라고 나오면 아직 비활성화 상태입니다.

    3. 기본 정책 설정

    가장 안전한 기본 정책은 “들어오는 건 모두 막고, 나가는 건 모두 허용”입니다.

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    

    이제 명시적으로 허용한 포트만 외부에서 접속할 수 있습니다.

    4. 필요한 포트 열기

    서비스에 필요한 포트만 선택적으로 엽니다. SSH는 반드시 먼저 열어야 방화벽을 켰을 때 접속이 끊기지 않습니다.

    sudo ufw allow OpenSSH
    sudo ufw allow 80     # HTTP
    sudo ufw allow 443    # HTTPS
    

    특정 포트 번호로도 열 수 있습니다.

    sudo ufw allow 3306   # MySQL
    

    5. 방화벽 활성화

    규칙을 모두 등록했다면 방화벽을 켭니다.

    sudo ufw enable
    

    SSH 포트를 열어두었는지 다시 한번 확인한 뒤 실행하세요. 열지 않은 채로 활성화하면 원격 접속이 끊길 수 있습니다.

    6. 규칙 확인과 삭제

    현재 적용된 규칙을 번호와 함께 봅니다.

    sudo ufw status numbered
    

    특정 규칙을 지우려면 번호로 삭제합니다.

    sudo ufw delete 2
    

    7. 특정 IP만 허용하기

    관리용 포트는 신뢰하는 IP에서만 접속하도록 제한하면 더 안전합니다.

    sudo ufw allow from 203.0.113.10 to any port 22
    

    마무리

    ufw의 핵심은 **”필요한 포트만 열고 나머지는 모두 막는다”**는 원칙입니다. 기본 정책을 deny로 두고, SSH·HTTP·HTTPS처럼 꼭 필요한 포트만 선별해 여는 습관을 들이세요. 방화벽 설정만 제대로 해도 외부 공격 표면이 크게 줄어듭니다.

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다