Tcpdump 소개

서버를 운영한다면 의심 할 여지없이 네트워크 관련 문제를 해결해야 할 시점에 도달하게됩니다. 물론 지원 부서로 메일을 보내는 것이 쉽지만 때로는 손을 더럽게해야합니다. 이 경우 tcpdump해당 작업을위한 도구입니다. Tcpdump는 명령 줄에서 실행되는 네트워크 패킷 분석기입니다.

이 기사는 세 부분으로 나뉩니다.

  • 기본 기능.
  • 특정 트래픽 특성을 기준으로 필터링
  • 고급 기능 (예 : 논리적 표현, TCP 플래그 별 필터링)의 짧은 스 니펫입니다.

tcpdump는 대부분의 기본 시스템에 포함되어 있지 않으므로 설치해야합니다. 그러나 거의 모든 Linux 배포판에는 핵심 리포지토리에 tcpdump가 있습니다. 데비안 기반 배포판의 경우 tcpdump를 설치하는 명령은 다음과 같습니다.

apt-get install tcpdump

CentOS / RedHat의 경우 다음 명령을 사용하십시오.

yum install tcpdump

FreeBSD는 다음을 실행하여 설치할 수있는 사전 구축 된 패키지를 제공합니다.

pkg install tcpdump

사용 가능한 포트도 있으며 다음을 net/tcpdump통해 설치할 수 있습니다.

cd /usr/ports/net/tcpdump
make install clean

당신 tcpdump이 아무런 주장없이 달리면 결과에 타격을 입을 것입니다. 여기에서 Vultr에서 5 초 이내에 새로 회전 된 인스턴스에서 실행하면 다음과 같은 결과가 나타납니다.

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

입력을 필터링하는 방법에 대한 자세한 내용을 살펴보기 전에 tcpdump에 전달할 수있는 일부 매개 변수를 살펴보십시오.

  • -i-청취하려는 인터페이스를 지정합니다 (예 :) tcpdump -i eth0.
  • -n-IP 주소에서 역방향 조회를 시도하지 마십시오 tcpdump -n( 예 : 다른 ntcpdump 를 추가 하면 이름 대신 포트 번호가 표시됨).
  • -X-수집 된 패킷의 내용을 표시하십시오 tcpdump -X.
  • -c- 임의의 숫자 인 x패킷 만 캡처 합니다. x예를 들어 tcpdump -c 10정확히 10 개의 패킷을 캡처합니다.
  • -v-표시되는 패킷 정보의 양을 늘리면 v더 많은 정보가 표시됩니다.

여기에 언급 된 각 매개 변수는 함께 결합 될 수 있습니다. VPN 인터페이스 tun0에서만 100 개의 패킷을 캡처하려면 tcpdump 명령은 다음과 같습니다.

tcpdump -i tun0 -c 100 -X

몇 가지 옵션 외에도 수백 가지 옵션이 있지만 가장 일반적인 옵션입니다. 시스템에서 tcpdump의 맨 페이지를 읽으십시오.

tcpdump에 대한 기본 지식을 갖추 었으므로 이제 tcpdump의 가장 멋진 기능 중 하나 인 표현식을 살펴볼 차례입니다. 표현은 인생을 훨씬 쉽게 만들어 줄 것입니다. BPF 또는 Berkeley 패킷 필터라고도합니다. 표현식을 사용하면 출발지, 목적지, 크기 또는 TCP 시퀀스 번호와 같은 특정 특성에 따라 패킷을 선택적으로 표시 (또는 무시) 할 수 있습니다.

지금까지 특정 인터페이스에서 특정 양의 패킷으로 검색을 제한했지만 여기서는 솔직하게 말하면 수집 된 데이터를 효과적으로 처리하기에는 너무 많은 배경 잡음이 남아 있습니다. 그 곳에서 표현이 시작됩니다. 이 개념은 매우 간단하므로 여기서는 건조 이론을 생략하고 실제 사례를 통해 이해를 지원합니다.

