인터넷통신 과제 02 200601800 정보통신전공 이세원 l 공개프로토콜분석기 wireshark 를설치하고사용법을공부한다. l Ethernet 트래픽을관찰하고분석한다. l ARP/RARP 관련 RFC 문서를읽어보고 ARP 트래픽을관찰및분석한다. l ping test 를하여 wireshark 에서 source-->destination 까지주고받는패킷을관찰한다. l RFC 란무엇인지그리고 ARP 와 RARP 에관한 RFC(826,903) 문서를읽음 l ping 수행시 ARP 트래픽의분석함
========================= 공부한내용 ========================== Wireshark는세계에서가장널리쓰이는네트워크분석프로그램입니다. 매우강력한이프로그램은네트워크상에서캡쳐한데이터에대한네트워크 / 상위레이어프로토콜의정보를제공해줍니다. 다른네트워크프로그램처럼, Wireshark는패킷을캡쳐하기위해pcap 네트워트라이브러리를사용합니다. Wireshark의강점 : - 쉬운설치. - GUI 인터페이스를이용한간단한사용법. - 매우다양한기능들. Wireshark 는원래개발자가근무하던회사를떠난뒤, 저작권문제로인해프로그램의이 름을변경하기로한 2006 년까지 Ethereal 로불렸습니다. Wireshark 에대한더자세한정보는 Wikipedia 에서찾으실수있습니다. 그래픽인터페이스를사용할수없다면, Wireshark 의 CLI(Command Line Interface) 버 전인 "TShark" 을사용할수있습니다. Tshark 는 Wireshark 와동일한기능을제공합니다.
------------------- 참고사이트에서가져온문서 ---------------- ----------------------------- 플랫폼알기 ------------------------ Wireshark 을성공적으로실행했으면, 이제 Wireshark 을실제로사용할준비가되었습니다. 다음은, 192.168.1.2 IP 을사용하는시스템이 "openmaniak.com" 웹사이트에접속했을때의스크린샷 입니다. 1. 메뉴 플랫폼상단의 8 개메뉴는 Wireshark 을설정하는데사용합니다 : - "File" 캡쳐데이터를열거나저장합니다. - "Edit" 패킷을찾거나표시합니다. 프로그램전역적인속성들을설정합니다. - "View" Wireshark 플랫폼의보이는모양을설정합니다. - "Go" 캡쳐된데이터의특정위치로이동합니다. - "Capture" 캡쳐필터옵션을설정하고캡쳐를시작합니다. - "Analyze" 분석옵션을설정합니다. - "Statistics" Wireshark의통계데이터를봅니다. - "Help" 오프라인혹은온라인도움말을봅니다.
2. 단축키 유용한단축키들이메뉴바로아래에있습니다. 마우스를아이콘위에올려놓으면자세한정보를볼수있습니다. 3. DISPLAY FILTER display filter 는캡쳐된로그정보에서데이터를찾을때사용합니다. 캡쳐와 display filter 을혼동하지마십시오. 좀더자세한내용은 Wireshark filters 튜토리얼에서찾 을수있습니다. 4. PACKET LIST PANE packet list 패널은캡쳐된모든패킷을보여줍니다. Source/destination MAC/IP 주소, TCP /UDP 포트번호, 프로토콜, 패킷내용등의정보를얻을수있습니다. OSI layer2 의패킷이캡쳐되었다면, Source, Destination 열에서 MAC 주소를확인할수있습니다. 이경우 Port 열에는아무값도나타나지않습니다. OSI layer3 이나그보다상위패킷이캡쳐된다면, Source, Destination 열에서 IP 주소를확인할수있습니다. 패킷이 layer4 혹은그이상일경우에만 Port 열에값이표시됩니다. 열은추가 / 삭제할수있으며, 다음과같은방법을통해패널의색상을변경할수있습니다 : Edit menu -> Preferences
5. PACKET DETAILS PANE packet details 패널은패킷리스트에서선택한패킷에대해매우상세한정보를제공합니다. 정보들은 OSI layer 별로표시되며, 자세한정보들을확장하거나축소하여볼수있습니다. 다음에보 이는스크린샷에서는 HTTP 정보가확장되었습니다. 6. DISSECTOR PANE "packet bytes 패널 " 이라고도하는 dissector 패널은 packet details 패널과내용은같지만데이터를 16진수로나타내줍니다. 위에보여진예에서, packet details 패널에서 TCP 포트 (80) 을선택하였고, 그에대한 16진수정보가 dissector 패널에자동으로표시됩니다.(0050) 7. 기타 프로그램화면하단에서는다음과같은정보들을확인할수있습니다 : - 캡쳐하는데사용된네트워크카드. - 캡쳐동작이진행혹은정지상태여부. - 캡쳐된정보가하드디스크의어느위치에저장되는지. - 캡쳐사이즈. - 캡쳐된패킷수. (P) - 화면에표시된패킷수. (display filter에매칭되는패킷들 ) - 표시된패킷수. (M)
---------------------------- 필터사용법 ---------------------------- 첫튜토리얼에서보았듯이 Wireshark 을설치하고네트워크정보를분석하는것은매우쉽습니다. Wireshark 을별다른설정없이기본값으로실행시켰을때가장문제가될수있는것은, 화면에너무 많은정보들이나타나서원하는정보를찾기가쉽지않다는데있습니다. 과유불급. 이것이바로필터가중요한이유입니다. 필터는방대한로그중에서원하는데이터를찾는데도움을 줄것입니다. - 로그에기록되는데이터를선택하기위해사용합니다. 이필터는캡쳐가시작되기전에정의됩니 다. - 캡쳐된로그에서데이터를찾을때사용합니다. 데이터가캡쳐되는동안수정할수있습니다. * capture 필터나 display 필터를사용하는것이좋을까요? 이두가지필터의목적은서로다릅니다. capture 필터는로그의사이즈가불필요하게커지는것을막기위해사용됩니다. display 필터는 capture 필터보다더강력 ( 그리고복잡 ) 합니다 ; 이필터는원하는데이터를정확하게검색할수있게해줍니다. 두가지필터의구문 (syntax) 은완전히다릅니다. 이어지는페이지에서이것들에대해보여드리겠습니 다. 1. CAPTURE FILTERS capture 필터의구문은 TCPdump 처럼 Lipcap(Linux) 이나 Winpcap(Windows) 라이브러리를사용하 는프로그램에서쓰는것과같습니다. Capture 필터는캡쳐도중아무때나수정이가능한 display 필터와는다르게, 반드시캡쳐를시작하기전에설정을해주어야합니다. capture 필터를설정하는방법은다음과같습니다 : - capture -> options 을선택합니다. - "capture filter" 칸에직접작성하거나, 다음번캡쳐에다시사용할수있는필터이름을부여하기위해 "capture filter" 버튼을클릭합니다. - 데이터를캡쳐하기위해 Start버튼을클릭합니다.
Syntax: Example : Protoco l tcp Directio n dst Host(s ) 10.1.1. 1 Valu e 80 Protocol: 사용가능한값 : ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 프로토콜을지정하지않으면모든프로토콜을사용합니다. Direction: 사용가능한값 : src, dst, src and dst, src or dst 출발지나목적지를지정하지않으면 "src or dst" 키워드가사용됩니다. 예를들어, "host 10.2.2.2" 은 "src or dst host 10.2.2.2" 과동일합니다. 크다
lt < 작다 ge >= 크거나같다 le <= 작거나같다논리표현식 : 영문표 C언어표의미 : 기 : 기 : and && 논리곱 or 논리합 xor ^^ 배타적논리합 not! 부정 프로그래머들이잘아는 "XOR" 은배타적논리합연산으로사용됩니다. 두가지조건사이에서사용되 었을때, 두가지조건중오직한가지만만족했을때결과화면에보여집니다. 다음의 display 필터를이용하여예시를보여드리겠습니다 : "tcp.dstport 80 xor tcp.dstport 1025" 목적지가 TCP 포트 80 이거나출발지가 TCP 포트 1025 인 ( 두가지모두인경우는제외하고 ) 패킷이 결과로화면에나타납니다. 사용예 : snmp dns icmp SNMP 혹은 DNS 혹은 ICMP 트래픽을보여줍니다. ip.addr == 10.1.1.1 출발지나목적지의 IP 주소가 10.1.1.1 인패킷을보여줍니다. ip.src!= 10.1.2.3 or ip.dst!= 10.4.5.6출발지의 IP 주소가 10.1.2.3이아니거나목적지의 IP 주소가 10.4.5.6이아닌패킷을보여줍니다. 다른말로하자면, 화면에보여지는패킷은다음과같을것입니다 : 출발지 IP 주소 : 10.1.2.3이아닌모든주소, 목적지 IP 주소 : 10.1.2.3이아닌모든주소
그리고 출발지 IP 주소 : 모든주소, 목적지 IP 주소 : 10.4.5.6 이아닌모든주소 ip.src!= 10.1.2.3 and ip.dst!= 10.4.5.6출발지 IP 주소가 10.1.2.3이아니면서, 동시에목적지 IP 주소가 10.4.5.6이아닌패킷을화면에보여줍니다. 다른말로하자면, 화면에보여지는패킷은다음과같을것입니다 : 출발지 IP 주소 : 10.1.2.3이아닌모든주소, 그리고목적지 IP 주소 : 10.4.5.6이아닌모든주소 t c p. p o r t == 25 출발지와목적지의 TCP 포트가 25 인패킷을보여줍니다. t c p. d s t p o r t == 25 목적지의 TCP 포트가 25 인패킷을보여줍니다. tcp.fl ags TCP 플래그를가지고있는패킷을보여줍니다. tcp.flags.syn == 0x02 TCP SYN 플래그를가지고있는패킷을보여줍니다. 필터구문에문제가없다면, 녹색으로하이라이트될것이며, 잘못됐다면붉은색으로하이 라이트될것입니다. 올바른구문잘못된구문 display 필터에대한추가정보는 Wireshark official website나 Wiki Wireshark website 에서찾을수있습니다.
ƒ 수행결과
수행방법 * 인터넷에자세히설명이나와있어읽어보고실행해보는식으로공부하였으며생각보다사용법이간단한툴인것같습니다. 참고사이트 - http://openmaniak.com/kr/wireshark.php 본인역할및요구등급 요구등급 : A등급본인역할 : wireshark의사용법에대해알았고, 영어로된 RFC문서를보고 RFC문서에대해공부를하였습니다.