본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 특히 SWA(Secure Web Appliance)에 초점을 맞춘 프록시 구성 네트워크의 네트워크 흐름에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서에는 다음과 같은 약어가 사용됩니다.
TCP: 전송 제어 프로토콜
UDP: 사용자 데이터그램 프로토콜
IP: 인터넷 프로토콜
GRE: 일반 라우팅 캡슐화
HTTP: 하이퍼텍스트 전송 프로토콜.
HTTPS: Hypertext Transfer Protocol Secure입니다.
URL: Uniform Resource Locator
TLS: 전송 계층 보안
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
HTTPS의 TLS 핸드셰이크는 클라이언트와 서버가 인터넷을 통해 통신하면서 안전한 연결을 제공할 때 발생합니다. 이 프로세스는 두 통신 애플리케이션 간의 프라이버시 및 데이터 무결성을 유지합니다. 클라이언트와 서버가 모든 후속 전송에 대한 암호화 표준 및 코드에 동의하는 일련의 단계를 통해 작동합니다. 이 악수는 제3자에 의한 무단 접근이나 조작을 막는 것을 목적으로 한다. 또한 가장을 제거하기 위해 통신 당사자의 ID를 인증합니다. 이 프로세스는 HTTPS에서 데이터가 전송 중에 안전하게 유지되도록 하기 때문에 중요합니다.
다음은 TLS 핸드셰이크의 단계입니다.
Client Hello: 클라이언트가 hello 메시지로 핸드셰이크 프로세스를 시작합니다. 이 메시지에는 클라이언트 TLS 버전, 지원되는 암호 그룹 및 "클라이언트 임의"라는 임의 바이트 문자열이 포함되어 있습니다.
Server Hello: 서버가 hello 메시지로 응답합니다. 이 메시지에는 서버에서 선택한 TLS 버전, 선택한 암호 그룹, "서버 임의"로 알려진 임의 바이트 문자열 및 서버 디지털 인증서가 포함됩니다. 필요한 경우 서버는 상호 인증을 위해 클라이언트 디지털 인증서도 요청합니다.
클라이언트가 서버 인증서를 확인: 클라이언트는 서버 디지털 인증서를 발급한 인증 기관에서 서버 디지털 인증서를 확인 합니다. 그러면 클라이언트가 합법적인 서버와 통신하게 됩니다.
Pre-master Secret: 클라이언트가 임의의 바이트 문자열("pre-master secret"이라고 함)을 전송하며, 이는 세션 키 생성에 기여합니다. 클라이언트는 서버 공개 키로 이 사전 마스터 암호를 암호화하므로 서버만 개인 키로 암호를 해독할 수 있습니다.
마스터 보안: 클라이언트와 서버 모두 사전 마스터 보안 및 hello 메시지의 임의 바이트 문자열을 사용하여 동일한 "마스터 보안"을 독립적으로 계산합니다. 이 공유 암호는 세션 키를 생성하기 위한 기본입니다.
Client Finished(클라이언트 완료): 클라이언트가 세션 키로 암호화된 "Finished(완료)" 메시지를 보내 핸드셰이크의 클라이언트 부분이 완료되었음을 알립니다.
Server Finished(서버 완료): 서버가 핸드셰이크의 서버 부분이 완료되었음을 알리기 위해 세션 키로 암호화된 "Finished(완료)" 메시지를 보냅니다.
코드 | 세부사항 |
100 계속 |
일반적으로 ICAP 프로토콜과 관련하여 표시됩니다. 이 메시지는 클라이언트에서 데이터를 계속 전송할 수 있음을 알리는 정보 응답입니다. ICAP 서비스(예: 바이러스 검사)와 관련하여 서버는 처음 x바이트의 양만 볼 수 있습니다. 첫 번째 바이트 집합 검사가 완료되었지만 바이러스를 탐지하지 못한 경우 100 Continue(계속)를 전송하여 클라이언트에서 나머지 개체를 전송할 것을 알립니다. |
코드 | 세부사항 |
200개 |
가장 일반적인 응답 코드입니다. 이는 요청이 문제 없이 성공했음을 의미합니다. |
코드 | 세부사항 |
301 영구 리디렉션 |
영구 리디렉션입니다. www 하위 도메인으로 리디렉션하는 경우 이 코드를 볼 수 있습니다. |
302 임시 리디렉션 |
이는 임시 리디렉션입니다. 클라이언트는 Location: 헤더에 지정된 객체에 대해 새 요청을 하도록 지시받습니다. |
304 수정되지 않음 |
이는 GIMS(GET If-modified-since)에 대한 응답입니다. 이것은 문자 그대로 표준 HTTP GET이며 헤더 If-modified-since: <date>를 포함합니다. 이 헤더는 클라이언트에 로컬 캐시에 요청된 객체의 복사본이 있으며 객체를 가져온 날짜가 포함되었음을 서버에 알립니다. 해당 날짜 이후에 객체가 수정된 경우 서버는 200 OK 및 객체의 새 복사본으로 응답합니다. 가져온 날짜 이후 객체가 변경되지 않은 경우 서버는 304 Not Modified 응답을 다시 보냅니다. |
307 인증 리디렉션 |
이는 대부분 투명 프록시 배포에서 프록시 서버가 요청을 인증하도록 구성되어 있고 다른 URL로 요청을 리디렉션하여 사용자를 인증하면 나타납니다. |
코드 | 세부사항 |
400 잘못된 요청 |
이는 HTTP 요청이 올바른 구문을 준수하지 않기 때문에 HTTP 요청에 문제가 있음을 나타냅니다. 한 줄에 여러 개의 헤더가 있거나, 헤더 내의 공백이 있거나, URI에 HTTP/1.1이 없는 것 등이 원인일 수 있습니다. 올바른 구문은 RFC 2616을 참조하십시오. |
401 무단 웹 서버 인증 필요 |
요청한 객체에 액세스하려면 인증이 필요합니다. 401 코드는 대상 웹 서버와의 인증에 사용됩니다. SWA가 투명 모드에서 작동하고 프록시에서 인증이 활성화되면 어플라이언스가 OCS(origin content server)인 것처럼 표시되므로 클라이언트에 401을 반환합니다. 사용할 수 있는 인증 방법은 'www-authenticate:' HTTP 응답 헤더에 자세히 설명되어 있습니다. 그러면 서버가 NTLM, 기본 또는 기타 인증 형식을 요청하는지 여부를 클라이언트에 알립니다. |
403 거부됨 |
클라이언트가 요청된 개체에 액세스할 수 없습니다. 여러 가지 이유로 인해 서버에서 개체 액세스를 거부할 수 있습니다. 일반적으로 서버는 HTTP 데이터 또는 HTML 응답 내에서 원인 설명을 제공합니다. |
404 찾을 수 없음 |
요청한 개체가 서버에 없습니다. |
407 프록시 인증 필요 |
이는 OCS가 아닌 프록시에 대한 인증용이라는 점을 제외하면 401과 동일합니다. 요청이 프록시에 명시적으로 전송된 경우에만 전송됩니다. 클라이언트가 프록시가 있는지 모르기 때문에 SWA가 투명 프록시로 구성된 동안에는 407을 클라이언트로 전송할 수 없습니다. 이 경우 클라이언트는 TCP 소켓을 FIN 또는 RST할 가능성이 높습니다. |
코드 | 세부사항 |
501 내부 서버 오류 |
일반 웹 서버 오류입니다. |
502 불량 게이트웨이 |
게이트웨이 또는 프록시 역할을 하는 서버가 인바운드 서버로부터 잘못된 응답을 받을 때 발생합니다. 게이트웨이가 업스트림 또는 원천 서버로부터 부적절한 응답을 받았음을 알립니다. |
503 서비스를 사용할 수 없음 |
서버가 현재 일시적인 오버로드 또는 예약된 유지 관리로 인해 요청을 처리할 수 없음을 나타냅니다. 서버가 일시적으로 작동하지 않지만 시간이 지나면 다시 사용할 수 있음을 의미합니다. |
504 게이트웨이 시간 초과 |
클라이언트 또는 프록시가 웹 페이지를 로드하기 위해 액세스하거나 브라우저의 다른 요청을 수행하려고 시도한 웹 서버로부터 적시에 응답을 받지 못했음을 나타냅니다. 이는 업스트림 서버가 다운되었음을 시사하는 경우가 많습니다. |
....
네트워크 트래픽은 클라이언트의 IP 주소와 SWA 프록시 인터페이스의 IP 주소 간에 전달됩니다(일반적으로 P1 인터페이스이지만 프록시 컨피그레이션에 따라 P2 또는 관리 인터페이스일 수 있음).
클라이언트에서 오는 트래픽은 TCP 포트 80 또는 3128에서 SWA로 전달됩니다(기본 SWA 프록시 포트는 TCP 80 및 3128이며, 이 예에서는 포트 3128을 사용합니다).
네트워크 트래픽은 프록시의 IP 주소와 웹 서버의 IP 주소 간에 발생합니다.
SWA의 트래픽은 TCP 포트 80으로 향하며 프록시 포트가 아닌 임의 포트를 통해 소싱됩니다
다음은 Client에서 HTTP Get의 샘플입니다
이는 클라이언트에서 SWA로, 웹 서버로, 마지막으로 클라이언트로 다시 이동하는 트래픽의 전체 흐름을 나타냅니다.
참고: 각 트래픽 스트림은 서로 다른 색상으로 구분됩니다. 클라이언트에서 SWA로의 흐름은 한 색상이고 SWA에서 웹 서버로의 흐름은 다른 색상입니다.
다음은 액세스 로그의 예입니다.
1706172876.686 224 10.61.70.23 TCP_MISS/200 1721 GET http://www.example.com/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"IW_ref",3.7,1,"-",0,0,0,1,"-",-,-,-,"-",1,-,"-","-",-,-,"IW_ref",-,"Unknown","Reference","-","Unknown","Unknown","-","-",61.46,0,-,"Unknown","-",1,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 10, User Agent = "curl/8.4.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 108, Request Header = 0, Request to Server = 0, 1st byte to client = 3, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 0, Client Body = 0, 1st response byte = 106, Response header = 0, Server response = 1, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 2, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 1, AMP response = 0, AMP total = 0; Latency = 4; "25/Jan/2024:09:54:36 +0100" ][Client Port = 65238, Server IP = 10.184.216.34, Server Port = 80]
데이터가 SWA 캐시에 있을 때 클라이언트에서 SWA로의 전체 트래픽 흐름을 나타냅니다.
참고: 웹 서버에서 HTTP 응답 304: Cache not Modified를 반환하는 것을 볼 수 있습니다. (이 예에서는 패킷 번호 1947)
다음은 HTTP 응답 304의 샘플입니다
다음은 액세스 로그의 예입니다.
1706173001.489 235 10.61.70.23 TCP_REFRESH_HIT/200 1721 GET http://www.example.com/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"IW_ref",3.7,1,"-",0,0,0,1,"-",-,-,-,"-",1,-,"-","-",-,-,"IW_ref",-,"Unknown","Reference","-","Unknown","Unknown","-","-",58.59,0,-,"Unknown","-",1,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 150, User Agent = "curl/8.4.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 110, Request Header = 0, Request to Server = 0, 1st byte to client = 2, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 0, Client Body = 0, 1st response byte = 119, Response header = 0, Server response = 0, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 1, AMP response = 0, AMP total = 0; Latency = 1; "25/Jan/2024:09:56:41 +0100" ][Client Port = 55709, Server IP = 10.184.216.34, Server Port = 80]
네트워크 트래픽은 클라이언트의 IP 주소와 SWA 프록시 인터페이스의 IP 주소 간에 전달됩니다(일반적으로 P1 인터페이스이지만 프록시 컨피그레이션에 따라 P2 또는 관리 인터페이스일 수 있음).
클라이언트에서 오는 트래픽은 TCP 포트 80 또는 3128에서 SWA로 전달됩니다(기본 SWA 프록시 포트는 TCP 80 및 3128이며, 이 예에서는 포트 3128을 사용합니다).
다음은 SNI(Server Name Indication)에서 볼 수 있듯이 클라이언트에서 SWA로의 클라이언트 Hello에 대한 세부 정보입니다. 이 예에서 볼 수 있는 웹 서버의 URL은 www.example.com 및 클라이언트 알림 17 Cipher Suites입니다.
팁: Wireshark에서 이 필터를 사용하여 URL/SNI : tls.handshake.extensions_server_name == "www.example.com"를 검색할 수 있습니다.
다음은 SWA가 클라이언트로 보낸 인증서의 샘플입니다
네트워크 트래픽은 프록시의 IP 주소와 웹 서버의 IP 주소 간에 발생합니다.
SWA의 트래픽은 프록시 포트가 아니라 TCP 포트 443으로 전달됩니다
다음은 SWA에서 웹 서버로의 Client Hello에 대한 세부 정보입니다. SWA 알림 12 암호 그룹을 확인할 수 있습니다.
참고: 여기에서 관찰된 암호 그룹은 이 트래픽을 해독하도록 구성된 SWA가 자체 암호를 사용하므로 클라이언트에서 SWA로의 클라이언트 Hello의 암호 그룹과 다릅니다.
팁: Server Key Exchange(서버 키 교환)에서 SWA에서 웹 서버로, 웹 서버 인증서가 나타납니다. 그러나 업스트림 프록시가 SWA에 대한 컨피그레이션을 찾으면 웹 서버 인증서 대신 해당 인증서가 표시됩니다.
다음은 클라이언트의 HTTP CONNECT 샘플입니다
이는 클라이언트에서 SWA로, 웹 서버로, 마지막으로 클라이언트로 다시 이동하는 트래픽의 전체 흐름을 나타냅니다.
참고: 각 트래픽 스트림은 서로 다른 색상으로 구분됩니다. 클라이언트에서 SWA로의 흐름은 한 색상이고 SWA에서 웹 서버로의 흐름은 다른 색상입니다.
다음은 액세스 로그의 예입니다.
1706174571.215 582 10.61.70.23 TCP_MISS_SSL/200 39 CONNECT tunnel://www.example.com:443/ - DIRECT/www.example.com - DECRYPT_WEBCAT_7-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"IW_ref",3.7,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"IW_ref",-,"-","Reference","-","Unknown","Unknown","-","-",0.54,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 1600, User Agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 113, Request Header = 0, Request to Server = 0, 1st byte to client = 113, Response Header = 0, Client Body = 79 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 0, Client Body = 0, 1st response byte = 0, Response header = 0, Server response = 344, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 0, AMP total = 0; Latency = 0; "25/Jan/2024:10:22:51 +0100" ][Client Port = 24953, Server IP = 10.184.216.34, Server Port = 443]
1706174571.486 270 10.61.70.23 TCP_MISS_SSL/200 1106 GET https://www.example.com:443/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"IW_ref",3.7,1,"-",0,0,0,1,"-",-,-,-,"-",1,-,"-","-",-,-,"IW_ref",-,"Unknown","Reference","-","Unknown","Unknown","-","-",32.77,0,-,"Unknown","-",1,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 1630, User Agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 0, Request Header = 0, Request to Server = 0, 1st byte to client = 3, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 0, Client Body = 0, 1st response byte = 264, Response header = 0, Server response = 2, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 1, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 1, AMP response = 0, AMP total = 0; Latency = 2; "25/Jan/2024:10:22:51 +0100" ][Client Port = 24953, Server IP = 10.184.216.34, Server Port = 443]
참고: HTTPS 트래픽에 대한 투명 배포에서 볼 수 있듯이 Accesslogs에는 2개의 줄이 있습니다. 첫 번째 줄은 트래픽이 암호화되어 CONNECT를 볼 수 있으며 웹 서버의 URL이 tunnel://으로 시작됩니다. SWA에서 암호 해독이 활성화된 경우 두 번째 줄에 GET이 포함되고 전체 URL이 HTTPS로 시작되므로 트래픽이 암호 해독되었습니다.
트래픽을 통과하도록 SWA를 구성한 경우, 전체적인 흐름은 다음과 같습니다.
다음은 SWA에서 웹 서버로의 Client Hello 샘플입니다.
이는 클라이언트에서 SWA로의 클라이언트 Hello와 동일합니다.
다음은 샘플 액세스 로그입니다.
1706185288.920 53395 10.61.70.23 TCP_MISS/200 6549 CONNECT tunnel://www.example.com:443/ - DIRECT/www.example.com - PASSTHRU_WEBCAT_7-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"IW_ref",3.7,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"IW_ref",-,"-","Reference","-","Unknown","Unknown","-","-",0.98,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 210, User Agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 233, Request Header = 0, Request to Server = 0, 1st byte to client = 119, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 0, Client Body = 0, 1st response byte = 0, Response header = 0, Server response = 436, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 22, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 0, AMP total = 0; Latency = 22; "25/Jan/2024:13:21:28 +0100" ][Client Port = 59939, Server IP = 10.184.216.34, Server Port = 443]
참고: 보시다시피 한 줄이며 작업은 PASSTHRU입니다.
네트워크 트래픽은 클라이언트의 IP 주소와 웹 서버의 IP 주소 간에 전달됩니다.
클라이언트에서 오는 트래픽은 프록시 포트가 아닌 TCP 포트 80으로 전달됩니다
다음은 클라이언트에서 가져온 HTTP Get의 샘플입니다
네트워크 트래픽은 프록시의 IP 주소와 웹 서버의 IP 주소 간에 발생합니다.
SWA의 트래픽은 프록시 포트가 아닌 TCP 포트 80으로 전달됩니다
다음은 프록시에서 HTTP Get의 샘플입니다.
이는 클라이언트에서 SWA로, 웹 서버로, 마지막으로 클라이언트로 다시 이동하는 트래픽의 전체 흐름을 나타냅니다.
참고: 각 트래픽 스트림은 서로 다른 색상으로 구분됩니다. 클라이언트에서 SWA로의 흐름은 한 색상이고 SWA에서 웹 서버로의 흐름은 다른 색상입니다.
다음은 액세스 로그의 예입니다.
1702318427.181 124 192.168.1.10 TCP_MISS/200 1787 GET http://www.example.com/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"-",-,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"-",-,"-","-","-","-","-","-","-",115.29,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 50, User Agent = "curl/8.4.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 0, Request Header = 0, Request to Server = 0, 1st byte to client = 0, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 1, Request Header = 0, Client Body = 0, 1st response byte = 124, Response header = 0, Server response = 0, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 124>, AMP total = 124<; Latency = 1; "11/Dec/2023:19:13:47 +0100" ][Client Port = 54468, Server IP = 10.184.216.34, Server Port = 80]
데이터가 SWA 캐시에 있을 때 클라이언트에서 SWA로의 전체 트래픽 흐름을 나타냅니다.
참고: 웹 서버에서 HTTP 응답 304: Cache not Modified를 반환하는 것을 볼 수 있습니다. (이 예에서는 패킷 번호 27)
다음은 HTTP 응답 304의 샘플입니다
다음은 액세스 로그의 예입니다.
1702318789.560 105 192.168.1.10 TCP_REFRESH_HIT/200 1787 GET http://www.example.com/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"-",-,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"-",-,"-","-","-","-","-","-","-",136.15,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 360, User Agent = "curl/8.4.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 0, Request Header = 0, Request to Server = 0, 1st byte to client = 0, Response Header = 0, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 2, Request Header = 0, Client Body = 0, 1st response byte = 104, Response header = 0, Server response = 0, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 105>, AMP total = 105<; Latency = 2; "11/Dec/2023:19:19:49 +0100" ][Client Port = 54487, Server IP = 10.184.216.34, Server Port = 80]
네트워크 트래픽은 클라이언트의 IP 주소와 웹 서버의 IP 주소 간에 전달됩니다.
클라이언트에서 오는 트래픽은 프록시 포트가 아닌 TCP 포트 443으로 전달됩니다
다음은 SNI(Server Name Indication)에서 볼 수 있듯이 클라이언트에서 SWA로의 클라이언트 Hello에 대한 세부 정보입니다. 웹 서버의 URL을 확인할 수 있으며 이 예에서는 www.example.com입니다.
팁: Wireshark에서 이 필터를 사용하여 URL/SNI : tls.handshake.extensions_server_name == "www.example.com"을 검색할 수 있습니다.
다음은 서버 키 교환 샘플입니다.
참고: 보시다시피 인증서가 SWA에서 암호 해독 인증서로 구성된 인증서입니다.
네트워크 트래픽은 프록시의 IP 주소와 웹 서버의 IP 주소 간에 발생합니다.
SWA의 트래픽은 프록시 포트가 아니라 TCP 포트 443으로 전달됩니다
다음은 SWA에서 웹 서버로의 Client Hello 샘플입니다
참고: 여기에서 관찰된 암호 그룹은 이 트래픽을 해독하도록 구성된 SWA가 자체 암호를 사용하므로 클라이언트에서 SWA로의 클라이언트 Hello의 암호 그룹과 다릅니다.
팁: Server Key Exchange(서버 키 교환)에서 SWA에서 웹 서버로, 웹 서버 인증서가 나타납니다. 그러나 업스트림 프록시가 SWA에 대한 컨피그레이션을 찾으면 웹 서버 인증서 대신 해당 인증서가 표시됩니다.
다음은 액세스 로그의 예입니다.
1702319784.943 558 192.168.1.10 TCP_MISS_SSL/200 0 TCP_CONNECT 10.184.216.34:443 - DIRECT/www.example.com - DECRYPT_ADMIN_DEFAULT_ACTION_7-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"-",-,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"-",-,"-","-","-","-","-","-","-",0.00,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 940, User Agent = -, AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 0, Request Header = 0, Request to Server = 0, 1st byte to client = 0, Response Header = 0, Client Body = 50 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 45, Client Body = 0, 1st response byte = 0, Response header = 0, Server response = 249, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 5, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 558>, AMP total = 558<; Latency = 50; "11/Dec/2023:19:36:24 +0100" ][Client Port = 54515, Server IP = 10.184.216.34, Server Port = 443]
1702319785.190 247 192.168.1.10 TCP_MISS_SSL/200 1676 GET https://www.example.com:443/ - DIRECT/www.example.com text/html DEFAULT_CASE_12-DefaultGroup-DefaultGroup-NONE-NONE-NONE-DefaultGroup-NONE <"-",-,-,"-",-,-,-,-,"-",-,-,-,"-",-,-,"-","-",-,-,"-",-,"-","-","-","-","-","-","-",54.28,0,-,"-","-",-,"-",-,-,"-","-",-,-,"-",-,-> - - [ Request Details: ID = 960, User Agent = "curl/8.4.0", AD Group Memberships = ( NONE ) - ] [ Tx Wait Times (in ms): 1st byte to server = 0, Request Header = 0, Request to Server = 0, 1st byte to client = 50, Response Header = 50, Client Body = 0 ] [ Rx Wait Times (in ms): 1st request byte = 0, Request Header = 97, Client Body = 0, 1st response byte = 48, Response header = 0, Server response = 0, Disk Cache = 0; Auth response = 0, Auth total = 0; DNS response = 0, DNS total = 0, WBRS response = 0, WBRS total = 0, AVC response = 0, AVC total = 0, DCA response = 0, DCA total = 0, McAfee response = 0, McAfee total = 0, Sophos response = 0, Sophos total = 0, Webroot response = 0, Webroot total = 0, Anti-Spyware response = 0, Anti-Spyware total = 0, AMP response = 247>, AMP total = 247<; Latency = 97; "11/Dec/2023:19:36:25 +0100" ][Client Port = 54515, Server IP = 10.184.216.34, Server Port = 443]
참고: HTTPS 트래픽에 대한 투명 구축에서 볼 수 있듯이 Accesslogs에는 2개의 줄이 있습니다. 첫 번째 줄은 트래픽이 암호화되어 있는 경우이며 TCP_CONNECT 및 웹 서버의 IP 주소를 볼 수 있습니다. SWA에서 암호 해독이 활성화된 경우 두 번째 줄에 GET이 포함되고 전체 URL이 HTTPS로 시작합니다. 이는 트래픽이 암호 해독되었고 SWA가 URL을 알고 있음을 의미합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
13-May-2024 |
최초 릴리스 |