반응형
1. tcpdump란 ?
- tcpdump란 대부분의 유닉스 계열의 시스템으로 송수신되는 네트워크 트래픽을 캡쳐할 수 있도록 하는 명령어 유틸리티이다.
- 일반적으로 특정 시스템에서의 패킷을 TCP Layer에서 캡쳐하여 파일로 저장한 뒤, 트러블 슈팅에 사용한다.
- 해당 명령어를 사용하여 아래의 내용들을 확인 가능하다.
- 특정 이더넷을 거쳐가는 패킷 헤더 또는 전체를 캡쳐
- 해당 시스템과 원격지 대상 호스트 간 송수신 되는 패킷 헤더 또는 전체 캡쳐
- 해당 시스템과 원격지 대상 호스트 간 송수신 되는 패킷 중 특정 포트(서비스)를 통해 송수신 되는 패킷 헤더 또는 전체 캡쳐
2. tcpdump 설치
# tcpdump 설치 확인
tcpdump --version
# Ubuntu, Debian tcpdump install
sudo apt install tcpdump
# CentOS, Fedora tcpdump install
sudo yum install tcpdump
3. tcpdump 사용 형식
- 아래 4번의 옵션들을 조합하여 필요한 값을 캡쳐할 수 있다.
# tcpdump 일반 구문
# tcpdump [option] [expression] [host]
# host가 10.123.45.67인 패킷 중 eth1을 통해 송수신되는 패킷 캡쳐
tcpdump -i eth1 host 10.123.45.67
# 인터페이스 eth1을 통해 송수신 되는 패킷을 캡쳐하여 capture.pcap 파일에 저장
tcpdump -i eth1 -r capture.pcap
# 인터페이스 eth2를 통해 송수신 되는 패킷의 자세한 정보를 캡쳐하여 detail_capture.pcap 파일에 저장
tcpdump -i eth2 -vv detail_capture.pcap
4. tcpdump 옵션 및 예제
- tcpdump 사용시 많이 사용 하는 옵션
## tcpdump -i [interface]
# 접속 인터페이스 옵션으로 [interface]를 경유하는 패킷을 캡쳐
# 인터페이스 eth1을 경유하는 패킷 캡쳐
tcpdump -i eth1
# 인터페이스 ens224를 경유하는 패킷 캡쳐
tcpdump -i ens224
## tcpdump -c [number]
# 카운트 옵션으로 [number] 개수만큼의 패킷을 캡쳐
# 10개의 패킷을 캡쳐
tcpdump -c 10
## tcpdump -w [file]
# 쓰기 옵션으로, 캡쳐한 패킷을 분석해 출력하는 대신 [file]로 저장
# 캡쳐한 패킷을 capture.pcap 파일에 저장
tcpdump -r capture.pcap
## tcpdump -r [file]
# 읽기 옵션으로, -w 옵션을 이용해 생성한 [file]을 읽을 수 있다.
# 패킷을 캡쳐해 파일을 우선 생성한 뒤, 해당 옵션을 이용해 읽는 명령어
# -w 옵션을 사용해 생성한 파일 capture.pcap 읽기
tcpdump -r capture.pcap
## tcpdump -n | -nn
# 패킷을 출력시, ip, address를 hostname으로, port는 잘 알려진 프로토콜로 출력하지 않음
# -nn 옵션 미사용시 (Wellknown port인 https로 표현)
tcpdump
16:53:59.513734 IP 10.123.243.2.https < 10.123.243.3.37978: Flag ~
# -nn 옵션 사용시 (포트 번호인 443으로 표현)
tcpdump
16:53:59.513734 IP 10.123.243.2.443 < 10.123.243.3.37978: Flag ~
## tcpdump -v
# 세부 정보 옵션으로 표시될 패킷 정보의 세부 정도를 결정
## tcp dump -vv
# -v 옵션보다 더 많은 수준의 정보를 제공
tcpdump
17:18:33.335389 IP 10.123.45.678.59228 > hsg07s55-in-f14.1e100.net.https: Flags [.], ack 2020704443, win 6172, options [nop,nop,TS val 3703095522 ecr 2592716460], length 0
# Source IP, Destination IP, Protocol 등 기본적인 내용
tcpdump -v
17:18:49.471437 IP (tos 0x0, ttl 64, id 58615, offset 0, flags [DF], proto TCP (6), length 1452)
10.123.45.678.51694 > hsg07s55-in-f14.1e100.net.https: Flags [.], cksum 0x0fd6 (correct), seq 3655913527:3655914927, ack 3852274365, win 29052, options [nop,nop,TS val 613567533 ecr 65989289], length 1400
# Source IP, Destination IP, Protocol, Source MAC, Destination MAC, Type of linke 등
tcpdump -vv
17:18:54.840046 IP (tos 0x0, ttl 64, id 22935, offset 0, flags [DF], proto TCP (6), length 52)
10.123.45.678.61857 > hsg07s55-in-f14.1e100.net.https: Flags [.], cksum 0xf881 (correct), seq 4122856888, ack 3635517398, win 7258, options [nop,nop,TS val 1753827895 ecr 547629078], length 0
# 패킷의 모든 필드를 포함하여, 프레임 길이, 프로토콜 버전, 플래그 등과 같은 자세한 정보
# tcpdump -s [PacketSize]
## snapshot lenght 옵션으로 캡쳐할 패킷의 사이즈를 지정할 수 있다.
## 기본값은 0으로 이는 전체 패킷 내용을 포함시킨다.
# 캡쳐하는 패킷의 사이즈를 65,535 Byte로 지정 (65,535는 -s 옵션으로 지정 가능한 최대 값)
tcpdump -s 65535
🙋♂️ 궁금한 점이나 잘못된 내용을 댓글로 적어주시면 감사하겠습니다 !!
Ref.
반응형
'Infra > LINUX' 카테고리의 다른 글
# [Linux] Supportconfig (0) | 2024.04.18 |
---|---|
# [Linux] VirtualBox 설치 에러 ( Microsoft Visual C++ 2019 ) (0) | 2024.03.19 |
# [Linux] VirtualBox 설치 (3) | 2024.03.19 |
# [Linux] LVM (0) | 2023.07.26 |
# [Linux] tmux 설치 (0) | 2023.05.17 |