Tshark 로그를 이용한 디버깅

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 Tshark 를 사용하여 필수적인 디버깅 기술을 배우게 됩니다. --log-level을 사용하여 디버그 레벨을 설정하고, -i를 사용하여 eth1에서 실시간 트래픽을 캡처하며, 분석을 위해 --log-file을 사용하여 로그를 파일에 저장하는 방법을 살펴봅니다.

실습을 통해 디버그 모드 구성, 네트워크 트래픽 모니터링, 로그 출력 해석을 연습하게 됩니다. 이 랩은 제어된 VM 환경에서 Tshark 의 핵심 디버깅 기능을 실질적으로 경험할 수 있도록 합니다.

--log-level debug 로 디버그 레벨 설정

이 단계에서는 Wireshark 의 명령줄 도구인 tshark를 사용할 때 로그 메시지의 상세 수준을 조정하는 방법을 배우게 됩니다. --log-level 플래그는 tshark 가 표시하는 정보의 양을 제어하는 데 도움이 되며, 이는 백그라운드에서 무슨 일이 일어나고 있는지 이해하거나 문제를 해결해야 할 때 특히 유용합니다.

  1. 먼저, 작업 환경을 준비해 보겠습니다. LabEx VM 에서 터미널을 엽니다. 모든 것을 정리하기 위해 기본 프로젝트 디렉토리에서 작업합니다.

    cd ~/project
  2. 로그 레벨을 설정하기 위한 기본 명령 구조는 간단합니다. 플래그 뒤에 원하는 레벨을 지정하기만 하면 됩니다.

    tshark --log-level <level>

    다음은 가장 일반적으로 사용되는 로그 레벨이며, 상세 수준이 낮은 것부터 높은 순서로 정렬됩니다.

    • critical - tshark 가 작동하지 못하게 할 수 있는 심각한 오류만 표시합니다.
    • warning - 중요하지는 않지만 주목할 가치가 있는 잠재적인 문제를 보여줍니다.
    • message - 정상적인 작동 메시지를 표시하는 기본 레벨입니다.
    • info - tshark 의 활동에 대한 추가 정보 메시지를 제공합니다.
    • debug - 심층적인 문제 해결을 위해 가장 상세한 기술 정보를 표시합니다.
  3. 이 연습에서는 최대량의 정보를 보기 위해 debug 레벨을 사용합니다. 이를 통해 tshark 의 모든 백그라운드 작업을 이해할 수 있습니다. 다음 명령을 실행합니다.

    tshark --log-level debug
  4. 명령을 실행한 후 평소보다 훨씬 더 많은 출력을 볼 수 있습니다. 이 디버그 출력에는 초기화 세부 정보, 내부 처리 메시지, tshark 가 네트워크 트래픽을 처리하는 방법에 대한 기술 정보가 포함됩니다.

  5. tshark 를 중지할 준비가 되면 터미널에서 Ctrl+C를 누르십시오. 이 키보드 단축키는 현재 실행 중인 명령을 중지하기 위한 인터럽트 신호를 보냅니다.

-i eth1 로 트래픽 캡처

이 단계에서는 Wireshark 의 강력한 명령줄 도구인 tshark를 사용하여 실시간 네트워크 트래픽을 캡처하는 방법을 살펴봅니다. 네트워크 인터페이스는 컴퓨터가 네트워크에 연결되는 물리적 또는 가상 지점이며, eth1은 일반적으로 Linux 시스템에서 첫 번째 이더넷 인터페이스입니다.

  1. 먼저, LabEx VM 에서 사용 가능한 네트워크 인터페이스를 식별해 보겠습니다. 이렇게 하면 올바른 인터페이스를 모니터링하고 있는지 확인할 수 있습니다.

    tshark -D

    이 명령은 tshark 가 액세스할 수 있는 모든 네트워크 인터페이스를 나열합니다. 출력에서 eth1을 찾으십시오. 이것이 일반적으로 기본 이더넷 연결입니다.

  2. 이제 실제 네트워크 트래픽 캡처를 시작합니다. -i 플래그는 tshark 에게 모니터링할 인터페이스를 알려줍니다.

    tshark -i eth1
  3. 패킷이 네트워크를 통해 흐르면서 실시간으로 표시되는 것을 볼 수 있습니다. 각 줄은 하나의 네트워크 패킷을 나타내며 다음을 보여줍니다.

    • 캡처된 정확한 시간 (타임스탬프)
    • 패킷의 송신 및 수신 위치 (IP 주소)
    • 포함된 네트워크 통신의 종류 (프로토콜)
    • 전송되는 데이터의 양 (패킷 길이)
  4. 대표적인 트래픽 샘플을 수집하기 위해 약 10 초 동안 캡처를 실행합니다. 준비가 되면 Ctrl+C를 눌러 캡처를 중지합니다. 이를 통해 실시간 패킷 캡처를 직접 경험할 수 있습니다.

  5. 때로는 특정 수의 패킷을 캡처하고 싶을 수 있습니다. -c 플래그를 사용하면 이 제한을 설정할 수 있습니다.

    tshark -i eth1 -c 10

    이 명령은 정확히 10 개의 패킷을 캡처한 후 자동으로 중지되며, 빠른 테스트에 유용합니다.

  6. 이를 디버깅과 결합하여 캡처 프로세스에 대한 더 자세한 정보를 얻을 수 있습니다.

    tshark -i eth1 --log-level debug

    이렇게 하면 패킷뿐만 아니라 tshark 의 내부 작업도 표시되어 백그라운드에서 무슨 일이 일어나고 있는지 이해하는 데 도움이 됩니다.

