소개
이 실습에서는 네트워크 분석에 필수적인 도구인 Wireshark를 사용해 네트워크 트래픽을 필터링하는 방법을 배웁니다. 미리 캡처한 패킷 파일을 분석하고, 특정 트래픽만 분리하도록 디스플레이 필터를 적용하며, 추가 검토를 위해 필터링한 결과를 내보냅니다. 이러한 기술을 사용하면 네트워크 패턴을 식별하고, 연결 문제를 해결하며, 네트워크 통신을 이해할 수 있습니다.
Tshark 시작하기
그래픽 인터페이스를 사용하기 전에 Wireshark의 명령줄 버전인 tshark부터 사용합니다. tshark는 빠른 분석과 스크립팅에 유용한 강력한 도구입니다. 이 단계에서는 설치 상태를 확인하고 제공된 패킷 캡처 파일을 기본적으로 검사합니다.
먼저 버전을 확인해
tshark가 올바르게 설치되었는지 확인합니다.tshark --version다음과 같이 Wireshark와
tshark의 버전이 표시됩니다.TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1) ...capture.pcap이라는 샘플 패킷 캡처 파일이 프로젝트 디렉터리에 있습니다.ls명령으로 파일이 있는지 확인합니다.ls -lh capture.pcap출력에 파일 크기와 이름을 포함한 파일 정보가 표시됩니다.
-rw-rw-r-- 1 labex labex 9.1M Oct 24 2015 capture.pcap캡처 파일의 전체적인 요약을 확인하려면 Wireshark에 포함된
capinfos유틸리티를 사용합니다.capinfos capture.pcap이 명령은 패킷 수, 캡처 기간, 평균 패킷 크기 등 파일의 메타데이터를 표시합니다.
File name: capture.pcap File type: Wireshark/tcpdump/... - pcap File encapsulation: Ethernet File timestamp precision: microseconds (6) Packet size limit: file hdr: 65535 bytes Number of packets: 14 k File size: 9444 kB Data size: 9216 kB Capture duration: 298.505344 seconds First packet time: 2011-01-26 02:52:22.484409 Last packet time: 2011-01-26 02:57:20.989753 Data byte rate: 30 kBps Data bit rate: 247 kbps Average packet size: 646.28 bytes Average packet rate: 47 packets/s SHA256: 77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1 RIPEMD160: 68e950b2e438c7be011a46646ddfc8105b65b339 SHA1: 06e502dca8dbfe8e6a9cabc61f722d94756f6db9 Strict time order: True Number of interfaces in file: 1 Interface #0 info: Encapsulation = Ethernet (1 - ether) Capture length = 65535 Time precision = microseconds (6) Time ticks per second = 1000000 Number of stat entries = 0 Number of packets = 14261마지막으로
tshark를 사용해 파일에서 처음 5개 패킷을 읽습니다.-r옵션은 입력 파일을 지정하고,-c옵션은 패킷 수를 제한합니다.tshark -r capture.pcap -c 5처음 5개 패킷 각각에 대해 한 줄 요약이 표시됩니다. 이를 통해 트래픽을 빠르게 확인할 수 있습니다.
1 0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1 2 0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK (text/javascript) 3 0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1 4 0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0 5 0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64
Tshark로 기본 필터 적용하기
패킷 캡처에는 수천 개의 패킷이 포함될 수 있으므로 특정 정보를 찾기 어려울 수 있습니다. 디스플레이 필터를 사용하면 특정 조건에 맞는 패킷만 표시할 수 있습니다. 이 단계에서는 tshark로 기본 필터를 적용하는 방법을 배웁니다.
디스플레이 필터는
-Y(대문자 Y) 옵션으로 적용합니다. TCP 패킷만 보려면tcp필터를 사용합니다. 파일에서 처음 5개의 TCP 패킷을 확인합니다.tshark -r capture.pcap -Y "tcp" -c 5이제 프로토콜이 TCP인 패킷만 출력됩니다.
IP 주소를 기준으로 필터링할 수도 있습니다. 소스 IP 주소가
192.168.3.131인 모든 패킷을 보려면ip.src필터를 사용합니다.tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5정확히 일치하는 값을 지정할 때
==를 사용한다는 점에 유의합니다.&&(AND)와 같은 논리 연산자를 사용하면 필터를 결합할 수 있습니다. 소스 IP가192.168.3.131인 TCP 패킷을 찾으려면 앞의 두 필터를 결합합니다.tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"필터링한 출력을 새 캡처 파일에 저장해 나중에 분석할 수 있습니다.
-w옵션은 출력 파일을 지정합니다. 필터링한 TCP 패킷을filtered_tcp.pcap이라는 파일에 저장합니다.tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap새 파일이 생성되었는지 확인합니다.
ls -lh filtered_tcp.pcap디렉터리 목록에 새로 생성된 더 작은 캡처 파일이 표시됩니다.
Wireshark GUI에서 트래픽 살펴보기
자동화에는 tshark가 유용하지만, Wireshark의 그래픽 사용자 인터페이스(GUI)는 상세한 패킷 분석을 위한 풍부한 대화형 환경을 제공합니다. 이 단계에서는 Wireshark GUI를 실행하고 주요 구성 요소를 살펴봅니다.
터미널에서 Wireshark 애플리케이션을 실행합니다. 중요: Wireshark는 제대로 실행하려면 그래픽 환경이 필요한 GUI 애플리케이션이므로 독립형 터미널 인터페이스가 아닌 Desktop Interface를 사용해야 합니다. 명령 끝의 앰퍼샌드
&는 애플리케이션을 백그라운드에서 실행해 터미널을 다른 명령에 사용할 수 있게 합니다.wireshark &이 단계를 완료하고 단계 검사를 실행하는 동안 Wireshark를 계속 열어 둡니다.
참고: 데스크톱 환경이 없는 독립형 터미널에서 이 명령을 실행하면 Wireshark가 시작되지 않습니다. GUI 애플리케이션에는 항상 Desktop Interface를 사용합니다.

