[Network 명령] 패킷 점검하기: tcpdump, 패킷 추적: traceroute

markyang92·2021년 7월 15일
1

network

목록 보기
7/21
post-thumbnail

tcpdump

  • tcpdump는 패킷을 캡쳐하여 분석할 때 사용한다.
$ tcpdump [option]
옵션설명
-c <패킷 수>지정한 패킷 수 만큼 덤프 받고 종료한다.
-i <인터페이스>특정 인터페이스를 지정한다.
-nIP 주소를 호스트명으로 바꾸지 않는다.
-q정보를 간단한 형태로 보여준다.
-X패킷의 내용을 16진수와 ASCII로 출력한다.
-w <파일 명>덤프한 내용을 지정한 파일 명에 저장한다.
-r <파일 명>덤프를 저장한 파일에서 읽어온다.
host <호스트명 | 주소>지정한 호스트가 받거나 보낸 패킷만 덤프한다.
tcp port <PORT 번호>지정한 포트번호 패킷만 덤프한다.
ipip 패킷만 덤프한다.
-G초 단위로 파일이 순환생성
-W최대 파일 갯수
-z <권한을 줄 유저>덤프 파일에 지정한 유저 권한으로 생성(default: tcpdump)
-C <파일 사이즈>지정한 파일 사이즈 만큼 덤프 write

사용 예설명
$ sudo tcpdump-
$ sudo tcpdump -i eth0-
$ sudo tcpdump -i eth0 -w ./dump.out-
$ sudo tcpdump tcp port 22 and host 192.168.07-

기본 사용

  1. $ sudo tcpdump -c 3 -w tcpdump.out -Z $USER
    1-1. $ sudo tcpdump: tcpdump 수행
    1-2. -c 3: 패킷 주고 받는 것 3번만 수행
    1-3. -w tcpdump.out: ./tcpdump.out이름으로 덤프 내용을 작성
    1-4. -Z $USER: 쉘 환경변수로 지정된 $USER 이름으로 dump file의 권한 부여
  2. 결과

port 지정해 dump

  1. $ sudo tcpdump -c 3 -w dump.out tcp port 22 -Z $USER
    1-1. $ sudo tcpdump: tcpdump 수행
    1-2. -c 3: 패킷 주고 받는 것 3번만 수행
    1-3. -w dump.out: 덤프 내용을 ./dump.out에 작성
    1-4. tcp port 22: tcp port 22번만 캡쳐한다.
    1-5. -Z $USER: 쉘 환경변수의 $USER 이름으로 dump file의 권한을 부여한다.

port와 host 지정해 dump

  1. $ sudo tcpdump -c 3 -w dump.out tcp port 22 and host 192.168.0.13 -Z $USER
    1-1. $ sudo tcpdump: tcpdump 수행
    1-2. -c 3: 패킷 주고 받는 것 3번만 수행
    1-3. -w dump.out: 덤프 내용을 ./dump.out에 작성
    1-4. tcp port 22: tcp port 22번만 캡쳐한다.
       1-4와 1-5는 and 조건
    1-5. host 192.168.0.13: host 192.168.0.13만 캡쳐한다.
    1-6. -Z $USER: 쉘 환경변수의 $USER 이름으로 dump file의 권한을 부여한다.


interface 지정해 dump

  1. $ sudo tcpdump -i eth1
    1-1. $ sudo tcpdump: tcpdump 수행
    1-2. -i eth1: -i 옵션으로 eth1 인터페이스에 대해서만, dump 수행

dumpfile 읽기

  1. $ tcpdump -r ./tcpdump.out
    1-1. $ tcpdump -r <파일>: 지정한 '파일'을 human-readable 하게 읽어올 수 있다.

dumpfile 16진수, ASCII 읽기

  1. $ tcpdump -Xr tcpdump.out
    1-1. $ tcpdump: tcpdump 명령 수행
    1-2. -X: 16진수, ASCII로
    1-3. -r tcpdump.out: 읽는다. tcpdump.out 파일을


traceroute

  • $ traceroute 명령은 지정한 Host에 어떤 경로를 거치는지 확인
$ traceroute [option] <Host | IP>


사용 예:
    $ traceroute www.google.com
optiondescription
-Fip패킷을 분할하지 않는다.
-g게이트웨이. 경유하는 게이트웨이를 지정한다. (최대 8 서버 지정가능)
-Iicmp echo 이용
-TTCP SYN을 이용
-m <최대값>경유하는 최대 host 수를 지정
-nhost명을 해결하지 않고 IP주소로 표시
-p <PORT>이용하는 port 지정
-rrouting table 무시
-s <IP 주소>지정한 IP주소에서 경로를 조사
-w <시간>time out 시간 지정
-xicmp를 checksum으로 평가
-z <시간>경로를 체크하는 시간 간격 지정
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글