Tshark 패킷 캡처 크기 제한

WiresharkBeginner
지금 연습하기

소개

이 실습에서는 Tshark 명령어를 사용하여 Wireshark 에서 패킷 캡처 크기를 제어하는 방법을 배웁니다. 총 패킷 수를 -c 500으로 제한하고 패킷 길이를 -s 128로 제한하여 헤더만 캡처하고 저장 공간을 절약하는 두 가지 필수 기술을 탐색합니다.

eth1 인터페이스에서 실제 연습을 통해 트래픽을 limited.pcap 파일에 캡처하고, 서로 다른 설정이 캡처에 어떤 영향을 미치는지 관찰합니다. 이 실습을 통해 다양한 분석 시나리오에 맞춰 패킷 수집을 최적화하는 데 도움이 될 것입니다.

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

-c 500 옵션으로 패킷 수 설정

이 단계에서는 Tshark 가 수집하는 패킷 수를 제한하여 패킷 캡처 시간을 제어하는 방법을 배웁니다. Tshark 는 Wireshark 의 명령줄 버전으로, 자동화된 캡처에 적합합니다. -c 옵션은 지속적인 캡처로 시스템을 과부하하지 않고 네트워크 트래픽의 대표적인 샘플이 필요할 때 특히 유용합니다.

  1. LabEx VM 의 터미널을 엽니다. 시스템은 자동으로 올바른 작업 디렉터리 (~/project) 에 배치하므로 즉시 시작할 수 있습니다.

  2. 명령어 구조는 다음과 같은 기본 패턴을 사용합니다.

    tshark -c [숫자] [다른 옵션]

    여기서 [숫자]는 수집할 최대 패킷 수를 지정하여 캡처가 언제 중지될지 정확하게 결정합니다. 이는 저장 공간을 채울 수 있는 무제한 실행을 방지합니다.

  3. 먼저 사용 가능한 네트워크 인터페이스를 확인합니다. 다음 명령어를 실행합니다.

    tshark -D

    다음과 유사한 인터페이스 목록이 표시됩니다.

    1. eth0
    2. eth1 (가상 인터페이스)
    3. any
    4. lo (루프백)
    ...

    이 실습에서 일관된 트래픽 생성을 보장하기 위해 만들어진 가상 인터페이스인 eth1을 캡처에 사용합니다.

  4. 주요 연습으로 500 개의 패킷을 캡처해 보겠습니다. 다음 명령어를 실행합니다.

    tshark -c 500 -i eth1

    패킷 캡처에는 관리자 권한이 필요하므로 sudo 명령어가 필요합니다. 이 명령은 tshark에게 eth1 네트워크 연결을 모니터링하도록 지시합니다.

  5. tshark가 캡처할 트래픽을 생성하려면 새 터미널 탭을 열거나 현재 터미널을 분할하고 다음 명령어를 실행합니다.

    ping -c 10 google.com

    이렇게 하면 google.com에 10 개의 ICMP 패킷을 전송하여 eth1에서 tshark가 캡처할 수 있는 네트워크 활동을 생성합니다.

  6. 패킷이 흐르면 tshark 터미널에서 실시간 출력을 볼 수 있습니다. 정확히 500 개의 패킷 후 tshark는 자동으로 종료됩니다. 출력은 다음과 유사하게 표시됩니다 (500 개 패킷의 경우 훨씬 길어집니다).

    'eth1'에서 캡처 중
        1 0.000000000 192.168.X.X -> 142.250.X.X ICMP 84 Echo (ping) 요청  id=0xXXXX, seq=1/256, ttl=64 (2 초 후 응답)
        2 0.000000000 142.250.X.X -> 192.168.X.X ICMP 84 Echo (ping) 응답    id=0xXXXX, seq=1/256, ttl=117 (1 초 후 요청)
    ... (많은 줄)
    500 개 패킷 캡처됨
  7. 전체 500 개 패킷 캡처 전에 메커니즘을 이해하기 위해 작은 샘플로 테스트해 보겠습니다. 이 10 개 패킷 시험은 설정을 확인하는 데 도움이 됩니다.

    tshark -c 10 -i eth1

    이 명령을 실행하는 동안 다른 터미널에서 트래픽을 생성해야 합니다.

-s 128 옵션으로 스냅샷 길이 설정

