tcpdump를 사용하는 방법

tcpdump 사용 방법

패킷 캡처는 네트워크의 내부 작동 방식을 분석하는 데 매우 유용한 방법입니다. 이를 위해 개발된 여러 가지 도구들이 있습니다. 그 중 하나가 tcpdump입니다. 여기서는 네트워크 엔지니어와 침투 테스트 담당자 모두에게 이 훌륭한 도구를 최대한 활용하는 방법을 안내합니다.

목차

  • tcpdump란 무엇인가?
  • 설치
  • 기본 사항
  • 네트워크 인터페이스 지정
  • 포트/포트 범위 지정
  • 호스트 또는 서브넷 지정
  • 상세 정보 지정
  • 캡처를 파일로 저장하기
  • 자주 묻는 질문

추가 읽기: Tor vs. VPN: 하나가 다른 것보다 나은가?

tcpdump란 무엇인가?

tcpdump는 1988년 로렌스 버클리 연구소 및 네트워크 연구 그룹의 컴퓨터 과학자 팀에 의해 개발되어 출시된 네트워크 패킷 분석 도구입니다. 이 도구는 컴퓨터가 송수신하는 패킷의 내용을 표시하는 데 사용됩니다. 이 도구는 패킷 캡처를 더 구체적이고 집중적으로 만들기 위한 다양한 옵션을 제공합니다. 이러한 옵션 중 일부는 다양한 네트워킹 프로토콜 및 네트워크 인터페이스를 포함합니다.

설치

많은 리눅스 배포판에는 기본적으로 유틸리티가 설치되어 있습니다. 그러나 선택한 배포판에 설치되어 있지 않은 경우 설치는 운 좋게도 빠르고 간단합니다.

예를 들어, Ubuntu나 Debian을 사용하는 경우 apt를 사용하여 설치할 수 있습니다:

sudo apt install tcpdump

CentOS에서는 yum을 사용하여 동일하게 수행합니다:

sudo yum install tcpdump

Arch Linux에서는 pacman을 사용하여 설치합니다:

sudo pacman -S tcpdump

추가 읽기: 양파 라우팅이란 무엇이며 어떻게 개인 정보를 되찾을 수 있나요

기본 사항

tcpdump가 설치되면 -h 플래그를 사용하여 매뉴얼을 살펴볼 수 있습니다:

tcpdump -h

이 명령어는 도구를 사용할 때 활용할 수 있는 플래그 목록을 보여줍니다.

tcpdump 도움말 명령어

보다 포괄적이고 상세한 매뉴얼을 보고 싶으면 man 명령어로 매뉴얼 페이지를 확인할 수 있습니다:

man tcpdump

tcpdump 매뉴얼 페이지

기본 패킷 캡처를 실행하려면 다음과 같이 입력합니다:

tcpdump

명령어를 단독으로 사용하고 네트워크 인터페이스를 지정하지 않으면 도구가 시스템에서 사용 가능한 인터페이스 중 하나를 선택합니다.

tcpdump가 호스트 이름을 해결하지 않도록 하고 대신 IP 주소만 출력하기를 원하면 -n 플래그를 사용할 수 있습니다:

tcpdump -n

캡처할 패킷 수를 지정하려면 -c 플래그를 사용합니다:

tcpdump -c[패킷 수]

네트워크 인터페이스 지정

네트워크 인터페이스를 선택하여 지정하려면 -i 플래그를 사용합니다:

tcpdump -i[인터페이스]

대부분의 시스템에서 가장 일반적인 네트워크 인터페이스 이름 두 가지는 eth0 및 wlan0입니다:

tcpdump -i eth0  
tcpdump -i wlan0

모든 인터페이스에서 데이터를 캡처하려면 any 옵션을 사용할 수 있습니다:

tcpdump -i any

추가 읽기: 이더넷 스위치 vs. 허브 vs. 스플리터: 차이점은 무엇인가?

포트/포트 범위 지정

특정 포트 번호를 사용하는 데이터만 캡처하고 싶다면 다음 명령어를 사용합니다:

tcpdump -i[인터페이스] port [포트 번호]

예를 들어 eth0 인터페이스와 포트 443(HTTPS)의 트래픽을 캡처하고 싶다면 아래와 같이 입력합니다:

tcpdump -i eth0 port 443

또한 tcpdump는 포트 범위를 지정할 수 있습니다:

tcpdump -i[인터페이스] portrange [포트 범위]

호스트 또는 서브넷 지정

특정 호스트 또는 서브넷에서 송수신된 패킷으로 캡처를 제한하고 싶을 때가 있을 것입니다. 운 좋게도 tcpdump는 그렇게 할 수 있게 해줍니다.

호스트를 지정하려면 다음 형식을 사용합니다:

tcpdump -i[인터페이스] host [호스트]

예를 들어, eth0 인터페이스에서 트래픽을 캡처하고 호스트를 127.0.0.1(자신의 루프백 IP 주소)으로 지정하려면:

tcpdump -i eth0 host 127.0.0.1

CIDR 표기법을 사용하여 네트워크 서브넷을 지정하려면 다음 형식을 사용합니다:

tcpdump -i[인터페이스] net [서브넷]

예를 들어:

tcpdump -i eth0 net 10.0.0.0/8

소스 호스트를 직접 지정할 수도 있습니다:

tcpdump -i[인터페이스] src [호스트]

대상 호스트를 지정하려면:

tcpdump -i[인터페이스] dst [호스트]

추가 읽기: 루트 없이 Nmap 실행하는 방법

상세 정보 지정

tcpdump는 패킷 캡처의 상세 정보를 지정할 수 있도록 해줍니다. 이는 캡처 중에 방대한 양의 정보에 압도되지 않도록 할 때 매우 유용합니다.

상세 정보에 대한 세 가지 점진적인 옵션이 있으며, 플래그는 -v, -vv-vvv입니다:

tcpdump -i[인터페이스] -v  
tcpdump -i[인터페이스] -vv  
tcpdump -i[인터페이스] -vvv

첫 번째 옵션은 최소한의 상세 정보를 지정하는 반면, 세 번째 옵션은 가장 많은 상세 정보를 지정합니다.

캡처를 파일로 저장하기

캡처된 데이터를 파일로 저장하는 것이 종종 유용합니다. 이렇게 하면 데이터를 추가로 분석하고 해석할 수 있습니다.

이는 -w 플래그를 사용하여 이루어집니다:

tcpdump -i[인터페이스] -w[파일 이름]

예를 들어 캡처된 데이터를 “capture.txt”라는 파일에 저장할 수 있습니다:

tcpdump -i eth0 -w capture.txt

추가 읽기: 라우터에서 포트를 열고 포트 포워딩 설정하는 방법

자주 묻는 질문

1. “운영이 허용되지 않음” 오류가 발생했습니다. 어떻게 해결하나요?

사용자가 tcpdump를 사용하려고 할 때 받을 수 있는 일반적인 오류입니다:

tcpdump 허용되지 않는 오류

tcpdump는 패킷 캡처를 수행할 수 있는 권한이 없을 때 이 오류를 발생시킵니다. 대부분의 경우 sudo를 사용하여 해결할 수 있습니다. 예를 들어:

sudo tcpdump -i eth0

2. 사용 가능한 네트워크 인터페이스를 어떻게 알 수 있나요?

tcpdump에는 시스템에서 사용 가능한 네트워크 인터페이스를 확인할 수 있는 내장 기능이 있습니다.

인터페이스를 확인하려면 -D 플래그를 사용합니다:

tcpdump -D