Tshark 에서 캡처 파일 압축하기

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 네트워크 트래픽을 캡처, 압축 및 분석하는 방법을 배우게 됩니다. 인터페이스 선택, 압축 파일 저장, 패킷 읽기 등 필수적인 명령을 실습하면서 데이터 무결성을 검증할 것입니다.

이 연습에서는 인터페이스 목록, 실시간 트래픽 캡처, 압축 파일 검사를 다룹니다. 이 랩을 완료하면 데이터 품질을 저하시키지 않으면서 저장 공간을 최적화하는 압축 형식으로 패킷 캡처를 효율적으로 관리하는 기술을 습득하게 됩니다.

-i eth1 로 트래픽 캡처

이 단계에서는 Wireshark 의 명령줄 버전인 tshark를 사용하여 실시간 네트워크 트래픽을 캡처하는 방법을 배우게 됩니다. -i 옵션을 사용하면 모니터링할 네트워크 인터페이스를 지정할 수 있습니다. 이는 머신에 여러 네트워크 연결이 있는 경우 매우 중요합니다.

  1. 먼저, 작업 공간을 준비해 보겠습니다. LabEx VM 에서 터미널을 열고 캡처를 저장할 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  2. 캡처하기 전에 사용 가능한 네트워크 인터페이스를 식별해야 합니다. 다음 명령을 실행하여 인터페이스를 나열합니다.

    tshark -D

    네트워크 인터페이스가 나열된 출력을 볼 수 있습니다. 일반적으로 다음을 포함합니다.

    1. eth1 (기본 이더넷 인터페이스)
    2. any (모든 인터페이스)
    3. lo (내부 통신을 위한 루프백)
  3. 주 네트워크 인터페이스 (일반적으로 eth1) 에서 패킷 캡처를 시작하려면 다음을 사용합니다.

    tshark -i eth1

    이렇게 하면 터미널에 실시간 네트워크 트래픽이 스크롤되어 표시됩니다. 각 줄은 소스/대상 주소 및 프로토콜 정보를 포함하는 패킷을 나타냅니다.

  4. (무한정 실행될 수 있는) 지속적인 캡처를 중지하려면 Ctrl+C를 누릅니다. 그러면 터미널에 캡처된 총 패킷 수를 포함한 캡처 통계가 표시됩니다.

  5. 연습을 위해 정확히 5 개의 패킷을 캡처해 보겠습니다. -c 플래그는 캡처 수를 제한합니다.

    tshark -i eth1 -c 5

    이 명령은 5 개의 패킷을 캡처한 후 자동으로 중지되어 검사할 수 있는 관리 가능한 샘플을 제공합니다.

-w capture.pcap.gz 를 사용하여 Gzip 으로 저장

이 단계에서는 Tshark 를 사용하여 네트워크 트래픽 캡처를 압축 형식으로 직접 저장하여 효율적으로 저장하는 방법을 살펴봅니다. 압축은 모든 원본 패킷 데이터를 유지하면서 저장 공간을 줄이는 데 도움이 됩니다. Tshark 의 -w 옵션은 .gz 파일 확장자를 사용할 때 자동으로 압축을 처리합니다.

  1. 먼저, 캡처 파일을 저장할 작업 디렉토리로 이동합니다. 이렇게 하면 모든 파일이 한 곳에서 정리됩니다.

    cd ~/project
  2. 이제 실시간 네트워크 트래픽을 캡처하여 압축하여 저장합니다. 다음 명령은 세 가지 중요한 작업을 한 번에 수행합니다.

    • 모니터링할 네트워크 인터페이스를 지정합니다 (eth1)
    • 출력 파일을 자동으로 압축합니다 (.gz 확장자 확인)
    • 데모 목적으로 캡처를 10 개의 패킷으로 제한합니다.
    tshark -i eth1 -w capture.pcap.gz -c 10

    명령이 실행되면 Tshark 가 10 개에 도달할 때까지 캡처된 각 패킷을 계산하는 것을 볼 수 있습니다.

  3. 캡처가 완료된 후 압축 파일이 제대로 생성되었는지 확인해 보겠습니다. -lh 옵션은 파일 크기를 사람이 읽을 수 있는 형식으로 표시합니다.

    ls -lh capture.pcap.gz

    출력에는 압축 파일의 세부 정보가 표시되며, 여기에는 크기 (압축되지 않은 캡처보다 훨씬 작음) 가 포함됩니다.

    -rw-r--r-- 1 labex labex 1.2K Mar 1 10:00 capture.pcap.gz
  4. 마지막으로, 수동으로 압축을 풀지 않고 압축 파일에서 직접 읽을 수 있습니다. 이 명령은 캡처가 작동했는지 확인하기 위해 처음 3 개의 패킷만 표시합니다.

    tshark -r capture.pcap.gz -c 3

    Tshark 는 압축 해제를 자동으로 처리하여 압축되지 않은 파일을 사용한 것처럼 정확하게 패킷 세부 정보를 표시합니다.

-r capture.pcap.gz 로 압축 파일 읽기