가장 많이 사용하는 표현은 다음과 같습니다.

  • host -호스트 이름 또는 IP 주소를 기반으로 트래픽을 찾으십시오.
  • src또는 dst-특정 호스트와의 트래픽을 찾습니다.
  • proto-특정 프로토콜의 트래픽을 찾으십시오. tcp, udp, icmp 및 기타에서 작동합니다. proto키워드를 생략하는 것도 가능합니다.
  • net -특정 범위의 IP 주소를 오가는 트래픽을 찾습니다.
  • port -특정 포트를 오가는 트래픽을 찾으십시오.
  • greater또는 less-특정 바이트 수보다 크거나 작은 트래픽을 찾습니다.

맨 페이지 tcpdump에는 몇 가지 예만 포함되어 있지만 맨 페이지 에는 pcap-filter각 필터의 ​​작동 방식 및 적용 방법에 대한 자세한 설명이 있습니다.

특정 서버와의 통신이 어떻게 진행되고 있는지 보려면 host키워드를 사용할 수 있습니다 (예 : 위의 일부 매개 변수 포함).

tcpdump -i eth0 host vultr.com

네트워크에 MTU를 존중하지 않거나 대용량 패킷으로 스팸을 보내는 컴퓨터가있는 경우가 있습니다. 그것들을 걸러내는 것은 때때로 어려울 수 있습니다. 표현식을 사용하면 특정 바이트 수보다 크거나 작은 패키지를 필터링 할 수 있습니다.

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

어쩌면 특정 포트만 관심이있을 수 있습니다. 이 경우 다음 port표현식을 사용하십시오 .

tcpdump -i eth0 -X port 21

포트 범위를 확인할 수도 있습니다.

tcdump -i eth0 -X portrange 22-25

NAT 게이트웨이는 매우 일반적이므로 대상 포트만 찾을 수 있습니다.

tcpdump dst port 80

웹 서버에 대한 트래픽을보고있는 경우 포트 80에 대한 TCP 트래픽 만보고 싶을 수 있습니다.

tcpdump tcp and dst port 80

키워드 and가 무엇을하고 있는지 스스로에게 묻고 있을 것입니다. 좋은 질문. 이 기사의 마지막 부분으로 안내합니다.

tcpdump 논리식에 대한 기본 지원,보다 구체적으로 다음을 제공합니다.

  • and/ &&-논리 "and".
  • or/ ||-논리 "또는".
  • not/ !-논리 "not".

표현식을 그룹화 할 수있는 기능을 통해 수신 및 발신 트래픽에 대한 강력한 검색을 만들 수 있습니다. 포트 22 또는 443의 vultr.com에서 들어오는 트래픽을 필터링하십시오.

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

명령 행에서 이것을 실행하면 다음과 같은 오류가 발생합니다.

bash: syntax error near unexpected token `('

주의 bash할 점이 있습니다. 가능한 모든 캐릭터를 평가하려고합니다. 여기에는 ()문자가 포함됩니다 . 이 오류를 피하려면 결합 표현식 주위에 작은 따옴표를 사용해야합니다.

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

또 다른 유용한 예 : 사용자 중 하나의 SSH 문제를 디버깅 할 때 SSH 세션과 관련된 모든 것을 무시할 수 있습니다.

tcpdump '!(host $youripaddress) && port 22)'

다시 한 번, 유스 케이스는 끝이 없으며 어떤 종류의 트래픽을보고 싶은지 깊이를 지정할 수 있습니다. 다음 명령은 TCP 핸드 셰이크의 SYNACK 패킷 만 보여줍니다.

tcpdump -i eth0 'tcp[13]=18'

이것은 TCP 헤더의 13 번째 오프셋과 그 안의 18 번째 바이트를 보면 작동합니다.

여기까지 다 만들었다면 대부분의 유스 케이스에 대한 준비가 된 것입니다. 너무 많은 디테일에 들어 가지 않고 표면을 간신히 만질 수 있습니다. 다른 옵션과 표현을 조금 더 실험 해 보는 것이 좋습니다. 평소와 같이 : 길을 잃었을 때 맨 페이지를 참조하십시오.

마지막으로-다시 한번 살펴보십시오. 이 기사의 시작을 기억하십니까? 몇 초 만에 수천 개의 패킷이 캡처 되었습니까? 의 힘은 tcpdump그것을 많이 다듬을 수 있습니다.

tcpdump -i eth0 tcp port 22

결과는 다음과 같습니다.

81 packets captured
114 packets received by filter
0 packets dropped by kerne

이것은 훨씬 더 안전하고 디버깅하기 쉽습니다. 행복한 네트워킹!



Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.