콘텐츠로 이동

방화벽 (UFW)

MyPanel은 방화벽 메뉴에서 UFW(Uncomplicated Firewall)를 시각적으로 관리합니다:

  • 개요 타일 — 방화벽이 켜져 있는지/꺼져 있는지, 인바운드 정책, 규칙 수, SSH/패널 포트가 열려 있는지를 한눈에 확인합니다.
  • UFW 켜기 / 끄기. 활성화할 때 패널이 잠금 방지 기능을 제공합니다: SSH 또는 패널 포트가 아직 열려 있지 않으면, 접근 권한을 잃지 않도록 “열고 활성화” 또는 “그래도 활성화” 중에서 선택하도록 묻습니다.
  • 기본 정책 — 인바운드를 거부(Deny) 로 설정하여 명시적으로 열린 포트만 접근 가능하게 합니다(안전한 방화벽의 핵심).
  • 일반적인 포트(SSH, HTTP, HTTPS, MySQL, PostgreSQL…)를 한 번의 클릭으로 양식에 미리 채워주는 빠른 칩으로 규칙 추가. 각 규칙에는 다음이 있습니다:
    • 동작: 허용(Allow) / 거부(Deny) / 제한(Limit)(연결 속도 제한 — SSH 비밀번호 추측 공격을 늦춤).
    • 포트 + 프로토콜(TCP/UDP/둘 다).
    • 출처(선택): 특정 IP/CIDR에만 포트를 엽니다(예: 사무실 IP에서만 SSH 허용).
  • 규칙 편집 — 규칙을 다시 양식으로 불러옵니다. 저장하면 기존 규칙을 삭제하고 새 규칙을 생성합니다(UFW는 제자리 편집이 불가능함).
  • 규칙 삭제. SSH/패널 포트를 여는 규칙은 중요(Critical) 로 표시되어 삭제 전에 더 강한 확인을 거칩니다.

서로 대응되는 IPv4와 IPv6 규칙은 목록을 깔끔하게 유지하기 위해 하나의 행으로 병합됩니다(v4·v6 라벨 표시).

방화벽 페이지에는 Cloudflare — 실제 방문자 IP 복원 카드가 바로 있습니다. 사이트가 Cloudflare의 프록시 뒤에 있을 때 활성화하세요: nginx가 Cloudflare의 IP 대신 CF-Connecting-IP 헤더에서 실제 방문자 IP를 읽습니다.

이것은 속도 제한 및 무차별 대입 공격 방어가 올바르게 작동하기 위해 필수입니다 — 그렇지 않으면 모든 요청이 Cloudflare IP를 담고 있어 속도 제한이 모든 방문자를 차단하고 Fail2ban이 Cloudflare 대역을 차단할 수 있습니다. 패널은 최신 Cloudflare IP 대역을 가져오고(내장된 대체 목록 포함) 적용 전에 nginx -t를 실행합니다. 잘못된 설정은 자동으로 롤백됩니다.

Cloudflare 뒤에 있지 않은 도메인은 어떻게 되나요?

섹션 제목: “Cloudflare 뒤에 있지 않은 도메인은 어떻게 되나요?”

안전 — 영향 없음. 설정은 http 수준(모든 도메인)에 적용되지만, nginx는 연결이 Cloudflare의 IP 대역 중 하나에서 올 때만 방문자 IP를 CF-Connecting-IP 헤더로 교체합니다:

  • 방문자가 Cloudflare를 거치지 않는 도메인에 직접 접속 → 출처 IP가 Cloudflare 대역이 아님 → nginx가 헤더를 무시하고 평소처럼 실제 IP를 유지합니다.
  • 비(非)CF 도메인에 대한 요청은 CF-Connecting-IP 헤더를 담고 있지 않으므로(Cloudflare가 추가함) 대체할 것이 없습니다.
  • 스푸핑 방지: 직접 연결하면서 CF-Connecting-IP 헤더를 위조하는 사람이 있어도, 그 출처 IP가 신뢰 목록에 없으므로 아무런 효과가 없습니다.

따라서 이 카드를 활성화하는 것은 혼합 서버(일부 도메인은 Cloudflare 뒤, 일부는 아님)에서도 안전합니다. 이것은 Cloudflare가 권장하는 방식이기도 합니다.