zmodem

System/Linux 2011. 1. 25. 22:10
참고 - http://izest.blog.me/60010862594


통신을 통해 파일을 주고받는 방법을 정한 규칙을 프로토콜이라고 하는데, 이때 많이 사용하는 프로토콜로 ZMODEM이 있다. 그럼 Zmodem이라는 이름을 붙인 까닭은 무엇일까?

1. 앞서 나온 Xmodem, Ymodem의 단점을 개선시켜 나온 것이기 때문이다.
2. 영어의 Z가 마지막인 것처럼 마지막으로 나온 프로토콜이라는 뜻이다.
3. 제트기처럼 무척 빠른 프로토콜이라는 뜻으로 제트를 붙였다.

Zmodem은 현재까지 나온 프로토콜들 중에서 가장 빠르고 기능이 많으며 안정성 있는 프로토콜이다. 이 프로토콜은 Xmodem과 Ymodem의 결점을 수정하기 위해 개발되었기 때문에 Zmodem이라는 이름이 붙었다.

이 프로그램은 기존의 통신망에서 사용하던 파일전송 프로토콜을 개선시키기 위해서 만들었다. 미국의 기본통신 사업자인  TELENET사가  PC통신에 적합한 통신 소프트웨어를 개발할 목적으로 Ymodem을 만든 Chuck Forsberg에게 의뢰하여 만든 프로토콜이다.

이 프로토콜은 무척 많은 장점을 지니는데 가장 큰 장점은 여러 개의 파일을 한 번에 받을 수 있으며 가장 안정적으로 받을 수 있다는 점이다. 에러검출율이 99.99%에 가깝기 때문에 신뢰도가 무척 높은 프로토콜이다. 또 자동복구(Crash Recovery) 기능도 있다. 이 기능은 전송 중에 에러가 발생하여 전송이 중단되었을 경우, 나중에 다시 같은 파일을 전송하게 되면 스스로 에러가 난 부분 다음부터 전송을 해주는 기능이다. 즉 처음부터 다시 받지 않고 덜 받은 부분만 다시 받으면 되는 것이다. 그밖에 많은 기능이 지원되기 때문에 현재는 전 세계에서 가장 많이 사용하고 있는 프로토콜이 되었다.

zmodem은 90년 초반에 많이 사용하던 모뎀인데요.
그전에는 자료를 받다가 끊기면 처음부터 다시받아야 했는데
zmodem의 등장으로 이어받기가 가능해졌습니다.
그렇다고 하드웨어적인 그 모뎀이 아니구요. 수신프로토콜중의 하나입니다. 

리눅스에서 lrzsz 설치
# rpm -qa | grep lrzsz
만약 설치 되어 있지 않다면

# yum install lrzsz

pc -> 리눅스  파일 전송(SecureCRT에서 zmodem 제공)
# rz

리눅스 -> pc 파일 전송(SecureCRT 사용 시 바탕화면?에 저장 됨)
# sz 파일명

'System > Linux' 카테고리의 다른 글

리눅스 - xinetd  (0) 2011.01.25
리눅스 - telnet-server 설치  (0) 2011.01.25
TCPDUMP User Guide  (0) 2011.01.25
리눅스 test 명령어  (0) 2011.01.23
/dev/null  (0) 2011.01.23
Posted by linuxism
,

4G 국내 개발 성공...성능이 '기가막혀'

4G 이통 개발 성공

김태진 기자 tjk@zdnet.co.kr 2011.01.25 / AM 11:12 LTE-AdvancedWCDMACDMALTEETRI한국전자통신연구원3DTV

700MB 용량의 CD 1장을 9.3초 만에 전송할 수 있는 이동통신 기술이 개발됐다. 

 

이는 차량으로 이동 중에도 TV로 3D 풀HD 방송을 볼 수 있는 정도의 고용량·초고속 이동통신서비스다. 

 

방송통신위원회(위원장 최시중)와 지식경제부(장관 최경환)는 25일 한국전자통신연구원(ETRI, 원장 김흥남)이 세계 각국의 개발경쟁이 치열한 4세대 이동통신(LTE-advanced) 시스템을 국내 기술로 개발했다며 이를 세계 최초로 시연했다. 

 

