[WireShark] Filtering - 다양한 복합 필터링 기법

2025. 11. 30. 21:05·Network Practice

오늘의 실습 목표

Wireshark의 다양한 필터링 기법을 익혀볼 예정이다. IP 주소, 포트, TCP 플래그, 패킷 크기 등 여러 조건을 조합해서 원하는 패킷만 정확하게 찾아내는 것이 목표다.

 

실제 네트워크에서는 수많은 패킷이 동시에 오가기 때문에 필터링 없이는 문제 진단이 거의 불가능하다. 이번 실습을 통해 복잡한 트래픽 환경에서도 핵심 패킷만 골라낼 수 있는 실력을 쌓아보자.


필터링의 중요성

네트워크 분석에서 필터링은 필수 스킬이다. 실제 운영 환경에서는 초당 수백, 수천 개의 패킷이 흐르기 때문에 모든 패킷을 일일이 확인하는 것은 현실적으로 불가능하다.

Wireshark의 디스플레이 필터를 잘 활용하면 전체 캡처 데이터에서 내가 원하는 패킷만 즉시 추출할 수 있다. 디스플레이 필터는 이미 캡처된 데이터를 보여주는 방식만 바꾸는 것이기 때문에, 필터를 적용하거나 해제해도 원본 데이터는 그대로 유지된다.

토폴로지 구성

이번 실습은 라우터 2대를 거치는 구성으로 진행한다. 복합 트래픽 환경을 만들기 위해 PC, 라우터, Serial 연결을 사용했다.

네트워크 대역:

  • Network 1: 192.168.1.0/24
  • Network 2: 192.168.2.0/24
  • Serial Link: 10.0.0.0/30

두 PC가 서로 다른 네트워크 대역에 있기 때문에 라우팅 설정이 필요하다. R1과 R2 사이는 Serial 링크로 연결해서 WAN 구간을 시뮬레이션했다.


GNS3 설정

R1 라우터 설정

R1 콘솔에 접속해서 기본 인터페이스와 라우팅을 설정한다.

Serial 인터페이스에 clock rate를 설정한 이유는 DCE 역할을 하기 때문이다.

Telnet 서버는 나중에 TCP 트래픽 생성용으로 활성화했다.

R2 라우터도 R1 라우터와 동일한 방식으로 설정해준다.

PC 설정

각 PC에 IP와 게이트웨이를 설정한다.

PC1:

 

PC2:

게이트웨이를 각 라우터의 인터페이스 IP로 설정했다. PC1에서 PC2로 통신할 때 두 라우터를 거치게 된다.

연결 테스트

PC1에서 PC2로 ping을 보내서 라우팅이 제대로 동작하는지 확인한다.

ping이 성공하면 설정이 완료된 것이다.


Wireshark 캡처 시작

R1의 Serial3/0 인터페이스에서 캡처를 시작한다. GNS3에서 R1-R2 Serial 링크를 우클릭하고 "Start capture"를 선택한다. Serial 링크에서 캡처하는 이유는 이 구간을 모든 트래픽이 지나가기 때문이다. ICMP, TCP, ARP 등 다양한 프로토콜이 섞여서 흐르는 모습을 볼 수 있다.

복합 트래픽 생성

필터링 실습을 위해서는 다양한 종류의 트래픽이 필요하다. ICMP, ARP, TCP를 모두 생성해서 복합 트래픽 환경을 만들어보자.

ICMP 트래픽

PC1에서 다양한 크기의 ping을 보낸다.

-P 옵션은 데이터 크기를 지정한다. 다양한 크기의 ICMP 패킷을 만들면 나중에 크기 필터 실습에 활용할 수 있다.

ARP 트래픽

PC1에서 ARP 캐시를 삭제하고 다시 통신하면 ARP Request/Reply가 발생한다.

PC1은 게이트웨이인 R1의 MAC 주소를 찾기 위해 ARP를 사용한다.

TCP 트래픽 (Telnet)

R1 콘솔에서 R2로 telnet 연결을 시도한다.

Telnet 세션을 종료하면 TCP 연결 종료 과정도 캡처된다. 이제 Wireshark에 TCP 3-way handshake, 데이터 전송, 연결 종료 과정이 모두 기록됐다.

 

