Profile picture

[네트워크] 리눅스 시스템에서 tcpdump로 패킷들을 덤프(dump)하여 와이어샤크로 패킷 분석하기

JaehyoJJAng2024년 06월 03일

tcpdump로 패킷을 파일로 저장하기

활용 방법

  • i [interface name]: 패킷의 내용을 출력하고 싶은 인터페이스의 이름으로 지정한다.
  • w [file name]: 패킷들의 내용을 파일로 저장하고 싶을 때 사용하는 옵션
tcpdump -i ens18 -w ens18-packet.log

1. 특정 인터페이스 패킷 캡쳐

  • 예를 들어, eth18 인터페이스에서 트래픽을 캡쳐함

  • eth18

    • 인터페이스에 오고가는 패킷들을 test.pcap으로 저장하기
  • pcap

    • 와이어샤크에서 사용하는 파일 형식
sudo tcpdump -i ens18 -w test.pcap

2. 모든 인터페이스 패킷 캡쳐

  • 모든 인터페이스에서 모든 패킷을 캡쳐하여 test.pcap 파일로 저장함
tcpdump -w test.pcap

3. 특정 호스트 트래픽 캡쳐

  • 특정 IP 주소(예: 192.168.1.10)와 관련된 트래픽만 캡쳐
tcpdump host 192.168.1.10 -w test.pcap

4. 특정 포트의 트래픽 캡쳐

  • 특정 포트(예: 80, HTTP 트래픽)의 트래픽만 캡쳐
tcpdump port 80 -w test.pcap

5. 특정 프로토콜의 트래픽 캡쳐

  • TCP 트래픽만 캡쳐
tcpdump tcp -w test.pcap

6. 캡쳐할 패킷의 크기 제한

  • 각 패킷의 최대 100 바이트만 캡쳐
tcpdump -s 100 -w test.pcap

7. 캡쳐된 패킷을 표준 출력 없이 저장

  • 캡쳐된 패킷을 화면에 출력하지 않고 파일로만 저장
tcpdump -w test.pcap -q

8. 특정 시간 동안만 캡쳐

tcpdump는 지정된 시간 후에 종료하는 옵션이 존재하지 않는다.

일정 시간 후에 tcpdump를 종료하도록 하려면 timeout 명령어를 같이 사용해야 한다.


예를 들어, 10초 동안 패킷을 캡쳐한 후 자동으로 중지하는 경우에는 아래와 같다.

sudo timeout 10 tcpdump -w test.pcap

9. 파일 크기 제한 및 순환 저장

  • 각 파일의 크기를 5MB로 제한하고, 파일 이름에 순차적으로 번호를 붙여 10개의 파일을 생성.
tcpdump -w output-%03d.pcap -C 5 -W 10

10. 특정 서브넷의 트래픽 캡처

  • 예를 들어, 192.168.1.0/24 서브넷과 관련된 트래픽만 캡처
tcpdump net 192.168.1.0/24 -w output.pcap

와이어샤크

와이어샤크(Wire Shark)는 가장 널리 쓰이는 네트워크 프로토콜 분석 도구로 세세한 네트워크 분석이 가능하며, 사실상 표준이 된 소프트웨어이다.


pcap 형식의 파일을 와이어샤크로 열기

  • 1. 파일을 드래그 앤드 드롭(Drag-and-Drop) 형식으로 열 수 있다.
  • 2. File-Open에서 pcap 파일을 선택하여 열 수 있다.

image


필터링

  • 특정 IP 주소나 TCP 포트 번호 등, 해당하는 패킷만 필터링하려면 메뉴에 있는 "Apply a display filter"에 필터를 추가하면 된다.

image


ip address filter

ip.addr==x.x.x.x
ip.src==x.x.x.x
ip.dst==x.x.x.x

OR condition

(ip.src==x.x.x.x) || (ip.dst==x.x.x.x)

AND condition

(ip.src==x.x.x.x) && (ip.dst==x.x.x.x)

TCP filter

tcp.srcport==<port number>
tcp.dstport==<port number>

Loading script...