회사 개요 #
이 문서에서는 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 규칙 세트입니다.

검증 #
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 규칙을 사용합니다.
이 접근 방식은 다음을 제공합니다.
- 중앙집중식 정책 집행
- 향상된 로깅 및 가시성
- 더 쉬운 확장성
- 스크립팅 복잡성 감소
- 표준 기반 요청 검사