네트워크 트래픽 분석에 필수적인 tcpdump 명령어는 다양한 옵션과 필터를 통해 원하는 패킷만 빠르고 정확하게 캡처할 수 있습니다. 이 글에서는 자주 사용하는 옵션과, 실무에서 바로 적용할 수 있는 다양한 예제를 소개합니다.

◎ 자주 사용하는 tcpdump 옵션
아래는 tcpdump에서 가장 많이 쓰는 옵션과 설명입니다. 이 중 -n 옵션도 포함되어 있습니다.

옵션 설명
-i 인터페이스 특정 네트워크 인터페이스 지정
-n IP 주소를 호스트 이름으로 변환하지 않음
-nn IP 주소와 포트 모두 숫자로만 출력
-w 파일명  패킷을 파일로 저장 (pcap 형식)
-r 파일명 저장된 패킷 파일 읽기
-c 개수 지정한 개수만큼 패킷 캡처 후 종료
-v, -vv, -vvv 상세한 정보 출력 (v가 많을수록 더 자세함)
-t 타임스탬프 생략
-q 간략한 정보만 출력
-s 캡처할 패킷 크기 지정 (0: 전체)

 

◎ tcpdump 필터(조건) 문법
tcpdump는 다양한 필터를 조합하여 원하는 패킷만 캡처할 수 있습니다.

  • src/dst: 출발지/도착지 IP 지정
  • port: 특정 포트 지정
  • host: 특정 호스트(IP) 지정
  • net: 네트워크 대역 지정
  • tcp/udp: 프로토콜 지정
  • and, or, not: 조건 조합

 

◎ 실전 tcpdump 명령어 예제 (-nn -i 사용)
아래 예제는 모두 -nn -i 옵션을 사용하여, IP와 포트를 숫자로만 출력하고, 특정 인터페이스에서 패킷을 캡처하는 방법을 보여줍니다.

1. 기본 패킷 캡처

# tcpdump -nn -i eth0

eth0 인터페이스에서 패킷을 캡처하며, IP와 포트를 숫자로만 출력합니다.

2. 패킷을 파일로 저장

# tcpdump -nn -i eth0 -w capture.pcap

eth0 인터페이스의 패킷을 capture.pcap 파일로 저장하며, IP와 포트를 숫자로만 출력합니다.

3. 저장된 패킷 파일 읽기

# tcpdump -nn -r capture.pcap

저장된 pcap 파일의 패킷을 읽으며, IP와 포트를 숫자로만 출력합니다.

4. 특정 개수만큼 패킷 캡처

# tcpdump -nn -i eth0 -c 10

eth0 인터페이스에서 10개의 패킷만 캡처 후 종료하며, IP와 포트를 숫자로만 출력합니다.

5. 특정 포트(예: 80) 패킷 캡처

# tcpdump -nn -i eth0 port 80

eth0에서 80번 포트로 오가는 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

6. 출발지/도착지 IP로 패킷 캡처

# tcpdump -nn -i eth0 src 192.168.0.1

출발지 IP가 192.168.0.1인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

# tcpdump -nn -i eth0 dst 192.168.0.1

도착지 IP가 192.168.0.1인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

7. 특정 호스트(양방향) 패킷 캡처

# tcpdump -nn -i eth0 host 192.168.0.1

192.168.0.1로 들어오거나 나가는 모든 패킷을 캡처하며, IP와 포트를 숫자로만 출력합니다.

8. 프로토콜(TCP/UDP)로 필터링

# tcpdump -nn -i eth0 tcp

eth0에서 TCP 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

# tcpdump -nn -i eth0 udp

eth0에서 UDP 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

 

9. 캡처할 패킷 크기 지정

# tcpdump -nn -i eth0 -s 100

-s 옵션의 숫자는 바이트 단위로 해석됩니다. 즉, 패킷에서 최대 100바이트까지 캡처합니다.
이 옵션을 생략하면 시스템 기본값(보통 65535 또는 262144 바이트 등)이 적용되며,

-s 0으로 지정하면 패킷 전체(즉, 최대 길이)를 캡처합니다. 


10. 여러 조건 조합

# tcpdump -nn -i eth0 'src 192.168.0.1 and (dst port 3389 or 22)'

출발지 IP가 192.168.0.1이고, 도착지 포트가 3389 또는 22인 패킷만 캡처하며, IP와 포트를 숫자로만 출력합니다.

11. 상세 정보 출력

# tcpdump -nn -i eth0 -vvv port 80

eth0에서 80번 포트로 오가는 패킷을 매우 상세하게 출력하며, IP와 포트를 숫자로만 출력합니다.

◎ 요약 및 활용 팁
-n: IP만 숫자로 출력
-nn: IP와 포트 모두 숫자로 출력
-i: 인터페이스 지정
실무 활용: 네트워크 트러블슈팅, 보안 감사, 통신 테스트 등 다양한 상황에서 유용하게 사용할 수 있습니다.

◎ 마무리

이 글이 tcpdump 명령어의 옵션과 활용법을 더 쉽게 이해하는 데 도움이 되길 바랍니다!
관련하여 find, ls, grep 등 명령줄 도구 활용에도 관심이 많으시다면, 시스템 관리와 네트워크 분석에 더욱 능숙해질 수 있습니다.

+ Recent posts