콘텐츠로 이동

무차별 대입 및 플러드 방어

MyPanel은 무거운 WAF 없이도 상호 보완적인 두 개의 계층으로 비밀번호 추측(무차별 대입)과 요청 플러드(애플리케이션 계층)로부터 서버를 보호합니다.

  1. Fail2ban — 시스템 수준에서 공격 IP를 자동으로 차단합니다.
  2. nginx 속도 제한웹사이트별로 요청 플러드를 제한합니다.

무차별 대입 방어 메뉴를 엽니다. 패널이 Fail2ban을 시각적으로 관리합니다.

  • 개요 타일 — Fail2ban 설치/실행 여부, jail 개수, 현재 차단된 총 IP 수.
  • 원클릭 무차별 대입 방어 — 안전한 기본값으로 권장 jail 세트를 활성화하는 단일 토글:
    • sshd — SSH 비밀번호 추측.
    • nginx-http-auth — 잘못된 HTTP Basic 인증 비밀번호.
    • nginx-limit-req — nginx 속도 제한 초과(아래 속도 제한 계층과 연동).
    • nginx-botsearch — 악성 URL 스캔.
  • 차단 시간(bantime, 예: 10m, 1h, 1d)과 최대 재시도 횟수(maxretry)를 조정합니다.
  • jail별 현재 차단된 IP 목록과 각 항목의 차단 해제 버튼(본인이 잠겼을 때 사용).

패널은 설정을 별도의 파일(/etc/fail2ban/jail.d/mypanel.local)에 기록하며 — 시스템 설정은 절대 건드리지 않고 — Fail2ban을 다시 로드합니다. 다시 로드가 실패하면 패널은 이전 설정을 복원합니다.

각 웹사이트 안에서 Nginx → 속도 제한 탭을 엽니다. 활성화하면 요청 플러드(L7)를 제한하고 비밀번호 추측(예: wp-login.php)을 늦출 수 있습니다.

  • 3가지 프리셋 — 완화 / 보통 / 엄격 — 또는 직접 설정:
    • IP당 초당 동적 요청 수(rate).
    • 짧은 급증을 위한 Burst 허용치.
    • IP당 동시 연결 수(conn).
  • 정적 자산(이미지, CSS, JS, 폰트 등)은 카운트에서 제외되므로 파일이 많은 일반 페이지 로드가 잘못 차단되지 않습니다(429).

한도를 초과하면 nginx는 **429 Too Many Requests**를 반환합니다. Fail2ban의 nginx-limit-req jail은 이러한 429 이벤트를 읽어 해당 IP를 완전히 차단합니다 — 두 계층이 서로를 강화합니다.