728x90
반응형
안녕하세요. 요즘 udp 관련 패킷을 확인할 일이 생겨 tcpdump에 대해 공부하게 되었고, 공부한 내용들을 정리하여 올려봅니다.
tcpdump란?
tcpdump는 CLI 환경에서 실행하는 일반적인 패킷 가로채기 소프트웨어 입니다.
사용자가 TCP/IP 뿐 아니라, 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시할 수 있게 도와주죠.
tcpdump 명령어 사용법
tcpdump [ -AbdDefhHIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ -P in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ expression ]
네트워크 프로토콜(TCP/IP), 네트워크 인터페이스에 대한 기본적인 지식이 있어야 사용법을 이해할 수 있습니다.
tcpdump를 원하는 인터페이스나 포트를 지정하여 조건에 만족하는 패킷들을 출력해주는 명령어(프로그램)이죠.
tcpdump 명령어 옵션
자주 사용하는 옵션만 정리해보았습니다.
옵션 | 설명 |
-A | Print each packet (minus its link level header) in ASCII. Handy for capturing web pages. |
-C | 캡쳐한 패킷을 저장할 때, file_size만큼의 크기로 갱신한다. -w flag로 지정된 파일명을 이용해 1부터 하나씩 늘어난다. file_size의 기본 크기는 MB(1,000,000 bytes) |
-D | tcpdump로 패킷을 캡쳐할 수 있는 네트워크 인터페이스 목록을 출력해준다. 이 옵션으로 출력된 인터페이스들을 -i 옵션을 통해 지정할 수 있다. |
-f | 외부 IPv4 주소를 되도록 숫자로 표현한다. |
-G | 캡쳐한 패킷을 저장할 때, rotate_seconds만큼의 주기로 갱신한다. -w flag로 지정된 파일명을 이용해 strftime(3)에 정의된 time format으로 지정할 수 있다. |
-i | 캡쳐할 네트워크 인터페이스를 지정한다. 따로 지정하지 않으면 시스템 인터페이스 목록에서 가장 낮은 숫자를 골라 캡쳐한다.(loopback 제외) |
-nn | 대중적인 프로토콜과 포트번호를 이름으로 변환하지 않고 숫자 그대로 보여준다. |
-tttt | 캡쳐한 각 패킷 행에 날짜 기본 형식으로 timestamp를 출력한다. |
-vvv | 패킷의 모든 정보를 보여준다(TTL 포함) |
-w | 캡쳐한 패킷을 파일(.pcap)로 저장한다. |
-Z | 저장한 파일의 권한을 root 권한이 아닌 다른 User로 주고 싶을 때 사용한다. |
더 자세한 옵션은 공식문서인 tcpdump(8) - Linux man page를 참고해주세요.
tcpdump 조건식(expression)
옵션의 가장 마지막인 조건식([ expression ])은 어떤 패킷들을 dump할지 선택하는데 사용됩니다.
(조건식들은 몇 개의 primitives로 이루어져 있는데, pcap-filter(7) - Linux man page에 자세한 내용이 나와있습니다.)
여기선 많이 사용하는 host, port 에 대해서만 적어놓았습니다.
옵션 | 설명 |
host | dst(목적지), src(출발지)와 관계 없이 지정된 host 정보를 가진 패킷만 캡쳐한다. |
port | dst(목적지), src(출발지)와 관계 없이 지정된 port 정보를 가진 패킷만 캡쳐한다. |
dst, src를 따로 지정해줄 수도 있다. |
tcpdump 명령어 사용 예시
제가 실제 사용한 명령어 예시로는
- (root 접속 후)
tcpdump -i ens5 udp port 7799 -XX -q -vv -nn
저장한 .pcap 파일 보는 방법
- 와이어샤크(WireShark)를 지원하는 OS라면 와이어샤크를 설치 후 pcap 파일을 실행하면 볼 수 있습니다.
- CLI 환경에서는 아래 커맨드로 확인 가능합니다.
- tcpdump -qns 0 -A -r [pcap 파일 경로]
참고 자료
728x90
반응형
'Linux' 카테고리의 다른 글
[바미] WSL에서 GitLab SSH키 인증받기 (0) | 2024.03.16 |
---|---|
[바미] linux - gitlab clone 오류 (0) | 2024.02.14 |
[바미] 당일 최소값, 최댓값, 어제 발생한 로그 총 합 구하기. (0) | 2022.02.15 |
[바미] 리눅스 특수 문자에 대해 알아봅시다. (0) | 2021.07.01 |
[바미] 리눅스 크론탭(Linux Crontab)에 대해 알아 봅시다. (0) | 2021.07.01 |