일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DATABASE
- linux
- OS
- Network
- sequelize
- MongoDB
- React
- postman
- Util
- mysql
- macos
- Kotlin
- python
- HTML
- wireshark
- docker
- typeorm
- css
- Express
- Crawling
- TypeScript
- S3
- OOAD
- AWS
- Scheduling
- ubuntu
- algorithm
- node.js
- Android
- mongoose
- Today
- Total
Seongwon Lim
[Network] tcpdump를 이용한 pcap 파일 생성 - Linux 본문
서론
tcpdump는 네트워크 상에서 발생하는 패킷을 캡쳐할 수 있는 모듈이다.
Wireshark 툴을 이용하여 패킷을 분석할 때, 네트워크 상에서 발생하는 패킷을 실시간으로 수집된 패킷에 대한 분석을 진행할 수도 있지만 이미 수집된 패킷 내용(.pcap)을 분석하기도 한다.
그래서 이번 글에서는 .pcap 파일을 만드는 방법에 대해서 간단하게 알아보고자 한다.
테스트 환경은 Ubuntu 22.04 LTS 환경에서 진행했다.
Intsall tcpdump
기본적으로 리눅스에 tcpdump가 깔려있지만 가끔씩 설치되어 있지 않은 경우도 발생한다.
$ tcpdump --help
위 명령어를 입력했을 때 tcpdump 사용 메뉴얼이 나오면 정상적으로 설치가 되어있는 것이다.
그렇지 않은 경우에는 아래 명령어를 입력하여 tcpdump를 설치한다.
$ apt-get install tcpdump
.pcap 파일을 생성하는 방법
이번에는 tcpdump를 이용해서 로컬 네트워크 상에서 발생하는 패킷 정보를 담고 있는 pcap 파일을 생성해보자.
먼저, -i 옵션을 이용해서 수집할 인터페이스를 정의하고, 수집된 내용을 -w 옵션을 통해서 pcap 파일로 생성할 것이다.
$ tcpdump -i enp0s3 -w packet.pcap
인터페이스를 enp0s3로 정의한 이유는 가상 박스(Virtual Box)를 이용해 생성된 우분투 가상 서버의 네트워크 디바이스가 enp0s3, enp0s8를 사용하기 때문이다.
ifconfig 명령어를 통해 본인의 네트워크 디바이스를 확인할 수 있다.
위 명령어를 입력하면 로컬 네트워크 내에서 발생하는 패킷을 수집할 수 있으며, 실시간으로 저장되는 패킷 내용은 확인할 수 없다. 따라서 Ctrl + C를 눌러 tcpdump를 종료해야 생성된 파일을 확인할 수 있다.
저장될 pcap 파일의 경로를 지정해주지 않은 경우 명령어를 수행하는 현재 디렉토리에 파일이 생성된다.
생성된 pcap 파일 정보 확인하기
$ tcpdump -qns 0 -X -r packet.pcap(파일명)
송(수)신지 IP 주소, 프로토콜 유형, 패킷이 수집된 시간, 패킷 길이 등의 정보를 확인할 수 있으며,
패킷 데이터를 Hex(16진수)와 ASCII로 확인할 수도 있다.
다만, CLI를 통해 pcap 파일 구성을 확인하는 데에는 보기가 편하지 않으므로 Wireshark를 이용하여 패킷 내용을 분석해보는 것을 권장한다.
'Network' 카테고리의 다른 글
크롬 에러 해결 - ERR_SSL_KEY_USAGE_INCOMPATIBLE (0) | 2024.04.12 |
---|---|
[Network] 와이어샤크(Wireshark) pcap 파일 분할하기 (0) | 2023.04.19 |
[Network] 패킷 수집 및 네트워크 트래픽 분석기 - Zeek (0) | 2023.03.17 |
[Network] 물리적 토폴로지(Physical Topology)의 종류 (0) | 2022.06.08 |