인생사는 이야기

[Linux] TCPDump 본문

IT/Linux

[Linux] TCPDump

채율파파 2012. 3. 28. 16:27
반응형

tcpdump란?
지정한 네트워크 인터페이스(이더넷, 랜카드)로 송수신되는 데이터의 패킷전체 혹은 패킷헤드만을 모니터링하거나 덤프 할수 있다. 이 명령어의 주된 목적은 네트워크와 이더넷의
이상유무를 체크하기 위해 데이터 패킷을 모니터링하고 그 패킷헤드 또는 패킷자체를 분석하기 위한 것이다.
즉 tcpdump를 잘만 사용한다면 캡쳐한 데이터 패킷을 분석하여 네트워크나 서버의 응용서비스들의 문제점에 대해 분석하는 도구로 사용될 수 있고,
네트워크 문제를 확인할 수도 있다. 하지만 이 툴을 악용한다면 크래킹의 도구로 사용될 수 있다. 즉 암호화 하지 않은채로 FTP나 TELNET 같은 서비스를
이용하여 ID와 패스워드를 입력하였다면 누군가 tcpdump 명령어로 이들 패킷을 캡쳐하여 분석 할 수 있으며, 어렵지 않게 ID와 패스워드를 알아 낼 수 있다.
따라서 가능하다면 암호화된 통신방식 ssh2 또는 dftp등을 이용하는 것이 보안측면에서 효율적이다.
- 특정 이더넷을 거쳐가는 모든 패킷의 헤드를 캡쳐
- 특정 이더넷을 거쳐가는 패킷전체를 캡쳐
- 이 시스템과 원격지의 대상 호스트 사이에 송수신 되는 패킷헤더 혹은 패킷전체 캡쳐
- 이 시스템과 원격지의 대상호스트 간의 모든 패킷들 가운데 특정 포트번호(혹은 특정 서비스)로만 송수신되는 패킷헤더 혹은 패킷 전체를 캡쳐
- 패킷을 캡쳐하여 특정 파일에 저장할 수 있으며 저장된 파내용 확인은 -r 옵션을 사용하여 확인

tcpdump -i eth0
eth0 이더넷을 통하여 송수신되는 데이터 패킷들의 각각의 헤드들만을 모니터화면으로 확인한것
캡쳐 종료 시에는 ^C

특정 텍스트파일에 저장
tcpdump -i eth0 -w TEST.TXT

TEST.TXT 파일에 저장된 패킷헤드를 확인
tcpdump -r TEST.TXT

캡쳐할 개수 지정
tcpdump -i eth0 -c 5

헤드를 포함한 패킷전체를 캡쳐
tcpdump를 사용하여 특정 IP주소의 서버로 특정 포트를 이용하는 모든 패킷을 캡쳐하여 특정 파일에 저장할 수 있다.
tcpdump -w test.log -s 1500 tcp port 22 and host 192.168.229.130
현재 로컬서버와 192.168.229.130 호스트사이의 통신데이터 패킷 중 tcp 22 번포트의 모든 패킷을 1500 길이로 캡쳐 하여 test.log 파일에 저장하는 것
-w test.log
결과를 test.log파일에 저장한다. 임의 지정

-s 1500
캡쳐할 패킷의 길이로서 1500은 패킷의 전체길이를 의미 하므로 모든 패킷을 캡쳐한다.
해당 이더넷의 MTU 값이 1500 이면 여기서 1500 을 지정하면 된다.
네트워크 인터페이스의 MTU값 확인과 MTU 변경등은 ifconfig로 할 수 있다.

tcp port 22
캡쳐할 대상 프로토콜과 포트를 지정한 것으로 TCP 포트 22번으로 송수신되는 데이터를 캡쳐하게 된다.

host 192.168.229.130
192.168.229.130 호스트와 송수신되는 데이터를 대상으로 캡쳐한다.

ASCII 모드로 확인
tcpdump -Xqnc test.log

반응형
Comments