본문 바로가기
카테고리 없음

리눅스 tcpdump 사용방법 및 명령어 정리 / tcpdump 파일로 저장하는 방법

by 나비와꽃기린 2019. 12. 30.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

 

TCP DUMP 란

tcp dump는 주어진 조건식을 만족하는 네트워크 인터페이스를 거치는 패킷들의 헤더들을 출력해주는 프로그램

 

TCP DUMP 사용방법

원하는 조건의 명령어를 입력으로 네트워크 패킷 로그를 출력하여 본다.

command Line에서 바로 실행하여 볼 수 있고, txt파일로 저장할 수도 있다.

 

TCP DUMP 분석 프로그램

보통 윈도우에서 wireshark 를 사용하는듯.

tcpdump로 패킷 캡춰한 내용을 파일로 저장한 다음 wireshark로 읽어서 분석하면 된다.

tcpdump를 파일로 저장하는 명령어는 아래 빨간부분의 명령어 참고!

 

TCP DUMP 명령어 예

# tcpdump -i eth0 => 인터페이스 eth0 을 보여줌
# tcpdump -w tcpdump.log => 결과를 파일로 저장, txt 가 아닌 bin 형식으로 저장됨
# tcpdump -r tcpdump.log => 저장한 파일을 읽음
# tcpdump -i eth0 -c 10 => 카운터 10개만 보여줌
# tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌
# tcpdump -i eth0 src 192.168.0.1 => source ip 가 192.168.0.1인 패킷 보여줌
# tcpdump -i eth0 dst 192.168.0.1 => destination ip 가 192.168.0.1인 패킷 보여줌

* and 옵션으로 여러가지 조건의 조합 가능
# tcpdump -i eth0 src 192.168.0.1 and tcp port 80 => source ip 가 192.168.0.1이면서 tcp port 80 인 패킷 보여줌

# tcpdump -w tcpdump.log -i eth0 dst xxx.xx.xx.xx and udp and port 514 => 목적이 ip가 xxx.xx.xx.xx인 곳으로 514포트를 사용하는 udp 패킷을 tcpdump.log 파일에 저장(!)

# tcpdump -r tcpdump.log => dump파일을 읽을때 -r 옵션

# tcpdump -i eth0 dst 192.168.0.1 => dest ip 가 192.168.0.1인 패킷 보여줌
# tcpdump host 192.168.0.1 => host 를 지정하면, 이 ip 로 들어오거가 나가는 양방향 패킷 모두 보여줌
# tcpdump src 192.168.0.1 => host 중에서 src 가 192.168.0.1인것 만 지정
# tcpdump dst 192.168.0.1 => host 중에서 dst 가 192.168.0.1인것 만 지정
# tcpdump net 192.168.0.1/24 => CIDR 포맷으로 지정할 수 있다.
# tcpdump tcp => TCP 인것만
# tcpdump udp => UDP 인것만
# tcpdump port 3389 => 포트 양뱡항으로 3389인 것.
# tcpdump src port 3389 => src 포트가 3389인 것.
# tcpdump dst port 3389 => dst 포트가 3389인 것.

* combine : and ( && ) , or ( || ) , not ( ! ) 으로 여러가지를 조합해서 사용 가능
# tcpdump udp and src port 53 => UDP 이고 src 포트가 53 인 것

# tcpdump src x.x.x.x and not dst port 22 => src ip 가 x.x.x.x 이고 dst 포트가 22 가 아닌 것

* grouping : ( )
# tcpdump ‘src x.x.x.x and ( dst port 3389 or 22 )’ => src ip 가 x.x.x.x 이고 ( dst 포트가 3389 또는 22 ) 인 것 ==> 여기서는 ‘ ‘ 가 반드시 있어야 한다.

 

 

고객사로 syslog 통신 테스트를 해보면서..

udp로 통신이 잘 되는지 네트워크 패킷을 보기 위해 tcpdump를 떠서 확인해보았다.

 

목적지 ip로의 udp 514 포트로의 네트워크 패킷을 tcpdump.log에 기록하는 명령어를 실행

 

ctrl+c를 누르면 tcpdump.log 파일이 생성되어 있음

 

vi로 열면 깨진다.

tcpdump -w 명령어를 사용하여 생성한 파일은 tcpdump –r 옵션을 쓴다.

 

 

 

 

출처:http://www.loelab.com/tcpdump-%EC%82%AC%EC%9A%A9%EB%B2%95/