Tcpdump?
명령 줄에서 실행하는 일반적인 패킷 가로채기 소프트웨어. 사용자가 TCP/IP뿐 아니라, 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시할 수 있게 도와준다.
사용법
tcpdump [options] [expression] [host]
매개변수 ( option )
옵션 | 설명 |
-nn | 출력 결과의 포트를 변환 없이 그대로 출력한다. 옵션을 적용하지 않으면 가장 대중적인 프로토콜로 보여준다. ex) 80 -> http, 443 -> https |
-vvv | 패킷의 모든 정보 (TTL 등을 보여준다. 단, 데이터는 볼 수 없다. Request Body, Response Body 등) |
-A | 패킷의 내용을 ASCII 형태로 출력한다. 데이터가 암호화 되지 않았다면, 데이터도 보여준다. (Request Body, Response Body 등) |
-B | 운영 체제가 캡처하는 버퍼 크기를 buffer_size로 바꾼다. |
-c | 주어진 수의 패킷을 받은 후 종료한다. |
-C | 패킷 정보를 저장하는 파일을 일정 크기로 갱신한다. 기본 단위는 MB |
-d |
컴파일된 packet-matching code를 사람이 읽을 수 있는 표준형으로 바꾼후 멈춘다. |
-dd |
packet-matching 코드를 C 프로그램의 일부로 표현한다. |
-ddd |
packet-matching 코드를 십진수로 표현한다. |
-D |
tcpdump가 패킷을 잡을 수 있는 시스템 상에 가능한 네트워크 인터페이스 목록을 출력한다. 각각의 네트워크 인터페이스에는 번호와 인터페이스 이름이 매겨져 있어야 하고 그에 해당하는 설명이 덧붙여져 있어야 한다. 이 기능은 tcpdump가 오래된 버전일 경우에 지원되지 않을 수 있다. |
-e |
링크 레벨 헤더를 각각 덤프라인에 출력한다. |
-f |
외부 IPv4 주소를 되도록 심볼(상징적)이 아닌 숫자로서 표현한다. |
-F |
파일을 필터식(filter expression)으로 입력한다. 추가적으로 명령창에 입력된 식은 무시된다. |
-G | 패킷 정보를 저장하는 파일을 일정 주기로 갱신한다. 기본 단위는 s (초) |
-i | 인터페이스를 정한다. 정해지지 않았으면 tcpdump는 시스템 인터페이스 목록에서 가장 낮은 숫자를 고른다. |
-I | 인터페이스를 "monitor mode"로 놓는다. 이는 IEEE 802.11 와이파이 인터페이스에서만 작동되고 몇몇 운영 체제에서만 지원된다. |
-w | 패킷 정보를 저장할 파일 (.pcap)을 지정한다. 와이어샤크 등으로 해당 파일을 분석할 수 있다. |
-Z | tcpdump를 실행시킬 권한을 설정해준다. 만약 패킷 저장을 위한 파일의 권한을 다른 사용자로 주고 싶다면 사용한다. |
host | 출발지, 목적지 관계 없이 해당 호스트 정보를 가진 패킷만 수집한다. |
port | 출발지, 목적지 관계 없이 해당 포트 정보를 가진 패킷만 수집한다. |
Example
# 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 -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 가 아닌 것
[참고]
https://ko.wikipedia.org/wiki/Tcpdump
'OS > Linux' 카테고리의 다른 글
bin sh if (0) | 2019.07.27 |
---|---|
libconfig comfile and install (0) | 2019.07.27 |
linux 사용자, 사용자 그룹 (0) | 2019.07.26 |
[linux] rsync 원격백업 설정 (0) | 2019.07.26 |
debian ip config (0) | 2019.07.26 |