HTTP 및 HTTPS 애플리케이션을 위한 웹 애플리케이션 방화벽 보안 보호

카테고리 보기

HTTP 및 HTTPS 애플리케이션을 위한 웹 애플리케이션 방화벽 보안 보호

6 분 읽음

회사 개요 #

다음 문서에서는 HTTP/S 로드 밸런서 역방향 프록시가 모든 공용 웹 서비스에 대한 주요 액세스 지점인 ISP 또는 호스팅 공급자의 실제 사용 사례를 설명합니다. 이 구성은 강력한 고급 WAF를 구성하는 것이 얼마나 쉬운지 보여줍니다. 블랙리스트 소스 IP 주소를 기반으로 웹 애플리케이션을 보호하기 위한 규칙 세트입니다. 가상 호스트 하나의 공용 IP가 다음과 같은 웹 도메인에 연결하는 것을 금지할 수 있는 방식으로 자체 블랙리스트를 관리합니다. www.company1.com 하지만 연결이 허용되었습니다. www.company2.com.

우리는 두 섹션으로 기사를 집중적으로 다룰 것입니다. 기본 섹션에서는 HTTPS 프로필 구성이 다양한 서비스 목록을 사용하여 역방향 프록시로 작동하고, 두 번째 섹션에서는 구성 방법을 설명합니다. 웹 응용 프로그램 방화벽 HTTP/S 서비스별로 서로 다른 블랙리스트를 관리하는 규칙 세트입니다.

환경 #

다음 다이어그램에서는 RELIANOID WAF 내부. 표시된 대로 첫 번째 레이어는 초기 단계에서 안전한 요청만 로드 밸런싱 모듈을 통과한 다음 요청을 백엔드로 전달할 수 있도록 보장하는 것이 목표인 WAF 모듈입니다.

첫째, HTTP 주인 헤더를 평가하고 이미 구성된 블랙리스트에서 클라이언트 IP를 확인합니다. 만약 주인 헤더와 클라이언트 IP 주소가 일치하면 연결이 끊어지고 금지 403 HTTP 응답은 클라이언트로 전송되지만 클라이언트 IP와 요청된 경우 주인 헤더가 일치하지 않으면 트래픽은 악성이 아닌 것으로 식별되어 로드 밸런서 모듈로 전달됩니다. 로드 밸런서 모듈에서는 HTTP 요청에 따라 대상이 선택됩니다. 주인 헤더를 거쳐 최종적으로 사용 가능한 백엔드 서버로 전달됩니다.

여기에서 주어진 예에 대한 웹 애플리케이션 방화벽 내부의 스키마를 찾을 수 있습니다.

RELIANOID IPDS WAF

HTTP 가상 서비스 구성 #

하나의 전용 구성 가상 IP 주소, 우리 예에서는 192.168.100.58, 다음을 검색하여 네트워크 > 가상 인터페이스 > 가상 인터페이스 생성 다음과 같이 :

RELIANOID VIP 생성

이제 HTTP 로드 밸런싱 서비스를 구성해 보겠습니다. LSLB > 농장 그런 다음 버튼을 클릭하십시오 농장 만들기 아래와 같이 가상 서비스 세부정보를 입력합니다.

RELIANOID 호스팅 HTTP 팜 생성

그런 다음 만들기.

이제 상단 탭을 클릭하세요. 서비스 버튼을 클릭하면 관리하는 다양한 웹사이트 수만큼 많은 서비스를 만들 수 있습니다. 새로운 서비스, 우리의 경우에는 두 가지 서비스를 생성할 것입니다. 하나는 서비스를 관리하기 위한 것입니다. www.mycompany1.com 그리고 또 하나는 www.mycompany2.com.

RELIANOID 서비스 HTTP 생성

서비스가 생성되면 가상 호스트 아래 이미지에 표시된 대로 필터와 백엔드를 구성합니다.

RELIANOID HTTP 서비스 구성

웹사이트가 여러 개인 경우, 동일한 IP 주소에서 각 웹을 관리하는 하나의 전용 서비스를 정의하려면 더 많은 서비스를 추가하기만 하면 됩니다.

이제 로드 밸런싱 구성이 완료되었으므로 IPDS 웹 애플리케이션 방화벽 모듈을 구성해 보겠습니다.

블랙리스트 구성 #

우리는 각 블랙리스트에 원하는 IP 주소를 입력하여 접근을 차단하기 위해 웹 서비스별로 하나의 블랙리스트를 생성할 것입니다. 이 예에서는 이름이 다음과 같은 두 개의 서로 다른 블랙리스트를 생성합니다. 블랙리스트mycompany1 블랙리스트mycompany2, 서비스당 각각 하나씩.

