![]() ...¸®´ª½º¸¦ Á» ´õ Àç¹ÌÀÖ°Ô! |
By Vinayak Hegde Çѱ۹ø¿ª ÀüÁ¤È£ÀÌ ±ÛÀº Çѱ۹ø¿ªÆÇÀÔ´Ï´Ù. ¿ø¹®Àº ¿©±â¿¡¼ º¼ ¼ö ÀÖ½À´Ï´Ù. |
TCP/IP´Â ÄÄÇ»ÅÍÅë½Å¿¡ »ç½Ç»ó Ç¥ÁØ ÇÁ·ÎÅäÄÝÀÌ µÇ¾ú´Ù. IP´Â (Internet Protocol) ³×Æ®¿÷Ãþ(ÁÖ¼Ò¿Í ¶ó¿ìµù) ±â´ÉÀ» Á¦°øÇϰí, TCP´Â (Transmission Control Protocol) Åë½ÅÇÏ´Â ¾çÂÊ ³¡»çÀÌ¿¡ (°¡»óÀÇ) ¿¬°áÀ» ¸¸µç´Ù. TCP/IP¿¡´Â À̿ܿ¡µµ ICMP (Internet Control Message Protocol), IGMP (Internet Group management protocol), UDP (User Datagram Protocol) °°Àº ¿©·¯ À¯¿ëÇÑ ÇÁ·ÎÅäÄݵéÀÌ ÀÖ´Ù. ¿À´Ã³¯ °ÅÀÇ ´ëºÎºÐÀÇ ³×Æ®¿÷ÀÌ TCP/IP¸¦ »ç¿ëÇÑ´Ù. ¿À´Ã³¯ ¸¹Àº ÇÁ·Î±×·¥µéÀÌ ³×Æ®¿÷ ±â´ÉÀ» Æ÷ÇÔÇϱ⶧¹®¿¡, ÇÁ·Î±×·¡¸Ó¶ó¸é ÃÖ¼ÒÇÑÀÇ TCP/IP Áö½ÄÀ» °¡Áú Çʿ䰡 ÀÖ´Ù.
ÄÄÇ»Å͵éÀº ¼·Î ÆÐŶ(packet)À» ±³È¯ÇÏ¿© TCP/IP Åë½ÅÀ» ÇÑ´Ù. IP ¼öÁØ¿¡¼ ÆÐŶÀ» PDU (Protocol Data Unit)¶ó°í ÇÑ´Ù. TCP ¼öÁØ¿¡¼ PDU¸¦ ¼¼±×¸ÕÆ®(segment)¶ó°í Çϰí, (ÀÌ´õ³Ý(Ethernet) µî) µ¥ÀÌÅ͸µÅ©(data-link)Ãþ¿¡¼´Â PDU¸¦ Ç÷¹ÀÓ(frame)À̶ó°í ÇÑ´Ù. ±×·¯³ª ÀϹÝÀûÀ¸·Î ÆÐŶÀ̶õ ¿ë¾î´Â TCP/IPÃþ°£¿¡, ¶Ç µÎ ÄÄÇ»ÅͰ£¿¡ ±³È¯µÇ´Â ÀÚ·á ´ÜÀ§¸¦ ÁöĪÇÑ´Ù.
ÀÌ´õ³Ý Ç÷¹ÀÓÀº ´ÙÀ½°ú °°´Ù:
+------------------------------------------------------------------+ | | | | | | | ÀÌ´õ³Ý | IP | TCP | Æ÷ÇÔÇÏ´Â | ÀÌ´õ³Ý | | Çì´õ | Çì´õ | Çì´õ | ÀÚ·á | ¸»´Ü | | | | | | (FCS) | +------------------------------------------------------------------+ <- 20 ¹ÙÀÌÆ® -> <- 40 ¹ÙÀÌÆ® -> <---------- ÃÖ´ë ±æÀÌ = 1500 ¹ÙÀÌÆ® ----------> FCS´Â Frame Check Sequence¸¦ ¶æÇÑ´Ù. |
TCPdump´Â ³×Æ®¿÷ÀåÄ¡¸¦ Åë°úÇÏ´Â ÆÐŶÀ» °¡·Îä¼ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÖ´Â µµ±¸´Ù. ÇÁ·Î±×·¡¸Ó°¡ ³×Æ®¿÷ ÇÁ·Î±×·¥À» ¼Õº¼¶§ »ç¿ëÇÏ´Â ÀÛ°í ¸Å¿ì À¯¿ëÇÑ µµ±¸´Ù. ÀÌ µµ±¸°¡ ³×Æ®¿÷ÀåÄ¡°¡ ¹ÞÀº ¸ðµç ÆÐŶÀ» Àâ±â¶§¹®¿¡ ºÒ¹ýÀûÀÎ ¿ëµµ¿¡µµ »ç¿ëµÉ ¼ö ÀÖ´Ù.
º¸Åë ÁÖ¼Ò°¡ ÇØ´ç ³×Æ®¿÷ÀåÄ¡¸¦ ÁöĪÇÏ´Â ÆÐŶ¸¸ÀÌ TCP/IP ÇÁ·ÎÅäÄÝ »óÀ§Ãþ¿¡ ¿Ã¶ó°£´Ù. ±× ÀåÄ¡¿¡ ÇØ´çÇÏÁö¾Ê´Â ÆÐŶµéÀº ¹«½ÃÇÑ´Ù. ±×·¯³ª Promiscuous ¸ðµå´Â ±× ÀåÄ¡°¡ ¹ÞÁö¾ÊÀ» ÆÐŶ±îÁö Àâ¾Æ¼ ÇÁ·ÎÅäÄÝ »óÀ§ÃþÀ¸·Î º¸³½´Ù. TCPdump´Â ³×Æ®¿÷ÀåÄ¡¸¦ promiscuous ¸ðµå·Î µ¿ÀÛÇÑ´Ù.
TCPdump´Â ÀÚÀ¯·Ó°Ô °ø°³µÈ (ÆÐŶ Àâ´Â ¶óÀ̺귯¸®) libpcapÀ» »ç¿ëÇÑ´Ù. libpcap ¶óÀ̺귯¸®´Â ´Ù¿ëµµ·Î, BSD ÆÐŶ ÇÊÅÍ, SVR4 Data-link Provider Interface (DLPI), ¸®´ª½º SOCK_PACKET ÀÎÅÍÆäÀ̽º¿Í µ¿ÀÛÇÒ ¼ö ÀÖ´Ù. ÀαâÀÖ´Â ³×Æ®¿÷ ºÐ¼®µµ±¸ etherealÀÇ ¸í·ÉÇà ¹öÀüÀÎ Tetherealµµ ÆÐŶ Àâ´Â ¶óÀ̺귯¸® pcapÀ» »ç¿ëÇÑ´Ù. TetherealÀº ³×Æ®¿÷ ÅëÇàÀ» ºÐ¼®Çϰí, TCPdump¿Í ´Þ¸® ÆÐŶÀ» ÇØ¼®ÇÏ´Â ±â´ÉÀÌ ÀÖ´Â °·ÂÇÑ µµ±¸ÀÌ´Ù. ÆÐŶÀ» ºÐ¼®ÇÏ´Â GUI µµ±¸ÀÎ EtherealÀº ¸Å¿ì ÁÁÀº µµ±¸·Î, °èÃþÀûÀÎ ¹æ½ÄÀ¸·Î ÆÐŶÀÇ ¿©·¯ Ç÷¡±×¿Í ¿É¼ÇÀ» º¸¿©ÁØ´Ù. etherealÀÇ °¡Àå ÁÁÀº ±â´ÉÀº µÎ ÄÄÇ»ÅͰ£ Åë½ÅÀÇ ¿©·¯ Á¶°¢À» ºÙ¿©¼ Åë½ÅÁß¿¡ ±³È¯ÇÑ Àüü ASCII ³»¿ëÀ» º¸¿©ÁÖ´Â Á¡ÀÌ´Ù.
RFC 791 ¿¡¼ °¡Á®¿Â ASCII Ç¥Çö
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Çì´õ Çü½Ä |
RFC 793 ¿¡¼ °¡Á®¿Â ASCII Ç¥Çö
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TCP Çì´õ Çü½Ä |
TCPdump´Â ³×Æ®¿÷¿¡ ¿¬°áµÈ ¾î¶² ÀÎÅÍÆäÀ̽º¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ½Ã½ºÅÛ¿¡ ¿¬°áµÈ ÀÎÅÍÆäÀ̽º ¸ñ·ÏÀ» º¸·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù
#ifconfig -a |
¿¹Á¦ #1
´ÙÀ½Àº Àüȼ±À» (PPP) »ç¿ëÇÏ¿© ÆÐŶÀ» Àâ´Â (ÆÄÀÏ tcpdumpppp·Î)
¿¹ÀÌ´Ù. -vvv ¿É¼ÇÀº tcpdumpÀÇ Ãâ·ÂÀ» ¸Å¿ì ÀÚ¼¼ÇÏ°Ô ¸¸µç´Ù.
ÀÚ¼¼ÇÔÀ» Á¶ÀýÇÏ´Â ´Ù¸¥ ¿É¼Ç¿¡´Â -v ¿Í -vv °¡ ÀÖ´Ù.
#tcpdump -vvv > tcpdumpppp tcpdump: listening on ppp0 |
15:57:58.181078 207.219.33.101.http > 203.94.236.47.33003: P 1:1399(1398) ack 736 win 31856 |
¿¹Á¦ #2
´ÙÀ½Àº (eth0·Î ÁöĪÇÏ´Â ÀÎÅÍÆäÀ̽º) NIC¿¡¼ ÀâÀº ÆÐŶ Ãâ·ÂÀÌ´Ù
#tcpdump -a -i eth0 |
06:21:11.414863 > pca03.nt.co.in.ssh > pcc03.mum.nt.co.in.4944: P 252143283:252143331(48) ack 2638534821 win 62780 (DF) [tos 0x10] E^P ^@ X .... @^@ @^F .. N .... .... .... .... ^@^V ^S P ^O^G f.. .. D .... P^X .. < .. t ^@^@ k + Y^Q .... .. ( ^.. )^G c 3 ^\ v t.. ..^G ^J.. .. t 9.. .. - F.. .... 6.. /.. .... 9.. [.. .... G.. .. d |
´ÙÀ½Àº SYN (¿¬°á¿äû) ÆÐŶÀÇ Ãâ·ÂÀÌ´Ù ÀÌ ÆÐŶÀº ÀÌ´õ³Ý¿¡¼ Àâ¾Ò´Ù.
15:57:56.074928 203.94.236.47.33003 > 216.239.33.101.http: S [tcp sum ok] 937694521:937694521(0) win 5840 |
¿¹Á¦ #4
tetherealÀ» »ç¿ëÇÏ¿© ÀâÀº ÆÐŶ Ãâ·ÂÀÌ´Ù
#tethereal -i lo |
26 19.624878 localhost.localdomain -> localhost.localdomain TCP 33283 > http [FIN, ACK] Seq=877643253 Ack=882239950 Win=37296 Len=0 |
TCPdump´Â ¸Å¿ì ÁÁÀº µµ±¸Áö¸¸ TCP/IP ÇÁ·ÎÅäÄݸ¸À» ó¸®ÇÑ´Ù. ÀÌ µµ±¸´Â ÀÌ ÀÛ¾÷À» ¸Å¿ì Àß ÇÑ´Ù. EtherealÀº ¸Å¿ì ±â´ÉÀÌ ¸¹À¸¸ç ¿©·¯ ÇÁ·ÎÅäÄÝÀ» ÀÌÇØÇÒ ¼ö ÀÖ´Ù. ¶Ç, etherealÀÇ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º´Â Àß ¼³°èµÇ¾î, Ãʺ¸ÀÚµµ ÀâÀº ÆÐŶ°ú ÆÐŶ¿¡ µç Á¤º¸¸¦ ÀÌÇØÇÒ ¼ö ÀÖ´Ù. ÁÁÀº ÀÎÅÍÆäÀ̽º·Î ´õ Áñ°Ì°Ô ¹è¿ï ¼ö ÀÖ´Ù.
³» ÀλýÀº ¸®´ª½º¸¦ ¸¸³ª°í ´Þ¶óÁ³´Ù. °©ÀÚ±â ÄÄÇ»ÅͰ¡ Èï¹Ì·Î¿öÁ³°í,
¼Ò½ºÄڵ带 ½±°Ô ¾òÀ» ¼ö Àֱ⶧¹®¿¡ ¸®´ª½º¿¡¼ ¸¹Àº ÀϵéÀ» ½ÃµµÇغ¼
¼ö ÀÖ¾ú´Ù. ³ª´Â ³×Æ®¿÷, ÀÓº£µðµå ½Ã½ºÅÛ, ÇÁ·Î±×·¡¹Ö¾ð¾î¿¡ °ü½ÉÀÌ
¸Å¿ì ¸¹´Ù. ³ª´Â ÇöÀç Aparna Web services¿¡¼ Çб³³ª ±â¾÷¿¡¼
¿ø°Ý ºÎÆ® ½ºÅ×À̼Ç(Thin Clients)À¸·Î ¸®´ª½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô
ÇÏ´Â ÀÏÀ» Çϰí ÀÖ´Ù.