안녕하세요 🙂
집에서 NAS나 서버를 굴리고 있다면, 외부 침입 시도 한 번쯤은 걱정해보셨을 거예요.
특히 OpenMediaVault 6(OMV6) 는 Debian 기반이라 SSH, FTP, SMB 같은 서비스가 열려 있는 경우가 많고,
인터넷에 노출되면 무작위 로그인 시도(Brute Force) 가 정말 자주 들어옵니다.
오늘은 이런 공격을 로그 기반으로 자동 차단해주는
👉 Fail2Ban 을 OMV6에 설치하고 실전에서 쓰는 방법을
처음 쓰는 분도 따라 할 수 있게 차근차근 정리해볼게요.

🔍 Fail2Ban이 뭐야?
Fail2Ban 은 서버 로그를 계속 감시하다가
- 로그인 실패가 일정 횟수 이상 발생하면
- 해당 IP를 자동으로 차단(iptable / nftables)
해주는 침입 차단 도구입니다.
쉽게 말해:
"너 로그인 계속 틀리네? → 당분간 접근 금지 🚫"
이걸 자동으로 해주는 친구예요.
🧱 OMV6에서 Fail2Ban을 써야 하는 이유
OMV6 기본 상태에서는:
- SSH 무차별 대입 공격 ❌
- FTP 계정 공격 ❌
- 웹 로그인 반복 시도 ❌
이런 걸 자동으로 막아주지 않습니다.
Fail2Ban을 쓰면:
- 서버 부하 감소
- 보안 로그 깔끔해짐
- 실질적인 해킹 시도 차단
👉 집 NAS라도 무조건 설치 추천입니다.
🛠️ 1. Fail2Ban 설치하기
OMV6는 Debian 11 기반이라 아주 간단해요.
sudo apt update
sudo apt install fail2ban -y
설치가 끝나면 서비스 상태부터 확인해볼게요.
sudo systemctl status fail2ban
정상이라면 active (running) 이 보일 거예요.
📂 2. 설정 파일 구조 이해하기 (중요!)
Fail2Ban 설정 파일은 이렇게 구성돼 있어요.
/etc/fail2ban/
├─ fail2ban.conf (기본 설정)
├─ jail.conf (기본 규칙 ❌ 직접 수정 X)
├─ jail.local (내가 쓸 설정 ✅)
└─ filter.d/ (로그 분석 규칙들)
⚠️ 절대 jail.conf 를 직접 수정하지 마세요
업데이트 시 덮어씌워집니다.
👉 우리는 jail.local 만 사용할 거예요.
✍️ 3. jail.local 파일 생성
sudo nano /etc/fail2ban/jail.local
🔐 SSH 보호 기본 설정
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
옵션 설명 (사람 말로 😄)
- enabled: 규칙 활성화
- maxretry: 5번 틀리면
- findtime: 10분 안에
- bantime: 1시간 차단
👉 집 NAS 기준으로 아주 무난한 설정입니다.
🔄 4. Fail2Ban 재시작
sudo systemctl restart fail2ban
그리고 상태 확인!
sudo fail2ban-client status
결과 예시:
Status
|- Number of jail: 1
`- Jail list: sshd
오케이 👍
🚫 5. 차단된 IP 확인하기
sudo fail2ban-client status sshd
출력 예:
Banned IP list: 203.xxx.xxx.10 45.xxx.xxx.22
여기 보이는 IP들은 자동으로 차단된 상태입니다.
🔓 6. 실수로 차단된 IP 해제하기
집에서 테스트하다 보면 내 IP가 차단되는 경우도 많아요 😂
sudo fail2ban-client set sshd unbanip 192.168.0.10
🌍 7. 내부 IP는 절대 차단 안 하게 하기 (강추)
ignoreip = 127.0.0.1/8 ::1 192.168.0.0/24
👉 집 공유기 대역은 꼭 넣어주세요.
전체 예시:
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 192.168.0.0/24
[sshd]
enabled = true
📜 8. Fail2Ban 로그 확인하기
sudo tail -f /var/log/fail2ban.log
여기서 보면
- 언제
- 어떤 IP가
- 왜 차단됐는지
다 나옵니다.
🔥 9. FTP, Web 로그인도 막을 수 있을까?
👉 가능합니다!
예를 들어 FTP:
[vsftpd]
enabled = true
port = ftp
logpath = /var/log/vsftpd.log
maxretry = 3
OMV 웹 로그인은 Nginx 로그 기반 커스텀 필터를 써야 해서
이건 다음 글에서 따로 자세히 다뤄볼게요 😉
✅ 운영하면서 느낀 팁
- bantime은 너무 길게 ❌ (실수 대비)
- maxretry는 3~5 추천
- SSH 포트 변경 + Fail2Ban 조합은 매우 강력
🎯 마무리
Fail2Ban은:
- 설정은 단순하지만
- 효과는 확실한
- 가성비 최고의 보안 도구입니다.
OMV6 쓰신다면 무조건 설치하세요.
댓글