F5 iRules 업로드 크기 제한을 마이그레이션하기 RELIANOID

카테고리 보기

F5 iRules 업로드 크기 제한을 마이그레이션하기 RELIANOID

3 분 읽음

회사 개요 #

이 문서에서는 HTTP 업로드 크기를 제한하는 데 사용되는 F5 BIG-IP iRule을 마이그레이션하는 방법을 설명합니다. RELIANOID 통합된 것을 사용하여 WAF (웹 애플리케이션 방화벽) 에서 제공 ModSecurity 및 OWASP CRS.

원래 iRule은 다음을 검사합니다.

  • HTTP 메서드(POST)
  • Content-Length 머리글

그리고 다음보다 큰 업로드를 차단합니다. 200 MB HTTP를 사용하여 413 Payload Too Large 응답.

오리지널 F5 iRule #

HTTP_REQUEST 이벤트가 발생하면, HTTP 메서드가 "POST"인 경우 콘텐츠 길이를 설정하고, 헤더에 "콘텐츠 길이"를 추가합니다. 콘텐츠 길이가 ""가 아니고 200000000보다 큰 경우, 200MB를 초과하는 요청은 HTTP 응답 413 "업로드 크기가 제한을 초과했습니다."로 처리하고 이벤트를 비활성화합니다.

RELIANOID 이주 접근법 #

In RELIANOID이 기능은 다음을 사용하여 구현할 수 있습니다.

  • WAF/IPDS 모듈
  • ModSecurity 규칙
  • OWASP CRS 통합

이 접근 방식은 다음을 제공합니다.

  • 중앙 집중식 보안 시행
  • 향상된 로깅 및 가시성
  • 손쉬운 유지 관리
  • 네이티브 HTTP 요청 검사

수동 규칙 세트를 통한 배포 #

RELIANOID WAF 구성 예시 #

길 아래에 /usr/local/relianoid/config/ipds/waf/sets/ 다음 내용으로 설정 파일을 생성하세요:

## begin conf SecRuleEngine on SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:1" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:2" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:3" SecDefaultAction "pass,log,logdata:'client:%{REMOTE_ADDR}',phase:4" ## end conf SecRule REQUEST_METHOD "POST" \ "id:910001,\ phase:1,\ t:none,\ chain,\ deny,\ status:413,\ msg:'Upload size exceeds limit.',\ log" SecRule REQUEST_HEADERS:Content-Length "@gt 200000000"

규칙의 작동 방식 #

이 규칙은 다음과 같은 논리를 수행합니다.

REQUEST_METHOD "POST"POST 요청만 검사합니다.
REQUEST_HEADERS:Content-Length: 업로드 크기를 읽습니다
@gt 200000000크기가 200MB를 초과하는지 확인합니다.
deny,status:413: 요청을 거부합니다
msg:'Upload size exceeds limit.'감사 로그 메시지를 생성합니다.

F5 iRule에서 동등한 동작 매핑 RELIANOID WAF #

HTTP::method: REQUEST_METHOD
HTTP::header "Content-Length": REQUEST_HEADERS:Content-Length
HTTP::respond 413: deny,status:413
event disable: Immediate WAF deny

웹 UI를 통한 배포 #

이 구성은 다음을 통해 직접 배포할 수도 있습니다. RELIANOID 웹 UI.

웹UI 구성 경로 #

로 이동 IPDS > WAF > 규칙

그때 만들기 아래와 같이 두 가지 조건을 가진 규칙이 포함된 WAF 규칙 세트입니다.

렐라노이드 IPDS WAF 콘텐츠 길이 제한

검증 #

CURL을 사용하여 테스트하세요. #

요청 예 :

curl -k -X POST -H "Content-Length: 250000000" https://LB_VIP/upload -v

예상 결과 #

응답은 다음과 같아야 합니다.

HTTP/1.1 413 페이로드 크기가 너무 큽니다

그리고 해당 요청은 백엔드에 도달하기 전에 차단되어야 합니다.

로깅 유효성 검사 #

WAF 로그에서 다음 사항을 확인하십시오.

업로드 크기가 제한을 초과했습니다.

중요 사항 #

콘텐츠 길이 의존성 #

이 규칙은 클라이언트가 유효한 값을 전송하는 경우에만 적용됩니다. Content-Length 헤더. 업로드 시 청크 전송 인코딩 또는 스트리밍 업로드를 사용하는 경우 추가적인 보호 조치가 필요할 수 있습니다.

특정 URL만 제한 #

이 규칙은 URI 유효성 검사와 함께 사용할 수 있습니다.

예:

SecRule REQUEST_URI "@beginsWith /upload"

문제해결 #

규칙이 실행되지 않음 #

확인:

  • 농장에서 WAF가 활성화되어 있습니다.
  • 규칙이 올바르게 첨부되었습니다.
  • 요청 방식은 POST입니다.
  • Content-Length 헤더가 있습니다.

업로드 데이터는 여전히 백엔드에 도달합니다. #

가능한 원인들:

  • WAF가 올바른 농장에 적용되지 않았습니다.
  • 규칙 구문 문제
  • 업로드에는 청크 인코딩이 사용됩니다.

오 탐지 #

일부 애플리케이션은 대용량 파일 업로드를 필요로 할 수 있습니다.

권장 사항 :

  • 애플리케이션별 예외를 생성합니다.
  • 임계값을 신중하게 조정하세요

모범 사례 #

  • 애플리케이션별 업로드 제한을 사용하세요.
  • 가능하면 속도 제한과 함께 사용하세요.
  • WAF 로그를 정기적으로 모니터링하세요.
  • 불필요하게 높은 업로드 임계값을 설정하지 마십시오.
  • 배포 후 업로드 동작 유효성 검사

제품 개요 #

업로드 크기를 제한하는 데 사용되는 F5 iRules는 마이그레이션할 수 있습니다. RELIANOID OWASP CRS와 통합된 네이티브 WAF/ModSecurity 규칙을 사용합니다.

이 접근 방식은 다음을 제공합니다.

  • 중앙집중식 정책 집행
  • 향상된 로깅 및 가시성
  • 더 쉬운 확장성
  • 스크립팅 복잡성 감소
  • 표준 기반 요청 검사

📄 이 문서를 PDF 형식으로 다운로드하세요 #

    이메일 : *

    에 의해 구동 더 나은 문서