IT/Network

Tcpdump 로테이션 파일저장(크기, 주기, 파일 개수)

착한아줌마 2022. 3. 18. 18:19
반응형

 

 

 

 

 tcpdump를 필요 시에 라이브하게 사용하는 경우가 일반적이지만,

 어떤 작업을 걸어두고 여러 파일로 쪼개서 저장해야하는 경우도 생기게 된다.

 그럴 때 사용할 수 있는 로테이션 관련 옵션 메모

 

 


 

 

 

1.  -w [파일명]

 파일명으로 저장

[root@localhost ~]# tcpdump -ne -i br0 -w test.pcap
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C15 packets captured
18 packets received by filter
0 packets dropped by kernel
[root@localhost ~]# ls -al test.pcap*
-rw-r--r--. 1 tcpdump tcpdump 1715  3월 18 17:36 test.pcap
[root@localhost ~]#

br0 인터페이스에서 15개의 패킷 캡쳐해서 test.pcap으로 저장하였다.

파일 목록을 보면 test.pcap 저장됨을 확인할 수 있다.

 

 


2.  -G [초]

 로테이션 기준 시간(초단위)

 

[root@localhost ~]# tcpdump -ne -i br0 -w test.pcap -G 3
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
ls
^C733 packets captured
744 packets received by filter
0 packets dropped by kernel
[root@localhost ~]#
[root@localhost ~]# watch -n 1 "ls -al --time-style=full test.pcap* >> rotate_log"
[root@localhost ~]# cat rotate_log
-rw-r--r--. 1 tcpdump tcpdump 4096 2022-03-18 17:49:05.311631129 +0900 test.pcap
-rw-r--r--. 1 tcpdump tcpdump 8192 2022-03-18 17:49:06.313603752 +0900 test.pcap
-rw-r--r--. 1 tcpdump tcpdump 16384 2022-03-18 17:49:08.317549001 +0900 test.pcap

-rw-r--r--. 1 tcpdump tcpdump 0 2022-03-18 17:49:09.320521594 +0900 test.pcap
-rw-r--r--. 1 tcpdump tcpdump 372736 2022-03-18 17:49:10.895478564 +0900 test.pcap
-rw-r--r--. 1 tcpdump tcpdump 385024 2022-03-18 17:49:11.898451163 +0900 test.pcap

-rw-r--r--. 1 tcpdump tcpdump 0 2022-03-18 17:49:12.900423784 +0900 test.pcap

저장하는 파일명이 test.pcap이므로 로테이션되어 새로 저장되는 경우에는 덮어쓰기가 된다.

3초마다 새로 쓰는지 확인하기 위해 watch 명령어로 파일 수정시간과 파일크기를 확인해보면 동작하고 있음을 볼 수 있다.

 

 

 

 -C [사이즈]

 로테이션 기준 파일크기(약 1M*사이즈)

[root@localhost ~]# tcpdump -ne -i br0 -w test.pcap -C 1
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C31414 packets captured
31434 packets received by filter
0 packets dropped by kernel
[root@localhost ~]# ls -al test.pcap*
-rw-r--r--. 1 tcpdump tcpdump 1000091  3월 18 18:12 test.pcap
-rw-r--r--. 1 tcpdump tcpdump 1000088  3월 18 18:12 test.pcap1
-rw-r--r--. 1 tcpdump tcpdump 1000054  3월 18 18:12 test.pcap2
-rw-r--r--. 1 tcpdump tcpdump 1000158  3월 18 18:12 test.pcap3
-rw-r--r--. 1 tcpdump tcpdump 1000186  3월 18 18:12 test.pcap4
-rw-r--r--. 1 tcpdump tcpdump 1000010  3월 18 18:12 test.pcap5
-rw-r--r--. 1 tcpdump tcpdump 1000276  3월 18 18:12 test.pcap6
-rw-r--r--. 1 tcpdump tcpdump 1000118  3월 18 18:12 test.pcap7
-rw-r--r--. 1 tcpdump tcpdump 1000254  3월 18 18:12 test.pcap8
-rw-r--r--. 1 tcpdump tcpdump  816494  3월 18 18:12 test.pcap9
[root@localhost ~]#

오우 C 옵션은 알아서 번호붙여 로테이션 파일을 생성한다.

파일 크기를 보면 1M이지만 정확하지는 않다. tcpdump manpage를 보면 1,000,000이라고는 하지만 순간 유입량이 많은 경우 또는 패킷의 크기에 따라 저장되는 파일크기의 오차가 생기는 듯 하다.

 

 

 

 -W [개수]

 로테이션 시 저장하는 최대 파일 갯수

[root@localhost ~]# tcpdump -ne -i br0 -w test.pcap -C 1 -W 3
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C62854 packets captured
62857 packets received by filter
0 packets dropped by kernel
[root@localhost ~]# ls -al test.pcap*
-rw-r--r--. 1 tcpdump tcpdump 1000235  3월 18 18:15 test.pcap0
-rw-r--r--. 1 tcpdump tcpdump  717728  3월 18 18:15 test.pcap1
-rw-r--r--. 1 tcpdump tcpdump 1000438  3월 18 18:15 test.pcap2
[root@localhost ~]#

C 옵션에서 추가로 W옵션을 사용해본다. 최대 파일 갯수를 지정하는 것으로 테스트 내용을 보면

캡쳐한 패킷량이 3배는 많은데 파일은 3개만 생겼다.

또한 파일 크기를 보면 파일 3개 양을 모두 캡쳐하고 끝난게 아니고 첫번째 파일부터 다시 덮어쓰기 하는 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 참조

idchowto.com/?p=2227

 

tcpdump 파일 로테이트 옵션 (-G) - 스마일서브 IDCHOWTO닷컴

  시스템내 모니터링 스크립트를 작성하다  tcpdump에 재미있는 옵션이 있어서 설명해드립니다.아실만한분들도 계시겠지만 저는 잘안쓰는 옵션이었기에 모니터링시 적절히 이용하면 좋을거 같

idchowto.com