이 단계에서는 Tshark 의 -s 옵션을 사용하여 패킷 캡처 시 스냅샷 길이 (snaplen) 를 설정하는 방법을 배웁니다. 이는 각 패킷의 얼마나 많은 부분을 캡처할지 결정하며, 128 바이트는 패킷 헤더를 캡처하면서 저장 공간을 절약하는 일반적인 값입니다. 스냅샷 길이는 분석에 패킷 헤더만 필요하고 전체 패킷 내용은 필요하지 않을 때 특히 유용합니다.

  1. 먼저 터미널에서 기본 작업 디렉터리 ~/project에 있는지 확인합니다. 여기서 모든 캡처 명령을 실행하여 정리된 상태를 유지합니다.

  2. 스냅샷 길이 옵션 (-s) 은 기록할 바이트 수를 지정하여 각 패킷의 얼마나 많은 부분을 캡처할지 제한합니다. 값이 작을수록 디스크 공간을 절약하지만 중요한 페이로드 데이터를 놓칠 수 있습니다. 기본 구문은 다음과 같습니다.

    tshark -s [길이] [다른 옵션]
  3. 이전 단계의 패킷 수와 결합하여 스냅샷 길이를 128 바이트로 설정하여 패킷을 캡처해 보겠습니다. 이 명령은 각 패킷의 처음 128 바이트를 캡처하고 500 개 패킷에 도달할 때까지 계속합니다.

    tshark -c 500 -s 128 -i eth1

    tshark가 실행되는 동안 별도의 터미널 (예: ping -c 10 google.com) 에서 트래픽을 생성해야 합니다.

  4. 각 패킷의 처음 128 바이트를 보여주는 출력이 표시됩니다. -c 옵션에 지정된 대로 500 개 패킷 후 캡처가 자동으로 중지됩니다. 이 조합은 캡처 크기와 시간을 모두 관리하는 데 도움이 됩니다. 출력은 이전 단계와 유사하지만 패킷 세부 정보가 128 바이트를 초과하면 잘릴 수 있습니다.

    'eth1'에서 캡처 중
        1 0.000000000 192.168.X.X -> 142.250.X.X ICMP 84 Echo (ping) 요청  id=0xXXXX, seq=1/256, ttl=64
    ... (많은 줄)
    500 개 패킷 캡처됨
  5. 스냅샷 길이가 캡처에 미치는 영향을 더 잘 이해하려면 다음 비교 명령을 시도해 보세요. 서로 다른 -s 값으로 표시되는 데이터 양이 어떻게 변경되는지 확인하세요. 각 명령에 대해 트래픽을 생성해야 합니다.

    tshark -c 5 -s 64 -i eth1 ## 패킷당 64 바이트만 캡처
    tshark -c 5 -s 0 -i eth1  ## 전체 패킷 캡처 (기본값)

    -s 0 설정은 tshark에게 전체 패킷을 캡처하도록 지시하며, 완전한 패킷 내용이 필요하지만 더 많은 저장 공간을 소비할 때 유용합니다.

eth1 인터페이스로 트래픽 캡처

이 단계에서는 Tshark 의 -i 옵션을 사용하여 특정 인터페이스에서 네트워크 트래픽을 캡처하는 방법에 대해 알아봅니다. 네트워크 인터페이스는 컴퓨터가 네트워크와 통신하는 데 사용하는 물리적 또는 가상 연결입니다. Wi-Fi 와 이더넷과 같이 여러 인터페이스가 있는 경우, 대상 패킷 분석을 위해 올바른 인터페이스를 지정하는 것이 중요합니다.

  1. 터미널을 열고 작업 디렉터리로 이동합니다.

    cd ~/project
  2. -i 플래그는 Tshark 가 어떤 네트워크 인터페이스를 모니터링할지 지정합니다. 기본 명령 구조는 다음과 같습니다.

    tshark -i [인터페이스] [다른 옵션]

    여기서 [인터페이스]는 실제 인터페이스 이름으로 대체해야 하며, 일반적으로 실습 환경에서는 eth1입니다.

  3. 이제 패킷 제한 (-c) 및 스냅샷 길이 (-s) 에 대해 배운 내용을 결합해 보겠습니다. 이 명령은 eth1 인터페이스에서 500 개의 패킷을 캡처하고 각 패킷의 처음 128 바이트만 저장합니다.

    tshark -c 500 -s 128 -i eth1

    패킷 캡처에는 관리자 권한이 필요하므로 sudo가 필요합니다.

  4. 캡처하는 동안 테스트 트래픽을 생성하려면 다른 터미널 탭을 열고 다음을 실행합니다.

    ping -c 3 google.com

    이렇게 하면 Google 서버에 3 개의 ICMP 패킷이 전송되며, 캡처 결과에 나타나야 합니다. 이러한 알려진 패킷을 관찰하면 캡처가 올바르게 작동하는지 확인하는 데 도움이 됩니다.

  5. 캡처는 500 개 패킷 후 자동으로 중지되지만, 언제든지 다음을 눌러 수동으로 중지할 수 있습니다.

    Ctrl+C

    이 키보드 인터럽트는 캡처된 데이터를 보존하면서 캡처 프로세스를 안전하게 종료합니다.

