Tshark 에서 서비스 응답 시간 측정

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 Tshark 를 사용하여 SMB 서비스 응답 시간을 측정하는 방법을 배우게 됩니다. TCP 포트 445 에서 네트워크 트래픽을 캡처하고, 세션 응답 시간을 분석하며, 특정 호스트 통신을 검사하기 위해 필터를 적용합니다.

실습을 통해 테스트 트래픽 생성, -z smb,srt와 같은 명령을 사용하여 SMB 성능 지표 계산, Tshark 의 통계 기능을 사용한 결과 분석을 안내합니다. Linux 환경에서 캡처 필터 (-f "tcp port 445") 및 표시 필터 (-Y "ip.addr==10.0.0.1") 에 대한 실질적인 경험을 얻게 됩니다.

-f "tcp port 445"를 사용하여 SMB 트래픽 캡처

이 단계에서는 Wireshark 의 캡처 필터를 사용하여 SMB (Server Message Block) 네트워크 트래픽을 캡처하는 방법을 배우게 됩니다. SMB 는 주로 파일 공유, 프린터 액세스 및 Windows 시스템 간의 프로세스 간 통신에 사용되는 네트워크 프로토콜입니다. 일반적으로 통신에 TCP 포트 445 를 사용하므로, 캡처 시 이 특정 포트에 집중할 것입니다.

환경을 준비하는 것으로 시작해 보겠습니다.

  1. 먼저, Xfce 데스크톱의 터미널 아이콘을 클릭하거나 단축키 Ctrl+Alt+T를 사용하여 LabEx VM 에서 터미널을 엽니다. 터미널은 모든 명령을 실행할 곳입니다.

  2. 캡처 파일을 저장할 기본 작업 디렉토리로 이동합니다. 이렇게 하면 프로젝트를 체계적으로 유지하는 데 도움이 됩니다.

cd ~/project
  1. 이제 SMB 트래픽을 캡처하고 검사하는 데 사용할 네트워크 프로토콜 분석기인 Wireshark 를 실행합니다. & 기호는 Wireshark 를 백그라운드에서 실행하므로 동일한 터미널을 계속 사용할 수 있습니다.
wireshark &
  1. Wireshark 의 기본 인터페이스에서 캡처 설정을 구성해야 합니다.

    • 활성 네트워크 인터페이스 (일반적으로 eth1) 를 선택합니다. 이는 트래픽을 모니터링할 네트워크 카드입니다.
    • 캡처 필터 필드에 tcp port 445를 입력합니다. 이렇게 하면 Wireshark 가 SMB 가 작동하는 포트 445 의 트래픽만 캡처하도록 지시합니다.
    • 파란색 상어 지느러미 아이콘을 클릭하여 캡처를 시작합니다. 인터페이스가 패킷으로 채워지는 것을 볼 수 있습니다.
  2. 캡처를 위해 일부 SMB 트래픽을 생성하기 위해 새 터미널 창에서 smbclient 명령을 사용합니다. 이 명령은 로컬 SMB 서버에 연결을 시도합니다 (실패할 것을 알지만, 원하는 트래픽을 생성합니다).

smbclient -N -L //127.0.0.1
  1. 약 10 초 동안 캡처한 후 (충분한 트래픽을 생성할 시간), 빨간색 사각형 버튼을 클릭하여 캡처를 중지합니다. 이렇게 하면 패킷 표시가 중지되어 검사할 수 있습니다.

  2. 기본 창에서 캡처된 패킷을 관찰합니다. 대상/소스 포트 445 인 TCP 패킷이 표시되어야 합니다. 이것이 우리가 분석하려는 SMB 프로토콜 패킷입니다.

  3. 마지막으로, 나중에 참조할 수 있도록 캡처를 저장해 보겠습니다.

    • 파일 > 다른 이름으로 저장으로 이동합니다.
    • 파일 이름을 smb_capture.pcapng로 지정합니다 (.pcapng 형식은 모든 캡처 정보를 보존합니다).
    • 세션을 시작한 ~/project에 저장합니다.

