왜 SafeLine WAF가 올바른 IP를 표시하지 않는가? 해결 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • 대상자: DevOps 엔지니어, 네트워크 관리자, 웹 보안 전문가
  • 난이도: 중급 (HTTP 헤더, NGINX 설정, WAF 구성 지식 필요)

핵심 요약

  • X-Forwarded-ForX-Real-IP 헤더를 통해 실제 클라이언트 IP를 추적해야 함
  • NGINX 사용 시 ngx_http_realip_module 모듈 활성화 필수
  • HTTP/1.0 이하 버전은 host 필드 누락으로 인해 SafeLine IP 대체

섹션별 세부 요약

1. 문제 정의

  • SafeLine WAF가 CDN/리버스 프록시 뒤에 배치될 경우 내부 IP만 기록
  • 프록시 장비가 X-Forwarded-For, X-Real-IP 헤더에 실 클라이언트 IP 포함
  • 예시 요청 헤더:

```http

X-Forwarded-For: 110.123.66.233, 10.10.3.15

X-Real-IP: 110.123.66.233

```

2. SafeLine 설정 방법

  • Get Attack IP From 설정에서 헤더 이름 입력 (예: X-Forwarded-For)
  • 업스트림 서버가 NGINX일 경우:

```nginx

set_real_ip_from 0.0.0.0/0;

real_ip_header X-Forwarded-For;

```

  • 모듈 활성화: --with-http_realip_module 컴파일 시 사용

3. HTTP 버전 호환성 문제

  • HTTP/1.0 또는 HTTP/0.9host 필드 누락으로 인해 SafeLine IP 기록
  • 해결 방법: host 필드 명시 또는 HTTP/1.1 이상 프로토콜 사용

4. 로그 정확성과 보안 영향

  • 실 IP 추적 실패 시 공격 트래킹, WAF 보호 기능 저하
  • 적절한 헤더 구성이 로그 정확성과 보안 강화에 필수

결론

  • X-Forwarded-For 헤더 설정과 ngx_http_realip_module 활성화를 통해 실 클라이언트 IP 추적 가능
  • HTTP/1.0 이하 버전 사용 시 host 필드 명시 또는 프로토콜 업그레이드 권장
  • 모든 프록시 장비에서 실 IP 전달 설정을 체크하고, SafeLine 및 업스트림 서버 모두에서 헤더 파싱 구성 필요