728x90
반응형
TCPDump 사용법: 설치부터 활용까지
TCPDump는 네트워크 트래픽을 캡처하고 분석하는 데 사용되는 강력한 명령줄 도구입니다. TCPDump의 설치부터 기본적인 활용법까지 단계적으로 설명하겠습니다.
1. TCPDump 설치
Ubuntu/Debian 기반 시스템:
- 패키지 목록 업데이트:
sudo apt-get update
- TCPDump 설치:
sudo apt-get install tcpdump
- 패키지 목록 업데이트:
CentOS/RHEL 기반 시스템:
- TCPDump 설치:
sudo yum install tcpdump
- TCPDump 설치:
Fedora:
- TCPDump 설치:
sudo dnf install tcpdump
- TCPDump 설치:
2. 기본 사용법
네트워크 인터페이스 확인:
- 사용 가능한 네트워크 인터페이스 목록 출력:
sudo tcpdump -D
- 출력 예시:
1. eth0 2. wlan0 3. lo
- 사용 가능한 네트워크 인터페이스 목록 출력:
기본 패킷 캡처:
- 특정 인터페이스에서 패킷 캡처 시작:
sudo tcpdump -i eth0
-i
옵션은 캡처할 인터페이스를 지정
- 특정 인터페이스에서 패킷 캡처 시작:
3. 패킷 저장 및 읽기
패킷을 파일로 저장:
- 캡처한 데이터를 파일로 저장:
sudo tcpdump -i eth0 -w capture.pcap
-w
옵션은 캡처한 데이터를 파일로 저장
- 캡처한 데이터를 파일로 저장:
저장된 패킷 파일 읽기:
- 파일에서 패킷 읽기:
sudo tcpdump -r capture.pcap
-r
옵션은 파일에서 패킷을 읽음
- 파일에서 패킷 읽기:
4. 필터링 옵션
특정 호스트의 트래픽 캡처:
- 특정 호스트의 트래픽만 캡처:
sudo tcpdump -i eth0 host 192.168.1.1
- 특정 호스트의 트래픽만 캡처:
특정 포트의 트래픽 캡처:
- 특정 포트의 트래픽만 캡처:
sudo tcpdump -i eth0 port 80
- 특정 포트의 트래픽만 캡처:
특정 프로토콜의 트래픽 캡처:
- 특정 프로토콜의 트래픽만 캡처:
sudo tcpdump -i eth0 tcp
- 특정 프로토콜의 트래픽만 캡처:
5. 출력 형식 조정
더 자세한 출력:
- 패킷에 대한 더 자세한 정보 출력:
sudo tcpdump -i eth0 -v
-v
옵션은 더 자세한 정보를 출력
- 패킷에 대한 더 자세한 정보 출력:
가장 자세한 출력:
- 가장 자세한 정보 출력:
sudo tcpdump -i eth0 -vv
- 가장 자세한 정보 출력:
헤더와 페이로드 모두 출력:
- 패킷의 헤더와 페이로드 모두 출력:
sudo tcpdump -i eth0 -X
-X
옵션은 패킷의 헤더와 페이로드를 모두 출력
- 패킷의 헤더와 페이로드 모두 출력:
6. 실전 예제
HTTP 트래픽 캡처:
- HTTP 트래픽 캡처 및 파일로 저장:
sudo tcpdump -i eth0 tcp port 80 -w http_traffic.pcap
- HTTP 트래픽 캡처 및 파일로 저장:
특정 서브넷의 트래픽 캡처:
- 특정 서브넷의 트래픽 캡처:
sudo tcpdump -i eth0 net 192.168.1.0/24
- 특정 서브넷의 트래픽 캡처:
ICMP 패킷 캡처:
- ICMP 패킷 캡처:
sudo tcpdump -i eth0 icmp
- ICMP 패킷 캡처:
7. TCPDump 출력 해석
TCPDump의 출력은 네트워크 트래픽을 분석하는 데 중요한 정보를 제공합니다. 여기서는 TCPDump 출력의 각 부분을 해석하는 방법을 예제로 설명하겠습니다.
기본 출력 예시:
sudo tcpdump -i eth0
- 출력 예시:
12:34:56.789123 IP 192.168.1.2.12345 > 192.168.1.1.80: Flags [S], seq 123456789, win 65535, options [mss 1460,sackOK,TS val 123456789 ecr 0,nop,wscale 7], length 0
- 출력 예시:
출력 해석:
12:34:56.789123
: 패킷이 캡처된 시간 (시:분:초.마이크로초)IP
: 캡처된 패킷의 프로토콜 (여기서는 IP)192.168.1.2.12345
: 출발지 IP 주소와 포트 번호>
: 패킷이 전송되는 방향192.168.1.1.80
: 목적지 IP 주소와 포트 번호Flags [S]
: TCP 플래그 (여기서는 SYN 플래그)seq 123456789
: 시퀀스 번호win 65535
: 윈도우 크기options [mss 1460,sackOK,TS val 123456789 ecr 0,nop,wscale 7]
: TCP 옵션length 0
: 패킷의 데이터 길이
8. HTTP 헤더와 페이로드 디코딩
TCPDump를 사용하여 HTTP 트래픽을 캡처하고, 헤더와 페이로드를 디코딩하여 분석하는 방법을 설명합니다.
HTTP 트래픽 캡처:
- HTTP 트래픽 캡처 및 파일로 저장:
sudo tcpdump -i eth0 tcp port 80 -w http_traffic.pcap
- HTTP 트래픽 캡처 및 파일로 저장:
HTTP 트래픽 디코딩:
- 캡처된 HTTP 트래픽을 읽고 디코딩:
sudo tcpdump -A -r http_traffic.pcap
-A
옵션은 패킷의 페이로드를 ASCII 형식으로 출력-r
옵션은 파일에서 패킷을 읽음
- 캡처된 HTTP 트래픽을 읽고 디코딩:
출력 예시:
12:34:56.789123 IP 192.168.1.2.12345 > 192.168.1.1.80: Flags [P.], seq 123456789:123456890, ack 987654321, win 65535, length 101 E..e..@.@.u...........P..GET / HTTP/1.1 Host: example.com User-Agent: curl/7.68.0 Accept: */*
출력 해석:
GET / HTTP/1.1
: HTTP 요청 메서드와 경로Host: example.com
: 요청된 호스트User-Agent: curl/7.68.0
: 요청을 보낸 클라이언트 정보Accept: */*
: 클라이언트가 수락할 수 있는 콘텐츠 유형
9. 결론
- TCPDump는 네트워크 트래픽을 분석하는 데 매우 유용한 도구
- 기본적인 사용법과 예제를 통해 TCPDump를 효과적으로 활용할 수 있기를 바람
- 추가적인 옵션과 고급 사용법은 TCPDump의 공식 문서를 참고
man tcpdump
728x90
반응형
'IT Best Practise > Network' 카테고리의 다른 글
Hurl 실전 활용 가이드: 다양한 예제와 응용 시나리오 (0) | 2025.04.02 |
---|---|
Hurl: 효율적인 HTTP 테스트 및 통신 도구 (0) | 2025.04.02 |
TCPFlow 사용법: 설치부터 활용까지 (1) | 2024.11.11 |