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 파일을 선택하여 열 수 있다.
필터링
- 특정 IP 주소나 TCP 포트 번호 등, 해당하는 패킷만 필터링하려면 메뉴에 있는 "Apply a display filter"에 필터를 추가하면 된다.
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>