안녕하세요 🙂
지난 글에서는 Fail2Ban 기본 설치 + SSH 보호까지 해봤죠.
이번에는 많은 분들이 진짜 궁금해하는 주제!
❓ "OMV 웹 관리자 로그인 화면도 Fail2Ban으로 막을 수 있을까?"
결론부터 말하면…
👉 됩니다. 그리고 꼭 해야 합니다.

OMV 웹 로그인은 기본적으로 Nginx + PHP 기반이고,
인터넷에 노출된 경우 관리자 계정 무차별 대입 공격이 꽤 자주 들어옵니다.
오늘은 Nginx 로그를 직접 분석하는 Fail2Ban 커스텀 필터를 만들어서
OMV 웹 로그인 공격을 차단하는 방법을 하나씩 같이 해볼게요.
🧠 전체 구조 먼저 이해하기
이번에 우리가 할 일은 딱 이 흐름이에요.
[공격자]
↓ 로그인 실패 반복
[Nginx access.log]
↓ 로그 분석
[Fail2Ban 커스텀 필터]
↓ 조건 충족 시
[IP 자동 차단]
핵심 포인트는 두 가지입니다.
1️⃣ OMV 웹 로그인 실패 로그가 어디에 찍히는지
2️⃣ 그 로그를 Fail2Ban이 알아먹게 만드는 필터 작성
📂 1. OMV 웹 로그인 로그 위치 확인
OMV6 기본 설정 기준으로 Nginx 로그는 여기 있습니다.
/var/log/nginx/access.log
/var/log/nginx/error.log
저의 경우는 아래 로그파일에 쌓이고있었어요
/var/log/openmediavault-webgui_access.log
우리는 이 중에서 openmediavault-webgui_access.log 를 사용할 거예요.
🔎 2. 로그인 실패 로그 패턴 확인 (아주 중요)
먼저 실제 로그를 직접 한 번 봅시다.
sudo tail -f /var/log/nginx/openmediavault-webgui_access.log
이 상태에서:
- OMV 웹 로그인 화면 접속
- 일부러 비밀번호를 틀리게 입력
그러면 이런 로그가 찍힐 거예요 (예시):
192.168.0.50 - - [16/Dec/2025:21:12:33 +0900] "POST /rpc.php HTTP/1.1" 400 87 "-" "Mozilla/5.0"
여기서 중요한 포인트 👇
- POST /rpc.php
- HTTP 상태 코드 401 (Unauthorized) 또는 400 (Bad request)
👉 이게 바로 로그인 실패 시그니처입니다.
🧩 3. Fail2Ban 커스텀 필터 만들기
이제 Fail2Ban에게 이렇게 가르칠 거예요.
"access.log에서 POST /rpc.php + 401 나오면 로그인 실패야"
📄 필터 파일 생성
sudo nano /etc/fail2ban/filter.d/omv-web.conf
✍️ 필터 내용 작성
[Definition]
failregex = ^<HOST> .* "POST /rpc.php .*" 400
ignoreregex =
저의경우는 401이 아닌 400이 나와 400으로 설정했어요
🔍 필터 설명
- <HOST> : 공격자 IP
- POST /rpc.php : OMV 로그인 요청
- 401 or 400 : 인증 실패
👉 정확하고 단순한 패턴이 제일 좋습니다.
🏗️ 4. Jail 설정 추가 (jail.local)
이제 이 필터를 실제로 사용하도록 설정해봅시다.
sudo nano /etc/fail2ban/jail.local
아래 내용을 맨 아래에 추가하세요.
[omv-web]
enabled = true
filter = omv-web
port = http,https
logpath = /var/log/nginx/openmediavault-webgui_access.log
maxretry = 5
findtime = 600
bantime = 3600
옵션 설명 (짧게)
- maxretry 5 : 10분 안에 5번 실패하면
- bantime 3600 : 1시간 차단
집 NAS 기준으로 아주 적당합니다 👍
🔄 5. Fail2Ban 재시작 & 적용 확인
sudo systemctl restart fail2ban
상태 확인:
sudo fail2ban-client status
정상이라면 이렇게 나옵니다.
Jail list: sshd, omv-web
🧪 6. 실제로 차단되는지 테스트하기
1️⃣ 웹 로그인에서 비밀번호 5번 틀리기
2️⃣ 다른 PC나 LTE/5G 환경에서 접속 시도
👉 접속이 안 된다면 성공 🎉
차단 IP 확인:
sudo fail2ban-client status omv-web
🔓 7. 실수로 내 IP 차단했을 때 (국룰 😅)
sudo fail2ban-client set omv-web unbanip 192.168.0.50
그리고 내부 IP는 미리 제외해두는 게 좋아요.
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 192.168.0.0/24
🎯 마무리
이번 글에서 한 것 정리해보면:
- ✔ OMV 웹 로그인 실패 패턴 분석
- ✔ Fail2Ban 커스텀 필터 작성
- ✔ Nginx 로그 기반 자동 차단 적용
다음 글에서는:
- Docker 컨테이너 로그를 Fail2Ban에 연동하는 방법
- Slack / Telegram으로 차단 알림 받기
- 차단 시간을 점점 늘리는 recidive 설정
중에서 하나 골라서 이어가 볼게요 😄
댓글