-z smb,srt 를 사용하여 SRT 계산

이 단계에서는 Wireshark 의 명령줄 유틸리티인 tshark 를 사용하여 SMB 세션 응답 시간 (SRT, Session Response Time) 을 계산하는 방법을 배우게 됩니다. SRT 는 클라이언트가 SMB 요청을 보내고 서버의 응답을 수신하는 시간 간격을 측정하며, SMB 파일 공유 작업에서 성능 병목 현상을 식별하는 데 중요합니다.

  1. 먼저, 캡처 파일로 작업할 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project
  1. 이전 단계에서 생성된 캡처 파일 smb_capture.pcapng를 사용합니다. 이 파일에는 SMB 프로토콜의 표준 포트인 포트 445 에서 캡처된 네트워크 트래픽이 포함되어 있습니다. 이 파일이 없는 경우 다음을 실행하여 다시 만들 수 있습니다.
wireshark -k -i eth1 -f "tcp port 445" -w smb_capture.pcapng &

10 초 동안 기다려 SMB 트래픽을 캡처한 다음 Ctrl+C 로 캡처를 중지합니다.

  1. 주요 명령은 SMB 세션 응답 시간을 계산합니다. -z smb,srt 옵션은 tshark 에게 SMB 응답 시간 통계를 분석하도록 지시합니다.
tshark -r smb_capture.pcapng -z smb,srt
  1. 출력은 SMB 세션의 성능 특성을 이해하는 데 도움이 되는 SRT 통계가 포함된 자세한 테이블을 표시합니다. 여기에는 다음이 포함됩니다.

    • 처리된 SMB 요청의 총 수
    • 최소 응답 시간 (가장 빠른 응답)
    • 최대 응답 시간 (가장 느린 응답)
    • 평균 응답 시간
    • 다양한 시간 범위에 걸친 응답 시간 분포
  2. 큰 캡처 파일을 처리할 때 출력 내용이 길어질 수 있습니다. 가독성을 높이기 위해 출력을 less 로 파이프할 수 있으며, 이를 통해 결과를 페이지별로 스크롤할 수 있습니다.

tshark -r smb_capture.pcapng -z smb,srt | less
  1. 나중에 분석 또는 보고를 위해 이러한 통계를 저장하려면 출력을 텍스트 파일로 리디렉션합니다.
tshark -r smb_capture.pcapng -z smb,srt > smb_srt_stats.txt
  1. cat 명령을 사용하여 언제든지 저장된 통계를 검사할 수 있습니다. 이는 분석을 다시 실행하지 않고 결과를 검토해야 할 때 유용합니다.
cat smb_srt_stats.txt

-Y "ip.addr==10.0.0.1"로 호스트 필터링

이 단계에서는 Wireshark 의 표시 필터 구문을 사용하여 특정 호스트 IP 주소 (10.0.0.1) 에 대한 네트워크 트래픽을 필터링하는 방법을 배우게 됩니다. 이는 네트워크 캡처에서 특정 장치와 관련된 트래픽에 집중하려는 경우 유용합니다.

  1. 먼저, 캡처 파일이 저장된 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project
  1. 이전에 캡처한 SMB 트래픽 파일을 Wireshark 에서 엽니다. '&'는 백그라운드에서 실행되므로 터미널을 계속 사용할 수 있습니다.
wireshark smb_capture.pcapng &
  1. Wireshark 의 표시 필터 바 (기본 창 상단에 위치) 에 다음 필터를 입력하여 IP 주소 10.0.0.1 과 관련된 모든 패킷을 봅니다.
ip.addr==10.0.0.1

그런 다음 Enter 키를 누르거나 적용을 클릭하여 필터를 활성화합니다.

  1. 이제 패킷 목록은 다음 중 하나에 해당하는 패킷만 표시합니다.

    • 소스 IP 가 10.0.0.1 (이 호스트에서 오는 트래픽)
    • 대상 IP 가 10.0.0.1 (이 호스트로 가는 트래픽)
  2. 더 구체적으로, 10.0.0.1 로 가는 패킷만 필터링할 수 있습니다 (대상 트래픽).

