IT 개발 관련/리눅스(linux)

Tcpdump 패킷 캡처 명령어

vegab0nd 2025. 2. 7. 11:07
반응형

tcpdump?

유닉스 계열의 OS에서 네트워크 카드를(NIC) 통해 송수신되는 패킷을 캡처하는 명령어이다.

tcpdump -nn -vv -i eno1 host 192.168.1.155 -w test.pcap
# dump packets which host is 192.168.1.155, at eno1 NIC and write file 'test.pcap'

옵션에 따라 TCP 뿐만 아니라 UDP 패킷도 캡처할 수 있으며,
대개 일반적인 리눅스 PC 및 VM의 네트워크 이더넷에서 HTTPS로 연결된 웹 서버의(네이버, 구글 등) 패킷을 dump하면, TLS/SSL 암호화 패킷들이 캡처된다.

 

HTTPS 웹 서버 패킷 복호화하여 보는 방법?

일반적인 네트워크 환경에서는 제 3자가 클라이언트-서버 간에 이뤄지는 TLS 암호화 패킷을 보는 것이 불가능하다.
다만 자기 자신은 클라이언트이자 PC 사용자이기에, (윈도우) 환경변수를 Wireshark(패킷 분석 프로그램)에 세팅하면, 복호화된 패킷을 볼 수 있다.

일반적인 네트워크 환경이 아닌 SSL Termination을 제공하는 프록시 서버가 구축되어 있다면 어떻게 될까?
로드 밸런서 혹은 API Gateway에서 복호화된 패킷을 넘겨줘야할 필요가 있다면, 혹은 미러링 패킷을 필요로 하는 네트워크 장비가 있어 이를 넘겨줘야한다면, 해당 수신 장비의 NIC에서 dump를 진행하면 복호화된 패킷을 볼 수 있다.
(* 미러링 : 패킷을 복사하여 하나는 원래 장비에, 복사한 패킷은 제어 및 통제 솔루션 등의 네트워크 장비로 송신)

 

tcpdump 옵션 예시

tcpdump -i enp0s3 -c 5	# NIC enp0s3를 지나는 패킷 5개 덤프
tcpdump -i enp0s3 tcp port 80	# TCP 80 포트로 통신하는 패킷 덤프
tcpdump -i enp0s3 src 192.168.1.11	# 출발지 IP 지정
tcpdump -i enp0s3 dst 8.8.8.8	# 목적지 IP 지정
tcpdump -i enp0s3 host 192.168.1.11	# 특정 Host Ip 지정 (양방향)
tcpdump -i enp0s3 -w test.pcap	# 파일로 저장

이외에 다양한 옵션 유틸리티를 사용하고 싶으면 일반적으로는 --help 옵션을 넣어 명령어에 대한 설명문을 불러오거나, 혹은 구글링을 통해 찾아보면 된다.