소개
이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 특정 네트워크 패킷을 필터링하고 내보내는 방법을 배우게 됩니다. 샘플 캡처 파일 (capture.pcap) 에서 UDP 패킷을 추출하여 새 파일 (udp.pcap) 로 저장하는 연습을 할 것입니다.
이 연습은 -r을 사용하여 캡처 파일을 열고, -Y를 사용하여 필터를 적용하고, -w를 사용하여 결과를 내보내는 등 주요 tshark 작업을 다룹니다. 또한 -V 플래그를 사용하여 자세한 분석을 통해 내보낸 패킷을 검증할 것입니다.
-r capture.pcap 으로 파일 열기
이 단계에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 패킷 캡처 파일을 여는 방법을 배우게 됩니다. 이는 미리 기록된 캡처 파일에서 네트워크 트래픽을 분석하는 첫 번째 단계입니다. Tshark 는 Wireshark 의 터미널 버전으로, 그래픽 인터페이스 없이 네트워크 패킷을 분석할 수 있게 해줍니다.
tshark의 -r 옵션을 사용하면 이전에 저장된 캡처 파일에서 패킷을 읽을 수 있습니다. 우리가 사용할 파일 (capture.pcap) 에는 분석을 위한 샘플 네트워크 트래픽 데이터가 포함되어 있습니다. PCAP 파일은 나중에 검사할 수 있는 원시 네트워크 패킷 데이터를 저장합니다.
다음 단계를 주의 깊게 따르십시오.
- 먼저, 캡처 파일이 있는 올바른 디렉토리에 있는지 확인합니다. tshark 가 파일을 찾아야 하므로 중요합니다.
cd ~/project
- 캡처 파일이 있는지 확인하고 크기를 확인합니다. 이렇게 하면 올바른 파일로 작업하고 있는지 확인할 수 있습니다.
ls -l capture.pcap
파일 권한, 크기 및 수정 시간을 보여주는 다음과 유사한 출력이 표시됩니다.
-rw-r--r-- 1 labex labex 123456 Jul 1 10:00 capture.pcap
- 이제 tshark 를 사용하여 캡처 파일을 엽니다. 이 기본 명령은 파일을 읽고 각 패킷의 요약을 표시합니다.
tshark -r capture.pcap
그러면 터미널에 패킷 요약이 표시됩니다. 각 줄은 다음과 같은 주요 정보가 포함된 하나의 네트워크 패킷을 나타냅니다.
1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 443 → 54321 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 74 54321 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
- 이더넷, IP, TCP 헤더와 같은 모든 프로토콜 계층을 포함하여 패킷에 대한 자세한 정보를 보려면 자세한 출력을 위해
-V플래그를 추가할 수 있습니다.
tshark -r capture.pcap -V
이렇게 하면 패킷 헤더의 특정 필드를 검사해야 할 때 유용한 전체 패킷 세부 정보가 표시됩니다.
-Y "udp"로 UDP 필터링
이 단계에서는 tshark 의 -Y 옵션과 함께 Wireshark 의 표시 필터 구문을 사용하여 네트워크 캡처에서 UDP 패킷을 필터링하는 방법을 배우게 됩니다. UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜) 는 연결을 설정하지 않고 데이터그램을 전송하는 간단한 방법을 제공하는 핵심 네트워킹 프로토콜입니다. 이 필터링은 여러 프로토콜을 포함할 수 있는 더 큰 캡처 파일에서 UDP 트래픽에만 집중해야 할 때 특히 유용합니다.
tshark 의 -Y 옵션은 Wireshark 의 표시 필터 필드와 유사하게 작동합니다. 특정 조건을 충족하는 패킷만 표시하는 필터링 기준을 지정할 수 있습니다. 여기서는 UDP 프로토콜을 사용하는 패킷을 특별히 필터링합니다.
다음 단계를 주의 깊게 따르십시오.
- 먼저, 캡처 파일이 있는 프로젝트 디렉토리에 아직 있는지 확인합니다. tshark 가 캡처 파일에 액세스하려면 올바른 경로가 필요하므로 중요합니다.
cd ~/project
- 이제 UDP 필터를 적용하여 캡처 파일에서 UDP 패킷만 분석합니다. 기본 명령 구조는
tshark -r [file] -Y [filter]입니다.
tshark -r capture.pcap -Y "udp"
이 명령은 capture.pcap 파일을 처리하고 UDP 패킷만 표시합니다. 출력은 다음과 같은 형식으로 필터링된 패킷을 표시합니다.
5 0.002345 192.168.1.1 → 192.168.1.2 UDP 82 5353 → 5353 Len=40
8 0.004567 192.168.1.2 → 192.168.1.1 UDP 82 5353 → 5353 Len=40
각 줄은 캡처 번호, 타임스탬프, 소스 및 대상 IP 주소, 포트 및 패킷 길이를 표시하는 UDP 패킷을 나타냅니다.
- 각 UDP 패킷에 대한 자세한 정보를 얻으려면
-V(verbose, 상세) 플래그를 추가할 수 있습니다. 이렇게 하면 각 패킷에 대한 전체 프로토콜 분석이 표시됩니다.
tshark -r capture.pcap -Y "udp" -V
이 자세한 출력은 이더넷, IP 및 UDP 헤더를 해당 필드 및 값과 함께 포함하여 패킷의 모든 계층을 표시합니다.
- 캡처에 UDP 패킷이 몇 개나 있는지 (내용을 보지 않고) 알고 싶다면 출력을 단어 수 명령으로 파이프할 수 있습니다.
tshark -r capture.pcap -Y "udp" | wc -l
이렇게 하면 캡처 파일에서 발견된 UDP 패킷의 총 개수를 나타내는 단일 숫자가 출력됩니다.
-w udp.pcap 으로 패킷 내보내기
이 단계에서는 Wireshark 의 -w 옵션을 사용하여 필터링된 UDP 패킷을 새 캡처 파일로 내보내는 방법을 배우게 됩니다. 이는 특정 네트워크 트래픽을 격리하여 집중적인 분석을 수행하거나 동료와 공유하려는 경우 특히 유용합니다.
-w 옵션은 Tshark 에게 패킷을 패킷 캡처 파일의 표준 형식인 pcap 형식으로 파일에 쓰도록 지시합니다. 앞서 사용한 -Y 필터와 결합하면 원래 캡처 파일에서 UDP 패킷만 선택적으로 저장할 수 있습니다.
프로세스를 단계별로 살펴보겠습니다.
- 먼저, 캡처 파일이 있는 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project
- 이제 모든 UDP 패킷을 udp.pcap 이라는 새 파일로 내보내겠습니다.
tshark -r capture.pcap -Y "udp" -w udp.pcap
이 명령은 세 가지 중요한 작업을 수행합니다.
-r capture.pcap는 읽을 입력 파일을 지정합니다.-Y "udp"는 UDP 패킷만 선택하도록 필터를 적용합니다.-w udp.pcap는 필터링된 패킷을 저장할 위치를 Tshark 에게 알려줍니다.
- 명령을 실행한 후 새 파일이 생성되었는지 확인해 보겠습니다.
ls -l udp.pcap
파일이 존재하고 크기를 보여주는 다음과 유사한 출력이 표시됩니다.
-rw-r--r-- 1 labex labex 12345 Jul 1 10:05 udp.pcap
- 새 파일에 실제로 몇 개의 UDP 패킷이 내보내졌는지 확인하려면 다음을 수행합니다.
tshark -r udp.pcap | wc -l
이 명령은 새 파일의 모든 패킷을 계산합니다. 숫자는 원래 캡처의 UDP 패킷과 일치해야 합니다.
- 마지막으로, UDP 가 아닌 패킷이 있는지 확인하여 UDP 패킷만 내보내졌는지 확인해 보겠습니다.
tshark -r udp.pcap -Y "not udp" | wc -l
이것은 0 을 반환해야 합니다. 즉, 필터가 올바르게 작동하여 UDP 패킷만 udp.pcap 에 저장되었음을 의미합니다.
-r udp.pcap -V 로 검증
이 마지막 확인 단계에서는 Wireshark 의 상세 출력 모드를 사용하여 내보낸 UDP 패킷 파일 (udp.pcap) 의 내용을 검사합니다. -V 플래그는 "verbose"(상세) 를 의미하며 각 패킷에 대한 포괄적인 프로토콜 정보를 표시하여 이전 필터링 및 내보내기 작업이 올바르게 작동했는지 확인하는 데 도움이 됩니다.
패킷 캡처를 사용할 때, 확인은 정확히 의도한 내용을 추출했는지 확인하므로 매우 중요합니다. 몇 가지 확인 방법을 살펴보겠습니다.
- 먼저, 패킷 캡처 파일이 저장된 프로젝트 디렉토리로 이동합니다.
cd ~/project
- 자세한 프로토콜 정보와 함께 처음 몇 개의 UDP 패킷을 봅니다.
head -20명령은 가독성을 위해 출력을 처음 20 줄로 제한합니다.
tshark -r udp.pcap -V | head -20
출력은 다음 예와 같이 패킷 세부 정보를 표시하며, 여기서 UDP 프로토콜 정보를 확인할 수 있습니다.
Frame 1: 82 bytes on wire (656 bits), 82 bytes captured (656 bits)
Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb
Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2
User Datagram Protocol, Src Port: 5353, Dst Port: 5353
- 파일의 모든 패킷이 UDP 패킷인지 확인하기 위해 프로토콜 필드를 검사합니다. 이 명령은 고유한 프로토콜 유형을 추출하고 계산합니다.
tshark -r udp.pcap -T fields -e frame.protocols | sort | uniq -c
올바르게 필터링된 캡처에서는 UDP 관련 프로토콜만 나열되어야 합니다.
- 철저한 확인을 위해 실수로 포함되었을 수 있는 UDP 가 아닌 패킷이 있는지 확인해 보겠습니다. 이 명령은 UDP 가 아닌 트래픽을 필터링하며 빈 결과를 반환해야 합니다.
tshark -r udp.pcap -Y "not udp" -V
- 마지막으로, 내보낸 파일의 총 UDP 패킷 수를 계산하여 수량이 예상과 일치하는지 확인합니다.
tshark -r udp.pcap | wc -l
이것은 캡처 파일의 총 패킷 수를 제공하며, 필터링 프로세스 후에는 모두 UDP 패킷이어야 합니다.
요약
이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 네트워크 패킷을 분석, 필터링 및 내보내는 방법을 배웠습니다. 연습에서는 -r을 사용하여 캡처 파일을 열고, -V를 사용하여 자세한 패킷 정보를 보고, -Y를 사용하여 UDP 와 같은 특정 트래픽을 격리하기 위한 표시 필터를 적용하는 방법을 다루었습니다.
-w를 사용하여 필터링된 패킷을 새 파일로 내보내고 출력을 다시 읽어 결과를 확인하는 연습을 했습니다. 이러한 기술은 명령줄 환경에서 효율적인 네트워크 트래픽 분석 및 선택적 데이터 추출을 위한 필수 기술을 제공합니다.