Wireshark 기본 창이 나타납니다. 기존 파일을 분석하므로 네트워크 인터페이스를 선택할 필요가 없습니다. 대신
capture.pcap파일을 엽니다.- 메뉴 표시줄에서
File->Open...을 클릭합니다. - 파일 대화 상자에서
/home/labex/project로 이동한 다음capture.pcap을 선택합니다. Open버튼을 클릭합니다.
- 메뉴 표시줄에서
이제 기본 창에 파일의 패킷이 표시됩니다. 다음 세 가지 주요 창을 확인합니다.

- Packet List Pane(위쪽): 캡처된 모든 패킷의 목록입니다. 패킷 번호, 시간, 소스, 대상, 프로토콜 및 기타 요약 정보가 열로 표시됩니다.
- Packet Details Pane(가운데): Packet List Pane에서 현재 선택한 패킷의 프로토콜 계층을 자세히 보여 주는 확장 가능한 영역입니다. 각 계층(예: Ethernet, IP, TCP)을 확장해 해당 필드를 볼 수 있습니다.
- Packet Bytes Pane(아래쪽): 선택한 패킷의 원시 데이터를 16진수 및 ASCII 형식으로 표시합니다.
Packet List Pane에서 여러 패킷을 클릭하고 Packet Details Pane과 Packet Bytes Pane의 정보가 그에 따라 어떻게 업데이트되는지 확인합니다. 이러한 대화형 탐색은 Wireshark의 가장 강력한 기능 중 하나입니다.
GUI에서 디스플레이 필터 적용하기
tshark에서 배운 디스플레이 필터 문법은 Wireshark GUI에서도 동일하게 작동합니다. GUI에서는 결과를 즉시 시각적으로 확인할 수 있으므로 복잡한 필터를 쉽게 작성하고 테스트할 수 있습니다.
Wireshark 창 상단에서 디스플레이 필터 표시줄을 찾습니다. 일반적으로
"Apply a display filter..."라는 플레이스홀더가 표시된 긴 텍스트 입력 필드입니다.HTTP 트래픽을 필터링합니다. 필터 표시줄에
http를 입력한 다음Enter키를 누르거나 표시줄 오른쪽의 화살표 모양Apply버튼을 클릭합니다.http
Packet List Pane이 즉시 업데이트되어 HTTP 패킷만 표시됩니다. 유효한 필터 문법이면 필터 표시줄이 녹색으로 바뀝니다. 잘못된 필터를 입력하면 빨간색으로 바뀝니다.
이제 모든 DNS 트래픽을 찾습니다. 이전 필터를 지우고 필터 표시줄에
dns를 입력한 다음Enter키를 누릅니다.dns이제 캡처에 포함된 모든 Domain Name System 쿼리와 응답을 볼 수 있습니다.
tshark에서 했던 것처럼 필터를 결합할 수 있습니다. 소스 또는 대상이192.168.3.131인 HTTP 트래픽을 찾으려면ip.addr필터와http필터를 결합합니다.http && ip.addr == 192.168.3.131
이 조합을 사용하면 특정 통신만 정확히 찾아볼 수 있습니다.
tcp.port == 80(표준 HTTP 포트의 트래픽) 또는udp(UDP 트래픽)와 같은 다른 필터도 사용해 봅니다. 필터를 지우고 모든 패킷을 다시 보려면 필터 표시줄의X버튼을 클릭합니다.
필터링한 데이터 내보내기
관심 있는 이벤트만 분리하도록 트래픽을 필터링한 후에는 보고서 작성, 공유 또는 다른 도구에서 추가 분석을 위해 결과를 내보내야 하는 경우가 많습니다. Wireshark와 tshark는 데이터를 내보내는 여러 방법을 제공합니다.
먼저 Wireshark GUI에서 이전 단계와 동일하게
http필터를 적용합니다.화면에 표시된(필터링된) 패킷만 새 캡처 파일에 저장하려면 다음을 수행합니다.
File->Export Specified Packets...로 이동합니다.- 대화 상자의 "All Packets"에서
Displayed라디오 버튼이 선택되어 있는지 확인합니다. - 파일 이름을
http_capture.pcap으로 지정하고/home/labex/project디렉터리에 저장합니다.