몇 분간 다양한 트래픽을 생성한 후 Wireshark의 빨간 사각형 버튼을 눌러 캡처를 중지한다.


기본 IP 필터

가장 먼저 특정 IP 주소와 관련된 트래픽만 보는 방법을 익혀보자.

특정 IP의 모든 트래픽

ip.addr == 10.0.0.1

이 필터는 R1의 Serial 인터페이스(10.0.0.1)가 송신하거나 수신한 모든 패킷을 보여준다. Source나 Destination 중 하나라도 10.0.0.1이면 표시된다.

 

Packet List를 보면 Source와 Destination 컬럼에 10.0.0.1이 포함된 패킷들만 남아있다.

송신/수신 구분

특정 IP에서 보낸 패킷만 보고 싶다면 ip.src를 사용한다.

ip.src == 10.0.0.1      # 송신만
ip.dst == 10.0.0.1      # 수신만

필터 적용 전후의 패킷 개수를 비교해보면 전체 트래픽 중 일부만 추출된 것을 확인할 수 있다.


프로토콜 필터

프로토콜별로 패킷을 필터링하는 가장 기본적인 방법이다.

단일 프로토콜

icmp        # ICMP만
tcp         # TCP만
arp         # ARP만

ping으로 생성한 ICMP, Telnet으로 생성한 TCP, ARP 패킷을 각각 확인할 수 있다.

프로토콜 조합

OR 연산자(||)를 사용하면 여러 프로토콜을 동시에 볼 수 있다.

icmp || arp

ICMP와 ARP 패킷만 표시되고 TCP는 제외된다.

프로토콜 제외

NOT 연산자(! 또는 not)로 특정 프로토콜을 제외할 수 있다.

!arp

ARP를 제외한 모든 패킷이 표시된다. 복잡한 트래픽 환경에서 노이즈를 제거할 때 유용하다.


포트 기반 필터

TCP/UDP 통신은 포트 번호로 구분된다. 특정 서비스의 트래픽만 보고 싶을 때 포트 필터를 사용한다.

Telnet 트래픽

tcp.port == 23

Telnet은 TCP 포트 23번을 사용한다. 이 필터를 적용하면 Source 포트가 23이거나 Destination 포트가 23인 패킷이 모두 표시된다. 양방향 트래픽을 한 번에 볼 수 있다.

송신/수신 포트 구분

tcp.srcport == 23       # 서버에서 보낸 패킷
tcp.dstport == 23       # 서버로 보내는 패킷

Source 포트가 23인 패킷만 표시하거나, Destination 포트가 23인 패킷만 표시할 수 있다.

포트 범위

AND 연산자를 사용하면 특정 범위의 포트를 지정할 수 있다.

tcp.port >= 1024 && tcp.port <= 2048

임시 포트(ephemeral port) 영역을 보고 싶을 때 활용할 수 있다.


복합 필터 (AND, OR 연산)

실제로는 여러 조건을 조합해서 사용하는 경우가 많다. Boolean 연산자를 활용하면 매우 정교한 필터링이 가능하다.

AND 연산

ip.src == 192.168.1.10 && ip.dst == 192.168.2.10 && icmp

PC1에서 PC2로 가는 ICMP 패킷만 표시된다. 세 가지 조건을 모두 만족해야 한다.

ip.addr == 10.0.0.2 && tcp.port == 23

R2와 관련된 Telnet 트래픽만 보인다. IP 주소와 포트 조건을 동시에 적용했다.

OR과 NOT 조합

icmp || arp                          # ICMP 또는 ARP
ip.addr == 10.0.0.1 && !arp          # R1 관련 트래픽 중 ARP 제외

복합 필터를 사용할 때는 괄호를 적절히 활용하면 가독성이 좋아진다.


TCP 플래그 필터

TCP 연결 과정을 분석할 때 가장 중요한 것이 TCP 플래그다. SYN, ACK, FIN, RST 등의 플래그를 필터링하면 연결 상태를 한눈에 파악할 수 있다.

연결 시작과 종료

