강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

tcpdump를 이용하여 특정 ethernet으로 송수신되는 패킷헤더 덤프하기 (tcpdump 강좌 2편)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

tcpdump를 이용하여 특정 ethernet으로 송수신되는 패킷헤더 덤프하기 (tcpdump 강좌 2)

 

 

 

 

tcpdump명령어를 이용하면 지정한 ethernet으로 송수신되는 데이터패킷의 헤드를 캡쳐해 볼 수 있다.

 

 

 

 , 다음과 같이 tcpdump명령어에 -i옵션 다음에 덤프할 대상 네트워크 인터페이스를 지정할 수 있다.

 

 

 

 다음 예는 현재 필자가 사용하고 있는 서버의 eth0 네트워크 인터페이스를 통과하는 데이터패킷들의 헤드를 확인한 예이다.

 

 

 

 

 

[root@sulinux ~]#tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

01:08:44.494490 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 2153008193:2153008309(116) ack 2645170213 win 1132

01:08:44.495031 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 116:232(116) ack 1 win 1132

01:08:44.495090 IP 192.168.0.150.simba-cs > 192.168.0.250.ssh: . ack 232 win 14960

01:08:44.510379 arp who-has 192.168.0.1 tell 192.168.0.250

01:08:44.512376 arp reply 192.168.0.1 is-at 00:0f:ea:91:22:f0 (oui Unknown)

01:08:44.512392 IP 192.168.0.250.32860 > 192.168.0.1.domain:  60567+ PTR? 150.0.168.192.in-addr.arpa. (44)

01:08:44.515864 IP 192.168.0.1.domain > 192.168.0.250.32860:  60567 NXDomain* 0/1/0 (94)

01:08:44.516453 IP 192.168.0.250.32860 > 192.168.0.1.domain:  33979+ PTR? 250.0.168.192.in-addr.arpa. (44)

01:08:44.521373 IP 192.168.0.1.domain > 192.168.0.250.32860:  33979 NXDomain* 0/1/0 (94)

01:08:44.521587 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 232:396(164) ack 1 win 1132

01:08:44.521908 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 396:528(132) ack 1 win 1132

01:08:44.522010 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 528:660(132) ack 1 win 1132

 

 

 

, 위의 예는 eth0이라는 이더넷을 통하여 송수신되는 데이터 패킷들의 각각의 헤드들만을 모니터화면으로 확인한 것이다.

 

 

 

 

 

그렇다면 위의 데이터들을 모니터화면이 아닌 특정 텍스트파일에 저장할 수는 없을까?

 

 

다음은 지정한 네트워크 인터페이스에 흘러다니는 데이터 패킷들을 덤프(dump)하여 지정한 파일에 저장하는 방법과 저장한 파일을 확인하는 방법에 대한 설명이다.

 

 

 

 , tcpdump명령어에 -i옵션 다음에는 대상 네트워크인터페이스를 지정하시고 -w옵션 다음에는 덤프한 패킷헤드를 저장할 파일이름을 임의대로 주면 된다.

 

 

 

 다음 예는 eth0 네트워크 인터페이스에 흘러다니는 데이터 패킷의 헤드를 잡아서 TCPDUMP파일에 저장하는 예이다.

 

 

 

 이 명령어의 종료는 “^C”를 눌러야 끝이난다.

 

 

 

 그리고 ls명령어로 생성된 TCPDUMP파일을 확인하였다.

 

 

 

 

 

[root@sulinux ~]#tcpdump -i eth0 -w SULINUX.NET.TXT

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

4 packets captured

9 packets received by filter

0 packets dropped by kernel

[root@sulinux ~]#

[root@sulinux ~]#ls -l SULINUX.NET.TXT

-rw-r--r-- 1 root root 436 Feb 16 01:10 SULINUX.NET.TXT

[root@sulinux ~]#

 

 

 

그리고 다음은 SULINUX.NET.TXT파일에 저장된 패킷헤드들을 확인한 것이다.

 

 

 

 , 다음 예는tcpdump에서 -r옵션을 사용하면 tcpdump로 캡쳐하여 저장된 파일의 내용을 텍스트포맷으로 확인하는 방법이다.

 

 

 

 

 

[root@sulinux ~]#tcpdump -r SULINUX.NET.TXT

reading from file SULINUX.NET.TXT, link-type EN10MB (Ethernet)

01:10:35.722765 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 2153697073:2153697125(52) ack 2645182329 win 1132

01:10:35.723181 IP 192.168.0.250.ssh > 192.168.0.150.simba-cs: P 52:168(116) ack 1 win 1132

01:10:35.723643 IP 192.168.0.150.simba-cs > 192.168.0.250.ssh: . ack 168 win 16008

01:10:37.346088 IP 192.168.0.150.simba-cs > 192.168.0.250.ssh: P 1:53(52) ack 168 win 16008

[root@sulinux ~]#

 

 

 

지금 사용한 방법이 패킷헤드를 캡쳐하고 헤드의 내용을 확인하는 가장 일반적인 방법이다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,017 명
  • 현재 강좌수 :  35,690 개
  • 현재 접속자 :  238 명