limited.pcap 파일로 저장

이 단계에서는 나중에 분석할 수 있도록 캡처된 네트워크 트래픽을 파일로 저장하는 방법을 배웁니다. Tshark 의 -w 옵션은 캡처된 모든 네트워크 데이터를 보존하는 패킷 캡처 (pcap) 파일을 생성합니다. 이는 오프라인으로 트래픽 패턴을 검사하거나 동료들과 캡처를 공유해야 할 때 특히 유용합니다.

  1. 시작하기 전에 터미널이 올바른 작업 디렉토리에 있는지 확인하십시오. 다음을 입력합니다.

    cd ~/project

    이렇게 하면 모든 캡처 파일이 지정된 프로젝트 폴더에 저장됩니다.

  2. -w 플래그는 Tshark 가 캡처된 패킷을 저장할 위치를 지정합니다. 기본 명령 구조는 다음과 같습니다.

    tshark -w [파일 이름] [다른 옵션]

    파일 이름은 패킷 캡처 파일의 표준 형식인 .pcap 확장자로 끝나야 합니다.

  3. 이제까지 배운 모든 옵션을 실제 예제에 결합해 보겠습니다. 이 명령은 다음을 수행합니다.

    • 정확히 500 개의 패킷 캡처 (-c 500)
    • 각 패킷을 128 바이트로 제한 (-s 128)
    • eth1 인터페이스에서 수신 (-i eth1)
    • 모든 내용을 limited.pcap 파일로 저장 (-w limited.pcap)
    tshark -c 500 -s 128 -i eth1 -w limited.pcap
  4. tshark가 실행 중인 동안 다른 터미널 창을 열어 테스트 트래픽을 생성합니다. 이러한 명령은 일반적인 네트워크 활동을 생성합니다.

    ping -c 3 google.com
    curl http://example.com

    이 시뮬레이션된 트래픽은 실행 중인 tshark 세션에서 캡처됩니다.

  5. 500 개의 패킷을 캡처한 후 (또는 Ctrl+C를 눌러 이전에 중지) 캡처 파일이 존재하는지 확인하고 크기를 확인합니다.

    ls -lh limited.pcap

    출력에는 파일 세부 정보 (크기 및 생성 시간 포함) 가 다음과 유사하게 표시됩니다.

    -rw-r--r-- 1 root root 56K Aug 10 XX:XX limited.pcap
  6. 나중에 캡처된 패킷을 검토하려면 두 가지 주요 옵션이 있습니다.

    • tshark 사용 (명령줄):

      tshark -r limited.pcap

      이렇게 하면 패킷 내용이 캡처된 대로 정확하게 표시되어 원하는 대로 트래픽을 분석할 수 있습니다.

    • wireshark 사용 (GUI):

      참고: 데스크톱 인터페이스에서 이 명령을 실행해야 합니다.

      wireshark limited.pcap &

      이렇게 하면 limited.pcap 파일이 Wireshark 그래픽 사용자 인터페이스에서 열리며, 캡처된 패킷을 분석하는 더 시각적이고 대화형적인 방법을 제공합니다. & 기호는 명령을 백그라운드에서 실행하므로 터미널을 계속 사용할 수 있습니다.

요약

이 실습에서는 Tshark 에서 필수적인 명령줄 매개변수를 사용하여 패킷 캡처 크기를 제어하는 방법을 배웠습니다. -c 500으로 패킷 수를 제한하고 -s 128로 패킷 길이를 제한하여 이러한 옵션이 캡처 동작과 저장 효율에 미치는 영향을 관찰했습니다.

연습 과정에서는 이러한 기술을 대상 트래픽 분석을 위한 인터페이스 선택 (-i eth1) 과 결합하여 보여주었습니다. tshark -c 500 -s 128 -i eth1 -w limited.pcap와 같은 명령을 통해 여러 캡처 제약 조건을 동시에 적용하고 tsharkwireshark를 모두 사용하여 오프라인 분석을 위한 결과를 저장하는 실무 경험을 쌓았습니다.