Tshark 에서 디스플레이 필터 사용하기

WiresharkBeginner
지금 연습하기

소개

이 실습에서는 Wireshark 의 명령줄 도구 tshark에서 디스플레이 필터를 활용하여 효율적인 네트워크 트래픽 분석을 배우게 됩니다. 특정 IP 주소 또는 TCP 포트에서 발생하는 패킷과 같은 특정 트래픽 패턴을 분리하기 위해 패킷 캡처 파일 (capture.pcap) 을 읽고 필터를 적용하는 연습을 하게 됩니다.

실습을 통해 파일 읽기용 -r 및 필터 적용용 -Y와 같은 주요 tshark 명령어를 숙달하게 됩니다. 이 실습은 필터 적용 결과와 미적용 결과를 비교하여 네트워크 문제 해결 능력을 향상시키는 데 중점을 둡니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Tshark 설치 및 샘플 파일 확인

이 첫 번째 단계에서는 tshark 명령줄 도구가 설치되어 있고 샘플 패킷 캡처 파일이 작업 디렉터리에 있는지 확인합니다. 이는 이후 네트워크 분석 작업을 위한 환경이 준비되었음을 보장합니다.

  1. 먼저 tshark 설치를 확인하기 위해 버전을 확인합니다. 터미널을 열고 다음을 실행합니다.

    tshark -v

    tshark가 설치되었음을 나타내는 다음과 유사한 출력이 표시되어야 합니다.

    TShark (Wireshark) X.Y.Z (Git vX.Y.Z-gXXXXXXXXXXXX)
    ...

    버전 번호 (X.Y.Z) 는 다를 수 있지만, 출력이 나타나는 것은 tshark가 준비되었음을 확인합니다.

  2. 다음으로, 샘플 패킷 캡처 파일이 있는 프로젝트 디렉터리로 이동합니다. 이는 이 실습의 기본 작업 디렉터리입니다.

    cd ~/project
  3. 이 디렉터리에 샘플 패킷 캡처 파일 capture.pcap이 있는지 확인합니다. 이 파일은 이후 모든 분석 단계에서 사용됩니다.

    ls -l capture.pcap

    다음과 유사한 출력이 표시되어야 합니다.

    -rw-r--r-- 1 labex labex 123456 Jan 1 00:00 capture.pcap

    이 출력은 파일의 권한, 소유자, 크기 및 수정 날짜를 확인하여 파일이 존재하고 접근 가능함을 나타냅니다.

패킷 캡처 파일 읽기 (-r)

이 단계에서는 tshark를 사용하여 패킷 캡처 파일의 내용을 읽고 표시하는 방법을 배웁니다. -r 옵션은 입력 파일을 지정하는 데 필수적이며, tshark가 실시간 데이터를 캡처하는 대신 사전 녹화된 네트워크 트래픽을 분석할 수 있도록 합니다.

  1. capture.pcap 파일이 있는 ~/project 디렉터리에 있는지 확인합니다.

    cd ~/project
  2. 이제 tshark를 사용하여 capture.pcap 파일에서 모든 패킷을 읽고 표시합니다.

    tshark -r capture.pcap

    -r 플래그는 지정된 파일에서 읽도록 tshark에 지시합니다. 이 명령은 각 패킷의 요약 정보를 터미널에 직접 출력합니다.

  3. 출력은 각 패킷에 대한 기본 정보를 열에 표시합니다. 패킷 번호, 타임스탬프, 소스 및 대상 IP 주소, 프로토콜 및 간략한 설명과 같은 세부 정보를 볼 수 있습니다. 예를 들어:

    1   0.000000 10.0.2.15 → 10.0.0.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    2   0.000123 10.0.0.2 → 10.0.2.15 TCP 74 49234 → 80 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0
    ...

    각 줄은 하나의 네트워크 패킷을 나타내며, 트래픽의 빠른 개요를 제공합니다.

  4. capture.pcap에는 많은 패킷이 포함되어 있으므로 출력이 계속 스크롤됩니다. 표시를 중지하고 명령 프롬프트로 돌아가려면 Ctrl+C를 누릅니다. 이 키보드 단축키는 tshark 프로세스를 안전하게 종료합니다.

소스 IP(10.0.2.15) 로 필터링

이 단계에서는 특정 소스 IP 주소에서만 발생하는 패킷만 표시하도록 디스플레이 필터를 적용하는 방법을 배웁니다. tshark-Y 옵션을 사용하면 와이어샤크의 강력한 디스플레이 필터 구문을 활용하여 분석 대상을 관련 트래픽으로 좁힐 수 있습니다.

  1. ~/project 디렉터리에 있는지 확인합니다.

    cd ~/project
  2. 이제 소스 IP 주소가 10.0.2.15인 패킷만 표시하도록 capture.pcap 파일을 필터링합니다. 필터 ip.src==10.0.2.15는 이 조건을 지정합니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15"

    -Y 플래그는 인용 부호 안에 제공된 디스플레이 필터를 적용합니다.

  3. 명령은 필터 기준에 일치하는 패킷만 출력합니다. 표시되는 모든 패킷의 소스 IP 주소가 10.0.2.15임을 알 수 있습니다.

    1   0.000000 10.0.2.15 → 10.0.0.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    3   0.000456 10.0.2.15 → 10.0.0.2 TCP 66 80 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
    ...

    이 출력을 이전 단계의 필터링되지 않은 결과와 비교해 보세요. 이는 디스플레이 필터가 큰 캡처 파일 내에서 특정 트래픽 패턴에 집중하는 데 어떻게 도움이 되는지 보여줍니다.

  4. 필터링된 출력 검토가 끝나면 표시를 중지하고 명령 프롬프트로 돌아가려면 Ctrl+C를 누릅니다.