RELIANOID IPDS 블랙리스트1

이 블랙리스트는 경로에 저장됩니다 /usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

테스트 목적으로 2개의 IP 주소를 포함했습니다. 필요한 만큼 IP를 추가하는 것을 고려해 보세요. 또한 이미 존재하는 블랙리스트 인간을 IPDS 모듈을 사용할 수 있습니다.

RELIANOID IPDS 블랙리스트 생성2

이 두 번째 블랙리스트는 경로에 저장됩니다. /usr/local/relianoid/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

이 블랙리스트에는 IP 주소가 포함되어 있다는 점을 고려하세요. 192.168.1.191, 이 IP는 HTTP 요청을 실행할 테스트 목적으로만 사용됩니다.

웹 애플리케이션 방화벽 규칙 세트 구성 #

이 구성의 목적은 전체 팜 액세스 포인트에 대해 동일한 블랙리스트를 유지하지 않기 위해 웹사이트마다 서로 다른 IP 블랙리스트를 유지하는 것입니다.

우리는 규칙 집합, 이름이 있는 규칙 그룹입니다. 호스팅블랙리스트. 이 규칙 세트는 두 개의 간단한 규칙(예제에서는 규칙 ID 1000과 규칙 ID 1001)으로 구성되며, 각 규칙은 일치와 작업으로 정의됩니다. 여기서 조건이 일치하면 작업이 실행됩니다. 이 예에서는 조건이 일치하는 경우 두 규칙 모두에서 동일한 작업을 사용합니다. 거부 작업 로 실행됩니다 403 액세스가 거부되었습니다. 응답.

We Buy Orders 신청서를 클릭하세요. IPDS > WAF, 다음을 클릭하십시오. WAF 규칙 세트 생성 이 예에서는 설명적인 규칙 세트 이름을 설정합니다. 호스팅블랙리스트.

필드 구성 기본 단계요청 헤더가 수신되었습니다.. 이 필드는 WAF 모듈이 클라이언트로부터 들어오는 요청 헤더를 분석한다는 것을 의미합니다.

RELIANOID IPDS WAF 규칙 세트 생성

그런 다음 탭으로 이동 규칙 첫 번째를 만들고 통치 유형의 동작 아래에 표시된 것처럼.

RELIANOID IPDS WAF 규칙 세트 생성

이제 규칙 세트의 첫 번째 규칙이 생성되었습니다. 각각의 블랙리스트에 있는 클라이언트 IP를 일치시키기 위한 조건을 생성하겠습니다. 주인 머리글. 이동 상태 그리고 조건을 만들어서 REMOTE_ADDR 아래 보이는 것처럼 변수입니다.

RELIANOID IPDS 블랙리스트 일치

그런 다음 다른 조건을 만듭니다. 가상 호스트 에 따라 일치 SERVER_NAME 다음과 같이 변수 :

RELIANOID IPDS SERVER_NAME 일치

이 시점에서 첫 번째 호스팅 웹사이트는 www.mycompany1.com 이미 구성된 블랙리스트에서 웹 애플리케이션 블랙리스트 IP 주소를 관리합니다. 블랙리스트mycompany1.txt.

두 번째 웹사이트에 대한 또 다른 규칙을 만들어 보겠습니다. www.mycompany2.com 이전 규칙 구성과 동일한 구성을 반복하지만 이 경우에는 SERVER_NAMEmycompany2.com 그리고 다음을 참고하세요 블랙리스트2.txt.

복합 WAF 규칙 세트의 전체 구성을 확인하세요.

RELIANOID IPDS WAF 전체 규칙 세트 구성

마지막으로 이미 생성된 팜에 이 규칙 세트를 추가하고 탭으로 이동합니다. 농장 농장도 옮기고 호스팅, 우리 예에서는 활성화된 농장 섹션을 참조하세요.

RELIANOID IPDS WAF - 팜 할당

이제 팜에 대한 WAF 규칙 세트를 시작하고 작업을 클릭하십시오. 연극 이 창의 왼쪽 상단 섹션에서 시스템이 Farm에 대한 HTTP 트래픽 필터링을 시작합니다. 호스팅.

웹 애플리케이션 방화벽 규칙 세트 테스트 #

클라이언트 IP 192.168.1.191 웹사이트를 요청하겠습니다 http://www.mycompany1.com http://www.mycompany2.com 구성에 따르면 WAF 시스템은 동일한 이름을 가진 첫 번째 서비스에 대한 연결을 허용하지만 연결은 거부됩니다. mycompany2.com 이 IP가 이름으로 블랙리스트에 포함되어 있기 때문입니다. 블랙리스트mycompany2.

