봇 차단을 위한 다중 도구 활용 전략
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
- *시스템 운영자/DevOps 엔지니어** (중급~고급, 자원 관리 및 보안 자동화 기술 필요)
핵심 요약
- Nginx 차단 규칙 + Fail2Ban 자동화 도구를 통해 200+ IP를 24시간 자동 차단
- lnav/goaccess로 nginx access 로그 분석 → Amazonbot, OpenAI, Facebook 등 악성 UserAgent 식별
- Gitea 서버의 20~30GB/일 데이터 증가를 735건의 자동 차단으로 정상화
섹션별 세부 요약
1. 문제 상황
- 대기업 크롤러(Amazon, Facebook)로 인한 8req/s → 20req/s의 트래픽 급증
- Gitea 인스턴스에서 20~30GB/일 데이터 증가, CPU/메모리 경고 발생
- Archive.org 외 대규모 AI 크롤러가 AI 학습용 데이터 수집으로 문제가 심화
2. 모니터링 및 분석
- Zabbix, Loki로 서버 자원 사용량 모니터링 → 대량 트래픽 식별
- lnav/goaccess로 nginx 로그 SQL 분석 → 특정 IP대역의 대량 크롤링 확인
- UserAgent 분석 → Amazonbot, OpenAI, Applebot 등 명시/위조된 값 다수 발견
3. 차단 정책 구현
- Nginx map으로 악성 UserAgent에 403 반환 + rate limit 도입
- 403 로그 기반으로 Fail2Ban으로 24시간 자동 차단
- 735건의 자동 차단 → 리소스 사용률 정상화
4. 향후 계획
- Archive.org 등 정상 서비스 예외 규칙 적용
- AI 훈련용 크롤링은 무조건 차단
- 다중 계층 방어책 적용 → 개인 블로그 운영 복구
결론
- Fail2Ban + Nginx 규칙 + 로그 분석 도구(lnav/goaccess)의 3중 자동화가 핵심
- robots.txt에 gzip bomb 설정은 심각한 위반자 탐지에 효과적 (Caddy로 구현 가능)
- 대규모 IP 차단(220,000+) 시 ISP ASN 차단 고려 필요 (예: Google, Semrush 등)