ip.dst==10.0.0.1
  1. 마찬가지로, 10.0.0.1 에서 오는 패킷만 보려면 (소스 트래픽):
ip.src==10.0.0.1
  1. 논리 연산자를 사용하여 필터를 결합하여 보다 정확한 분석을 수행할 수 있습니다. 예를 들어, 10.0.0.1 에서/로의 SMB 트래픽 (TCP 포트 445 사용) 만 보려면:
ip.addr==10.0.0.1 && tcp.port==445
  1. 나중에 분석할 수 있도록 필터링된 보기를 저장하려면:
    • 파일 > 지정된 패킷 내보내기로 이동합니다.
    • 필터링된 패킷만 저장하려면 "표시됨"을 선택합니다.
    • filtered_host.pcapng로 저장합니다.

-q 옵션으로 통계 보기

이 단계에서는 Wireshark 의 명령줄 도구인 tshark 를 사용하여 네트워크 트래픽 통계를 분석하는 방법을 살펴보겠습니다. -q (quiet, 조용함) 옵션은 개별 패킷 세부 정보를 숨기고 통계 요약에만 집중하여 전체 트래픽 패턴을 더 쉽게 분석할 수 있으므로 특히 유용합니다.

시작하기 전에 캡처 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다.

cd ~/project

이제 기본 통계부터 시작해 보겠습니다. 이 명령은 모든 개별 패킷을 표시하지 않고 캡처 파일 내용에 대한 개요를 제공합니다.

tshark -r smb_capture.pcapng -q

캡처에서 서로 다른 네트워크 프로토콜이 어떻게 분산되어 있는지 이해하기 위해 프로토콜 계층 구조 통계를 사용합니다. 이는 각 프로토콜에 속하는 트래픽의 비율을 보여줍니다.

tshark -r smb_capture.pcapng -qz io,phs

SMB 트래픽으로 작업하고 있으므로 SMB 서비스 응답 시간을 구체적으로 분석할 수 있습니다. 이는 서버가 클라이언트 요청에 얼마나 빨리 응답하는지 식별하는 데 도움이 됩니다.

tshark -r smb_capture.pcapng -qz smb,srt

다음으로, 엔드포인트 통계를 검사하여 어떤 IP 주소가 가장 많은 트래픽을 생성하거나 수신하는지 확인합니다.

tshark -r smb_capture.pcapng -qz endpoints,ip

호스트 간의 통신 패턴을 이해하기 위해 대화 통계를 사용합니다. 이는 특정 IP 쌍 간의 트래픽 양을 보여줍니다.

tshark -r smb_capture.pcapng -qz conv,ip

나중에 분석할 수 있도록 통계를 저장하는 것이 유용한 경우가 많습니다. 여기서는 프로토콜 계층 구조를 텍스트 파일에 저장합니다.

tshark -r smb_capture.pcapng -qz io,phs > protocol_stats.txt

마지막으로, 저장된 통계를 보아 출력을 확인할 수 있습니다.

cat protocol_stats.txt

요약

이 랩에서는 Wireshark 및 tshark 를 사용하여 SMB 서비스 응답 시간을 측정하는 방법을 배웠습니다. 이 과정에는 "tcp port 445" 필터를 사용하여 SMB 트래픽을 캡처한 다음, SMB 성능 평가를 위해 tshark 의 "-z smb,srt" 매개변수를 통해 세션 응답 시간을 분석하는 작업이 포함되었습니다.

또한 "-Y" 옵션을 사용하여 IP 주소별로 트래픽을 필터링하고 "-q"를 사용하여 통계 요약을 생성하는 연습을 했습니다. 이러한 기술은 명령줄 도구를 사용하여 네트워크 트래픽 분석 및 SMB 프로토콜 모니터링에 필수적인 기술을 제공합니다.