패킷 요약을 텍스트 또는 CSV 파일로 내보낼 수도 있습니다. CSV로 내보내려면 다음을 수행합니다.
File->Export Packet Dissections->As CSV...로 이동합니다.- "All Packets"에서
Displayed가 선택되어 있는지 확인합니다. - 파일 이름을
http_packets.csv로 지정하고 프로젝트 디렉터리에 저장합니다.
명령줄에서
tshark를 사용해 동일한 내보내기 작업을 수행할 수도 있습니다. 이 방법은 자동화에 유용합니다. 다음 명령은 원본capture.pcap을 읽고http로 필터링한 다음, 지정한 필드를 CSV 파일로 내보냅니다.tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv-T fields: 출력 형식을 지정합니다.-e ...: 내보낼 필드(열)를 지정합니다.-E header=y: 헤더 행을 추가합니다.-E separator=,: 쉼표를 구분 기호로 사용합니다.
내보낸 파일이 생성되었는지 확인합니다.
ls -lh http_*디렉터리에
http_capture.pcap,http_packets.csv,http_export_cli.csv파일이 표시됩니다.
요약
이 실습에서는 Wireshark와 그 명령줄 도구인 tshark로 네트워크 트래픽을 필터링하는 기본 방법을 배웠습니다. 먼저 tshark와 capinfos를 사용해 캡처 파일을 검사했습니다. 그런 다음 tshark와 대화형 Wireshark GUI에서 디스플레이 필터를 적용해 특정 프로토콜과 IP 주소의 트래픽만 분리했습니다. 마지막으로 필터링한 결과를 새 캡처 파일과 사람이 읽을 수 있는 CSV 파일로 내보내 보고서 작성과 분석에 활용하는 방법을 배웠습니다. 이러한 핵심 기술은 네트워크 분석이나 문제 해결 작업의 기초가 됩니다.

