IT일반/네트워크

[네트워크] wireshark를 이용한 패킷 모니터링, 필터링 처리

ss-pro 2022. 11. 16. 00:13
반응형

네트워크 통신을 할때 실제 패킷이 전송되었는지 아닌지 모니터링을 해야되는 경우가 있습니다. 랜카드가 여러개인경우 라우팅 처리가 되지 않아 원하는 목적지로 가지않는 경우도 있고, 실제 상대방에게 데이터를 제대로 보냈는지 확인 할때 패킷모니터링 프로그램으로 덤프를 떠서 보내 서로 확인하기도 합니다. 이때 와이어샤크 프로그램을 이용해서 캡쳐된 정보를 보내줘 서로 확인해서 처리하면 문제점을 쉽게 해결 할 수 있습니다. 

1. WireShark 설치 
https://www.wireshark.org 에서 최신버전을 다운 받습니다. 
 
2. 패킷모니터링 시작
설치가 완료되면 아래와 같이 네트워크 리스트가 나타며 모니터링을 하고 싶은 네트워크 랜카드 연결장치를 선택 후 Start Capturing packets를 클릭합니다. 

3. 패킷모니터링 방법
패킷 캡쳐를 시작하면 아래와 같이 해당 네트워크로 수신되는 데이터에 대한 정보를 확인 할 수 있습니다. 
Soure항목은 출발IP정보 ,  Destination항목은 도착지 네트워크주소, Protocol은 프로토콜종류(TCP,HTTP등)에 대한 정보를 볼 수 있습니다. 

4. 특정아이피 필터링방법 
해당 네트워크로 TCP/IP, HTTP등 다양한 패킷이 들어오기 때문에 실제로 필요한 데이터를 필터링해서 봐야 모니터링을 수월하게 할 수 있습니다. 서버 PC 를 192.168.56.101, 클라이언트를 192.168.56.1로 해서 테스트 해보겠습니다.
아래 이미지와 같이 Apply a display filter 항목의 왼쪽 부분을 클릭하면 필터링 할 수 있는 예제를 알려줍니다. 
제가 자주 사용하는 필터링 항목은 아래와 같습니다. 

항목 설명
IP로 필터링 ip.addr == 192.168.51.101 192.168.51.101에 대한 통신을 필터링합니다.
특정포트로 필터링 tcp.port == 8888 8888포트에 대한 부분만 필터링합니다. 
특정프로토콜로 필터링 tcp tcp 프로토콜에 대한 부분만 필터링합니다.

5. 패킷모니터링 데이터 내보내기 (덤프파일)
필터링을 다음과 같이 걸어보겠습니다. ip.addr == 192.168.56.101 and tcp.port == 8888 and tcp  
192.168.56.101에서 tcp프로토콜을 사용하고 8888포트를 사용한다는 애기입니다. 실제 테스트로 "hello world..... packet caputer test....."로 데이터를 보내면 아래이미지와 같이 info항목에 전송된 패킷정보를 확인 할 수 있습니다.  

패킷모니터링 파일을 저장하면 pcapng라는 확장자명으로 저장되면 wireshark를 설치한곳에서 확인이 가능합니다. wireshark 파일형태로  저장하지 않고 Text나 Hex값으로 덤프를 뜨고 싶을경우에는 패킷상세항목에 마우스 우클릭을 하면 아래와 같이 여러 종류의 형태로 패킷 덤프떠서 확인 할 수 있습니다.