2009년 12월 23일 수요일

트래픽 덤프전에 캡쳐필터로 트래픽을 제한하자

패킷 덤프를 시작할때, 트래픽이 너무나 많은 구간에서는 보기가 어려울 정도로 빠르게 올라가는 스크롤 때문에 당황한 적이 있을 것이다. 트래픽이 크지 않은 경우에는 Full Dump 를 수행해서 살펴볼 수도 있지만, 고속의 네트웍 구간에서는 흐르는 트래픽이 엄청나다. 또한 이 파일이 기록되는 파일은 빠르게 크기가 늘어난다.

 

분석할 데이터가 특정한 호스트나, 포트, 프로토콜 등으로 한정되는 경우라면 패킷 덤프 시작전부터 캡쳐 옵션을 반영하여 사용하는 것이 좋다. 와이어샤크의 경우 패킷 덤프를 시작하는 경우 아래와 같은 화면을 볼 수 있으며, 이때 Capture Filter 라는 부분에 필터를 넣어주면 된다.

 


필터는 tcpdump 에서 사용하는 것과 같은 형태이므로 tcpdump 에 익숙한 사용자라면 쉽게 사용할 수 있으며, 필터를 정확히 모르더라도 Capture Filter 를 누르면 상단 우측의 그림과 같이 적용할 필터 내용을 찾아 반영할 수 있다.  몇 가지 예를 들어 보면 아래와 같다 :

 

IP 가 192.168.0.200 에 대해서만 캡쳐하는 경우

host 192.168.0.200


네트워크 대역 주소를 C 클래스로 한정하는 경우

net 192.168.0.0/24 또는 net 192.168.0.0 mask 255.255.255.0


목적지 IP 주소가 1.2.3.4 인 경우

dst ip 1.2.3.4

 

TCP 프로토콜 또는 UDP 프로토콜만 캡쳐하는 경우

tcp and udp

 

목적지 포트 번호가 80 인 경우

dst port 80

 

TCP 포트 번호가 특정 구간인 경우

tcp portrange 6667-6669


목적지 IP 대역이 192.168.0.0/24 이며 목적지 포트가 TCP/80 이 아닌 경우

dst net 192.168.0.0/24 and tcp port not 80


SYN 패킷만 캡쳐하는 경우

(tcp[13] & 0x02) != 0

 

캡쳐 필터가 올바르지 않는 경우에는 에러메시지가 나타나고 캡쳐가 시작되지 않는다. 캡쳐 필터문법을 주의깊게 살펴보면 틀린 곳이 보일 것이다. 참고로, 와이어샤크의 메인화면에서 사용할 수 있는 출력필터는 캡쳐 필터의 문법하고는 다르니 착각하지 않도록 주의한다.

 

다음은 Tcpdump 필터를 여러개 모아두어 정리해 놓았다.

http://acs.lbl.gov/~jason/tcpdump.filters

댓글 2개:

  1. 현재는 Wireshark 1.8.4 버전에는 Capture Option에 Capture Filter가 없는데 어떻게 해야 되나요?
    확인해 보니 Capture 탭에 Capture Filter 항목이 따로 있더군요. 이곳에 host 192.168.0.135 이것만 필터링을 하려고 하는데 잘 안됩니다. 다른 VM에 있는 134까지도 패킷 캡쳐가 되서 분석할 시에 매번 ip.addr == 192.168.0.135 해주기가 번거롭기에 135번만 캡쳐를 하고 싶습니다..
    Capture Filter에 host 192.168.0.135 를 입력하고 확인을 눌러도 반응이 없는데 혹시 어떻게 적용을 하는지 아신다면 알려주실 수 있으신지요?

    답글삭제
    답글
    1. 안녕하세요,

      말씀하신것과 같이 최신버전에서는 캡처 탭쪽에 필터 항목이 따로 분리되어 있습니다. 인터페이스별로 멀티 캡쳐가 가능해 지면서 UI 구성이 바뀌었습니다. Capture Filter 에 말씀하신것과 같이 넣어주시면 잘 됩니다. host 192.168.0.135 를 넣어주시면 바탕화면 색상이 푸른색으로 바뀐다면 올바른 문법형태입니다. 혹시나 해서 테스트해 보았더니 잘 됩니다. 어떤 구성에서 사용하신건가요?

      삭제