IP 주소 192.168.1.191에서 로드 밸런서를 통해 웹사이트 www.mycompany1.com을 요청하는 VIP로:

root@192.168.1.191:# 컬 -H "호스트: www.mycompany1.com" http://192.168.100.58 -v * 재구축된 URL: http://192.168.100.58/ * 192.168.100.58 시도 중... * TCP_NODELAY 설정 * 192.168.100.58(192.168.100.58) 포트 80(#0)에 연결됨 > GET / HTTP/1.1 > 호스트: www.mycompany1.com > User-Agent: 컬/7.52.1 > 수락: */* > HTTP / 1.1 200 OK
< 서버: nginx/1.10.3 < 날짜: 10년 2019월 15일 화요일 36:22:11383 GMT < Content-Type: text/html < Content-Length: 13 < 최종 수정: 2018년 11월 01일 목요일 49:5: 123 GMT < 연결: 연결 유지 < ETag: "1c2c77d-XNUMXcXNUMX" < 허용 범위: 바이트 

IP 주소 192.168.1.191에서 로드 밸런서를 통해 웹사이트 www.mycompany2.com을 요청하는 VIP로:

root@192.168.1.191:# 컬 -H "호스트: www.mycompany2.com" http://192.168.100.58 -v * 재구축된 URL: http://192.168.100.58/ * 192.168.100.58 시도 중... * TCP_NODELAY 설정 * 192.168.100.58(192.168.100.58) 포트 80(#0)에 연결됨 > GET / HTTP/1.1 > 호스트: www.mycompany2.com > User-Agent: 컬/7.52.1 > 수락: */* > * HTTP 1.0, 본문 다음에 닫는다고 가정 HTTP/1.0 403 요청 금지
< Content-Type: text/html < Content-Length: 17 < 만료: 현재 < Pragma: no-cache < Cache-control: no-cache,no-store < * Curl_http_done: 조기 호출 == 0 * 연결 종료 0 응답 금지된

한 번 금지 된 응답이 생성되면 WAF 모듈은 로드 밸런서 Syslog 파일에 거부를 알립니다.

root@zva6000:# tail -f /var/log/syslog 10월 15일 오후 38시 44분 6000초 zva2 파운드: 호스팅, ModSecurity: 경고. 매개변수 `mycompany2.com'을 갖는 "연산자 `StrMatch'가 변수 `SERVER_NAME'(값: `www.mycompany17.com')과 일치함 [파일 "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [줄 "1001"] [id "2"] [rev ""] [msg "사용자 지정 일치 0"] [데이터 ""] [심각도 "0"] [ver ""] [성숙도 "0"] [정확도 "192.168.100.58"] [호스트 이름 "156812992458.770641"] [uri "/"] [unique_id "0,13"] [참조 "v21,18v10"] 15월 38일 44:6000:2 zva192.168.100.22 파운드: 호스팅, [WAF,service mycompany80, 백엔드 7:6,] (3f700cfac192.168.1.191c403) [클라이언트 1] ModSecurity: 코드 2(단계 2)으로 액세스가 거부되었습니다. 매개변수 `mycompany17.com'이 있는 연산자 `StrMatch'와 변수 `SERVER_NAME'(값: `www.mycompany1001.com')이 일치했습니다. [파일 "/usr/local/relianoid/config/ipds/waf/sets/HostingBlacklisting.conf"] [줄 "2"] [id "0"] [rev ""] [msg "사용자 지정 일치 0"] [데이터 ""] [심각도 "0"] [ver ""] [성숙도 "192.168.100.58"] [정확도 "156812992458.770641"] [호스트 이름 "0,13"] [uri "/"] [unique_id "21,18"] [ref "v10v15"] 38월 44일 6:1:2 zva192.168.100.25ktpl80 파운드: 호스팅, 서비스 mycompany7, 백엔드 6:3, (700f192.168.1.191cfacXNUMXcXNUMX) WAF가 XNUMX에서 요청을 거부했습니다.

이제 HTTP/S 심층 패킷 검사 기술을 사용하여 웹 애플리케이션을 보호하기 위한 사용자 정의 방화벽 규칙 세트를 구축할 수 있습니다.

관련 기사 #

https://www.relianoid.com/knowledge-base/enterprise-edition/enterprise-edition-v6-0-administration-guide/v6-0-ipds-waf-update/

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

    이메일 : *

    에 의해 구동 더 나은 문서