1. 개요
Wail2Ban은 Windows 환경에서의 Fail2Ban 유사 보안 스크립트로, RDP(원격 데스크톱) 접속 실패 로그를 기반으로 자동으로 IP를 차단하여 brute-force 공격을 방어합니다. 이는 이벤트 로그(Event ID 4625)를 활용하여 비정상 로그인 시도를 탐지하고 Windows Firewall을 통해 IP 차단을 수행합니다.
2. 핵심 개념 정리
항목 | 설명 |
---|---|
대상 플랫폼 | Windows (RDP 로그 기반) |
핵심 기능 | RDP 로그인 실패 감지 후 IP 차단 |
감시 로그 | Event ID 4625 (보안 로그), 18456 (MSSQL 로그) |
차단 방식 | PowerShell 스크립트로 Windows 방화벽 IP 차단 |
차단 조건 | 특정 시간 내 지정 횟수 이상 실패 시 차단 |
스케줄 방식 | 작업 스케줄러(Task Scheduler) 등록을 통해 주기 실행 |
3. 설치 및 구성 방법
전제조건
Event ID 4625가 로깅되어야 IP 추적 가능
필요 시 다음 문서를 참고해 로깅 활성화 설정
NLA (Network Level Authentication) 해제 필요 (IP 로깅 목적)
필요 시 레지스트리에서
SecurityLayer=0
으로 변경
파일 구성 (설치 후 구성 예시)
wail2ban.ps1
: 핵심 스크립트 파일wail2ban_config.ini
: 설정 파일 (이벤트 감지 및 화이트리스트 등)wail2ban_log.log
: 차단된 IP 로그 기록start wail2ban onstartup.xml
: 작업 스케줄러 등록용 XML
설치 및 실행 절차
- GitHub에서 클론 또는 ZIP 다운로드: Wail2ban GitHub
- 권장 경로:
C:\scripts\wail2ban
- XML 작업 등록 파일 경로 수정 필요 시:
start wail2ban onstartup.xml
작업 스케줄러 등록
- 작업 가져오기 → XML 등록 → 부팅 시 자동 실행 설정
4. 설정 예시 및 의미 분석
wail2ban_config.ini
[Security]
4625=RDP Logins
[Application]
18456=MSSQL Logins
[Whitelist]
12.34.56.78 = My Machine
11.22.33.0/24 = My Company
4625
,18456
: 로그인 실패 이벤트 감지용Whitelist
: 차단 예외 IP 및 대역
wail2ban.ps1
$CHECK_WINDOW = 120 # 검사 주기: 120초
$CHECK_COUNT = 5 # 2분 동안 5회 실패 시 차단
$MAX_BANDURATION = 7776000 # 3개월 차단 유지 (초 기준)
5. 실무 적용 시나리오 및 계획
적용 대상
환경 | 이유 |
---|---|
윈도우 서버 RDP 운영 환경 | 외부 공격 대상이 되기 쉬움 |
MSSQL 로그인 보호 필요 시 | DB 보안 강화 목적 |
실행 계획
- 서버 보안 감사 로그 정책 점검 및 활성화
- Wail2Ban 구성 요소 배치 및 설치
- XML 작업 등록 → 자동화 실행 보장
- 테스트 로그인 시도로 차단 확인
- 화이트리스트 등록 및 조정
- 로그 모니터링 및 유지관리 자동화
6. 분석 및 비교
비교 항목 | Fail2Ban (Linux) | Wail2Ban (Windows) |
---|---|---|
대상 플랫폼 | Linux | Windows |
스크립트 언어 | Python | PowerShell |
로그 감시 방식 | Regex 기반 log 감시 | Windows Event ID 기반 감시 |
설치 방식 | 패키지 설치 | GitHub 수동 설치 |
차단 방식 | iptables 등 방화벽 | Windows Firewall |
7. 참고 링크
Microsoft Event ID 설명: https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625
추가 구성 가이드:
8. 최종 점검 체크리스트
점검 항목 | 완료 여부 |
---|---|
Windows 이벤트 로그 설정 완료 | [ ] |
NLA 비활성화 확인 | [ ] |
스크립트 배치 및 경로 설정 완료 | [ ] |
작업 스케줄러 등록 완료 | [ ] |
테스트 로그인 차단 확인 | [ ] |
화이트리스트 적용 및 예외 처리 확인 | [ ] |
차단된 IP 복구 절차 문서화 | [ ] |
관리자 알림 기능 설정 (옵션) | [ ] |
'OS > Windows' 카테고리의 다른 글
Windows에서 특정 포트 오픈 여부 확인하는 방법 (3) | 2025.08.04 |
---|---|
robocopy를 이용한 동기화 (0) | 2025.05.19 |
Windows에서 Dummy 파일 생성하기 (0) | 2025.05.19 |