LTE-advanced는 국내 SK텔레콤·KT를 포함해 전 세계 이동통신 시장의 70~80%를 차지하는 WCDMA 계열의 4세대 이동통신 기술로, ‘3.9세대인 LTE(Long Term Evolution)를 발전시킨 기술’이다.

 

▲ 4세대 이동통신(LTE-advanced) 시스템

한국(삼성전자·LG전자), 미국(퀄컴), 중국(화웨이), 핀란드(노키아), 스웨덴(에릭슨) 등 글로벌 벤더들의 개발 경쟁이 치열하며, 오는 4월 국제표준(ITU)으로 공식 발표될 예정이다. 

 

속도 면에서 최대 600Mbps(40MHz 대역폭 기준)이고 실제 환경에서의 유효 데이터 전송 기준으로는 440Mbps에 달해, 현재 사용 중인 3세대 이동통신(최대 14.4Mbps) 보다 약 40배 빠른 전송속도를 나타낸다. 
올해 7월부터 SK텔레콤과 LG유플러스 등이 국내 서비스 예정인 3.9세대 LTE(최대 100Mbps) 보다는 6배 빠른 기술이다.
▲ 차량 내에서 3D Full HD 영상을 시청하는 장면

ETRI 측은 “1995년 CDMA, 2005년 와이브로 세계 최초 상용화 등을 통해 쌓아온 기술력을 바탕으로 지난 5년간 연인원 470명의 연구원과 총 644억원의 예산을 투입해 개발을 완료했다”며 “4세대 시스템 구현에 필요한 무선통신방식, 제어신호와 데이터의 장치 간 전달방식, 네트워크 간 전달방식을 개발했다”고 밝혔다. 

 

이어, “올 4월 최종 발표될 4세대 이동통신 국제표준 요구 수준의 95%까지 개발이 완료됐다”며 “나머지 5%는 슬립 모드, 예외기능 등 앞으로 표준이 결정된 후 개발하면 되는 기능들”이라고 덧붙였다. 

 

표준특허 24건 확보…기술료 수입도 ‘짭잘’ 

 

ETRI 측은 “개발 과정에서 현재까지 표준특허 24건 확보, 표준기고 202건 승인, 특허 500여건 출원 등의 성과를 거뒀다며, 향후 상당한 기술료 수입이 예상된다고 전망했다. 

 

ETRI는 1995년 CDMA 기술개발로 현재까지 퀄컴으로부터 총 3천182억원의 기술료 수입을 거뒀으며, 2001년 WCDMA 표준특허 7건으로 약 3억불의 기술료 수입을 예상하고 있다. 

 

특히 LTE-advanced 개발과 표준화 과정에서 삼성전자, LG전자 등 국내 기업들의 노력으로 한국의 표준특허 점유율이 총 23% 이상 될 것으로 전망되고 있다. 

 

ETRI 측은 “이는 3세대 기술인 WCDMA(10%)와 3.9세대인 LTE(19%)에 비해 상당히 높은 수준”이라며 “국제표준의 중요성이 큰 통신 분야에서는 표준특허 점유율이 원천기술 경쟁력의 척도로 활용된다”고 밝혔다. 

 

이어, “향후 상용화까지는 하나의 칩으로 최적화하고, 단말기·기지국간 호환성 테스트를 실시해야 한다”며 “ 다양한 비정상 에러상황 처리 등 구현하지 못한 세부기능을 추가 개발하는 과정이 더 필요하다”고 덧붙였다. 

 

ETRI는 이번 4세대 이동통신 기술을 활용한 실제 서비스까지 개발·시연됨으로써, 향후 국내 기업들이 상용제품 개발을 앞당겨 시장을 선점하는 데도 기여할 것으로 전망했다. 

 

■정부, 26일 ‘차세대 모바일 전략’ 발표 

 