복합 필터 (소스 IP 10.0.2.15 및 TCP 포트 80) 적용

이 단계에서는 논리 연산자를 사용하여 여러 디스플레이 필터를 결합하여 네트워크 트래픽 분석을 정제하는 방법을 배웁니다. and 연산자를 사용하면 표시될 패킷이 정의된 모든 조건을 충족해야 함을 지정하여 매우 타겟팅된 조사를 가능하게 합니다.

  1. ~/project 디렉터리에 있는지 확인합니다.

    cd ~/project
  2. 이제 두 가지 조건을 동시에 충족하는 패킷을 필터링해 보겠습니다. IP 주소 10.0.2.15에서 발생해야 하며, TCP 포트 80(HTTP 트래픽에 일반적으로 사용됨) 을 사용해야 합니다. and 연산자는 패킷이 출력에 포함되려면 두 조건 모두 참이어야 함을 보장합니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15 and tcp.port==80"

    이 명령은 소스 IP 및 TCP 포트 기준을 모두 충족하는 패킷만 표시합니다.

  3. 출력은 두 조건 모두를 만족하는 패킷만 표시합니다. 예를 들어, 지정된 IP 주소에서 HTTP 요청 또는 응답을 볼 수 있습니다.

    1   0.000000 10.0.2.15 → 10.0.0.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    5   0.001234 10.0.2.15 → 10.0.0.2 HTTP 145 GET /index.html HTTP/1.1
    ...

    단일 필터를 사용하는 경우와 비교하여 이 결합된 필터가 얼마나 정확한 결과를 제공하는지 확인하세요. 이 기술은 특정 대화 또는 애플리케이션 트래픽을 분리하는 데 필수적입니다.

  4. 출력 검토가 끝나면 명령 프롬프트로 돌아가려면 Ctrl+C를 누릅니다.

자세한 패킷 보기 (-P 옵션) 로 출력 확인

이 마지막 단계에서는 tshark-P 옵션을 사용하여 필터링된 패킷에 대한 상세 정보를 표시하는 방법을 배웁니다. -P 플래그는 패킷 요약을 보면서 동시에 패킷을 파일로 쓰거나 다른 출력 억제 옵션과 함께 사용할 때 특히 유용합니다.

  1. ~/project 디렉터리에 있는지 확인합니다.

    cd ~/project
  2. 먼저, 파일로 쓰는 경우 -P를 사용했을 때와 사용하지 않았을 때의 차이를 살펴보겠습니다. -P 없이 다음 명령을 실행합니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15 and tcp.port==80" -w filtered.pcap

    패킷이 파일로 쓰여지기 때문에 화면에 패킷 정보가 표시되지 않는 것을 확인하세요.

  3. 이제 -P 옵션과 함께 동일한 명령을 실행합니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15 and tcp.port==80" -w filtered.pcap -P

    -P 플래그를 사용하면 패킷이 동시에 파일로 쓰여지는 동안 화면에 패킷 요약이 표시됩니다.

    1   0.000000 10.0.2.15 → 10.0.0.2 TCP 74 80 → 49234 [SYN] Seq=0 Win=64240 Len=0
    2   0.000123 10.0.2.15 → 10.0.0.2 TCP 74 80 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
    ...
  4. 또 다른 유용한 시나리오는 -P-q (정숙 모드) 와 결합하는 것입니다. 먼저 -q만 사용해 보겠습니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15 and tcp.port==80" -q

    이렇게 하면 모든 패킷 출력이 억제되고 마지막에 패킷 수만 표시됩니다.

  5. 이제 -q-P를 결합합니다.

    tshark -r capture.pcap -Y "ip.src==10.0.2.15 and tcp.port==80" -q -P

    -P 옵션은 -q의 억제를 무시하고 다시 패킷 요약을 표시합니다.

-P 옵션은 필터링된 결과를 파일로 동시에 저장하면서 패킷 처리를 모니터링해야 할 때, 또는 -q와 같은 다른 옵션의 출력 억제를 무시해야 할 때 가장 유용합니다.

요약

이 실습에서는 Wireshark 의 명령줄 도구 tshark를 사용하여 네트워크 트래픽 분석을 위한 디스플레이 필터를 효과적으로 적용하는 방법을 배웠습니다. PCAP 파일을 -r로 읽고, IP 주소와 포트를 사용하여 -Y로 필터링하고, and와 같은 논리 연산자를 사용하여 조건을 결합하는 연습을 했습니다.

연습을 통해 특정 트래픽 패턴을 분리하고 -P를 사용하여 결과를 확인하는 방법을 보여주었습니다. 이러한 기술은 관련 네트워크 데이터에 집중하여 효율적인 문제 해결을 가능하게 합니다.