tcp.flags.syn == 1                              # SYN - 연결 시작
tcp.flags.syn == 1 && tcp.flags.ack == 1        # SYN-ACK - handshake 2단계
tcp.flags.fin == 1                              # FIN - 연결 종료

Telnet 연결을 시작할 때 R1이 R2로 보낸 SYN 패킷, 그에 대한 SYN-ACK 응답을 확인할 수 있다.

데이터 전송

tcp.flags.push == 1                             # PSH - 데이터 즉시 전달
tcp.flags.ack == 1 && tcp.flags.syn == 0 && tcp.flags.fin == 0  # 순수 ACK

PSH 플래그는 Telnet 명령어를 입력할 때 설정된다. 순수 ACK 패킷은 데이터를 받았다는 확인 응답이다.

 

TCP 플래그 필터는 연결 문제를 진단할 때 정말 유용하다. 3-way handshake가 제대로 완료됐는지, 연결이 어떻게 종료됐는지를 파악하는 데 필수적이다.


패킷 크기 필터

패킷 크기로 필터링하면 대용량 데이터 전송이나 작은 제어 패킷을 구분해서 볼 수 있다.

frame.len > 1000                    # 1000바이트 초과
frame.len > 500 && frame.len < 1500 # 특정 범위
frame.len < 100                     # 작은 패킷 (헤더만 있는 ACK 등)
icmp && frame.len > 500             # ICMP 중 큰 패킷

앞서 -P 1200 옵션으로 보낸 큰 ICMP 패킷은 frame.len > 1000 필터로 찾을 수 있다. Packet List의 Length 컬럼에서 실제 크기를 확인할 수 있다.


필터 저장

자주 사용하는 필터는 저장해두면 편리하다. 매번 긴 필터 문법을 입력하는 수고를 덜 수 있다.

 

저장 방법:

  1. 필터 입력 후 Enter로 적용
  2. 필터 입력란 왼쪽 북마크 아이콘(+) 클릭
  3. Label 입력 (예: "Telnet Only", "TCP SYN")
  4. OK 클릭

저장된 필터는 필터 입력란 왼쪽의 드롭다운 메뉴에서 선택할 수 있다. 클릭 한 번으로 복잡한 필터를 즉시 적용할 수 있어서 실무에서 분석 속도가 크게 향상된다.


 

정리

이번 3단계 실습에서는 IP, 프로토콜, 포트, TCP 플래그, 크기, 문자열 검색 등 다양한 필터링 기법을 익혔다. Boolean 연산자(&&, ||, !)를 조합하면 정교한 필터를 만들 수 있다.

 

필터링으로 수천 개 패킷 속에서 원하는 것만 추출할 수 있어야 실제 문제를 진단할 수 있다. 특히 TCP 플래그 필터와 복합 필터는 다음 단계의 실전 시나리오에서 정말 많이 사용하게 될 것이다.

'Network Practice' 카테고리의 다른 글

[GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계  (0) 2025.12.03
[GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성  (0) 2025.12.01
[GNS3] EtherChannel Link Aggregation 구성  (0) 2025.11.30
[GNS3] STP 최적화 및 루프 방지 실습  (0) 2025.11.29
[WireShark] ICMP를 통한 기초적인 Packet 분석 실습  (0) 2025.11.28
'Network Practice' 카테고리의 다른 글
  • [GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계
  • [GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성
  • [GNS3] EtherChannel Link Aggregation 구성
  • [GNS3] STP 최적화 및 루프 방지 실습
김슭삵
김슭삵
Layer By Layer. 한 층씩 성장 해가는 네트워크와 서버의 학습 공간
  • 김슭삵
    Layer By Layer
    김슭삵
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • Network Concepts (36)
      • Network Practice (12)
      • Linux (0)
      • AWS & Cloud (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    dhcp
    ACL
    ROAS
    gns3
    ARP
    HSRP
    RSPAN
    Nat
    Network
    Etherchannel
    ERSPAN
    LACP
    dns
    dai
    TCP/IP
    wireshark
    Port Mirroring
    WLAN
    Cisco
    vlan
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
김슭삵
[WireShark] Filtering - 다양한 복합 필터링 기법
상단으로

티스토리툴바