정부는 이번 시연을 기점으로 스마트폰으로 요약되는 모바일 산업 패러다임 변화에서 경쟁력을 갖출 수 있도록 ▲4세대 무선망 조기 구축 ▲개방형 모바일 생태계 조성 ▲시스템·부품·SW 등 취약분야 기술 개발 ▲4세대 이후 원천기술 확보 등을 주요 내용으로 한 ‘차세대 모바일 주도권 확보 전략’을 발표했다. 

 

방통위 측은 “차세대 모바일 주도권 확보 전략은 26일 경제정책조정회의에 상정한 이후 공식 발표할 계획”이라고 밝혔다. 

 

한편, 이날 시연에서는 개발된 시스템과 단말기의 동작과정을 살펴보고, 4세대 이동통신 시스템의 고속 무선전송능력을 활용해 고화질 멀티미디어 방송 다중 송출 서비스, 고속 업로드가 요구되는 개인방송 서비스 등 다양한 이동통신 서비스가 선보였다.

 

▲ 고화질 멀티미디어 방송 다중 송출 서비스(eMBMS) 캡쳐 화면

아울러, 이동 중인 차량 내에서 진행된 실외 시연에서는 3D 풀HD 영상을 4세대 이동통신 기술로 무선 전송받아 차량 내 설치된 대형 TV로 끊김없이 시청하고, 다른 곳에 있는 연구원과 고화질 화상통화 등이 펼쳐졌다. 
▲ 대형 TV 화면에 다양한 이동통신 서비스를 동시에 띄워 이용하는 장면

김황식 국무총리는 “이번 ETRI의 연구 성과가 관련 기기와 부품을 개발하는 국내 중소기업에 적극적으로 기술이전 돼 관련 기업들의 동반성장과 일자리 창출에 기여할 수 있도록 노력해 줄 것”을 당부했다.
Posted by linuxism
,

TCPDUMP User Guide

System/Linux 2011. 1. 25. 13:42
TCPDUMP User Guide
 
 

Date : January 1999

written by Kwon, YongChul

-. 이 문서의 저작권은 저자(권용철:godslord@sparcs.kaist.ac.kr)에게 있습니다. 본문의 무단 인용, 복사는 저자와의 협의 없이 절대 불가능합니다.