--log-file tshark.log 로 파일에 로그 기록

이 단계에서는 --log-file 옵션을 사용하여 tshark 캡처 로그를 나중에 분석할 수 있도록 파일에 저장하는 방법을 배우게 됩니다. 이는 네트워크 트래픽 패턴을 문서화하거나 연결 문제를 해결해야 할 때 특히 유용합니다. 실시간 출력을 보는 대신 편리하게 데이터를 검토할 수 있기 때문입니다.

  1. 먼저, 기본 작업 디렉토리에 있는지 확인합니다. 로그 파일이 현재 디렉토리에 생성되므로 이는 중요합니다.

    cd ~/project
  2. 네트워크 트래픽 캡처를 시작하고 동시에 모든 로그를 tshark.log라는 파일에 저장하려면 이 명령을 실행합니다. -i eth1은 이더넷 인터페이스에서 캡처하고 있음을 지정합니다.

    tshark -i eth1 --log-file tshark.log
  3. 충분한 데이터를 수집하기 위해 약 10 초 동안 캡처를 실행한 다음 Ctrl+C를 눌러 캡처 프로세스를 정상적으로 중지합니다. 이 키보드 인터럽트는 로그 파일이 제대로 닫히도록 보장합니다.

  4. 디렉토리 내용을 나열하여 로그 파일이 성공적으로 생성되었는지 확인합니다. -l 플래그는 크기 및 타임스탬프를 포함한 자세한 파일 정보를 표시합니다.

    ls -l tshark.log

    파일이 크기 및 생성 시간과 함께 나열되어 캡처가 예상대로 작동했음을 확인해야 합니다.

  5. 캡처된 패킷을 검사하려면 로그 파일의 내용을 봅니다. cat 명령은 터미널에 전체 파일 내용을 표시합니다.

    cat tshark.log

    출력에는 타임스탬프, 송신/수신 주소 및 프로토콜 정보를 포함하여 캡처된 패킷이 읽을 수 있는 형식으로 표시됩니다.

  6. 이전 단계를 결합한 보다 완전한 예제를 보려면 여러 유용한 매개변수를 포함하는 이 향상된 명령을 시도해 보십시오.

    tshark -i eth1 --log-level debug --log-file tshark.log -c 20

    이 포괄적인 명령은 다음을 수행합니다.

    • eth1 네트워크 인터페이스에서 특정 패킷을 캡처합니다.
    • 최대 상세 정보를 위해 로깅 레벨을 디버그로 설정합니다.
    • 모든 출력을 tshark.log 파일에 저장합니다.
    • 정확히 20 개의 패킷을 캡처한 후 자동으로 중지합니다.

오류 로그 검토

이 단계에서는 이전 단계에서 생성된 tshark 로그 파일을 분석하여 잠재적인 네트워크 문제 및 오류를 식별합니다. 로그는 네트워크 활동 및 잠재적 문제에 대한 자세한 기록을 제공하므로 이는 네트워크 문제 해결에 필수적인 기술입니다.

  1. 먼저, 아직 해당 디렉토리에 있지 않다면 프로젝트 디렉토리로 이동합니다. 이렇게 하면 올바른 로그 파일로 작업하고 있는지 확인합니다.

    cd ~/project
  2. 캡처된 네트워크 트래픽의 전체적인 그림을 얻기 위해 전체 로그 파일 내용을 봅니다. cat 명령은 터미널에 전체 파일 내용을 표시합니다.

    cat tshark.log
  3. 로그에서 특정 오류 메시지를 검색하려면 대소문자를 구분하지 않는 일치 (-i 플래그) 와 함께 grep 을 사용합니다. 이렇게 하면 대소문자에 관계없이 모든 오류 항목을 찾을 수 있습니다.

    grep -i "error" tshark.log
  4. 보다 포괄적인 분석을 위해 경고 및 실패를 포함한 여러 유형의 문제를 검색합니다. -E 플래그는 확장 정규 표현식 (extended regular expressions) 을 활성화합니다.

    grep -E -i "error|warning|fail" tshark.log
  5. 오류 발생 횟수를 정량화하려면 grep 출력을 줄 수 (-l) 와 함께 단어 수 (wc) 로 파이프합니다. 이렇게 하면 얼마나 많은 오류가 기록되었는지 빠르게 알 수 있습니다.

    grep -i "error" tshark.log | wc -l
  6. 패킷 수준 오류에 대한 보다 구조화된 보기를 보려면 tshark 의 표시 필터 (-Y) 를 사용하여 오류 플래그가 있는 프레임만 표시합니다. 이렇게 하면 캡처에서 문제가 있는 패킷을 식별하는 데 도움이 됩니다.

    tshark -r tshark.log -Y "frame.error_flag == 1"
  7. 추가 분석 또는 보고를 위해 오류 메시지만 저장하려면 grep 출력을 새 파일로 리디렉션합니다. 이렇게 하면 깨끗한 오류 전용 로그가 생성됩니다.

    grep -i "error" tshark.log > errors.txt

요약

이 Lab 에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 네트워크 트래픽을 분석하는 실용적인 기술을 배웠습니다. 복잡한 네트워크 문제 해결에 중요한 상세한 운영 메시지를 얻기 위해 --log-level debug를 사용하여 디버그 레벨을 설정하는 방법을 살펴보았습니다.

또한 사용 가능한 인터페이스를 식별하고 실시간 패킷 데이터를 분석하여 eth1 인터페이스에서 라이브 트래픽을 캡처하는 연습을 했습니다. 이러한 기본적인 기술은 명령줄 환경에서 효율적인 네트워크 모니터링 및 문제 진단을 가능하게 합니다.