이 단계에서는 이전에 생성한 압축된 패킷 캡처 파일 (capture.pcap.gz) 을 사용합니다. Wireshark 의 명령줄 도구인 tshark를 사용하여 먼저 수동으로 압축을 풀 필요 없이 이 파일을 읽고 분석합니다. 이는 압축을 풀지 않으면 상당한 디스크 공간을 차지하는 대용량 캡처 파일을 처리할 때 특히 유용합니다.

  1. 먼저, 올바른 위치에 있는지, 압축된 캡처 파일이 존재하는지 확인해 보겠습니다. 다음 명령은 프로젝트 디렉토리로 이동하여 세부 정보와 함께 파일을 나열합니다.

    cd ~/project
    ls -l capture.pcap.gz

    크기 및 권한과 함께 압축된 파일이 나열되어야 합니다. 이를 통해 진행할 준비가 되었음을 확인할 수 있습니다.

  2. 압축된 캡처 파일을 읽는 기본 명령은 패킷 요약을 표시합니다. 각 줄은 타임스탬프, 소스/대상 주소 및 프로토콜과 같은 필수 정보를 포함하는 하나의 네트워크 패킷을 나타냅니다.

    tshark -r capture.pcap.gz

    tshark가 gzip 압축을 자동으로 처리한다는 점에 유의하세요. 별도의 압축 해제 단계가 필요하지 않습니다.

  3. 대용량 파일로 작업할 때는 출력을 제한하는 것이 유용한 경우가 많습니다. 이 명령은 처음 5 개의 패킷만 표시하며, 이는 빠른 확인에 유용합니다.

    tshark -r capture.pcap.gz -c 5

    -c 플래그는 "count"를 나타내며 표시할 패킷 수를 제어합니다.

  4. 패킷 내용을 자세히 살펴보려면 -V를 사용하여 자세한 모드를 사용합니다. 이 예제에서는 모든 프로토콜 헤더 및 페이로드 데이터를 포함하여 처음 3 개의 패킷에 대한 전체 세부 정보를 표시합니다.

    tshark -r capture.pcap.gz -V -c 3

    자세한 출력은 특정 패킷 필드를 검사하거나 네트워크 문제를 해결해야 할 때 매우 중요합니다.

  5. 대상 분석을 위해 프로토콜별로 패킷을 필터링할 수 있습니다. 이 명령은 캡처에서 발견된 처음 2 개의 HTTP 패킷을 표시합니다.

    tshark -r capture.pcap.gz -Y "http" -c 2

    -Y 플래그는 표시 필터 (Wireshark 의 기본 필터 구문과 유사) 를 적용합니다.

  6. 마지막으로, 개별 패킷을 표시하지 않고 전체 캡처 파일에 대한 통계를 얻으려면 이 계산 명령을 사용합니다.

    tshark -r capture.pcap.gz -q -z io,stat,0

    -q는 출력을 조용하게 만들고 (패킷 표시 억제), -z는 다양한 통계 옵션을 제공합니다. 이를 통해 캡처의 크기와 내용에 대한 간략한 개요를 얻을 수 있습니다.

-V 옵션으로 확인

이 단계에서는 -V 플래그를 사용하여 Wireshark 의 강력한 자세한 모드를 살펴봅니다. 이 모드는 패킷의 전체 프로토콜 분석을 보여주며, 네트워크 통신의 각 계층에서 정확히 어떤 일이 발생하는지 보여줍니다. 기본 헤더 이상으로 패킷 내용을 검사해야 할 때 특히 유용합니다.

  1. 먼저, 작업 디렉토리로 이동하여 압축된 캡처 파일이 존재하는지 확인해 보겠습니다. cd 명령은 디렉토리를 변경하고, ls -l은 자세한 파일 정보를 표시합니다.

    cd ~/project
    ls -l capture.pcap.gz
  2. 이제 -V를 사용하여 포괄적인 프로토콜 세부 정보를 확인합니다. -c 3 플래그는 출력을 처음 3 개의 패킷으로 제한하여 분석을 더 쉽게 만듭니다.

    tshark -r capture.pcap.gz -V -c 3

    각 패킷의 출력은 이더넷, IP 및 전송 계층 헤더를 포함한 계층별 정보를 표시한 다음 모든 애플리케이션 계층 데이터가 표시됩니다.

  3. HTTP 트래픽에 집중할 때 -V를 표시 필터 (-Y) 와 결합합니다. 이렇게 하면 전체 프로토콜 세부 정보와 함께 HTTP 패킷만 표시됩니다.

    tshark -r capture.pcap.gz -Y "http" -V -c 2
  4. TCP 분석의 경우 이 명령은 모든 프로토콜 필드가 있는 하나의 TCP 패킷을 표시합니다. 시퀀스 번호, 플래그, 윈도우 크기 및 기타 TCP 관련 정보를 볼 수 있습니다.

    tshark -r capture.pcap.gz -V -Y "tcp" -c 1
  5. DNS 쿼리는 자세한 모드에서 흥미로운 세부 정보를 보여줍니다. 이 예는 쿼리 유형, 클래스 및 전체 질문 섹션을 포함하여 단일 DNS 패킷을 표시합니다.

    tshark -r capture.pcap.gz -V -Y "dns" -c 1
  6. 마지막으로, 잘못된 체크섬이 있는 패킷이 있는지 확인할 수 있습니다. 이는 잠재적인 네트워크 손상 또는 캡처 문제를 식별하는 데 도움이 됩니다.

    tshark -r capture.pcap.gz -V -Y "tcp.checksum_bad==1" -c 1

요약

이 랩에서는 Wireshark 의 tshark 명령줄 도구를 사용하여 네트워크 트래픽을 효율적으로 캡처, 압축 및 분석하는 방법을 배웠습니다. -i eth1을 사용하여 eth1 인터페이스에서 실시간 트래픽을 캡처하고 -w capture.pcap.gz를 사용하여 gzip 형식으로 압축 파일을 직접 저장하는 연습을 했습니다.

이 연습에서는 압축과 분석을 결합하여 패킷 캡처를 효과적으로 관리하는 방법을 보여주었습니다. -r capture.pcap.gz를 사용하여 수동 압축 해제 없이 압축 파일을 읽는 기능을 확인했으며, -i, -w, -r, -c와 같은 필수 플래그를 숙달했습니다.