Table of Contents


  • 이 문서를 보기 전에 알아야 할 사전 지식

    이 문서는 네트워크의 패킷들을 잡아내는 Tcpdump라는 프로그램에 대해서 설명하고 있다. 프로그램의 특성상, 네트워크에 관련된 많은 용어들과 특히 TCP/IP에 대한 내용 이 많이 나온다. 따라서 보다 잘 이해하기 위해서는 네트워크 설비 자료나, 네트워크 프로그래밍 가이드, 혹은 네트워크 프로토콜(TCP/IP)에 관련된 책들을 참조하는 것이 좋을 것이다.


  • Tcpdump란?

    Tcpdump는 주어진 조건식을 만족하는 네트워크 인터페이스를 거치는 패킷들의 헤더들 을 출력해 주는 프로그램이다. 프로그램의 특성상, 네트워크 인터페이스를 아주 심도 있게 사용하기 때문에, 실행하는 사람은 반드시 네트워크 인터페이스에 대한 읽기 권 한이 있어야만 한다.
    OS dependent)
    위에서 말하는 읽기 권한을 가지고 있어야 하는 파일, 혹은 Tcpdump의 퍼미션 이다.

    • SunOS : /dev/nit, /dev/bpf*
    • Solaris(SunOS 5.x) : /dev/le 등
    • HP-UX & IRIX & Linux : root에서 실행하거나, root로 setuid를 설정해야 함
    • Ultrix & Digital UNIX : root가 pfconfig를 이용하여, promiscuous-mode를 가능하게 설정하면 어떤 유저라도 사용할 수 있다.
    • BSD : /dev/bpf*


  • Tcpdump의 패키지 구하기

    Tcpdump는 ftp://ftp.ee.lbl.gov/tcpdump.tar.Z에서 최신 버전을 구할 수 있다. 유명 한 프로그램이기 때문에, 시스템소프트웨어를 패키지형태로 제공해 주는 OS들의 경우 Vendor에서 패키징된(컴파일된) 버전으로도 구할 수 있을 것이다.


  • Tcpdump의 설치

    Tcpdump는 libpcap(Protocol Capture Library)라는 것을 사용한다. 이 라이브러리는 Platform에 상관없이 동일한 방법으로 사용자 레벨에서 패킷들을 캡춰할 수 있게 해 준다. 따라서 이 라이브러리가 없다면, ftp://ftp.ee.lbl.gov/libpcap.tar.Z에서 구하 여 설치하도록 한다.

    ANSI C 컴파일러는 아마 대부분의 시스템에서 구비하고 있을 것이다. 만약 없다면ftp://prep.ai.mit.edu/pub/gnu/gcc.tar.gz를 받아서 설치하기 바란다.

    libpcap라이브러리가 완벽하게 설치되었다는 가정하에서 다음의 절차에 따라 설치를 시작한다.

    • Makefile.in의 BINDEST와 MANDEST 항목에 각각, tcpdump 실행파일과 메뉴얼 페이 지가 설치될 디렉토리들을 입력해 준다.
    • Tcpdump 패키지와 함께 제공되는 ./configure 스크립트를 실행시킨다. 이 스크립트는 현재 시스템의 환경들을 검사하고 이에 맞추어서 Makefile을 생성해 준다.
    • make를 실행한다.
    • 컴파일이 다 됐으면, make install을 수행하여 실행파일을 설치하고, make install-man을 실행하여 메뉴얼 페이지도 설치한다.
    • tcpdump의 퍼미션이 제대로 되었는지를 검사한다. setgid가 설정되어 있기 때문에, 원하지 않는 사람이 실행하게 된다면 위험하다.
    위에서 설명한 절차를 그대로 옮겨 본다. # vi Makefile.in # ./configure # make # make install # make install-man OS dependent)
    • DEC/OSF and BSD/386, etc : tcpdump가 OS와 함께 제공되는 경우가 있다. 이럴 경우 tcpdump를 업그레이드 하기 전에 반드시 기존의 tcpdump를 백업해 두도록 하자.
    • Linux : libpcap 라이브러리는 2.0.25 커널에서 테스트 됐다. 2.0.x 대 커널 에서 25이하의 버전에서는 실행이 아마 가능할 것이다. 그러나 1.x대의 커널에서는 동작 여부가 입증되지 않았으므로 주의해야 한다.
    • OSF 4 : OSF4에서는 stack C 컴파일러에 치명적인 버그가 있다. 이 버그를 피해가려면, ./configure를 실행한 후 컴파일 하기 전에 Makefile에서 다음의 문장을 삭제한 후 컴파일해 주면 된다.
    -DETHER_HEADER_HAS_EA=1 -DETHER_ARP_HAS_EA=1


  • Tcpdump Source의 간략한 설명


  • Tcpdump의 옵션들

    • -a : Network & Broadcast 주소들을 이름들로 바꾼다.
    • -c Number : 제시된 수의 패킷을 받은 후 종료한다.
    • -d : comile된 packet-matching code를 사람이 읽을 수 있도록 바꾸어 표준 출력으로 출력하고, 종료한다.
    • -dd : packet-matching code를 C program의 일부로 출력한다.
    • -ddd : packet-matching code를 숫자로 출력한다.
    • -e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다.
    • -f : 외부의 internet address를 가급적 심볼로 출력한다(Sun의 yp server와의 사용은 가급적 피하자).
    • -F file : filter 표현의 입력으로 파일을 받아들인다. 커맨드라인에 주어진 추가의 표현들은 모두 무시된다.
    • -i device : 어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다. 지저되지 않으면 시스템의 인터페이스 리스트를 뒤져서 가장 낮은 번호를 가진 인터페이스를 선택한다(이 때 loopback은 제외된다).
    • -l : 표준 출력으로 나가는 데이터들을 line buffering한다. 다른 프로그램에서 tcpdump로부터 데이터를 받고자 할 때, 유용하다.
    • -n : 모든 주소들을 번역하지 않는다(port,host address 등등)
    • -N : 호스트 이름을 출력할 때, 도메인을 찍지 않는다.
    • -O : packet-matching code optimizer를 실행하지 않는다. 이 옵션은 optimizer에 있는 버그를 찾을 때나 쓰인다.
    • -p : 인터페이스를 promiscuous mode로 두지 않는다.
    • -q : 프로토콜에 대한 정보를 덜 출력한다. 따라서 출력되는 라인이 좀 더 짧아진다.
    • -r file : 패킷들을 '-w'옵션으로 만들어진 파일로 부터 읽어 들인다. 파일에 "-" 가 사용되면 표준 입력을 통해서 받아들인다.
    • -s length: 패킷들로부터 추출하는 샘플을 default값인 68Byte외의 값으로 설정할 때 사용한다(SunOS의 NIT에서는 최소가 96Byte이다). 68Byte는 IP,ICMP, TCP, UDP등에 적절한 값이지만 Name Server나 NFS 패킷들의 경우에는 프로토콜의 정보들을 Truncation할 우려가 있다. 이 옵션을 수정할 때는 신중해야만 한다. 이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할 수 있기 때문이다. 또, 작게 잡으면 그만큼의 정보를 잃게되는 것이다. 따라서 가급적 캡춰하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다.
    • -T type : 조건식에 의해 선택된 패킷들을 명시된 형식으로 표시한다. type에는 다음과 같은 것들이 올 수 있다. rpc(Remote Procedure Call), rtp(Real-Time Applications protocol), rtcp(Real-Time Application control protocal), vat(Visual Audio Tool), wb(distributed White Board)
    • -S : TCP sequence번호를 상대적인 번호가 아닌 절대적인 번호로 출력한다.
    • -t : 출력되는 각각의 라인에 시간을 출력하지 않는다.
    • -tt : 출력되는 각각의 라인에 형식이 없는 시간들을 출력한다.
    • -v : 좀 더 많은 정보들을 출력한다.
    • -vv : '-v'보다 좀 더 많은 정보들을 출력한다.
    • -w : 캡춰한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다.
    • -x : 각각의 패킷을 헥사코드로 출력한다.

    조건식(expression)

    옵션의 제일 마지막인 조건식은 어떤 패킷들을 출력할지를 선택하는데 쓰인다. 조건식이 주어지지 않는 다면 모든 패킷들이 그 대상이 될 것이다. 일단 주어지면, 아무리 패킷들이 많아도 조 건식에 부합하는 패킷만을 출력한다.

    조건식들은 하나 또는 몇 개의 primitive들로 구성되어 있다. primitive들은 보통 하나 혹은 몇개의 qualifier들 다음에 오는 하나의 값으로 이루어진다. Qualifier들은 모두 3 종류이며 다음과 같다.

    • type : 주어진 값의 종류가 무엇인지를 나타낸다. 가능한 type들은 'host', 'net', 'port'가 있다. type이 없는 값들은 type을 host라 가정한다.
    • dir : id로 부터의 어떤 특정한 전송 방향을 나타낸다. 가능한 방향은 'src', 'dst', 'src or dst', 'src and dst'이다. 만약 방향이 정해지지 않았다면, src or dst라 가정한다. "For `null' link layers (i.e. point to point protocols such as slip) the inb ound and out bound qualifiers can be used to specify a desired direction."
    • proto : 매칭을 특정 프로토콜에 한해서 수행한다. 가능한 프로토콜들은 ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp, udp이다. 만약 프로토콜이 명시되지 않았다면, 해당하는 값의 type에 관련된 모든 프로토콜들이 그 대상이 된다.

    이 밖에도 위의 패턴을 따르지 않는 Primitive들이 존재한다(gateway, broadcst, less, greater, 산술식).

    좀 더 정교한 조건식들을 사용하려면, 'and(&&)', 'or(||)', 'not(!)'들을 사용하여 여러 primitive들을 연결하면 된다. 같은 표현들은 생략될 수 있다.

    사용 가능한 Primitive들

    • dst host HOST
      packet의 IP destination 항목이 HOST일때 참이 된다.
    • src host HOST
      packet의 IP source 항목이 HOST일때 참이 된다.
    • host HOST
      IP source, IP destination 항목 중 어느 하나라도 HOST이면 참이다.
    • ether dst ehost
      ethernet destination 주소가 ehost일 때 참이다.
    • ether src ehost
      ethernet source 주소가 ehost일 때 참이다.
    • ether host ehost
      ethernet source, destination 항목들 중 어느 하나라도 ehost이면 참이다.
    • gateway host
      패킷이 host를 게이트웨이로 사용하면 참이다. 이 말의 의미는 ethernet sour ce나 destination 항목은 host이지만, IP source와 destination은 host가 아닐 때를 말한다.
    • dst net NET
      패킷의 IP destination 주소가 NET의 network number를 가지고 있을 때 참이 다.
    • src net NET
      패킷의 IP source 주소가 NET의 network number를 가지고 있을 때 참이다.
    • net NET
      패킷의 IP source 주소 혹은 destination 주소가 NET의 network number를 가 지고 있을 때 참이다.
    • net netmask mask
      IP 어드레스가 지정된 netmask를 통해서 net과 매칭되면 참이다.
    • net net/len
      IP 어드레스가 netmask와 len 비트만큼 매치되면 참이다.
    • dst port PORT
      패킷이 ip/tcp, ip/udp 프로토콜의 패킷이고 destination port의 값이 PORT일 때 참이다. port는 /etc/services에 명시된 이름일 수도 있고 그냥 숫자일 수도 있다. 만약 이름이 사용됐다면 port 번호와 프로토콜이 같이 체크될 것이다. 만약 숫자나 불 확실한 이름이 사용됐을 경우에는 port 번호만이 체크될 것이다.
    • src port PORT
      패킷의 source port의 값으로 PORT를 가지면 참이다.
    • port PORT
      패킷의 source, destination port 중에 하나라도 PORT이면 참이다.
    • less length
      패킷이 length보다 짧거나 같으면 참이다.(len <= length)
    • greater length
      패킷이 length보다 짧거나 같으면 참이다.(len >= length)
    • ip proto protocol
      패킷이 지정된 종류의 프로토콜의 ip패킷이면 참이다. Protocol은 icmp, igrp, udp, nd, tcp 중의 하나 혹은 몇 개가 될 수 있다. 주의할 점은 tcp, udp, icmp들은 '\'로 escape되어야 한다.
    • ehter broadcast
      패킷이 ethernet broadcast 패킷이라면 참이다. ehter는 생략 가능하다.
    • ip broadcast
      패킷이 IP broadcast 패킷이라면 참이다.
    • ether multicast
      패킷이 IP multicast 패킷이라면 참이다.
    • ether proto protocol
      패킷이 ether type의 protocol이라면 참이다. protocol은 ip, arp, rarp 중에 하나 혹은 몇개가 될 수 있다. ip proto protocol에서와 마찬가지로 ip, arp, rarp는 escape 되어야 한다.
    • decnet src host
      만약 DECNET의 source address가 host이면 참이다. 이 어드레스는 '10.123'이 나 DECNET의 host name일 수 있다. DECNET host name은 DECNET에서 돌아가도록 설정된 Ultrix 시스템에서만 사용 가능하다.
    • decnet dst host
      DECNET destination address가 host이면 참이다.
    • decnet host HOST
      DECNET source, destination address중의 하나라도 HOST이면 참이다.
    • ip, arp, rarp, decnet
      ether proto [ip|arp|rarp|decnet]의 약어
    • lat, moprc, mopdl
      ether proto [lat|moprc|mopdl]의 약어
    • tcp, udp, icmp
      ip proto [tcp|udp|icmp]의 약어
    • expr relop expr
      • EXPR
        proto [expr:size]의 형식을 띤다. proto, expr, size에 올 수 있는 것들은 다음과 같다.
        • proto : ether, fddi, ip, arp, rarp, tcp, udp, icmp
        • expr : indicate Byte offset of packet of proto
        • size : optional. indicate the size of bytes in field of interest
        • default is one, and can be two or four
      • RELOP
        !=, =, <=, >=, etc.

      이 조건식을 사용하기 위해서는 먼저 해당하는 Protocol(proto)의 헤더에 관련된 것들을 자세히 알아야만 한다. proto에는 대상이 될 프로토콜을 지정한다. expr에는 프로토콜 헤더의 처음부터의 Byte Offset을 지정하는 식이 들어가게 된다. Size는 Option이며 지정이 안 되어 있을 경우에는 자동으로 1byte를 지칭한다. 따라서 이 조건식을 사용하게 되면 헤더에 포함된 정보를 Bitmask를 사용하여 직 접 원하는 패킷인지를 가려낼 수 있기 때문에, 보다 정밀한 사용이 가능하게 된다.


  • Tcpdump의 사용 예제들

    • security라는 호스트로부터 날아오고, 날아가는 패킷들을 출력
      # tcpdump host security
    • security와 mazinga, getarobo 사이에 날아다니고 있는 패킷들을 출력
      # tcpdump host security and \( mazinga or getarobo \)
    • security에서 elgaim을 제외한 모든 호스트로 날아다니는 IP 패킷들을 출력
      # tcpdump ip host security and not elgaim
    • gateway amurorei를 거치는 ftp에 관련된 패킷들을 출력
      # tcpdump 'gateway amurorei and ( port ftp or ftp-data )'
    • local호스트가 아닌 호스트와 로컬호스트가 맺는 TCP 커넥션의 시작과 마지막 패 킷들을 출력한다(SYN, FIN 패킷).
      # tcpdump 'tcp[13] & 3 != 0 and not src and dst net non-local'
    • gateway amurorei를 지나는 576Byte보다 큰 패킷들을 출력한다
      # tcpdump 'gateway amurorei and ip[2:2] > 576'
    • Ethernet boradcast 혹은 multicast를 통해서 보내진 것이 아닌, IP broadcast 혹 은 multicast 패킷들을 출력한다.
      # tcpdump 'ehter[0] & 1 = 0 and ip[16] >= 224'
    • Echo request/reply가 아닌 ICMP 패킷들을 모두 출력한다.
      # tcpdump 'icmp[0] != 8 and icmp[0] != 0'


  • Tcpdump의 평가

    TCPDUMP는 여러모로 좋은 툴이다. libpcap을 거의 100% 활용한 프로그램의 예이며, 실제로 많은 툴들이 TCPDUMP와 병행하여 돌아가거나, TCPDUMP를 기반으로 제작되었다. TCPDUMP의 막강한 packet filter는 현재 로컬 네트워크 상에서 날아다니고 있는 특정한 패킷들을 실시간으로 기록해 줄 수 있으며, 이를 이용하여 네트워크에서 벌어지는 일들을 네트워크 관리자가 원하는 대로 뽑아 볼 수 있게 해 준다. 또한, 시스템 관리자들에게는 로컬 유저의 외부로의 커넥션들을 감시하고, 또 특정 침입자가 침투 경로로 자주 이용하는 호스트, 혹은 원하지 않는 호스트로부터의 커넥션을 실시간으로 감시할 수 있게 해 준다. libpcap을 이용하여 비슷한 툴을 제작하고자 하는 사람들에게도 TCPDUMP는 가장 훌륭한 예제가 될 것이다.


  • References

    • TCP dump Manual page : written by Van Jacobson, Craig Leres and Steven McCanne, all of the Lawrence Berkeley National Laboratory, University of California, Berkeley, CA.
    • TCP dump Document included in TCP dump package




- 특정 인터페이스 지정하여 파일로 저장
# tcpdump -nnei eth1 -w tcpdump01

'System > Linux' 카테고리의 다른 글

리눅스 - telnet-server 설치  (0) 2011.01.25
zmodem  (0) 2011.01.25
리눅스 test 명령어  (0) 2011.01.23
/dev/null  (0) 2011.01.23
/dev/zero와 /dev/null  (0) 2011.01.23
Posted by linuxism
,