Linux IPCHAINS-HOWTO Paul Russell, Paul.Russell@rustcorp.com.au v0.6, Sun May 17 14:29:26 CST 1998 ¹ø¿ª: ÀÌ ¸¸¿ë, geoman@nownuri.net ÀÌ ¹®¼­´Â ¸®´ª½º¸¦ À§ÇØ °³¼±µÈ ÀÏ¹Ý IP ¹æÈ­º® »ç½½ ¼ÒÇÁÆ®¿þ¾î¸¦ ¾î¶»°Ô ±¸ÇÏ°í ¼³Ä¡ÇÏ°í ¼³Á¤ÇÏ´ÂÁö ±×¸®°í À̸¦ »ç¿ëÇÒ ¶§ ¾Ë¾ÆµÎ¾î¾ß ÇÒ »çÇ׵鿡 ´ëÇÏ¿© ÀÚ¼¼È÷ ±â¼úÇÏ°íÀÚ ÇÑ´Ù. <¿ªÀÚÀÇ ±Û> ¸®´ª½º¿¡¼­ IP ¹æÈ­º® ÄÚµå¿Í ipfwadm ¸í·ÉÀº ¸Å¿ì Èï¹Ì·Ó°í ±ÍÁßÇÑ ÀÚ¿øÀÌ´Ù. IP ÆÐŶ ¼öÁØ¿¡¼­ÀÇ °É·¯³»±â ±â´ÉÀÇ À¯¿ë¼ºÀ» ±¸Å¿© ¸»ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸®¶ó º»´Ù. ƯÈ÷ ¸Å½ºÄ¿·¹ÀÌµå ±â´ÉÀº Á¤¸» µ¸º¸ÀÌ´Â ±â´É Áß ÇϳªÀÌ´Ù. °³¹ß ¹öÀü 2.1.102 ºÎÅÍ °ø½ÄÀûÀ¸·Î µé¾î¿Í ÀÖ´Â ``°³¼±µÈ'' IP ¹æÈ­º® ÄÚµå¿Í ÈξÀ ´õ ³ª¾ÆÁø °ü¸®µµ±¸ ipchains ´Â ¸®´ª½º ¹æÈ­º® ±â´ÉÀ» ¾ÖÈ£ÇÏ´Â »ç¶÷µéÀÌ ²À ÀÍÇô¾ß ÇÒ ³»¿ëÀ̶ó »ý°¢ÇÑ´Ù. ¶Ç ÇϳªÀÇ È¹±âÀûÀÎ ÀÛÇ°ÀÎ Ä¿³Î 2.2 ¸¦ ±â´Ù¸®¸ç º¯È­¿¡ ÀûÀÀÇÒ ¼ö ÀÖµµ·Ï µ½±â À§ÇØ ¹ø¿ªÀ» ÇÏ¿´´Ù. ¿ë¾î ¼±ÅÃÀÌ ÀûÀýÄ¡ ¸øÇÑ °Í¿¡ ´ëÇÑ ÀÇ°ßÀ» µè°í °Ô¼ÓÀûÀ¸·Î ¼öÁ¤ÇØ ³ª°¥ »ý°¢ÀÌ´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. ¼Ò°³ 1.1 ¹«¾ù? 1.2 ¿Ö? 1.3 ¾î¶»°Ô? 1.4 ¾îµð¼­? 2. ÆÐŶ ÇÊÅ͸µ ±âº»±â 2.1 ¹«¾ù? 2.2 ¿Ö? 2.3 ¾î¶»°Ô? 2.3.1 ÆÐŶ ÇÊÅ͸µ ±â´ÉÀ» °®Ãá Ä¿³Î 2.3.2 ``ipchains'' 3. ÀϹÝÀûÀÎ IP ¹æÈ­º® »ç½½ 3.1 ¾î¶»°Ô ÆÐŶÀÌ ÇÊÅ͸¦ Åë°úÇϴ°¡? 3.1.1 ipchains »ç¿ëÇϱâ 3.1.2 ´ÜÀÏ ±ÔÄ¢ »óÀÇ µ¿ÀÛ 3.1.3 ÇÊÅÍ ±ÔÄ¢ ¸í½ÃÇϱâ 3.1.3.1 ¼ö½ÅÁö, ¸ñÀûÁö IP ÁÖ¼Ò ¸í½ÃÇϱâ 3.1.3.2 ¿ª¹æÇâ ¸í½ÃÇϱâ 3.1.3.3 ÇÁ·ÎÅäÄÝ ¸í½ÃÇϱâ 3.1.3.3.1 UDP, TCP Æ÷Æ® ¸í½ÃÇϱâ 3.1.3.3.2 ICMP À¯Çü°ú ÄÚµå ¸í½ÃÇϱâ 3.1.3.4 ÀÎÅÍÆäÀ̽º ¸í½ÃÇϱâ 3.1.3.5 TCP SYN ÆÐŶ¸¸ ¸í½ÃÇϱâ 3.1.3.6 Á¶°¢(Fragments) ó¸® 3.1.4 ÇÊÅ͸µÀÇ ÁÖº¯ È¿°ú 3.1.4.1 ¸ñÇ¥ ¸í½ÃÇϱâ 3.1.4.2 ÆÐŶ ±â·ÏÇϱâ 3.1.4.3 ¼­ºñ½º À¯Çü ó¸®Çϱâ 3.1.4.4 ÆÐŶ Ç¥½ÃÇϱâ 3.1.4.5 Àüü »ç½½¿¡ ´ëÇÑ µ¿ÀÛ 3.1.4.6 »õ·Î¿î »ç½½ ¸¸µé±â 3.1.4.7 »ç½½ Áö¿ì±â 3.1.4.8 »ç½½ ºñ¿ì±â 3.1.4.9 »ç½½ ³»¿ë º¸±â 3.1.4.10 Ä«¿îÅÍ °ªÀ» 0 À¸·Î µ¹·Á³õ±â 3.1.4.11 Á¤Ã¥ Á¤Çϱâ 3.1.5 Operations on Masquerading 3.1.6 Checking a Packet 3.1.7 Multiple Rules at Once and Watching What Happens 3.2 ¾µ¸¸ÇÑ ¿¹Á¦ 3.2.1 ``ipchains-save'' »ç¿ëÇϱâ 3.2.2 ``ipchains-restore'' »ç¿ëÇϱâ 4. ±× ¹ÛÀÇ °Íµé 4.1 ¾î¶»°Ô ¹æÈ­º® ±ÔÄ¢À» ü°èÈ­ÇÒ ¼ö Àִ°¡? 4.2 ¾î¶² °ÍÀº °É·¯³»Áö ¸»¾Æ¾ß Çϴ°¡? 4.2.1 ICMP ÆÐŶ 4.2.2 DNS ´ä½Å 4.2.3 FTP ÀÇ ¾Ç¸ù 4.3 Á×À½ÀÇ ÇÎ °É·¯³»±â 4.4 Ƽ¾îµå·Ó°ú ºÀÅ© °É·¯³»±â 4.5 Á¶°¢ Æøź °É·¯³»±â 4.6 ¹æÈ­º® ±ÔÄ¢ ¹Ù²Ù±â 4.7 ´õ ³ôÀº ¼öÁØÀÇ ÇÁ·ÎÁ§Æ® 4.8 ¾ÕÀ¸·Î °³¼±ÇÒ Á¡ 5. º°Ã· - ipchains ¿Í ipfwadm °£ÀÇ Â÷ÀÌÁ¡ 5.1 °£´ÜÇÑ ÂüÁ¶ µµÇ¥ 5.2 ipfwadm ¸í·É ¹ø¿ªÀÇ ¿¹ 6. º°Ã· - `ipfwadm-wrapper' ½ºÅ©¸³Æ® »ç¿ëÇϱâ 7. º°Ã· - °¨»çÀÇ ±Û ______________________________________________________________________ ÀÌ ±ÛÀº ¸®´ª½º IPCHAINS-HOWTO ÀÌ´Ù. ¸®´ª½º NET-3-HOWTO, IP ¸Å½ºÄ¿·¹À̵ù ÇÏ¿ìÅõ, PPP ÇÏ¿ìÅõ, ÀÌ´õ³Ý ÇÏ¿ìÅõ µîµµ ÀÐ¾î º¼ ¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Â ±ÛÀÌ´Ù. (¶ÇÇÑ alt.fan.bigfoot FAQµµ ±¦Âú´Ù) ÆÐŶ ÇÊÅ͸µ¿¡ ´ëÇÏ¿© ÀÌ¹Ì ¾Ë°í ÀÖ´Ù¸é ``¿Ö?'' ¼½¼Ç°ú ``¾î¶»°Ô?'' ¼½¼ÇÀ» Àаí ``ÀϹÝÀûÀÎ IP ¹æÈ­º® »ç½½'' ¼½¼ÇÀ» Àо°¡±â ¹Ù¶õ´Ù. ipfwadm·ÎºÎÅÍ º¯È¯À» ÇÏ°í ÀÖ´Ù¸é ``¼Ò°³'' ¼½¼Ç, ``¾î¶»°Ô?'' ¼½¼Ç, ±×¸®°í º°Ã· ``ipchains¿Í ipfwadm °£ÀÇ Â÷ÀÌÁ¡'', ``ipfwadm-wrapper ½ºÅ© ¸³Æ® »ç¿ëÇϱâ''¸¦ Àо°¡¸é µÈ´Ù. ¸®´ª½º ipchains ´Â ¸®´ª½º IPv4 ¹æÈ­º® ÄÚµå(ÁÖ·Î BSD·ÎºÎÅÍ µû¿Â °ÍÀÌ´Ù.)¸¦ ´Ù½Ã ¸¸µç °ÍÀ̸ç BSDÀÇ ipfw ¸¦ ´Ù½Ã ¸¸µç ipfwadm À» ´Ù½Ã ÀÛ¼ºÇÑ °ÍÀÌ´Ù. 1.2. ¿Ö? ÇöÀç »ç¿ë ÁßÀÎ ¸®´ª½º ¹æÈ­º® ÄÚµå´Â ÆÐŶ Á¶ÀÛÀ» ´Ù·çÁö ¸øÇϸç 32 ºñÆ® Ä«¿îÅÍ(ÀÎÅÚÀÇ °æ¿ì)¸¦ »ç¿ëÇÏ°í ÀÖ°í TCP, UDP, ICMP ÀÌ¿ÜÀÇ ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÇÒ ¼ö ¾ø´Ù. ½±°Ô ¸¹Àº ³»¿ë¿¡ º¯È­¸¦ °¡ÇÒ ¼ö ¾ø°í ¿ª±ÔÄ¢À» ¸í½ÃÇÒ ¼ö ¾øÀ¸¸ç ¸î¸î °áÇÔÀ» °¡Áö°í ÀÖ´Ù. ±×¸®°í °ü¸®Çϱ⵵ Èûµé´Ù. (¶§¹®¿¡ ¿¡·¯¸¦ À¯¹ßÇϱ⠽±´Ù) 1.3. ¾î¶»°Ô? ÇöÀç ÀÌ ÄÚµå´Â Ä¿³Î 2.1.102 ºÎÅÍ °ø½ÄÀûÀ¸·Î Æ÷ÇԵǾî ÀÖ´Ù. 2.0 Ä¿³ÎÀÇ °æ¿ì¿¡´Â À¥ ÆäÀÌÁö·ÎºÎÅÍ Ä¿³Î ÆÐÄ¡¸¦ ´Ù¿î·Îµå¹Þ¾Æ¾ß ÇÑ´Ù. 1.4. ¾îµð¼­? ¸®´ª½º ÀÏ¹Ý IP ¹æÈ­º® »ç½½¿¡´ëÇÑ °ø½Ä À¥ ÆäÀÌÁö´Â ´ÙÀ½°ú °°´Ù. ¸¸¾à Ä¿´Ù¶õ À͸í FTP ¼­¹ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é FTP ¿¡ ¼ÒÇÁÆ®¿þ¾î¸¦ µÎ¾ú°ÚÁö¸¸ ±×·¸Áö ¸øÇϱ⠶§¹®¿¡ HTTP Àü¼ÛÀ¸·Î Á¦°øÇÏ°í ÀÖ´Ù. ¹ö±× º¸°í, Åä·Ð, °³¹ß ±×¸®°í »ç¿ë¿¡ °üÇÑ ¹®Á¦¸¦ ´Ù·ç´Â ¸ÞÀϸµ ¸®½ºÆ®°¡ ÀÖ´Ù. wantree.com.auÀÇ ipchains-request·Î subscribe ¶ó´Â ´Ü¾î°¡ Æ÷ÇÔµÈ ¸Þ½ÃÁö¸¦ º¸³»¸é °¡ÀԵȴÙ. ¸®½ºÆ®¿¡ ¸ÞÀÏÀ» º¸³¾ ¶§´Â `ipchains-request'°¡ ¾Æ´Ï¶ó `ipchains' ¾ÕÀ¸·Î ¸ÞÀÏÀ» º¸³»¾ß ÇÑ´Ù. 2. ÆÐŶ ÇÊÅ͸µ ±âº»±â 2.1. ¹«¾ù? ³×Æ®¿÷À» ÅëÇÏ´Â ¸ðµç °ÍÀº ÆÐŶÀÇ ÇüŸ¦ ¶í´Ù. ¿¹¸¦ µé¾î Áö±Ý ÀÌ ÆÐÅ°Áö (¾à 50k)¸¦ ¹Þ´Âµ¥´Â ÇϳªÀÇ Å©±â°¡ 1460 ¹ÙÀÌÆ®ÀÎ ÆÐŶ ¾à 36 °³ Á¤µµ¸¦ ¹ß»ý½ÃŲ´Ù. ( °ªÀº ±×³É ¾Æ¹«·¸°Ô³ª Àâ¾Ò´Ù ) °¢ ÆÐŶÀÇ ¾Õ ºÎºÐ¿¡´Â ÆÐŶÀÌ ¾îµð·Î ÇâÇÏ°í ÀÖ´ÂÁö, ¾îµð¼­ ¿Ô´ÂÁö, ¾î¶² Á¾·ùÀÇ ÆÐŶÀÎÁö ±×¸®°í ±× ¹ÛÀÇ °ü¸® »ó ÇÊ¿äÇÑ ¼¼ºÎ »çÇ×ÀÌ ÀûÇôÀÖ´Ù. ÀÌ ºÎºÐÀ» ÆÐŶÀÇ `Çì´õ(header)'¶ó ºÎ¸¥´Ù. ³ª¸ÓÁö ºÎºÐ¿¡´Â Àü¼ÛÇÏ°íÀÚ ÇÏ´Â ½ÇÁ¦ ÀÚ·á°¡ µé¾îÀÖÀ¸¸ç `¸öü(body)'¶ó ºÎ¸¥´Ù. À¥, ¸ÞÀÏ, ¿ø°Ý ·Î±×Àο¡¼­ »ç¿ëµÇ´Â TCP ¿Í °°Àº ÇÁ·ÎÅäÄÝÀº `Á¢¼Ó'À̶ó´Â °³³äÀ» »ç¿ëÇÑ´Ù. º¸³»°íÀÚ ÇÏ´Â ½ÇÁ¦ ÀڷḦ Æ÷ÇÔÇÑ ÆÐŶÀ» º¸³»±â¿¡ ¾Õ¼­ ´Ù¾çÇÑ ¼³Á¤ ÆÐŶ(Ưº°ÇÑ Çì´õ¸¦ °¡Áö°í ÀÖ´Ù)ÀÌ ±³È¯µÇ´Âµ¥ ±× ³»¿ëÀº `Á¢¼ÓÀ» ¿øÇÑ´Ù', `½ÂÀÎÇÑ´Ù', `°í¸¿´Ù'¿Í °°Àº ¸Þ½ÃÁö¶ó°í º¸¸é µÈ´Ù. ±×¸®°í ³ª¼­¾ß º¸ÅëÀÇ ÆÐŶÀÌ ±³È¯µÈ´Ù. ÆÐŶ ÇÊÅͶõ Áö³ª°¡´Â ÆÐŶÀÇ Çì´õ¸¦ º¸°í ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤Áþ´Â ¼ÒÇÁÆ®¿þ¾î ÀÌ´Ù. ÆÐŶÀ» ¹«½Ã(deny)ÇÒ ¼ö ÀÖ°í(¸¶Ä¡ ÆÐŶÀ» ¾È¹ÞÀº °Íó·³ ¹ö¸®´Â ÇàÀ§) ÆÐŶÀÌ Áö³ª°¡µµ·Ï Çã¿ëÇϰųª ÆÐŶÀ» °ÅÀý(reject)ÇÒ ¼ö ÀÖ´Ù.(¹«½Ã¿Í °°Áö¸¸ ÆÐŶÀ» º¸³½ °÷¿¡ °ÅÀýÇÔÀ» Å뺸ÇØÁØ´Ù.) ¸®´ª½º¿¡¼­´Â ÆÐŶ ÇÊÅ͸µ ±â´ÉÀÌ Ä¿³Î ¾È¿¡ µé¾îÀÖ°í ÆÐŶÀ» ó¸®ÇÔ¿¡ ÀÖ¾î °í·ÁÇØ¾ß ÇÒ ¸î °¡Áö »çÇ×µéÀÌ ÀÖÁö¸¸ Çì´õ¸¦ »ìÆ캸°í ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÑ´Ù´Â ÀϹÝÀûÀÎ ¿øÄ¢Àº ¶È°°´Ù. 2.2. ¿Ö? Á¦¾î. º¸¾È. °¨½Ã. Á¦¾î(Control): ³»ºÎ ³×Æ®¿÷À» ´Ù¸¥ ³×Æ®¿÷(¸»ÇÏÀÚ¸é ÀÎÅͳÝ)¿¡ ¿¬°áÇØ ÁÖ´Â ¿ëµµ·Î ¸®´ª½º ¹Ú½º¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é ƯÁ¤ ÇüÅÂÀÇ ³×Æ®¿÷ ÀڷḦ Çã¿ëÇϰųª ºÒÇãÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÆÐŶ Çì´õ¿¡´Â ¸ñÀûÁö ÁÖ¼Ò°¡ µé¾îÀֱ⠶§¹®¿¡ ƯÁ¤ ¿ÜºÎ ³×Æ®¿÷À¸·Î ÆÐŶÀÌ ³ª°¡´Â °ÍÀ» ¸·À» ¼ö ÀÖ´Ù. ´Ù¸¥ ¿¹¸¦ µé¾îº¸ÀÚ. ³ª´Â Dilbert ¾ÆÄ«À̺꿡 Á¢±ÙÇϱâ À§ÇØ ³×½ºÄÉÀÌÇÁ¸¦ »ç¿ëÇÑ´Ù. ÆäÀÌÁö¿¡´Â doubleclick.net ÀÇ ±¤°íµéÀÌ ÀÖ¾î ³×½ºÄÉÀÌÇÁ°¡ ±¤°íµéÀ» ¹Þ¾Æ´ë´À¶ó ³ªÀÇ ±ÍÁßÇÑ ½Ã°£À» ¼Ò¸ðÇÏ°í ÀÖ´Ù. ÆÐŶ ÇÊÅÍ·Î ÇÏ¿©±Ý doubleclick.net À¸·ÎºÎÅÍ ¿À´Â ¸ðµç ÆÐŶÀ» ¸·°Ô ÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÏ¿´´Ù.(¹°·Ð ÀÌ ¹®Á¦¿¡ ´ëÇؼ­´Â º¸´Ù ÁÁÀº ¹æ¹ýÀÌ ÀÖ´Ù) º¸¾È(Security): ¸®´ª½º ¹Ú½º°¡ ¹«¹ýõÁöÀÇ ÀÎÅͳݰú ±ò²ûÇÏ°í Àß Á¤µ·µÈ ¿©·¯ºÐ¸¸ÀÇ ³×Æ®¿÷ »çÀÌ¿¡ ³õÀÎ À¯ÀÏÇÑ ÄÄÇ»ÅÍÀÎ °æ¿ì, ¿©·¯ºÐ¿¡°Ô ¹æ¹®ÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» Á¦ÇÑÇÏ´Â ¹æ¹ýÀ» ÀÍÇôµÎ´Â °ÍÀÌ ÁÁ´Ù. ¿¹¸¦ µé¾î ¿©·¯ºÐÀÇ ³×Æ® ¿÷À¸·ÎºÎÅÍ ¹ÛÀ¸·Î ³ª°¡´Â °ÍÀº º° ¹®Á¦°¡ ¾Æ´ÏÁö¸¸ `Á×À½ÀÇ ÇÎ' °°Àº °ÍÀÌ ¾ÇÀǸ¦ Ç°Àº ¿ÜºÎÀÎÀ¸·ÎºÎÅÍ ¿À´Â °Í¿¡ ´ëÇÏ¿© °ÆÁ¤ÇÏ°í ÀÖÀ» Áö ¸ð¸¥´Ù. ¶Ç´Â °èÁ¤°ú Æнº¿öµå¸¦ Á¦´ë·Î °®°í ÀÖ´Ù ÇÏ´õ¶óµµ ¿ÜºÎ¿¡¼­´Â ¸®´ª½º ¹Ú½º·Î ÅÚ³ÝÇÏ¿© µé¾î¿À´Â °ÍÀ» ¹Ù¶óÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ´ëºÎºÐÀÇ »ç¶÷µé°ú ¸¶Âù°¡Áö·Î ÀÎÅͳÝÀ» ±¸°æÇÏ´Â ¹æ¹®°´ÀÌ µÇ°í ½ÍÀ» »Ó, ¹æ¹®°´À» ¹Þ¾Æ¾ß ÇÏ´Â ¼­¹ö°¡ µÇ°í ½ÍÁö´Â ¾Ê´Ù°í »ý°¢ÇÒ Áö ¸ð¸¥´Ù. ÀÌ ¶§´Â °£´ÜÈ÷ Á¢¼Ó¿¡ »ç¿ëµÇ´Â ÆÐŶÀÌ µé¾î¿À´Â °Í¸¸ ¸·¾Æ¹ö¸®¸é ±×¸¸ ÀÌ´Ù. °¨½Ã(Watchfulness): ¸î¸î À߸ø ¼³Á¤µÈ ³»ºÎ ³×Æ®¿÷ »óÀÇ ¸Ó½ÅµéÀÌ ¿ÜºÎ·Î ÆÐŶÀ» À¯ÃâÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ ¶§´Â ÆÐŶ ÇÊÅÍ·Î ÇÏ¿©±Ý ºñÁ¤»óÀûÀÎ ÀÏÀÌ ¹ú¾îÁö´Â °Í¿¡ ´ëÇÏ¿© Å뺸Çϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÀÌ¿¡ ´ëÇÑ Á¶Ä¡¸¦ ÃëÇÒ ¼öµµ ÀÖ°í ¶Ç´Â ±×³É ±Ã±ÝÇؼ­ ÇØ º¼ ¼öµµ ÀÖ´Ù. 2.3. ¾î¶»°Ô? 2.3.1. ÆÐŶ ÇÊÅ͸µ ±â´ÉÀ» °®Ãá Ä¿³Î Ä¿³Î ¾È¿¡ »õ·Î¿î ÀÏ¹Ý IP ¹æÈ­º® »ç½½(Generic IP Firewall Chain) ±â´ÉÀ» °®Ãç¾ß ÇÑ´Ù. Áö±Ý ÇöÀç ÀÛµ¿ ÁßÀÎ Ä¿³ÎÀÌ ÀÌ ±â´ÉÀ» °®Ãß°í ÀÖ´ÂÁö ¾Ë¾Æº¸ ·Á¸é `/proc/net/ip_fwchains' ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇ϶ó. ÀÖ´Ù¸é ÀÌ¹Ì Ä¿³Î ¾È¿¡ ±â´ÉÀÌ Æ÷ÇԵǾî ÀÖ´Â °ÍÀÌ´Ù. ±×·¸Áö ¾Ê´Ù¸é ÀÏ¹Ý IP ¹æÈ­º® »ç½½ ±â´ÉÀ» °®µµ·Ï Ä¿³ÎÀ» ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù. Ä¿³ÎÀ» ´Ù¿î·Îµå¹Þ°í À§¿¡¼­ ¾ð±ÞÇÑ À¥ ÆäÀÌÁö·ÎºÎÅÍ °¡Á®¿Â ÆÐÄ¡¸¦ Àû¿ëÇÏ°í ´ÙÀ½°ú °°Àº ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù. Ä¿³Î ÄÄÆÄÀÏ¿¡ ´ëÇÏ¿© Àß ¸ð¸¥´Ù¸é Ä¿³Î ÇÏ¿ìÅõ ¹®¼­¸¦ Àо±â ¹Ù¶õ´Ù. ÇÊ¿äÇÑ ¼³Á¤ ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù: ______________________________________________________________________ CONFIG_EXPERIMENTAL=y CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_CHAINS=y ______________________________________________________________________ `ipchains'¶ó´Â µµ±¸¸¦ »ç¿ëÇÏ¿© Ä¿³Î°ú ´ëÈ­Çϸ鼭 ¾î¶°ÇÑ ÆÐŶÀ» ÇÊÅ͸µÇÒ °ÍÀÎÁö ¸»ÇÑ´Ù. ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ñ ÇÑ, ±×¸®°í ÇÊ¿ä ÀÌ»óÀ¸·Î È£±â½ÉÀ» °®Áö ¾Ê´Â »ç¶÷µéÀ̶ó¸é ipchains µµ±¸¸¦ »ç¿ëÇÏ¿© ÆÐŶ ÇÊÅ͸µÀ» Á¦¾îÇÑ´Ù. 2.3.2. ``ipchains'' ÀÌ µµ±¸´Â ±¸½ÄÀÇ IP ¹æÈ­º® Äڵ忡 »ç¿ëµÇ¾ú´ø `ipfwadm'¸¦ ´ëüÇÑ´Ù. ÆÐÅ°Áö¿¡´Â `ipfwadm-wrapper'¶ó´Â À̸§ÀÇ ½© ½ºÅ©¸³Æ®°¡ µé¾îÀִµ¥ ÀÌ°ÍÀ» »ç¿ëÇÏ¸é ¿¹ÀüÀÇ ÆÐŶ ÇÊÅ͸µ ¸í·ÉÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ipfwadm (´À¸°µ¥´Ù Àü´Þ Àμö¸¦ Á¦´ë·Î Á¡°ËÇÏÁö ¾Ê´Â °áÁ¡À» °¡Áö°í ÀÖ´Ù)¸¦ »ç¿ëÇÏ´ø ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ÀÏ´ÜÀº »¡¸® ¾÷±×·¹À̵åÇÑ »óÅ¿¡¼­ ¹æÈ­º® ±â´ÉÀ» Àá½Ã¶óµµ Áß´ÜÇÏ°í ½ÍÁö ¾ÊÀº °æ¿ì¿¡¸¸ »ç¿ëÇ϶ó. ÀÌ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ´Ù¸é ÀÌ ÇÏ¿ìÅõ ¹®¼­¸¦ ´õ ÀÌ»ó ÀÐÀ» ÇÊ¿ä°¡ ¾ø´Ù. º°Ã· ``ipchains¿Í ipfwadm °£ÀÇ Â÷ÀÌÁ¡''°ú º°Ã· ``ipfwadm-wrapper ½ºÅ©¸³Æ® »ç¿ëÇϱâ''¸¦ Àо¸é ipfwadm ¿¡ °üÇÑ ¹®Á¦¸¦ Á¶±Ý ´õ ÀÚ¼¼È÷ ¾Ë ¼ö ÀÖ´Ù. 3. ÀÏ¹Ý IP ¹æÈ­º® »ç½½(Generic IP Firewalling Chains) À̹ø ¼½¼Ç¿¡¼­´Â ¿©·¯ºÐÀÌ ¿øÇÏ´Â ÆÐŶ ÇÊÅ͸¦ ±¸ÃàÇϴµ¥ ÀÖ¾î Á¤¸»·Î ¾Ë¾ÆµÖ¾ß ÇÒ ¸ðµç °ÍÀ» ¼³¸íÇÑ´Ù. 3.1. ¾î¶»°Ô ÆÐŶÀÌ ÇÊÅ͸¦ Áö³ª°¡´Â°¡? Ä¿³ÎÀº 3 °¡ÁöÀÇ ±ÔÄ¢ ¸ñ·Ï(`¹æÈ­º® »ç½½' ¶Ç´Â °£´ÜÈ÷ `»ç½½'À̶ó°í ºÎ¸¥´Ù)À» °¡Áö°í ½ÃÀÛÇÑ´Ù. ÀÌ 3 °¡Áö »ç½½Àº `ÀÔ·Â(input)', `Ãâ·Â(output)', ±×¸®°í `Àü´Þ(forward)'ÀÌ´Ù. ÆÐŶÀÌ µé¾î¿À¸é(¿¹¸¦ µé¾î ÀÌ´õ³Ý Ä«µå¸¦ ÅëÇØ) Ä¿³ÎÀº ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤Áþ±â À§ÇØ `input' »ç½½À» »ç¿ëÇÑ´Ù. ¸¸¾à ÀÌ ´Ü°è¿¡¼­ »ì¾Æ³²¾Ò´Ù¸é À̹ø¿¡´Â ÆÐŶÀ» ¾îµð·Î º¸³»¾ß ÇÒ Áö °áÁ¤ÇÑ´Ù. ¸¸¾à ÆÐŶÀÌ ´Ù¸¥ ¸Ó½ÅÀ¸·Î °¡¾ß ÇÑ´Ù¸é `forward' »ç½½À» »ìÆ캻´Ù. ¸¶Áö¸·À¸·Î ÆÐŶÀÌ ¶°³ª·Á ÇÏ´Â ¼ø°£, `output' »ç½½À» Á¡°ËÇÑ´Ù. »ç½½À̶õ `±ÔÄ¢'ÀÇ Àû¿ë Ç׸ñÀÌ´Ù. °¢ ±ÔÄ¢Àº `¸¸¾à ÆÐŶ Çì´õ°¡ ÀÌ·¯ÀÌ·¯ ÇÏ´Ù¸é ÆÐŶÀ» ÀÌ·¸°Ô ó¸®ÇϽÿÀ'¶ó°í ¸»ÇÑ´Ù. ¸¸¾à ÆÐŶÀÌ ±ÔÄ¢¿¡ ¸ÂÁö ¾ÊÀ¸¸é »ç½½¿¡ ³õÀÎ ±× ´ÙÀ½ ±ÔÄ¢À» Àû¿ëÇÑ´Ù. ¸¶Áö¸·À¸·Î ´õ ÀÌ»ó Àû¿ëÇÒ ±ÔÄ¢ÀÌ ¾øÀ¸¸é »ç½½ÀÇ `Á¤Ã¥'À» µû¸¥´Ù. º¸¾È ¹®Á¦¿¡ ¹Î°¨ÇÑ ½Ã½ºÅÛ¿¡¼­´Â °ÅÀý ¶Ç´Â ¹«½Ã¸¦ ±âº» Á¤Ã¥À¸·Î »ï´Â´Ù. ASCII ¾ÆÆ® ÆÒµéÀ» À§ÇØ ¸Ó½ÅÀ¸·Î µé¾î¿Â ÆÐŶÀÇ ¿ÏÀüÇÑ ¿©Çà °æ·Î¸¦ ±×·Á º¸¾Ò´Ù. ACCEPT/ REDIRECT ACCEPT --> C --> S --> ______ --> D --> ~~~~~~~~ --> local ------> _______ --> h -> a |input | e {Routing } | __|____ -->->|output | e | n |Chain | m {Decision} | |forward| | |Chain | c | i |______| a ~~~~~~~~ | |Chain | | |_______| k | t | s | | |_______| | | s | y | q | | | | | u | | v e v | | | v m | | DENY/ r Local Process| v | DENY/ | | v REJECT a |------- DENY/ | REJECT | |DENY d | REJECT | v | e -------+--------------------- DENY| | ------------------------------ °¢ ´Ü°è ÇϳªÇϳª¿¡ ´ëÇÑ ¼³¸íÀ» Çغ¸ÀÚ¸é ´ÙÀ½°ú °°´Ù: üũ¼¶(Checksum): ÆÐŶÀÌ Àü¼Û Áß°£¿¡ ¼Õ»óµÇ¾ú´ÂÁö ¿©ºÎ¸¦ Á¡°ËÇÑ´Ù. ¸¸¾à ¼Õ»óµÇ¾ú´Ù¸é ¹«½ÃµÈ´Ù. Á¤»ó¼º Å×½ºÆ®(Sanity): °¢°¢ÀÇ ¹æÈ­º® »ç½½¿¡ ¾Õ¼­ ÇàÇØÁö´Â Á¤»ó¼º Å×½ºÆ® Áß ÇϳªÀÌ´Ù. ÇÏÁö¸¸ °¡Àå Áß¿äÇÑ °ÍÀº ÀÔ·Â »ç½½ Àü¿¡ ÀÌ·ïÁö´Â Á¤»ó¼º Å×½ºÆ®ÀÌ´Ù. ¸î¸î À߸ø ¸¸µé¾îÁø ÆÐŶÀº ±ÔÄ¢ Á¡°Ë Äڵ带 È¥¶õ¿¡ ºüÁö°Ô ÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ¿©±â¼­ ¹«½ÃÇعö¸°´Ù.(ÀÌ·± ÀÏÀÌ ¹ß»ýÇϸé syslog¸¦ ÅëÇØ ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù) ÀÔ·Â »ç½½(input Chain): ÆÐŶÀÌ Á¦ÀÏ ¸ÕÀú Å×½ºÆ®¸¦ °ÅÃÄ¾ß ÇÒ ¹æÈ­º® »ç½½ÀÌ´Ù. ¸¸¾à »ç½½ Á¡°Ë °á°ú°¡ DENY ¶Ç´Â REJECT°¡ ¾Æ´Ï¶ó¸é ÆÐŶÀº ³²Àº ±æÀ» °¡¾ß ÇÑ´Ù. µð¸Å½ºÄ¿·¹À̵å(Demasquerade): ¸¸¾à ÆÐŶÀÌ ¾Õ¼­ ¸Å½ºÄ¿·¹À̵åµÈ ÆÐŶ¿¡ ´ëÇÑ ´ä½Å ÆÐŶÀ̶ó¸é ÀÏ´Ü µð¸Å½ºÄ¿·¹À̵åÇÏ°í Ãâ·Â »ç½½·Î °ðÀå ÁøÃâÇÑ´Ù. IP ¸Å½ºÄ¿·¹À̵带 »ç¿ëÇÏÁö ¾Ê´Â »ç¶÷Àº µµÇ¥¿¡¼­ µð¸Å½ºÄ¿·¹ÀÌµå ºÎºÐÀ» Áö¿ì°í »ý°¢Çصµ ÁÁ´Ù. °æ·Î °áÁ¤(Routing Decision): ¶ó¿ìÆà Äڵ带 °ÅÃÄ ¸ñÀûÁö Çʵ带 Á¶»çÇÏ¿© ÆÐŶÀÌ Áö¿ª ÇÁ·Î¼¼½º (µÚ¿¡ ³ª¿À´Â Áö¿ª ÇÁ·Î¼¼½º ¼½¼ÇÀ» Âü°í)¿¡°Ô °¥ °ÍÀÎÁö ¾Æ´Ï¸é ¿ø°Ý ¸Ó½Å¿¡ Àü´ÞµÉ °ÍÀÎÁö °áÁ¤ÇÑ´Ù.(µÚ¿¡ ³ª¿À´Â Àü´Þ »ç½½ ¼½¼ÇÀ» Âü°í) Áö¿ª ÇÁ·Î¼¼½º(Local Process): ¸Ó½Å¿¡¼­ ÀÛµ¿ ÁßÀÎ ÇÁ·Î¼¼½º´Â °æ·Î °áÁ¤ ´Ü°è ÀÌÈÄ ÆÐŶÀ» ¹Þ°Å³ª ¶Ç´Â ÆÐŶÀ» º¸³¾ ¼ö ÀÖ´Ù.(º¸³½ ÆÐŶÀÌ Áö¿ª ÇÁ·Î¼¼½º¸¦ ÇâÇØ °¡´Â °ÍÀ̶ó¸é lo ·Î ¼³Á¤µÈ ÀÎÅÍÆäÀ̽ºÀÇ Ãâ·Â, ÀÔ·Â »ç½½À» Åë°úÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é Ãâ·Â »ç½½¸¸ Áö³ª°£´Ù) ÇÁ·Î¼¼½º °£ÀÇ »ç½½ °æÀ¯ °úÁ¤Àº Èï¹Ì·ÓÁö ¾Ê±â ¶§¹®¿¡ µµÇ¥¿¡¼­ ÃæºÐÈ÷ Ç¥ÇöÇÏÁö ¾Ê¾Ò´Ù. Áö¿ª(local): Áö¿ª ÇÁ·Î¼¼½º¿¡ ÀÇÇØ »ý¼ºµÈ °ÍÀÌ ¾Æ´Ï¶ó¸é Àü´Þ »ç½½¿¡ ´ëÇÏ¿© Á¡°Ë ÇÏ°í Áö¿ª ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ¸¸µé¾îÁø °ÍÀ̶ó¸é °ðÀå Ãâ·Â »ç½½·Î ³ª¾Æ°£´Ù. Àü´Þ »ç½½(forward Chain): ÀÌ ¸Ó½Å¿¡¼­ ´Ù¸¥ ¸Ó½ÅÀ¸·Î ³ª¾Æ°¡´Â ÆÐŶ¿¡ ´ëÇÏ¿© »ç½½À» Àû¿ëÇÑ´Ù. Ãâ·Â »ç½½(output Chain): ÆÐŶÀ» º¸³»±â Á÷Àü¿¡ »ç½½ ±ÔÄ¢À» Àû¿ëÇÑ´Ù. 3.1.1. ipchains »ç¿ëÇϱ⠿켱 ÀÌ ¹®¼­¿¡¼­ ¾ð±ÞÇÏ°í ÀÖ´Â ipchains ¹öÀüÀ» °¡Áö°í ÀÖ´ÂÁö Á¡°ËÇÑ´Ù: $ ipchains --version ipchains 1.3.3, 16-May-1998 ipchains ¿¡´Â ¸Å¿ì »ó¼¼ÇÑ ¼³¸íÀ» ´ã°í ÀÖ´Â ¸ÇÆäÀÌÁö°¡ µé¾îÀÖ´Ù. ("man ipchains") ¸¸¾à ƯÁ¤ ºÐ¾ß¿¡ ´ëÇÑ Á» ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¿øÇÑ´Ù¸é ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ »ìÆ캸°Å³ª("man 4 ipfw") Ä¿³Î ¼Ò½º Áß¿¡¼­ "net/ipv4/ip_fwtrees.c" ÆÄÀÏÀ» »ìÆ캸¶ó. ÀÌ ÆÄÀÏÀÇ ³»¿ëÀÌ °¡Àå È®½ÇÇÑ Á¤º¸¸¦ Á¦°øÇÒ °ÍÀÓ¿¡ Ʋ¸²¾ø´Ù. ipchains¸¦ ÅëÇØ ÇÒ ¼ö ÀÖ´Â ÀÏ¿¡´Â ´ÙÀ½°ú °°´Ù. ¿ì¼± Àüü »ç½½À» °ü¸®ÇÏ´Â µ¿ÀÛÀÌ ÀÖ´Ù. ¿ì¼± »èÁ¦ÇÒ ¼ö ¾ø´Â `input', `output', `forward' ¶ó´Â 3 °¡Áö ³»Àå »ç½½ºÎÅÍ ½ÃÀÛÇغ»´Ù. 1. »õ·Î¿î »ç½½À» ¸¸µç´Ù (-N). 2. ºó »ç½½À» Áö¿î´Ù (-X). 3. ³»Àå »ç½½¿¡ ´ëÇÑ ±âº» Á¤Ã¥À» º¯°æÇÑ´Ù (-P). 4. »ç½½ ¼Ó¿¡ µç ±ÔÄ¢À» ³ª¿­ÇÑ´Ù (-L). 5. »ç½½·ÎºÎÅÍ ±ÔÄ¢À» ¸ðµÎ ¹æÃâÇÑ´Ù (-F). 6. »ç½½ ¼ÓÀÇ ¸ðµç ±ÔÄ¢¿¡ ´ëÇÑ ÆÐŶ, ¹ÙÀÌÆ® Ä«¿îÅÍ °ªÀ» 0 À¸·Î ¼³Á¤ÇÑ´Ù (-Z). »ç½½ ¼ÓÀÇ ±ÔÄ¢À» °ü¸®ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù: 1. »ç½½¿¡ »õ·Î¿î ±ÔÄ¢À» Ãß°¡ÇÑ´Ù (-A). 2. »ç½½ ¼Ó ¾îµò°¡¿¡ »õ·Î¿î ±ÔÄ¢À» »ðÀÔÇÑ´Ù. (-I). 3. »ç½½ ¼Ó ƯÁ¤ À§Ä¡ÀÇ ±ÔÄ¢À» ±³Ã¼ÇÑ´Ù (-R). 4. »ç½½ ¼ÓÀÇ Æ¯Á¤ ±ÔÄ¢À» »èÁ¦ÇÑ´Ù (-D). 5. »ç½½ ¼Ó¿¡¼­ ù¹ø° ºÎÇյǴ ±ÔÄ¢À» »èÁ¦ÇÑ´Ù (-D). ¸Å½ºÄ¿·¹À̵ùÀ» À§ÇÑ ¸î °¡Áö µ¿ÀÛÀÌ ipchains ¿¡ µé¾îÀÖ´Ù. 1. ÇöÀç ¸Å½ºÄ¿·¹À̵åµÈ Á¢¼Ó ±ÔÄ¢À» ³ª¿­ÇÑ´Ù (-M -L). 2. ¸Å½ºÄ¿·¹À̵ù ŸÀӾƿô °ªÀ» ¼³Á¤ÇÑ´Ù (-M -S). ¸¶Áö¸·(±×¸®°í ¾î¼¸é °¡Àå À¯¿ëÇÑ) ±â´ÉÀ¸·Î´Â ¿©·¯ºÐÀ¸·Î ÇÏ¿©±Ý ¾î¶² ÆÐŶÀÌ ÁÖ¾îÁø »ç½½À» Åë°úÇÒ ¶§ ¾î¶² ÀÏÀÌ ¹ú¾îÁö´ÂÁö Á¡°ËÇÏ´Â ±â´ÉÀÌ ÀÖ´Ù. 3.1.2. ÇϳªÀÇ ±ÔÄ¢¿¡ ´ëÇÑ µ¿ÀÛ ±ÔÄ¢À» ÀÚÀ¯ÀÚÀç·Î °ü¸®ÇÏ´Â °Í, ÀÌ°ÍÀ̾߸»·Î ipchainsÀÇ ÇÙ½ÉÀÌ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¿©·¯ºÐÀº Ãß°¡(-A), »èÁ¦(-D) ¸í·ÉÀ» »ç¿ëÇÑ´Ù. ´Ù¸¥ °Íµé(»ðÀÔÀ» À§ÇÑ -I, ±³Ã¼¸¦ À§ÇÑ -R)Àº ±âÃÊ °³³ä¿¡ ´ëÇÑ ´Ü¼øÇÑ È®Àå¿¡ ºÒ°úÇÏ´Ù. °¢ ±ÔÄ¢Àº ÆÐŶÀÌ ¸¸Á·½ÃÄÑ¾ß ÇÏ´Â Á¶°ÇµéÀ» ³ªÅ¸³»°í Á¶°ÇÀ» ÃæÁ·ÇÏ¸é ¾î¶² ÇàÀ§(`target')¸¦ ÇØ¾ß ÇÏ´ÂÁö ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î 127.0.0.1 À̶ó´Â IP ÁÖ¼Ò·Î ºÎÅÍ ¿À´Â ¸ðµç ICMP ÆÐŶÀ» ¹«½ÃÇÏ·Á ÇÑ´Ù°í ÇÏÀÚ. ÀÌ ¶§ ÇÁ·ÎÅäÄÝÀº ICMP ¿© ¾ß ÇÏ°í ¹ß½Å ÁÖ¼Ò´Â 127.0.0.1 À̾î¾ß ÇÑ´Ù´Â °ÍÀÌ Á¶°ÇÀÌ´Ù. ¸ñÇ¥(target)´Â "DENY"°¡ µÈ´Ù. 127.0.0.1 Àº `·çÇÁ¹é' ÀÎÅÍÆäÀ̽º·Î¼­ ½ÇÁúÀûÀÎ ³×Æ®¿÷ ¿¬°áÀÌ ¾ø¾îµµ Ç×»ó °¡Áö°í ÀÖ´Â ÀÎÅÍÆäÀ̽ºÀÌ´Ù. ping ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ÆÐŶÀ» ¹ß»ý½Ãų ¼ö ÀÖ´Ù. (pingÀº ´Ü¼øÈ÷ ICMP ŸÀÔ 8(echo request)¸¦ º¸³»¸ç ÀÌ¿¡ ÇùÁ¶ÇÏ´Â ¸ðµç È£½ºÆ®´Â ICMP ŸÀÔ 0(echo reply)¸¦ º¸³»ÁÖµµ·Ï µÇ¾î ÀÖ´Ù.) Å×½ºÆ®Çغ¸±â¿¡ ÁÁÀº ¿¹ÀÌ´Ù. # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms --- 127.0.0.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms # ipchains -A input -s 127.0.0.1 -p icmp -j DENY # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss # À§ÀÇ ¿¹¿¡¼­ ù¹ø° ping Àº ¼º°øÇÑ´Ù. (`-c 1'À̶õ ÆÐŶ Çϳª¸¸ º¸³»¶ó´Â Áö½ÃÀÌ´Ù.) ±×¸®°í ³ª¼­ ¿ì¸®´Â `input' »ç½½¿¡ 127.0.0.1 ·ÎºÎÅÍ ¿À¸ç(`-s 127.0.0.1') ÇÁ·ÎÅäÄÝÀº ICMP ÀÎ(`-p ICMP') ÆÐŶ¿¡ ´ëÇÏ¿© DENY ·Î Á¡ÇÁÇ϶ó°í(`-j DENY') ±ÔÄ¢À» Ãß°¡ÇÏ¿´´Ù(-A). µÎ¹ø° ping À» °¡Áö°í ±ÔÄ¢À» Á¡°ËÇغ»´Ù. °áÄÚ ¿ÀÁö ¾ÊÀ» ÀÀ´äÀ» ±â´Ù¸®´À¶ó ÇÁ·Î±×·¥ÀÌ ±â´Ù¸®´Â ½Ã°£ÀÌ Àֱ⠶§¹®¿¡ Àá½Ã Áö¿¬µÈ´Ù. ±ÔÄ¢À» Áö¿ì´Â ¹æ¹ýÀº µÎ °¡ÁöÀÌ´Ù. ¿ì¼± ÀÔ·Â »ç½½¿¡ ±ÔÄ¢ÀÌ Çϳª »ÓÀ̶ó´Â »ç½ÇÀ» ¾Ë°í Àֱ⠶§¹®¿¡ ¼ýÀÚ¸¦ ÁöÁ¤ÇÏ¿© Áö¿ï ¼ö ÀÖ´Ù. # ipchains -D input 1 # À§ÀÇ ¿¹´Â ÀÔ·Â »ç½½ÀÇ 1 ¹ø ±ÔÄ¢À» Áö¿î´Ù. µÎ¹ø° ¹æ¹ýÀº -A ¸í·É°ú ¶È°°ÀÌ Ç쵂 -A ¸¦ -D ·Î ¹Ù²Ù´Â ¹æ¹ýÀÌ´Ù. ¸Å¿ì º¹ÀâÇÑ ±ÔÄ¢ÀÇ »ç½½ÀÌ ÀÖ°í »èÁ¦ÇØ¾ß ÇÒ ±ÔÄ¢ ¹øÈ£°¡ ¹«¾ùÀÎÁö ã°í ½ÍÁö ¾ÊÀ» ¶§ »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°´Ù: # ipchains -D input -s 127.0.0.1 -p icmp -j DENY # -D ¹®±¸´Â -A ¸í·É(¶Ç´Â -I, -R)¿¡¼­¿Í ¿ÏÀüÈ÷ ¶È°°Àº ¿É¼ÇÀ» °¡Á®¾ß ÇÑ´Ù. ¸¸¾à °°Àº »ç½½¿¡ µ¿ÀÏÇÑ ±ÔÄ¢ÀÌ ¿©·¯ °³ ÀÖ´Ù¸é ù¹ø° °Í¸¸ Áö¿öÁø´Ù. 3.1.3. ÇÊÅ͸µ ±ÔĢǥÇö(Specification) We have seen the use of `-p' to specify protocol, and `-s' to specify ¾Õ¼­ ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÇϱâ À§ÇØ `-p' ¸¦ »ç¿ëÇÏ°í ¹ß½Å ÁÖ¼Ò¸¦ ¸í½ÃÇϱâ À§ÇØ `-s' ¸¦ »ç¿ëÇÑ °ÍÀ» º¸¾Ò´Ù. ÇÏÁö¸¸ ÀÌ°Í ÀÌ¿Ü¿¡µµ ÆÐŶÀÇ Æ¯¼ºÀ» Ç¥ÇöÇÏ´Â ´Ù¸¥ ¿É¼ÇµéÀÌ ¸¹´Ù. ¾à°£ Áö·çÇÏ°Ô ´À²¸Áú Áöµµ ¸ð¸£´Â ¿ä¾à ¼³¸íÀ» ³ª¿­ÇÏ°íÀÚ ÇÑ´Ù. 3.1.3.1. ¹ß½Å, µµÂø IP ÁÖ¼Ò ¸í½ÃÇϱ⠹߽Å(-s), µµÂø(-d) IP ÁÖ¼Ò´Â 4 °¡Áö ¹æ¹ýÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº `localhost', `www.linuxhq.com'°ú °°Àº ¿ÏÀüÇÑ À̸§À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. µÎ¹ø° ¹æ¹ýÀº `127.0.0.1'°ú °°ÀÌ IP ÁÖ¼Ò¸¦ Àû´Â °ÍÀÌ´Ù. ¼¼¹ø°, ³×¹ø° ¹æ¹ýÀº `199.95.207.0/24' ¶Ç´Â `199.95.207.0/255.255.255.0' ¿Í °°ÀÌ IP ÁÖ¼ÒÀÇ ±×·ìÀ» Ç¥ÇöÇÏ´Â °ÍÀÌ´Ù. ÀÌ µÑ ´Ù 192.95.207.0 ºÎÅÍ 192.95.207.255 ±îÁöÀÇ IP ÁÖ¼Ò¸¦ Ç¥ÇöÇÑ´Ù. `/' ´ÙÀ½ÀÇ ¼ýÀÚ´Â IP ÁÖ¼Ò Áß ¾î´À ºÎºÐÀÌ Áß¿äÇÑ°¡¸¦ ³ªÅ¸³½´Ù. `/32' ¶Ç´Â `/255.255.255.255' ÀÌ ±âº»°ª ÀÌ´Ù.(IP ÁÖ¼ÒÀÇ ¸ðµç ºÎºÐÀÌ Áß¿ä) `/0' À» »ç¿ëÇÏ¸é ¸ðµç IP ÁÖ¼Ò¸¦ ³ªÅ¸ ³¾ ¼ö ÀÖ´Ù. # ipchains -A input -s 0/0 -j DENY # À§ÀÇ ¹æ¹ýÀº °ÅÀÇ »ç¿ëµÇÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ¾Æ¿¹ `-s' ¿É¼ÇÀ» ¾²Áö ¾ÊÀº °ÍÀ̳ª ´Ù¸§¾ø´Â °á°úÀ̱⠶§¹®ÀÌ´Ù. 3.1.3.2. ¿ª±ÔÄ¢(Inversion) ¸í½ÃÇϱâ `-s', `-d' Ç÷¡±×¸¦ Æ÷ÇÔÇÏ´Â ¸¹Àº Ç÷¡±× ¾Õ¿¡ `!'¸¦(`not'À» ¶æÇÑ´Ù) ºÙÀ̸é ÁÖ¾îÁø ÁÖ¼Ò¿Í °°Áö ¾Ê´Â °ÍÀ» Ç¥ÇöÇÑ´Ù. ¿¹¸¦ µé¾î `-s ! localhost'´Â localhost¿¡¼­ ¿ÀÁö ¾Ê´Â ¸ðµç ÆÐŶ°ú ÀÏÄ¡ÇÑ´Ù. 3.1.3.3. ÇÁ·ÎÅäÄÝ ¸í½ÃÇϱâ The protocol can be specified with the `-p' flag. Protocol can be a `-p' Ç÷¡±×¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝÀº ¹øÈ£ (IP¿¡ ´ëÇÑ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ¾Ë°í ÀÖ´Â °æ¿ì) ¶Ç´Â `TCP', `UDP', `ICMP'¿Í °°Àº À̸§À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ë¼Ò¹®ÀÚ´Â Áß¿äÇÏÁö ¾ÊÀ¸¹Ç·Î `tcp', `TCP'´Â ¶È°°ÀÌ Ã³¸®µÈ´Ù. ¿ªÇ¥ÇöÀ» Çϱâ À§ÇØ `-p ! TCP' ó·³ `!' À» ºÙÀÏ ¼ö ÀÖ´Ù. 3.1.3.3.1. UDP, TCP Æ÷Æ® ¸í½ÃÇϱâ TCP, UDP ÇÁ·ÎÅäÄÝÀÇ °æ¿ì¿¡´Â TCP, UDP Æ÷Æ® ¶Ç´Â Æ÷Æ®ÀÇ ¹üÀ§¸¦ Ãß°¡·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.(``Á¶°¢ ó¸®Çϱâ'' ¼½¼ÇÀ» ²À Àо±â ¹Ù¶÷) ¹üÀ§´Â `6000:6010' ó·³ ÄÝ·Ð(:) ¹®ÀÚ¸¦ »ç¿ëÇÏ¿© Ç¥ÇöÇÑ´Ù. ÀÌ ¶§ `6000:6010'ÀÇ Àǹ̴ 6000 ºÎÅÍ ½ÃÀÛÇÏ¿© 6010 ±îÁö 11 °³ÀÇ Æ÷Æ® ¹øÈ£ÀÌ´Ù. ¸¸¾à ¹üÀ§ ½ÃÀÛ°ªÀÌ »ý·«µÇ¸é 0 À¸·Î °£ÁÖÇÑ´Ù. ¸¸¾à ¹üÀ§ ³¡°ªÀÌ »ý·«µÇ¸é 65535 ·Î °£ÁÖÇÑ´Ù. µû¶ó¼­ 1024 Æ÷Æ® ÀÌÇϷκÎÅÍ ¿À´Â TCP Á¢¼ÓÀº `-p TCP -s 0.0.0.0/0 :1024'¶ó°í Ç¥ÇöÇÑ´Ù. Æ÷Æ® ¹øÈ£´Â ¿¹¸¦ µé¾î `www'¿Í °°ÀÌ À̸§À¸·Î Ç¥±âÇÒ ¼öµµ ÀÖ´Ù. Æ÷Æ®¸¦ ¸í½ÃÇÔ¿¡ ÀÖ¾î `!'¸¦ »ç¿ëÇÏ¿© ¿ª±ÔÄ¢ Ç¥ÇöÀÌ °¡´ÉÇÏ´Ù. WWW ÆÐŶ ÀÌ¿ÜÀÇ ¸ðµç TCP ÆÐŶÀ» Ç¥ÇöÇÏ°íÀÚ ÇÒ ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. -p TCP -d 0.0.0.0/0 ! www -p TCP -d ! 192.168.1.1 www À§ÀÇ ¸í½Ã ¹æ¹ý°ú -p TCP -d 192.168.1.1 ! www Ç¥ÇöÀº ¼­·Î ÀüÇô ´Ù¸¥ °ÍÀ̶ó´Â »ç½ÇÀ» ±¸º°ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. The first specifies any TCP packet to the WWW port on any machine but ù¹ø° °ÍÀº 192.168.1.1 À» Á¦¿ÜÇÑ ¸ðµç ¸Ó½ÅÀÇ WWW Æ÷Æ®¸¦ »ç¿ëÇÏ´Â TCP ÆÐŶÀ» °¡¸®Å°´Â ¹Ý¸é µÎ¹ø° °ÍÀº 192.168.1.1 ¸Ó½ÅÀ¸·Î ¿À´Â WWW Æ÷Æ® ÀÌ¿ÜÀÇ ¸ðµç TCP Á¢¼ÓÀ» ³ªÅ¸³½´Ù. ¸¶Áö¸·À¸·Î ´ÙÀ½ Ç¥ÇöÀº 192.168.1.1 ÀÌ ¾Æ´Ï°í WWW Æ÷Æ®°¡ ¾Æ´ÔÀ» ³ªÅ¸³½´Ù: -p TCP -d ! 192.168.1.1 ! www 3.1.3.3.2. ICMP ŸÀÔ°ú ÄÚµå ¸í½ÃÇϱâ ICMP ¿ª½Ã ºÎ°¡ ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù. ÇÏÁö¸¸ ICMP ¿¡ ÀÖ¾î Æ÷Æ®¶õ ¾ø±â ¶§¹®¿¡ ±× Àǹ̴ ÀüÇô ´Ù¸£´Ù. `-s' ¿É¼Ç ´ÙÀ½¿¡ ICMP À̸§(À̸§À» ¾Ë¾Æº¸·Á¸é `ipchains -h icmp'¶ó°í ¸í·É ÇÑ´Ù)À» Àû°Å³ª ¶Ç´Â ¼ýÀÚ·Î µÈ ICMP À¯Çü°ú ÄÚµå·Î ÀûÀ» ¼ö ÀÖ´Ù. ICMP À¯Çü´Â `-s' ¿É¼Ç µÚ¿¡ ³ª¿À°í ÄÚµå´Â `-d' ¿É¼Ç µÚ¿¡ ³ª¿Ã ¼ö ÀÖ´Ù. ICMP À̸§Àº »ó´çÈ÷ ±æ´Ù: µû¶ó¼­ ´Ù¸¥ °Í°ú ±¸º°ÇÒ ¼ö ÀÖÀ» Á¤µµ·Î¸¸ Àû¾î ÁÖ¸é µÈ´Ù. °¡Àå ÈçÇÑ ICMP ÆÐŶ Áß ÀϺÎÀÌ´Ù. ¹øÈ£ À̸§ ÇÊ¿ä·Î ÇÏ´Â °÷ 0 echo-reply ping 3 destination-unreachable ¸ðµç TCP/UDP ÀÚ·á ±³È¯ 5 redirect ¶ó¿ìÆà µ¥¸óÀ» »ç¿ëÇÏÁö ¾ÊÀ» ¶§ÀÇ ¶ó¿ìÆà 8 echo-request ping 11 time-exceeded traceroute Áö±Ý ÇöÀç·Î¼­´Â ICMP À̸§ ¾Õ¿¡ `!'¸¦ ºÙÀÏ ¼ö ¾ø´Â »óÅÂÀÌ´Ù. Àý´ë·Î Àý´ë·Î ICMP À¯Çü 3 ¹ø ¸Þ½ÃÁö¸¦ ¸·¾Æ¼± ¾ÈµÈ´Ù. (``ICMP ÆÐŶ'' Âü°í) 3.1.3.4. ÀÎÅÍÆäÀ̽º ¸í½ÃÇϱâ `-i' ¿É¼ÇÀ» »ç¿ëÇÏ¿© Àû¿ëÇÒ ÀÎÅÍÆäÀ̽º À̸§À» ¸í½ÃÇÒ ¼ö ÀÖ´Ù. µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º(Áï, `input' »ç½½À» Åë°úÇÏ´Â ÆÐŶ¿¡ ´ëÇÏ¿©)´Â ÆÐŶÀÌ µé¾î¿Â ÀÎÅÍÆäÀ̽º¸¦ °£ÁÖÇÑ´Ù. ³í¸®ÀûÀ¸·Î º¼ ¶§ ³ª°¡´Â ÆÐŶ¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º(`output' »ç½½À» Åë°úÇÏ´Â ÆÐŶ¿¡ ´ëÇÏ¿©)´Â ±×µéÀÌ ½ÇÁ¦·Î ³ª°¥ ÀÎÅÍÆäÀ̽º¸¦ °¡¸®Å²´Ù. `forward' »ç½½À» °¡·ÎÁö¸¦ ÆÐŶ¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º ¶ÇÇÑ ÆÐŶÀÌ ³ª°¥ ÀÎÅÍÆäÀ̽º¸¦ ¶æÇÑ´Ù. ¸Å¿ì ´Ù¾çÇÑ Á¶ÇÕÀÌ °¡´ÉÇÏ´Ù°í º»´Ù. Áö±Ý ÇöÀç Á¸ÀçÇÏÁö ¾Ê´Â ÀÎÅÍÆäÀ̽º¸¦ ¸í½ÃÇصµ ¾Æ¹« ¹®Á¦ ¾ø´Ù. ÀåÄ¡°¡ ÀÛµ¿Çϱâ Àü±îÁö´Â ±× ±ÔÄ¢¿¡ ¾î¶°ÇÑ °æ¿ìµµ ÇØ´çµÇÁö ¾ÊÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ Æ¯Â¡Àº ´ÙÀ̾ó ¾÷ PPP ¿¬°á(ÀϹÝÀûÀ¸·Î `ppp0')°ú °°Àº °æ¿ì¿¡ ¸Å¿ì ¾µ¸ðÀÖ´Ù. Ưº°ÇÑ °æ¿ì·Î¼­ ÀÎÅÍÆäÀ̽º À̸§ÀÌ `+'·Î ³¡³ª¸é ±× ¹®ÀÚ¿­·Î ½ÃÀÛÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̽º(ÇöÀç Á¸ÀçÇÏµç ¾Êµç °ü°è¾øÀÌ)¿¡ Àû¿ëµÈ´Ù. ¿¹¸¦ µé¾î `-i ppp+' ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¸ðµç PPP ÀÎÅÍÆäÀ̽º¸¦ °¡¸®Å²´Ù. ÁÖ¾îÁø ÀÎÅÍÆäÀ̽º¸¦ Á¦¿ÜÇÑ ÀÎÅÍÆäÀ̽º¸¦ Ç¥ÇöÇϱâ À§ÇØ `!' ¸¦ ÀÎÅÍÆäÀ̽º À̸§ ¾Õ¿¡ ºÙÀÏ ¼ö ÀÖ´Ù. 3.1.3.5. TCP SYN ÆÐŶ¸¸ ¸í½ÃÇϱ⠶§·Î´Â TCP Á¢¼ÓÀ» ÇÑ ¹æÇâÀ¸·Î¸¸ Çã¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î ¿ÜºÎ WWW ¼­¹ö¿¡ ´ëÇÑ Á¢¼ÓÀ» Çã¿ëÇϸ鼭µµ Áö±Ý ¼­¹ö »ó¿¡ ÀÛµ¿ ÁßÀÎ ¼­¹ö¿¡´Â Á¢¼ÓÇÏÁö ¸øÇϵµ·Ï ÇßÀ¸¸é ÇÒ ¶§°¡ ÀÖ´Ù. ÀÚ¿¬½º·± Á¢±Ù ¹æ½ÄÀº ¼­¹ö·ÎºÎÅÍ ¿À´Â TCP ÆÐŶÀ» ºÀ¼âÇÏ´Â °ÍÀ̸®¶ó. ÇÏÁö¸¸ ºÒÇàÇÏ°Ôµµ TCP Á¢¼ÓÀº ¾ç¹æÇâÀ¸·Î ÆÐŶÀÌ ¿À°¥ ¼ö ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ ÇØ°áÃ¥À¸·Î¼­ Á¢¼ÓÀ» ¿äûÇÏ´Â ÆÐŶ¸¸ ºÀ¼âÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ÀÌ ÆÐŶÀ» SYN ÆÐŶÀ̶ó ºÎ¸¥´Ù.(±â¼úÀûÀÎ ¼³¸íÀ¸·Î´Â SYN Ç÷¡±×°¡ ¼³Á¤µÇ¾î ÀÖ°í FIN, ACK Ç÷¡±×´Â ¼³Á¤µÇÁö ¾ÊÀº ÆÐŶÀ» °¡¸®Å²´Ù) ÀÌ ÆÐŶÀ» Çã¿ëÇÏÁö ¾ÊÀ½À¸·Î½á Á¢¼Ó ¿äûÀ» ¸·À» ¼ö ÀÖ´Ù. `-y' Ç÷¡±×¸¦ ÀÌ·± ¿ëµµ·Î »ç¿ëÇÑ´Ù. ¿À·ÎÁö TCP ÇÁ·ÎÅäÄÝ¿¡¸¸ ÇØ´çÇÑ´Ù. ¿¹¸¦ µé¾î 192.168.1.1 ·ÎºÎÅÍ ¿À´Â TCP Á¢¼ÓÀ» Ç¥ÇöÇÒ ¶§´Â ´ÙÀ½°ú °°´Ù. -p TCP -s 192.168.1.1 -y ¿ª½Ã `!'¸¦ ºÙÀÓÀ¸·Î½á Á¢¼Ó ÃʱâÈ­ ÆÐŶ ÀÌ¿ÜÀÇ ÆÐŶÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. 3.1.3.6. Á¶°¢(Fragments) ó¸®Çϱ⠶§¶§·Î ÇϳªÀÇ ÆÐŶÀÌ ÇÑ ¹ø¿¡ ÇÑ È¸¼±À» Åë°úÇϱ⿡´Â ³Ê¹« Å« °æ¿ì°¡ ¹ß»ýÇÑ´Ù. ÀÌ ¶§´Â ÆÐŶÀÌ `Á¶°¢'À¸·Î ³ª´µ¾î ¿©·¯ °³ÀÇ ÆÐŶÀ¸·Î Àü¼ÛµÈ´Ù. ¹Þ´Â ÂÊ¿¡¼­´Â ÀÌ Á¶°¢À» ¸ð¾Æ ÇϳªÀÇ ÆÐŶÀ¸·Î À籸¼ºÇÑ´Ù. Á¶°¢°ú °ü·ÃµÈ ¹®Á¦´Â ´ÙÀ½°ú °°´Ù. ¾Õ¼­ ³ª¿­ÇÑ ¸î °¡Áö ¸í½Ã ¹æ¹ý (ƯÈ÷ ¹ß½ÅÁö Æ÷Æ®, ¸ñÀûÁö Æ÷Æ®, ICMP À¯Çü, ICMP ÄÚµå ¶Ç´Â TCP SYN Ç÷¡±×) Àº Ä¿³ÎÀÌ ÆÐŶÀÇ ½ÃÀÛ ºÎºÐÀ» º¸°í ÆǺ°Çϴµ¥ ÀÌ Á¤º¸°¡ ¿À·ÎÁö ù¹ø° Á¶°¢¿¡ ¸¸ Á¸ÀçÇÑ´Ù´Â »ç½Ç·ÎºÎÅÍ À¯·¡ÇÑ´Ù. ¿©·¯ºÐÀÇ ¸Ó½ÅÀÌ ¿ÜºÎ ³×Æ®¿÷À¸·Î ³ª°¡´Â À¯ÀÏÇÑ ¿¬°á ⱸ¶ó¸é Ä¿³Î ÄÄÆÄÀϽà `IP: always defragment'¸¦ Y ·Î ¼³Á¤ÇÏ°í ÄÄÆÄÀÏÇÔÀ¸·Î½á ¸®´ª½º ¸Ó½ÅÀ» Áö³ª °¡´Â ¸ðµç Á¶°¢À» ¸ðÀ¸µµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¹®Á¦¸¦ »ê¶æÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀ» ¶§´Â Á¶°¢ÀÌ ÇÊÅ͸µ ±ÔÄ¢¿¡ ÀÇÇØ ¾î¶»°Ô 󸮵ǴÂÁö ÀÌÇØÇÏ´Â ÀÏÀÌ Áß¿äÇÏ´Ù. ¿ì¸®°¡ °®°í ÀÖÁö ¸øÇÑ Á¤º¸¸¦ ¿ä±¸ÇÏ´Â ¾î¶² ÇÊÅ͸µ ±ÔÄ¢µµ ÀÏÄ¡ ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. À̴ ù¹ø° Á¶°¢ÀÌ ¸¶Ä¡ ´Ù¸¥ ÆÐŶ°ú ¸¶Âù°¡Áö·Î 󸮵ÊÀ» ¶æÇÑ´Ù. ÇÏÁö¸¸ µÎ¹ø° ÀÌÈĺÎÅÍ´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. µû¶ó¼­ `-p TCP -s 192.168.1.1 www' ¶ó´Â ±ÔÄ¢(¹ß½Å Æ÷Æ®°¡ `www'ÀÎ °Í)Àº ù¹ø° Á¶°¢À» Á¦¿ÜÇÏ°í ³ª¸ÓÁö Á¶°¢¿¡ ´ëÇÏ¿© ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ±× ¹Ý´ë ±ÔÄ¢ÀÎ `-p TCP -s 192.168.1.1 ! www' µµ ¸¶Âù°¡Áö´Ù. ±×·¸Áö¸¸ `-f' Ç÷¡±×¸¦ »ç¿ëÇÏ¿© µÎ¹ø° ÀÌÈÄÀÇ Á¶°¢¿¡ ´ëÇÏ¿© ±ÔÄ¢À» ¸í½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ Á¶°¢µé¿¡ ´ëÇÏ¿© TCP, UDP Æ÷Æ®, ICMP À¯Çü, ICMP ÄÚµå ¶Ç´Â TCP SYN Ç÷¡±×¸¦ ¸í½ÃÇÏ´Â °ÍÀº ºÐ¸íÈ÷ ÀûÀýÁö ¾Ê´Ù. `!'¸¦ `-f' ¾Õ¿¡ ºÙÀÓÀ¸·Î½á µÎ¹ø° ÀÌÈÄÀÇ Á¶°¢ÀÌ ¾Æ´Ñ °Í¿¡ ´ëÇÑ ±ÔÄ¢À» ¸í½ÃÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. Usually it is regarded as safe to let second and further fragments ÀϹÝÀûÀ¸·Î µÎ¹ø° ÀÌÈÄÀÇ Á¶°¢Àº ±×³É ³öµÎ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù. ¿Ö³ÄÇϸé ÇÊÅ͸µ ±ÔÄ¢ÀÌ Ã¹¹ø° Á¶°¢¿¡ ¿µÇâÀ» ÁÙ °ÍÀÌ°í ¸ñÀûÁö È£½ºÆ®¿¡¼­ Á¦´ë·Î Á¶°¢ÀÌ ¸ðÀÌÁö ¸øÇÏ°Ô ÇÒ °ÍÀ̱⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± Á¡À» ÀÌ¿ëÇÏ¿© Á¶°¢µéÀ» º¸³»°Ô µÇ¸é ¸Ó½ÅÀÌ ´Ù¿îµÇ´Â ¹ö±×°¡ ¹ß°ßµÈ Àû ÀÖ´Ù. ¿©·¯ºÐÀÇ ÆÇ´Ü¿¡ ¸Ã±ä´Ù. ³×Æ®¿÷ °ü¸®ÀÚ°¡ ÁÖÀÇÇÒ Á¡ : À߸ø Çü¼ºµÈ ÆÐŶ(TCP, UDP, ICMP ÆÐŶÀÌ Æ÷Æ®³ª ICMP ÄÚµå, À¯ÇüÀ» ¹æÈ­º® Äڵ尡 Àб⿡´Â ³Ê¹« ÀÛÀº °æ¿ì) ¶ÇÇÑ Á¶°¢À¸·Î °£ÁÖÇÑ´Ù. 8 ¹ø° À§Ä¡¿¡ ÀÖ´Â TCP Á¶°¢¸¸ÀÌ ¸í½ÃÀûÀ¸·Î ¹æÈ­º® Äڵ忡 ÀÇÇØ ¹ö·ÁÁø´Ù.(ÀÌ ¶§ syslog ¿¡ ¿¡·¯ ¸Þ½ÃÁö°¡ ³ªÅ¸³­´Ù ) ¿¹¸¦ µé¾î ´ÙÀ½ ±ÔÄ¢Àº 192.168.1.1 ·Î °¡´Â ¸ðµç Á¶°¢À» ¹ö¸°´Ù. # ipchains -A output -f -D 192.168.1.1 -j DENY # 3.1.4. ÇÊÅ͸µÀÇ ºÎÂ÷ÀûÀÎ È¿°ú ÁÁ´Ù. Áö±Ý±îÁö ±ÔÄ¢À» »ç¿ëÇÏ¿© ÆÐŶÀ» Àâ¾Æ³»´Â ¸ðµç ¹æ¹ýÀ» ¹è¿ü´Ù. ¸¸¾à ÆÐŶÀÌ ±ÔÄ¢¿¡ ºÎÇÕÇÏ¸é ´ÙÀ½°ú °°Àº ÀÏÀÌ ÀϾ´Ù: 1. ±ÔÄ¢¿¡ ´ëÇÑ ¹ÙÀÌÆ® Ä«¿îÅÍ°¡ ÆÐŶÀÇ Å©±â(Çì´õ¿À ¸ðµç ÀÚ·á)¸¸Å­ Áõ°¡ÇÑ´Ù. 2. ±ÔÄ¢¿¡ ´ëÇÑ ÆÐŶ Ä«¿îÅÍ°¡ Áõ°¡ÇÑ´Ù. 3. ±ÔÄ¢¿¡¼­ ¿ä±¸ÇÏ´Â °æ¿ì ÆÐŶÀ» ±â·ÏÇÑ´Ù. 4. ±ÔÄ¢¿¡¼­ ¿ä±¸ÇÏ´Â °æ¿ì ÆÐŶÀÇ ¼­ºñ½º À¯Çü(Type Of Service) Çʵ带 º¯°æÇÑ´Ù. 5. ±ÔÄ¢¿¡¼­ ¿ä±¸ÇÏ´Â °æ¿ì ÆÐŶÀ» Ç¥½ÃÇÑ´Ù.(2.0 Ä¿³Î ½Ã¸®Áî¿¡¼­´Â ¾ÈµÊ) 6. ±ÔÄ¢ ¸ñÇ¥¸¦ Á¶»çÇÏ¿© ÆÐŶ¿¡ ´ëÇÏ¿© ¾î¶² ÀÏÀ» ÇÒ °ÍÀÎÁö °áÁ¤ÇÑ´Ù. For variety, I'll address these in order of importance. Á߿伺ÀÇ ¼ø¼­´ë·Î ÀÌ ¹®Á¦¸¦ ¾ð±ÞÇϵµ·Ï ÇÏ°Ú´Ù. 3.1.4.1. ¸ñÇ¥ ¸í½ÃÇϱâ `target' Àº Ä¿³ÎÀÌ ±ÔÄ¢¿¡ ¸Â´Â ÆÐŶÀ» ¾î¶»°Ô ó¸®ÇÒ °ÍÀÎÁö ¸»ÇØÁÖ´Â °ÍÀÌ´Ù. ipchains ´Â `-j' (¾îµð¾îµð·Î Á¡ÇÁÇÑ´Ù°í »ý°¢Ç϶ó)À» ½á¼­ ¸ñÇ¥À» ¸í½ÃÇÑ´Ù. °¡Àå °£´ÜÇÑ °æ¿ì´Â ¾Æ¹«·± ¸ñÇ¥°¡ ¾ø´Â °æ¿ìÀÌ´Ù. ÀÌ·± ±ÔÄ¢(º¸Åë `ȸ°è (accounting) ±ÔÄ¢'À̶ó ºÎ¸¥´Ù)Àº ƯÁ¤ À¯ÇüÀÇ ÆÐŶ¿¡ ´ëÇÏ¿© °¹¼ö¸¦ ¼¿ ¶§ »ç¿ëµÈ´Ù. ±ÔÄ¢¿¡ ¸Âµç Ʋ¸®µç Ä¿³ÎÀº »ç½½ ¼ÓÀÇ ´ÙÀ½ ±ÔÄ¢À¸·Î ÇâÇÑ´Ù. ¿¹¸¦ µé¾î 192.168.1.1·ÎºÎÅÍ ¿À´Â ÆÐŶÀÇ °¹¼ö¸¦ ¼¼°íÀÚ ÇÒ ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù: # ipchains -A input -s 192.168.1.1 # (`ipchains -L -v'¸¦ »ç¿ëÇÏ¿© °¢ ±ÔÄ¢¿¡ ¿¬°üµÈ ¹ÙÀÌÆ®, ÆÐŶ Ä«¿îÅ͸¦ º¼ ¼ö ÀÖ´Ù.) 6 °³ÀÇ Æ¯º°ÇÑ ¸ñÇ¥°¡ ÀÖ´Ù. óÀ½ 3 °¡Áö´Â `ACCEPT', `REJECT', `DENY' ·Î¼­ ¸Å¿ì °£´ÜÇÏ´Ù. ACCEPT´Â ÆÐŶÀÌ Åë°úÇϵµ·Ï Çã¿ëÇÑ´Ù. DENY´Â ¸¶Ä¡ ÆÐŶÀ» ¹ÞÁö ¾ÊÀº °Íó·³ ¹ö¸°´Ù. REJECT´Â ÆÐŶÀ» ¹ö¸®Áö¸¸ ÆÐŶÀÇ ¹ß½ÅÁö¿¡ ICMP ´ä½ÅÀ» º¸³»¾î ¸ñÀûÁö¿¡ µµÂøÇÒ ¼ö ¾øÀ½À» Å뺸ÇÑ´Ù.(ICMP ÆÐŶÀÌ ¾Æ´Ñ °æ¿ì) ±× ´ÙÀ½Àº `MASQ'·Î¼­ Ä¿³Î·Î ÇÏ¿©±Ý ÆÐŶÀ» ¸Å½ºÄ¿·¹À̵åÇÏ°Ô ÇÑ´Ù. Á¦´ë·Î ÀÛµ¿Çϱâ À§Çؼ­´Â IP ¸Å½ºÄ¿·¹À̵ùÀÌ °¡´ÉÇϵµ·Ï Ä¿³ÎÀÌ ÄÄÆÄÀϵǾî ÀÖ¾î¾ß ÇÑ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº Masquerading-HOWTO¿Í º°Ã· ``ipchains¿Í ipfwadm °£ÀÇ Â÷ÀÌÁ¡''À» Âü°íÇ϶ó. ÀÌ ¸ñÇ¥´Â `forward' »ç½½À» Åë°úÇÏ´Â ÆÐŶ¿¡¸¸ À¯È¿ÇÏ´Ù. ¶Ç ´Ù¸¥ Áß¿äÇÑ Æ¯º° ¸ñÇ¥·Î´Â Ä¿³Î·Î ÇÏ¿©±Ý ÆÐŶÀÌ ÇâÇÏ°í ¾îµð·Î ÇâÇÏ°í ÀÖ¾úµç »ó°ü¾øÀÌ Áö¿ª Æ÷Æ®·Î ÆÐŶÀÇ ¹æÇâÀ¸·Î º¯°æÇعö¸®´Â `REDIRECT'°¡ ÀÖ´Ù. TCP, UDP¿Í °°Àº ÇÁ·ÎÅäÄÝ¿¡¼­¸¸ °¡´ÉÇÏ´Ù. ¼±ÅÃÀûÀ¸·Î Æ÷Æ®(À̸§ ¶Ç´Â ¹øÈ£)¸¦ `-j REDIRECT' ´ÙÀ½¿¡ ÀûÀ½À¸·Î½á ¾î¶² ƯÁ¤ Æ÷Æ®·Î ÇâÇÏ°í ÀÖ´ø ÆÐŶÀ» ´Ù¸¥ Æ÷Æ®·Î ¹æÇâÀüȯ½Ãų ¼ö ÀÖ´Ù. ÀÌ ¸ñÇ¥´Â `input' »ç½½À» Åë°úÇÏ´Â ÆÐŶ¿¡ À¯È¿ÇÏ´Ù. Ưº°ÇÑ ¸ñÇ¥ÀÇ ¸¶Áö¸·Àº `RETURN'À¸·Î¼­ Áï½Ã »ç½½ÀÇ ¸¶Áö¸· Ç׸ñÀ» ¶°³ªµµ·Ï ÇÑ´Ù. (``Á¤Ã¥ Á¤Çϱâ''¸¦ Âü°í) ÀÌ¿ÜÀÇ ´Ù¸¥ ¸ñÇ¥´Â »ç¿ëÀÚ Á¤ÀÇ »ç½½(``Àüü »ç½½¿¡ ´ëÇÑ µ¿ÀÛ'' Âü°í)ÀÌ´Ù. ÆÐŶÀº »ç½½ÀÇ ±ÔÄ¢À» Åë°úÇϱ⠽ÃÀÛÇÑ´Ù. ¸¸¾à »ç½½¿¡¼­ ÆÐŶÀÇ ¿î¸íÀÌ °áÁ¤µÇÁö ¾Ê¾Ò°í »ç½½ Åë°ú¸¦ ¸¶ÃÆ´Ù¸é ÇöÀç ÁøÇà ÁßÀ̾ú´ø »ç½½ÀÇ ¹Ù·Î ´ÙÀ½ ±ÔÄ¢¿¡¼­ ÆÐŶ Åë°ú ÀÛ¾÷ÀÌ Àç°³µÈ´Ù. ASCII ¾ÆÆ® ½Ã°£ÀÌ µ¹¾Æ¿Ô´Ù. ´ÙÀ½ 2 °³ÀÇ (¾à°£Àº ¸ÛûÇÑ) »ç½½À» »ý°¢ÇØ º¸ÀÚ. Çϳª´Â ³»Àå »ç½½ÀÎ `input'À̸ç Çϳª´Â »ç¿ëÀÚ Á¤ÀÇ »ç½½ÀÎ `Test'ÀÌ´Ù. `input' `Test' ---------------------------- ---------------------------- | Rule1: -p ICMP -j REJECT | | Rule1: -s 192.168.1.1 | |--------------------------| |--------------------------| | Rule2: -p TCP -j Test | | Rule2: -d 192.168.1.1 | |--------------------------| ---------------------------- | Rule3: -p UDP -j DENY | ---------------------------- 192.168.1.1·ÎºÎÅÍ ¿Í¼­ 1.2.3.4·Î °¡´Â TCP ÆÐŶÀ» »ý°¢Çغ»´Ù. ÆÐŶÀÌ ÀÔ·Â »ç½½·Î µé¾î°¡¼­ ±ÔÄ¢ 1 ¹ø¿¡ Àû¿ëÇغ»´Ù. ÇØ´çµÇÁö ¾Ê´Â´Ù. ±ÔÄ¢ 2 ¹øÀÌ ¸Â°í ±× ¸ñÇ¥´Â `Test'ÀÌ´Ù. µû¶ó¼­ Á¶»çÇÒ ´ÙÀ½ ±ÔÄ¢Àº `Test'ÀÇ ½ÃÀÛ ºÎºÐÀÌ´Ù. TestÀÇ ±ÔÄ¢ 1 Àº ¸ñÇ¥¸¦ ¸í½ÃÇÏ°í ÀÖÁö ¾ÊÀ¸¹Ç·Î ±× ´ÙÀ½ ±ÔÄ¢ 2 ¸¦ Àû¿ëÇÑ´Ù. ¸ÂÁö ¾ÊÀ¸¹Ç·Î »ç½½ÀÇ ³¡¿¡ µµ´ÞÇÏ°Ô µÈ´Ù. ¿©±â¼­ ¿ì¸®´Â ¸¶Ä¡ ±ÔÄ¢ 2 ¸¦ ½ÇÇàÇÏ°í ³ª¼­ ±ÔÄ¢ 3 À» ½ÇÇàÇÏ°Ô µÈ °Íó·³ ¿ø·¡ÀÇ `input' »ç½½·Î µ¹¾Æ°£´Ù. ±ÔÄ¢ 3 ¿ª½Ã Àû¿ëµÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ÆÐŶÀÇ °æ·Î´Â ´ÙÀ½°ú °°´Ù: v __________________________ `input' | / `Test' v ------------------------|--/ -----------------------|---- | Rule1 | /| | Rule1 | | |-----------------------|/-| |----------------------|---| | Rule2 / | | Rule2 | | |--------------------------| -----------------------v---- | Rule3 /--+___________________________/ ------------------------|--- v »ç¿ëÀÚ »ç½½À» È¿°úÀûÀ¸·Î »ç¿ëÇϱ⠽ÍÀº »ç¶÷Àº ``¿©·¯ºÐ¸¸ÀÇ ¹æÈ­º® ±ÔÄ¢À» ü°èÈ­Çϱâ'' ¼½¼ÇÀ» Âü°íÇ϶ó. 3.1.4.2. ÆÐŶ ±â·ÏÇϱ⠱ÔÄ¢¿¡ ¸ÂÀ» ¶§ °¡Áú ¼ö ÀÖ´Â ºÎ¼ö È¿°úÀÌ´Ù. ÀÏÄ¡ÇÏ´Â ÆÐŶ¿¡ ´ëÇÏ¿© `-l' Ç÷¡±×¸¦ °¡Áö°í ±â·ÏÇÒ ¼ö ÀÖ´Ù. ÀÏ»óÀûÀÎ ÆÐŶÀ» ±â·ÏÇϱ⠺¸´Ù´Â ¿¹¿ÜÀûÀÎ »óȲÀ» ¹ß°ßÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù. (`man klogd' ¶Ç´Â `man dmesg' Âü°í) 3.1.4.3. ¼­ºñ½º À¯Çü ó¸®Çϱâ IP Çì´õ¿¡¼­ ÀÚÁÖ »ç¿ëµÇÁö´Â ¾Ê´Â 4 °³ÀÇ ºñÆ®¸¦ ¼­ºñ½º À¯Çü(Type of Service, TOS) ºñÆ®¶ó°í ºÎ¸¥´Ù. ÀÌ ºñÆ®µéÀº ÆÐŶÀÇ Ã³¸® ¹æ½Ä¿¡ ¿µÇâÀ» ÁØ´Ù. 4 °³ÀÇ ºñÆ®´Â "ÃÖ¼Ò Áö¿¬(Minimum Delay)", "ÃÖ´ë Àü¼Û·ü(Maximum Throughput)", "ÃÖ´ë ¾ÈÁ¤¼º(Maximum Reliability)", "ÃÖ¼Ò °æ·Î(Minimum Cost)" ÀÌ´Ù. ÇÑ ¹ø¿¡ Çϳª¸¸ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. TOS ó¸® ÄÚµåÀÇ ÀúÀÚÀÎ Rob van Nieuwkerk ¾¾ÀÇ ¸»À» µé¾îº¸°Ú´Ù. ¹«¾ùº¸´Ùµµ ³»°Ô À־ "ÃÖ¼Ò Áö¿¬(Minimum Delay)"ÀÌ Áß¿äÇÏ´Ù. ³ªÀÇ »óÀ§ ¶ó¿ìÅÍ(¸®´ª½ºÀÌ´Ù)·Î °¡´Â "´ëÈ­Çü" ÆÐŶ¿¡ ´ëÇÏ¿© ÀÌ ºñÆ®¸¦ ÄѵдÙ. ³ª´Â 33k6 ¸ðµ© µÞÂÊÀÌ ÀÖ´Ù. ¸®´ª½º´Â 3 °³ÀÇ Å¥¸¦ ÅëÇØ ÆÐŶÀÇ ¿ì¼±±ÇÀ» Á¶Á¤ÇÑ´Ù. ÀÌ·± ½ÄÀ¸·Î µ¿½Ã¿¡ ´ë·®ÀÇ ´Ù¿î·Îµå ÀÛ¾÷À» Çϸ鼭µµ ´ëÈ­Çü ÀÛ¾÷ÀÇ È¿À²À» ³ôÀÏ ¼ö ÀÖ´Ù. (½Ã¸®¾ó ÀåÄ¡ µå¶óÀ̹öÀÇ Å¥µµ ¿ª½Ã ÀÛ¾Ò´õ¶ó¸é ´õ Çâ»óµÇ¾úÀ» ¼ö ÀÖ°ÚÁö¸¸ ¾îÂî µÇ¾úµç Áö¿¬ ½Ã°£À» 1.5 ÃÊ·Î ³·Ãâ ¼ö ÀÖ¾ú´Ù.) The most common use is to set telnet & ftp control connections to °¡Àå ÀϹÝÀûÀÎ »ç¿ë ¹æ¹ýÀº telnet & ftp Á¦¾î Á¢¼Ó¿¡ ´ëÇؼ­´Â "ÃÖ¼Ò Áö¿¬(Minimum Delay)"À» »ç¿ëÇÏ°í FTP ÀÚ·á¿¡ ´ëÇؼ­´Â "ÃÖ´ë Àü¼Û·ü(Maximum Throughput)"À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. ipchains -A output -p tcp -d 0.0.0.0/0 telnet -t 0x01 0x10 ipchains -A output -p tcp -d 0.0.0.0/0 ftp -t 0x01 0x10 ipchains -A output -p tcp -s 0.0.0.0/0 ftp-data -t 0x01 0x08 `-t' Ç÷¡±×´Â 2 °³ÀÇ Àü´Þ º¯¼ö¸¦ 16 Áø¼ö·Î ¹Þ¾ÆµéÀδÙ. ÀÌ·¸°Ô ÇÔÀ¸·Î½á º¹ÀâÇÑ TOS ºñÆ® Á¶ÀÛÀÌ °¡´ÉÇÏ´Ù. ù¹ø° ¸Å½ºÅ©´Â ÆÐŶÀÇ ÇöÀç TOS °ª¿¡ AND µÇ°í µÎ¹ø° ¸Å½ºÅ©´Â XOR µÈ´Ù. ³Ê¹« º¹ÀâÇÏ°Ô ¿©°ÜÁø´Ù¸é ´ÙÀ½ µµÇ¥¸¦ »ç¿ëÇ϶ó. TOS À̸§ °ª ÀüÇüÀûÀÎ ¿ëµµ Minimum Delay 0x01 0x10 ftp, telnet Maximum Throughput 0x01 0x08 ftp-data Maximum Reliability 0x01 0x04 snmp Minimum Cost 0x01 0x02 nntp 3.1.4.4. ÆÐŶ Ç¥½ÃÇϱâ ÇöÀç »ç¿ëµÇ°í ÀÖÁö ¾ÊÁö¸¸ Ä¿³Î v2.1 ½Ã¸®Áî¿¡¼­ Traffic Shaper Äڵ带 Alexey Kuznetsov ¾¾ÀÇ »õ·Î¿î ¼­ºñ½º Ç°Áú(Quality of Service) ±¸ÇöÀ¸·Î ¹Ù²î°Ô µÇ¸é ´õ¿í º¹ÀâÇÏ°í °­·ÂÇÑ »óÈ£ ÀÛ¿ëÀÌ °¡´ÉÇÒ °ÍÀÌ¶ó ¿¹»óÇÏ°í ÀÖ´Ù. µû¶ó¼­ 2.0 ½Ã¸®Áî¿¡¼­µµ ¿ª½Ã ¹«½ÃµÈ´Ù. 3.1.4.5. Àüü »ç½½¿¡ ´ëÇÑ µ¿ÀÛ ipchains ÀÇ À¯¿ëÇÑ ±â´É Áß Çϳª´Â ¿¬°üµÈ ±ÔÄ¢À» ¹­¾î »ç½½ ¼Ó¿¡ ³ÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ³»Àå »ç½½(`input', `output', `forward')°ú ³»Àå ¸ñÇ¥ (`MASQ', `REDIRECT', `ACCEPT', `DENY', `REJECT', `RETURN')°ú À̸§ Ãæµ¹¸¸ ¾ø´Ù¸é ÀÌ »ç½½À» ¾î¶»°Ô ºÎ¸£µç »ó°ü¾ø´Ù. º»ÀÎÀÌ ¾ÕÀ¸·ÎÀÇ È®Àå ±â´É¿¡ ´ëÇÏ¿© »ç¿ëÇÒ Áö ¸ð¸£¹Ç·Î ´ë¹®ÀÚ À̸§À» ÇÇÇÏ±æ ±ÇÀåÇÑ´Ù. »ç½½ À̸§Àº 8 ÀÚ±îÁö °¡´ÉÇÏ´Ù. 3.1.4.6. »õ·Î¿î »ç½½ ¸¸µé±â »õ·Î¿î »ç½½À» ¸¸µé¾îº¸ÀÚ. º»ÀÎÀ¸·Î ¸»ÇÒ °Í °°À¸¸é ¸Å¿ì »ó»ó·ÂÀÌ Ç³ºÎÇÑ(?) »ç¶÷À̱⠶§¹®¿¡ »ç½½ À̸§À» `test'¶ó ÇÏ°Ú´Ù (^^) # ipchains -N test # ¸Å¿ì °£´ÜÇÏ´Ù. ÀÌÁ¦ºÎÅÍ ±ÔÄ¢À» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. 3.1.4.7. »ç½½ Áö¿ì±â »ç½½ Áö¿ì±â ¶ÇÇÑ °£´ÜÇÏ´Ù. # ipchains -X test # ¿Ö `-X' Àΰ¡? ¾Æ~ ÀÌ¹Ì ÁÁÀº ±ÛÀÚµéÀ» ´Ù ½á¹ö·È±â ¶§¹®ÀÌ´Ù. »ç½½À» Áö¿ì´Âµ¥´Â ¸î °¡Áö Á¦ÇÑ »çÇ×ÀÌ ÀÖ´Ù. ÀÏ´Ü »ç½½ÀÌ ºó »óÅ¿©¾ß ÇÑ´Ù.(``»ç½½ ºñ¿ì±â'' Âü°í) ±×¸®°í »ç½½ÀÌ ´Ù¸¥ ±ÔÄ¢ÀÇ ¸ñÇ¥°¡ µÇ¾î¼­´Â ¾ÈµÈ´Ù. 3 °¡Áö ³»Àå »ç½½Àº Áö¿ï ¼ö ¾ø´Ù. 3.1.4.8. »ç½½ ºñ¿ì±â `-F' ¸í·ÉÀ» »ç¿ëÇÏ¸é »ç½½·ÎºÎÅÍ ¸ðµç ±ÔÄ¢À» °£´ÜÈ÷ ºñ¿ï ¼ö ÀÖ´Ù. # ipchains -F forward # »ç½½À» ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ¸ðµç »ç½½ ³»¿ëÀÌ ºñ¿öÁø´Ù. 3.1.4.9. »ç½½ ³»¿ë º¸±â `-L' ¸í·ÉÀ» »ç¿ëÇÏ¿© »ç½½ ¼Ó¿¡ µç ¸ðµç ±ÔÄ¢À» ³ª¿­ÇÒ ¼ö ÀÖ´Ù. # ipchains -L input Chain input (refcnt = 1): (policy ACCEPT) target prot opt source destination ports ACCEPT icmp ----- anywhere anywhere any # ipchains -L test Chain test (refcnt = 0): target prot opt source destination ports DENY icmp ----- localnet/24 anywhere any # `test' Ç׸ñ¿¡ Ç¥½ÃµÈ "refcnt"¶õ `test'¸¦ ¸ñÇ¥·Î °®°í ÀÖ´Â ±ÔÄ¢ÀÇ °¹¼ö¸¦ ³ªÅ¸³½´Ù. »ç½½ÀÌ Áö¿ö±â Àü¿¡ ÀÌ °ªÀÌ 0 À̾î¾ß ÇÑ´Ù.(±×¸®°í »ç½½ ÀÚüµµ ºó »óÅ¿©¾ß ÇÑ´Ù.) »ç½½ À̸§ÀÌ »ý·«µÇ¸é ºó °ÍÀ̶ó ÇÒ Áö¶óµµ ¸ðµç »ç½½ÀÌ Ç¥½ÃµÈ´Ù. There are three options which can accompany `-L'. The `-n' (numeric) `-L' ¸í·É°ú »ç¿ëÇÒ ¼ö ÀÖ´Â 3 °³ÀÇ ¿É¼ÇÀÌ ÀÖ´Ù. `-n'(¼ýÀÚ Ç¥Çö) ¿É¼ÇÀº ipchains·Î ÇÏ¿©±Ý IP ÁÖ¼Ò »ìÆ캸±â¸¦ ÇÏÁö ¾Ê°Ô Çϱ⠶§¹®¿¡ DNS °¡ Á¦´ë·Î ¼³Á¤µÇÁö ¾Ê¾Æ »ó´çÇÑ Áö¿¬ÀÌ »ý±â°Å³ª DNS ¿äûÀ» ÇÊÅ͸µÇÑ °æ¿ì¿¡ À¯¿ëÇÏ´Ù. Æ÷Æ®¿¡ ´ëÇؼ­´Â Æ÷Æ® À̸§ÀÌ ¾Æ´Ñ ¼ýÀڷΠǥ½ÃµÇµµ·Ï ÇÑ´Ù. `-v' ¿É¼ÇÀ» »ç¿ëÇϸé ÆÐŶ, ¹ÙÀÌÆ® Ä«¿îÅÍ, TOS ¸Å½ºÅ©, ÀÎÅÍÆäÀ̽º ±×¸®°í ÆÐŶ Ç¥½Ä°ú °°Àº ±ÔÄ¢ÀÇ ¼¼ºÎ »çÇ×À» º¼ ¼ö ÀÖ´Ù. ¿É¼ÇÀ» ºÙÀÌÁö ¾ÊÀ¸¸é ÀÌ °ªµéÀº Ç¥½ÃµÇÁö ¾Ê´Â´Ù. ¿¹¸¦ º¸ÀÚ: # ipchains -v -L input Chain input (refcnt = 1): (policy ACCEPT) pkts bytes target prot opt tosa tosx ifname mark source destination ports 10 840 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any ÆÐŶ, ¹ÙÀÌÆ® Ä«¿îÅÍÀÇ °ªÀÌ 1000, 1,000,000, 1,000,000,000 ¿¡ ´ëÇÏ¿© `K', `M', `G'¶ó´Â Á¢¹Ì»ç¸¦ »ç¿ëÇÏ¿© Ç¥½ÃµÈ´Ù´Â °ÍÀ» ´«¿©°Ü º¸ÀÚ. `-x' ¿É¼ÇÀ» »ç¿ëÇÏ¸é ±× °ªÀÌ ¸Å¿ì Å©´Ù ÇÒ Áö¶óµµ ¿ÏÀüÇÑ ¼ýÀڷΠǥ½ÃÇØÁØ´Ù. 3.1.4.10. Ä«¿îÅÍ Àç¼³Á¤Çϱâ(0À¸·Î ¸¸µé±â) Ä«¿îÅÍ °ªÀ» 0 À¸·Î ¸¸µé°í ½ÍÀ» ¶§°¡ ÀÖ´Ù. `-Z'(Á¦·Î Ä«¿îÅÍ) ¿É¼ÇÀ» »ç¿ë ÇÏ¸é µÈ´Ù. ¿¹¸¦ º¸ÀÚ: # ipchains -v -L input Chain input (refcnt = 1): (policy ACCEPT) pkts bytes target prot opt tosa tosx ifname mark source destination ports 10 840 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any # ipchains -Z input # ipchains -v -L input Chain input (refcnt = 1): (policy ACCEPT) pkts bytes target prot opt tosa tosx ifname mark source destination ports 0 0 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any # ÀÌ·± Á¢±Ù ¹æ½ÄÀÇ ¹®Á¦Á¡Àº Á¾Á¾ Àç¼³Á¤ ¹Ù·Î Á÷Àü¿¡ Ä«¿îÅÍ °ªÀ» ¾Ë¾Æ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù´Â °ÍÀÌ´Ù. À§ÀÇ ¿¹¿¡¼­ ¾î¶² ÆÐŶÀÌ `-L'°ú `-Z' ¸í·É Áß°£¿¡ Áö³ª°¡´Â °æ¿ì°¡ ¹ß»ýÇÑ´Ù. ÀÌ·± ÀÌÀ¯ ¶§¹®¿¡ °ªÀ» ÀÐÀ¸¸é¼­ µ¿½Ã¿¡ °ªÀ» Àç¼³Á¤Çϱâ À§ÇØ `-L'°ú `-Z'¸¦ °°ÀÌ »ç¿ëÇÑ´Ù. ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀ¸·Î´Â ÇϳªÀÇ »ç½½¿¡ ´ëÇÏ¿© ¸í·ÉÇÒ ¼ö ¾øÀ¸¹Ç·Î ÇÑ ¹ø¿¡ ¸ðµç »ç½½À» º¸¸é¼­ µ¿½Ã¿¡ 0 À¸·Î ¸¸µé¾î¾ß ÇÑ´Ù. # ipchains -L -v -Z Chain input (policy ACCEPT): pkts bytes target prot opt tosa tosx ifname mark source destination ports 10 840 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any Chain forward (refcnt = 1): (policy ACCEPT) Chain output (refcnt = 1): (policy ACCEPT) Chain test (refcnt = 0): 0 0 DENY icmp ----- 0xFF 0x00 ppp0 localnet/24 anywhere any # ipchains -L -v Chain input (policy ACCEPT): pkts bytes target prot opt tosa tosx ifname mark source destination ports 10 840 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any Chain forward (refcnt = 1): (policy ACCEPT) Chain output (refcnt = 1): (policy ACCEPT) Chain test (refcnt = 0): 0 0 DENY icmp ----- 0xFF 0x00 ppp0 localnet/24 anywhere any # 3.1.4.11. Á¤Ã¥ ¼³Á¤Çϱ⠾ռ­ ``¸ñÇ¥ ¸í½ÃÇϱâ'' ¿¡¼­ ¾î¶»°Ô ÆÐŶÀÌ »ç½½À» Åë°úÇÏ´ÂÁö À̾߱âÇÒ ¶§ ÆÐŶÀÌ ³»Àå »ç½½ÀÇ ¸¶Áö¸·À» Åë°úÇÒ ¶§ ¾î¶² ÀÏÀÌ ¹ú¾îÁö´ÂÁö °£·«È÷ ¾Ë¾Æº¸¾Ò´Ù. ÀÌ ¶§ »ç½½ÀÇ `Á¤Ã¥'ÀÌ ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÑ´Ù. ¿À·ÎÁö ³»Àå »ç½½ (`input', `output', `forward')¸¸ÀÌ Á¤Ã¥À» °®´Â´Ù. ¿Ö³ÄÇϸé ÆÐŶÀÌ »ç¿ëÀÚ Á¤ÀÇ »ç½½À» Åë°úÇÏ°í ³ª¸é ¿ø·¡ÀÇ »ç½½¿¡¼­ ´Ù½Ã ½ÃÀÛÇϱ⠶§¹®ÀÌ´Ù. Á¤Ã¥Àº ´ÙÀ½°ú °°Àº Ư¼öÇÑ 4 °¡Áö ´ë»ó Áß Çϳª¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. `ACCEPT', `DENY', `REJECT', `MASQ'. ¿©±â¼­ `MASQ'´Â ¿À·ÎÁö `forward' »ç½½¿¡¸¸ À¯È¿ÇÏ´Ù. ³»Àå »ç½½¿¡ Æ÷ÇÔµÈ ±ÔÄ¢¿¡ `RETURN' ¸ñÇ¥¸¦ µÎ¸é ÆÐŶÀÌ ±ÔÄ¢¿¡ ¸ÂÀ» ¶§ ¸í½ÃÀûÀ¸·Î »ç½½ÀÇ Á¤Ã¥À» µû¸£µµ·Ï Çϴµ¥ ¾µ¸ð ÀÖ´Ù ÀÌ Á¡µµ ¾Ë¾ÆµÎ´Â °ÍÀÌ ÁÁ´Ù. 3.1.5. ¸Å½º·¯ÄÉÀ̵ù(Masquerading)¿¡ °ü·ÃµÈ µ¿ÀÛ IP ¸Å½ºÄ¿·¹À̵ù°ú °ü·ÃÇÏ¿© ½á¸ÔÀ» ¼ö ÀÖ´Â ¸î °¡Áö ¸Å°³º¯¼ö°¡ ÀÖ´Ù. À̵éÀ» À§ÇÑ º°µµÀÇ µµ±¸¸¦ ¸¸µé ÀÌÀ¯°¡ ¾ø´Ù°í »ý°¢Ç߱⿡(ÀÌ »ý°¢Àº ¾ÕÀ¸·Î ¹Ù²ð ¼ö ÀÖ´Ù) `ipchains' ¿¡ ±× ±â´ÉÀ» Æ÷ÇÔ½ÃÄ×´Ù. IP ¸Å½ºÄ¿·¹ÀÌµå ¸í·ÉÀº `-M' ÀÌ´Ù. `-L' °ú °°ÀÌ ¾²¸é ÇöÀç ¸Å½ºÄ¿·¹À̵åµÇ¾î ÀÖ´Â Á¢¼Ó ÇöȲÀ» º¼ ¼ö ÀÖ°í `-S'¸¦ »ç¿ëÇÏ¿© ¸Å½ºÄ¿·¹ÀÌµå ¸Å°³º¯¼ö¸¦ Á¤ÇÒ ¼ö ÀÖ´Ù. `-L' ¸í·É¿¡ `-n'À» ºÙÀ̸é È£½ºÆ® À̸§°ú Æ÷Æ® À̸§ ´ë½Å ¸ðµÎ ¼ýÀÚ·Î º¸¿©ÁÖ¸ç `-v' ¿É¼ÇÀ» ÁÖ¸é ¸Å½ºÄ¿·¹À̵åµÈ Á¢¼Ó »óȲ¿¡ ´ëÇÏ¿© ¼øÂ÷ ¹øÈ£(sequence #)ÀÇ µ¨Å¸(delta)°ªÀ» º¸¿©ÁØ´Ù. `-S' ¸í·É µÚ¿¡´Â 3 °³ÀÇ Å¸ÀӾƿô °ªÀ» ÃÊ ´ÜÀ§·Î Àû¾î¾ß ÇÑ´Ù. Çϳª´Â TCP ¼¼¼Ç, ¶Ç Çϳª´Â FIN ÆÐŶ ÀÌÈÄÀÇ TCP ¼¼¼Ç, ±×¸®°í Çϳª´Â UDP ÆÐŶ¿¡ ´ëÇÑ °ªÀÌ´Ù. °ªÀ» º¯°æÇÏ°í ½ÍÁö ¾ÊÀ» ¶§´Â °£´ÜÈ÷ `0'À» Àû´Â´Ù. ±âº»°ªÀº `/usr/include/net/ip_masq.h'¿¡ ÀûÇô ÀÖÀ¸¸ç ÇöÀç´Â °¢°¢ 15 ºÐ, 2 ºÐ, 5 ºÐÀÌ´Ù. ÀϹÝÀûÀ¸·Î º¯°æÇÏ´Â °ªÀº ù¹ø° °ªÀ¸·Î¼­ FTP ¸¦ À§Çؼ­ÀÌ´Ù. (``FTP ¾Ç¸ù''À» Âü°í) 3.1.6. ÆÐŶ Á¡°ËÇϱ⠶§·Î´Â ¹æÈ­º® »ç½½À» µð¹ö±ëÇϱâ À§ÇØ ¾î¶² ÆÐŶÀÌ ¸Ó½Å¿¡ µé¾î¿À¸é ¾î¶² ÀÏÀÌ ¹ß»ýÇÏ´ÂÁö ¾Ë°í ½ÍÀ» ¶§°¡ ÀÖ´Ù. `ipchains'ÀÇ `-C' ¸í·ÉÀ» »ç¿ëÇÏ¸é µÈ´Ù. Ä¿³ÎÀÌ ½ÇÁ¦ ÆÐŶÀ» °Ë»çÇÒ ¶§ »ç¿ëÇÏ´Â µ¿ÀÏÇÑ ·çƾÀ» »ç¿ëÇÑ´Ù. `-C' Àμö ´ÙÀ½¿¡ ÆÐŶÀ» Å×½ºÆ®ÇØ º¼ »ç½½ À̸§À» Àû´Â´Ù. Ä¿³ÎÀº ¾ðÁ¦³ª `input', `output', `forward' »ç½½¿¡¼­ ½ÃÀÛÇÏÁö¸¸ Å×½ºÆÃÀ» ¸ñÀûÀ¸·Î ÇÒ ¶§´Â ¾î¶² »ç½½¿¡¼­µç ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. `ÆÐŶ'¿¡ ´ëÇÑ ¼¼ºÎ ¼³¸íÀº ¹æÈ­º® ±ÔÄ¢À» ¸í½ÃÇÒ ¶§ »ç¿ëÇß´ø ¹®¹ý ±×´ë·Î »ç¿ëÇÑ´Ù. ƯÈ÷ ÇÁ·ÎÅäÄÝ(`-p'), ¹ß½ÅÁö ÁÖ¼Ò(`-s'), ¸ñÀûÁö ÁÖ¼Ò(`-d'), ÀÎÅÍÆäÀ̽º(`-i') ¿É¼ÇÀ» ²À ¸í½ÃÇØ¾ß ÇÑ´Ù. ÇÁ·ÎÅäÄÝÀÌ TCP ¶Ç´Â UDP ÀÎ °æ¿ì ¹ß½ÅÁö ÁÖ¼Ò Çϳª¿Í ¸ñÀûÁö Æ÷Æ®¸¦ ¸í½ÃÇØ¾ß Çϸç ICMP ÇÁ·ÎÅäÄÝÀÎ °æ¿ì¿¡´Â ICMP À¯Çü°ú Äڵ带 ²À ¸í½ÃÇØ¾ß ÇÑ´Ù. (Á¶°¢ ±ÔÄ¢À» °¡¸®Å°±â À§ÇØ `-f' Ç÷¡±× ¸¦ »ç¿ëÇÑ °æ¿ì°¡ ¾Æ´Ò ¶§ ±×·¯ÇÏ´Ù. ¸¸¾à `-f' ¿É¼ÇÀÌ »ç¿ëµÈ °æ¿ì¿¡´Â ¹ß½ÅÁö ÁÖ¼Ò, ¸ñÀûÁö Æ÷Æ® ¿É¼ÇÀº ¾µ ¼ö ¾ø´Ù.) ÇÁ·ÎÅäÄÝÀÌ TCP ¶ó¸é(±×¸®°í `-f' Ç÷¡±×°¡ ¾ø´Â »óÅÂ) `-y' Ç÷¡±×¸¦ »ç¿ëÇÏ¿© ÆÐŶ¿¡ SYN ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ½À» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº 192.168.1.1 ÀÇ 60000 Æ÷Æ®¿¡¼­ 192.168.1.2 ÀÇ www Æ÷Æ®·Î ÇâÇÏ´Â TCP SYN ÆÐŶÀÌ `input' »ç½½¿¡ µé¾î°¡¼­ ¾î¶² °á°ú¸¦ ³»³õ´ÂÁö Å×½ºÆ®ÇÏ´Â ¿¹ ÀÌ´Ù. ( ÀüÇüÀûÀÎ WWW Á¢¼Ó ½ÃÀÛ °úÁ¤ÀÇ ¿¹ÀÌ´Ù. ) # ipchains -C input -p tcp -y -s 192.168.1.1 60000 -d 192.168.1.2 www packet accepted # 3.1.7. ÇÑ ¹ø¿¡ ¿©·¯ ±ÔÄ¢ ¸¸µé±â¿Í »ç°Ç °¨½ÃÇϱ⠶§·Î´Â ÇϳªÀÇ ¸í·ÉÀ¸·Îµµ ¿©·¯ ±ÔÄ¢¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ¿ì¼± DNS ¸¦ ÅëÇÏ¿© ¿©·¯ °³ÀÇ IP ÁÖ¼Ò·Î Çؼ®µÇ´Â È£½ºÆ® À̸§À» ¸í½ÃÇÏ°Ô µÇ¸é `ipchains'´Â ¸¶Ä¡ ¿©·¯ºÐÀÌ °¢ IP ÁÖ¼Ò¸¶´Ù ÇÑ ¹ø¾¿ ¶È°°Àº ¸í·ÉÀ» ³»¸° °Íó·³ ó¸®ÇÑ´Ù. µû¶ó¼­ ¸¸¾à `www.foo.com' À̶ó´Â È£½ºÆ® À̸§ÀÌ 3 °³ÀÇ IP ÁÖ¼Ò¸¦ °¡¸®Å°°í `www.bar.com' È£½ºÆ® À̸§ÀÌ 2 °³ÀÇ IP ÁÖ¼Ò¸¦ °¡¸®Å°°Ô µÈ´Ù°í ÇÏ°í `ipchains -A input -j reject -s www.bar.com -d www.foo.com' ¶ó ¸í·ÉÇÏ°Ô µÇ¸é ¸¶Ä¡ 6 °³ÀÇ ±ÔÄ¢À» `input' »ç½½¿¡ ³ÖÀº °Í°ú °°´Ù. `ipchains'°¡ ¿©·¯ ÇൿÀ» ÃëÇÏ°Ô ÇÏ´Â ´Ù¸¥ ¹æ¹ýÀº ¾ç¹æÇâ Ç÷¡±×(`-b')¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ Ç÷¡±×¸¦ »ç¿ëÇϸé `ipchains'´Â ¸í·ÉÀ» µÎ ¹ø ³»¸° °Íó·³ µ¿ÀÛÇÑ´Ù. µÎ¹ø° ¸í·ÉÀº ù¹ø° °Í°ú `-s', `-d'°¡ µÚ¹Ù²ï ¸í·ÉÀÌ´Ù. µû¶ó¼­ 192.168.1.1·Î ÇâÇϰųª ±×·ÎºÎÅÍ µé¾î¿À´Â ¸ðµç ÆÐŶ Àü´ÞÀ» ¸·±â À§ÇØ ¼­´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù. # ipchains -b -A forward -j reject -s 192.168.1.1 # °³ÀÎÀûÀ¸·Î´Â `-b' ¿É¼ÇÀ» ÁÁ¾ÆÇÏÁö ¾Ê´Â´Ù. ÀÌ°Ô ÆíÇÏ´Ù°í »ý°¢ÇÏ´Â »ç¶÷Àº ``ipchains-save »ç¿ëÇϱâ'' ¼½¼ÇÀ» Âü°íÇ϶ó. -b ¿É¼ÇÀº »ðÀÔ(`-I'), »èÁ¦(`-D') (±ÔÄ¢ ¹øÈ£¸¦ Àû´Â °æ¿ì Á¦¿Ü), Ãß°¡(`-A'), Á¡°Ë(`-C') ¸í·É°ú ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù. À¯¿ëÇÑ Ç÷¡±×·Î´Â ¿©·¯ºÐÀÇ ¸í·É¿¡ µû¶ó `ipchains'°¡ ¾î¶² ÀÏÀ» ÇÏ°í ÀÖ´ÂÁö º¸¿©ÁÖµµ·Ï ÇÏ´Â `-v'(ÀåȲÇÏ°Ô)°¡ ÀÖ´Ù. ´Ù¼öÀÇ ±ÔÄ¢¿¡ ¿µÇâÀ» ¹ÌÄ¥ °ÍÀ̶ó »ý°¢ÇÏ´Â ¸í·É¿¡¼­ ¾µ¸ðÀÖ´Ù. ¿¹¸¦ µé¾î 192.168.1.1°ú 192.168.1.2 »çÀÌÀÇ Á¶°¢µéÀÇ »óŸ¦ Á¡°ËÇÏ´Â °æ¿ì¸¦ º¸°Ú´Ù. # ipchains -v -b -C input -p tcp -f -s 192.168.1.1 -d 192.168.1.2 -i lo tcp opt ---f- tos 0xFF 0x00 via lo 192.168.1.1 -> 192.168.1.2 * -> * packet accepted tcp opt ---f- tos 0xFF 0x00 via lo 192.168.1.2 -> 192.168.1.1 * -> * packet accepted # 3.2. ¾µ¸¸ÇÑ ¿¹Á¦ ³ª´Â ÀüÈ­Á¢¼Ó PPP Á¢¼Ó(`-i ppp0')À» ÇÏ°í ÀÖ´Ù. ÀüÈ­Á¢¼ÓÀ» ÇÒ ¶§¸¶´Ù ´º½º¸¦ ±Ü¾î¿À¸ç(`-p TCP -s news.virtual.net.au nntp') ¸ÞÀÏÀ» °¡Á®¿Â´Ù. (`-p TCP -s mail.virtual.net.au pop-3') ¸®´ª½º ¹Ú½º¸¦ Á¤±âÀûÀ¸·Î °»½Å Çϱâ À§ÇØ µ¥ºñ¾È FTP °»½Å ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. (`-p TCP -s ftp.debian.org ftp-data') ±× µ¿¾È ISPÀÇ ÇÁ·Ï½Ã¸¦ ÅëÇØ À¥ ¼­ÇÎÀ» Áñ±ä´Ù. (`-p TCP -d proxy.virtual.net.au 8080') ÇÏÁö¸¸ Dilbert Archive »çÀÌÆ®¿¡ º¸ÀÌ´Â doubleclick.net À¸·ÎºÎÅÍ ±¤°í¸¦ ½È¾îÇÑ´Ù. (`-p TCP -y -d 199.95.207.0/24' & `-p TCP -y -s 199.95.208.0/24') Á¢¼Ó Áß¿¡ ´Ù¸¥ »ç¶÷µéÀÌ ³» ¸Ó½ÅÀ¸·Î ftpÇØ µé¾î¿À´Â °ÍÀº °ÔÀÇÄ¡ ¾Ê´Â´Ù. (`-p TCP -d $LOCALIP ftp') ÇÏÁö¸¸ ³» ³×Æ®¿÷ ¿ÜºÎÀÇ »ç¶÷µéÀÌ ³» IP ÁÖ¼Ò¸¦ °¡ÀåÇÏ¿© »ç¿ëÇÏ±æ ¿øÄ¡´Â ¾Ê´Â´Ù. (`-s 192.168.1.0/24') ³»ºÎ ³×Æ®¿÷¿¡ ´Ù¸¥ ¸Ó½ÅÀÌ ¾ø±â ¶§¹®¿¡ ¼³Á¤Àº ¸Å¿ì ½±°Ô ÀÌ·ïÁø´Ù. Áö¿ª ÇÁ·Î¼¼½º ¾î¶² °Íµµ(¿¹¸¦ µé¾î ³×½ºÄÉÀÌÇÁ, Gzilla µîµî) doubleclick.net ¿¡ Á¢¼ÓÇÏÁö ¸øÇϵµ·Ï ÇÏ°í ½Í´Ù. # ipchains -A input -d 199.95.207.0/24 -j REJECT # ipchains -A input -d 199.95.208.0/24 -j REJECT # Áö¿ªÀûÀ¸·Î »ý¼ºµÇ¾î `input' »ç½½À» Åë°úÇÏ´Â ÆÐŶ¿¡ ´ëÇÏ¿© ÀÎÅÍÆäÀ̽º¸¦ `lo'·Î ¼³Á¤Çϱâ À§ÇØ `-i lo'¸¦ ¸í½ÃÇÒ ¼öµµ ÀÖ´Ù. ÀÌÁ¦ ³ª´Â ¿ÜºÎ·Î ³ª°¡´Â ÆÐŶ¿¡ ´ëÇÏ¿© ¿ì¼±±ÇÀ» Á¶Á¤ÇÏ·Á ÇÑ´Ù. ( µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇÏ¿© ÇÒ ¼ö ÀÖ´Â ÀÏÀ̶ó°ï º°·Î ¾ø´Ù. ) ÀûÁö ¾ÊÀº ±ÔÄ¢À» °¡Áö°í Àֱ⠶§¹®¿¡ ÀÌ ¸ðµÎ¸¦ `ppp-out'À̶ó´Â À̸§ÀÇ »ç½½¿¡ ³Ö¾îµÎ´Â °ÍÀÌ ÁÁ´Ù°í »ý°¢ÇÑ´Ù. # ipchains -N ppp-out # ipchains -A output -i ppp0 -j ppp-out # À¥, Åڳݿ¡ ´ëÇؼ­´Â ÃÖ¼Ò Áö¿¬À» ¿øÇÑ´Ù. # ipchains -A ppp-out -p TCP -d proxy.virtual.net.au 8080 -t 0x00 0x10 # ipchains -A ppp-out -p TCP -d 0.0.0.0 telnet -t 0x00 0x10 # ftp ÀÚ·á¿Í nntp, pop-3 ¿¡ ´ëÇؼ­´Â ¿ì¼±±ÇÀ» ³·Ãá´Ù: # ipchains -A ppp-out -p TCP -d 0.0.0.0/0 ftp-data -t 0x00 0x02 # ipchains -A ppp-out -p TCP -d 0.0.0.0/0 nntp -t 0x00 0x02 # ipchains -A ppp-out -p TCP -d 0.0.0.0/0 pop-3 -t 0x00 0x02 # ppp0 ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ µé¾î¿À´Â ÆÐŶÀ» Á¦ÇÑÇÑ ¸î °¡Áö ±ÔÄ¢ÀÌ ÀÖ´Ù: `ppp-in' À̶ó´Â »ç½½À» ¸¸µé¾îº¸ÀÚ: # ipchains -N ppp-in # ipchains -A input -i ppp0 -j ppp-in # ppp0¸¦ ÅëÇØ 192.168.1.* À̶ó´Â ¹ß½Å ÁÖ¼Ò¸¦ °®°í µé¾î¿À´Â ÆÐŶÀº ¸ðµÎ ±â·ÏÇÏ°í ó¸®ÇÑ´Ù. # ipchains -A ppp-in -s 192.168.1.0/24 -l -j DENY # DNS (¸ðµç ¿äûÀ» `203.29.16.1'À¸·Î Àü´ÞÇϱ⠶§¹®¿¡ DNS TCP¿¡ ´ëÇؼ­´Â ÀÀ´äÀ» Çã°¡ÇÑ´Ù), ftp, ¹ÝȯÇÏ´Â(return) ftp-data Á¢¼ÓÀ» Çã°¡ÇÑ´Ù.(return ftp-data ¶õ 1023 Æ÷Æ® À§·Î ³ª°¡´Â ftp-data¸¦ ¸»ÇÑ´Ù.) # ipchains -A ppp-in -p TCP -s 203.29.16.1 -d $LOCALIP dns -j ACCEPT # ipchains -A ppp-in -p TCP -s 0.0.0.0/0 ftp-data -d $LOCALIP 1024: -j ACCEPT # ipchains -A ppp-in -p TCP -d $LOCALIP ftp -j ACCEPT # ¸¶Áö¸·À¸·Î ±× ¹Û¿¡ Áö¿ªÀûÀ¸·Î »ý¼ºµÈ ÆÐŶÀº ¸ðµÎ Çã°¡ÇÑ´Ù: # ipchains -A input -i lo -j ACCEPT # `input' »ç½½¿¡ ´ëÇÑ ±âº» Á¤Ã¥Àº DENYÀÌ´Ù. µû¶ó¼­ ¸í½ÃµÈ °Í ÀÌ¿ÜÀÇ ¸ðµç °ÍÀº °ÅºÎÇÑ´Ù. # ipchains -P input DENY # ÁÖÀÇ: ½ÇÁ¦·Î ÀÌ ¼ø¼­´ë·Î »ç½½ ¼³Á¤À» ÇÏÁö´Â ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ¼³Á¤ Áß¿¡ ÆÐŶµéÀÌ Áö³ª°¥ ¼ö Àֱ⠶§¹®ÀÌ´Ù. °¡Àå ¾ÈÀüÇÑ ¹æ¹ýÀº ¿ì¼± Á¤Ã¥À» DENY·Î ÇÑ ÈÄ ±ÔÄ¢À» »ðÀÔÇسª°¡´Â °ÍÀÌ´Ù. ´ç¿¬È÷ ±ÔÄ¢¿¡¼­ DNS ã¾Æº¸±â¸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì¿¡´Â ¹®Á¦°¡ µÈ´Ù. 3.2.1. ``ipchains-save'' »ç¿ëÇϱ⠿©·¯ºÐÀÌ ¿øÇÏ´Â ´ë·Î ¹æÈ­º® »ç½½À» ¼³Á¤ÇØ ³õÀº ÈÄ, ´ÙÀ½ ¹ø¿¡ ¾î¶»°Ô Çß´ÂÁö ±â¾ïÇÏ¸ç ²þ²þ°Å¸®´Â ÀÏÀº Á¤¸» °íÅ뽺·´´Ù. ¹Ù·Î ÀÌ ¹®Á¦¸¦ À§ÇØ `ipchains-save'¶ó´Â ½ºÅ©¸³Æ®°¡ ÇöÀçÀÇ »ç½½ ¼³Á¤À» Àоîµé¿© ÆÄÀÏ·Î ÀúÀåÇÏ´Â ÀÏÀ» ÇØÁØ´Ù. ´çºÐ°£Àº `ipchains-restore'°¡ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö¿¡ ´ëÇؼ­¸¸ ¸»ÇصΰڴÙ. `ipchains-save' can save a single chain, or all chains (if no chain name is specified). The only option currently permitted is `-v' which prints the rules (to stderr) as they are saved. The policy of the chain is also saved for `input', `output' and `forward' chains. $ ipchains-save > my_firewall Saving `input'. Saving `output'. Saving `forward'. Saving `ppp-in'. Saving `ppp-out'. $ 3.2.2. ``ipchains-restore'' »ç¿ëÇϱâ `ipchains-save'¸¦ »ç¿ëÇÏ¿© ÀúÀåÇÑ »ç½½À» º¹±¸ÇÏ´Â ½ºÅ©¸³Æ®°¡ `ipchains-restore' ÀÌ´Ù. µÎ °³ÀÇ ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù. `-v' ´Â ¾î¶² ±ÔÄ¢ÀÌ Ãß°¡µÇ°í ÀÖ´ÂÁö º¸¿©ÁØ´Ù. `-f' ¿É¼ÇÀº ¾Õ¼­ ¼³¸íÇÑ ´ë·Î »ç½½ÀÌ Á¸ÀçÇÏ´Â °æ¿ì »ç¿ëÀÚ Á¤ÀÇ »ç½½ÀÇ ³»¿ëÀ» ÀÏ´Ü ºñ¿ìµµ·Ï ÇÑ´Ù. ¸¸¾à ½ºÅ©¸³Æ®ÀÇ ÀÔ·Â ³»¿ë¿¡ »ç¿ëÀÚ Á¤ÀÇ »ç½½ÀÌ ÀÖ´Ù¸é `ipchains-restore'´Â »ç½½ÀÌ ÀÌ¹Ì Á¸ÀçÇÏ°í ÀÖ´ÂÁö Á¡°ËÇÑ´Ù. Á¸ÀçÇÏ´Â °æ¿ì ÀÏ´Ü »ç½½ÀÇ ³»¿ëÀ» ¸ðµÎ ºñ¿ï °ÍÀÎÁö(±ÔÄ¢À» ¸ðµÎ Áö¿ì´Â ÀÏ) ¾Æ´Ï¸é ±×³É ÀÌ ºÎºÐÀº ¾Æ¹«·± Àϵµ ÇÏÁö ¾Ê°í ³Ñ¾î°¥ °ÍÀÎÁö Áú¹®À» ¹Þ´Â´Ù. `-f' ¿É¼ÇÀ» ¸í·ÉÇà¿¡ ÁÖ¸é Áú¹® °úÁ¤Àº ¾ø´Ù. ¹«Á¶°Ç »ç½½ÀÇ ³»¿ëÀÌ ÀÏ´Ü ºñ¿öÁø´Ù. ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϱâ À§Çؼ­´Â root ¿©¾ß ÇÑ´Ù; ±ÔÄ¢À» º¹±¸½ÃÄѳõ±â À§ÇØ `ipchains'¸¦ »ç¿ëÇϱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ º¸ÀÚ: # ipchains-restore < my_firewall Restoring `input'. Restoring `output'. Restoring `forward'. Restoring `ppp-in'. Chain `ppp-in' already exists. Skip or flush? [S/f]? s Skipping `ppp-in'. Restoring `ppp-out'. Chain `ppp-out' already exists. Skip or flush? [S/f]? f Flushing `ppp-out'. # 4. ±âŸ µîµî ÀÌ ¼½¼Ç¿¡¼­´Â ¹®¼­ÀÇ ¾Õ ºÎºÐ ±¸Á¶¿¡ ³ÖÀ» ¼ö ¾ø¾ú´ø ±âŸ Á¤º¸¿Í FAQ¸¦ ´Ù·é´Ù. 4.1. ¾î¶»°Ô ¿øÇÏ´Â ¹æÈ­º® ±ÔÄ¢À» ü°èÈ­ÇÒ ¼ö Àִ°¡? ÀÌ Áú¹®¿¡ ¾Õ¼­ ¾à°£ÀÇ »ý°¢ÀÌ ÇÊ¿äÇÏ´Ù. ¿©·¯ºÐÀº ¼Óµµ¸¦ ÃÖÀûÈ­ÇÒ ¼öµµ ÀÖ°í(´ëºÎºÐÀÇ ÆÐŶ¿¡ ´ëÇÏ¿© Á¡°Ë ±ÔÄ¢ÀÇ ¼ö¸¦ ÃÖ¼ÒÈ­ÇÏ´Â ÂÊ) ¶Ç´Â °ü¸®¸¦ ÆíÇÏ°Ô ÇÏ´Â ÂÊÀ¸·Î ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. PPP ó·³ °£ÇæÀûÀ¸·Î ¿¬°áµÇ´Â ȸ¼±À» °¡Áö°í ÀÖ´Â °æ¿ì¿¡´Â ºÎÆÃÇϸ鼭 Á¦ÀÏ ¸ÕÀú input »ç½½¿¡ `-i ppp0 -j DENY' ¸¦ ¼³Á¤ÇÏ°í ½ÍÀ» °ÍÀÌ´Ù. ±×¸®°í `ip-up' ½ºÅ©¸³Æ®¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³Ö¾î »ç¿ëÇÑ´Ù. # Re-create the `ppp-in' chain. ipchains-restore -f < ppp-in.firewall # Replace DENY rule with jump to ppp-handling chain. ipchains -R input 1 -i ppp0 -j ppp-in ip-down ½ºÅ©¸³Æ®ÀÇ ³»¿ëÀº ´ÙÀ½°ú °°´Ù: ipchains -R input 1 -i ppp0 -j DENY 4.2. °É·¯³»¼­´Â ¾ÈµÉ °Í ¿øÇÏÁö ¾Ê´Â ¸ðµç °ÍÀ» °É·¯³»±â ½ÃÀÛÇϱâ Àü¿¡ ¾Ë¾ÆµÎ¾î¾ß ÇÒ ¸î °¡Áö Áß¿äÇÑ Á¡µéÀÌ ÀÖ´Ù. 4.2.1. ICMP ÆÐŶ ICMP packets are used (among other things) to indicate failure for (´Ù¸¥ ¸¹Àº °Íµé Áß¿¡¼­µµ) ICMP´Â ´Ù¸¥ ÇÁÅäÅäÄÝ(TCP, UDP)ÀÇ ½ÇÆи¦ Å뺸ÇÒ ¶§ »ç¿ëµÈ´Ù. `¸ñÀûÁö¿¡ µµ´ÞÇÒ ¼ö ¾øÀ½(destination-unreachable)' ÆÐŶÀÌ ICMP ÆÐŶÀÇ ¿¹ÀÌ´Ù. ÀÌ ÆÐŶÀ» ¸·°Ô µÇ¸é `È£½ºÆ®¿¡ Á¢±ÙÇÒ ¼ö ¾øÀ½ (Host unreachable)' ¶Ç´Â `È£½ºÆ®·ÎÀÇ µµ´Þ °æ·Î ¾øÀ½(No route to host)' ¿¡·¯¸¦ ¹ÞÀ» ¼ö ¾ø°Ô µÈ´Ù. ´ä½ÅÀÌ ¿ÀÁö ¾ÊÀ» °æ¿ì¿¡µµ ¹«ÀÛÁ¤ ±â´Ù¸®°Ô µÈ´Ù. Â¥Áõ³ª°Ô ÇÏ´Â ÀÏÀÌÁö¸¸ ±×·¸°Ô ½É°¢ÇÑ °ÍÀº ¾Æ´Ï´Ù. ´õ Áß¿äÇÑ ¹®Á¦´Â ICMP ÆÐŶÀÌ MTU ã±â¿¡ ¾²Àδٴ »ç½Ç ¶§¹®¿¡ ºñ·ÔµÈ´Ù. Àß µÇ¾î ÀÖ´Â TCP ±¸Çöü(¸®´ª½º Æ÷ÇÔ)µéÀº ÆÐŶÀÌ Á¶°¢À¸·Î ³ª´¸¾øÀÌ ¸ñÀûÁö¿¡ µµÂøÇÒ ¼ö ÀÖ´Â °¡Àå Å« ÆÐŶÀÇ Å©±â¸¦ ¾Ë¾Æ³»±â À§ÇØ MTU ã±â¸¦ »ç¿ëÇÑ´Ù. (Á¶°¢Çö»ó(fragmentation)Àº ¼º´ÉÀ» ÀúÇϽÃÅ°±â ¶§¹®ÀÌ´Ù. ƯÈ÷ Á¶°¢ Áß ÀϺθ¦ ÀÒ°Ô µÇ¸é ¼º´É ÀúÇÏ´Â ¸Å¿ì ½É°¢ÇØÁø´Ù.) MTU ã±â´Â "Á¶°¢ ³ª´©Áö ¸» °Í (Don't Fragment)" ºñÆ®¸¦ ¼³Á¤ÇÑ ÆÐŶÀ» º¸³»°í ³ª¼­ "Á¶°¢ ³ª´©±â°¡ ÇÊ¿äÇÏÁö¸¸ DF(Á¶°¢ ³ª´©Áö ¾Ê¾ÒÀ½) ºñÆ®¸¦ ¼³Á¤ÇÔ(Fragmentation needed but DF set)" À̶ó´Â ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¶§±îÁö Á¶±×¸¶ÇÑ ÆÐŶÀ» º¸³¿À¸·Î½á ÀÌ·ïÁø´Ù. ÀÌ ÆÐŶÀÌ ¹Ù·Î `¸ñÀûÁö¿¡ µµ´ÞÇÒ ¼ö ¾øÀ½(destination-unreachable)' ·ùÀÇ ÆÐŶÀÌ´Ù. ¸¸¾à ÀÌ ÆÐŶÀ» ¹ÞÁö ¸øÇϸé Áö¿ª È£½ºÆ®´Â MTU °ªÀ» ÁÙÀÏ ¼ö ¾ø°Ô µÇ°í ¼º´ÉÀº ÇüÆí¾øÀÌ ¶³¾îÁö°Ô µÈ´Ù. 4.2.2. DNS ´ä½Å ¸ðµç TCP Á¢¼ÓÀ» ¸·°í ½ÍÀ» ¶§°¡ ÀÖ°ÚÁö¸¸ ÀÌ·¸°Ô ÇÏ¸é ¸î °¡Áö Áß¿äÇÑ °ÍÀÌ ÀÛµ¿ÇÏÁö ¾ÊÀ» °æ¿ì°¡ Àִµ¥ ±× ù¹ø°°¡ ¹Ù·Î DNS ÀÌ´Ù. ¿©·¯ºÐÀÇ ¸®´ª½º ¸Ó½ÅÀº È£½ºÆ® À̸§À» IP ÁÖ¼Ò·Î ¹Ù²Ù±â À§ÇØ DNS ¸¦ »ç¿ëÇÑ´Ù. Á¤»óÀûÀÎ °æ¿ì DNS ´Â UDP¸¦ »ç¿ëÇÏÁö¸¸ ´ä½ÅÀÌ Å¬ ¶§´Â TCP ´ä½ÅÀ» »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ Á¢¼Ó ¿ä±¸¸¦ ¸·°Ô µÇ¸é DNS °á°ú¸¦ ½Å·ÚÇÒ ¼ö ¾ø´Ù. DNS ¿äûÀ» Ç×»ó ¶È°°Àº ¿ÜºÎ ¸Ó½ÅÀÌ Ã³¸®ÇÏ°Ô ÇÏ°í ÀÖ´Ù¸é ( /etc/resolv.conf ¿¡¼­ `nameserver' ¼³Á¤À» ÇØÁְųª ij½³ ³×ÀÓ¼­¹ö¸¦ Àü´Þ ¸ðµå·Î »ç¿ëÇÏ°í ÀÖ´Â °æ¿ì ) ¹Ù·Î ±× ¸Ó½Å¿¡ ´ëÇؼ­¸¸ `domain' Æ÷Æ®·ÎÀÇ TCP Á¢¼ÓÀ» Çã¿ëÇÏ¸é µÈ´Ù. 4.2.3. FTP ¿¡ °ü·ÃÇÑ ¾Ç¸ù ¶Ç ÇϳªÀÇ °íÀüÀûÀÎ ¹®Á¦°¡ FTP ÀÌ´Ù. FTP¿¡´Â µÎ °¡Áö "¸ðµå"°¡ ÀÖ´Ù. ÀüÅëÀûÀÎ °ÍÀ» `active mode' ¶ó°í ºÎ¸£°í ±Ù·¡¿¡ µµÀÔµÈ °ÍÀ» `passive mode' ¶ó°í ºÎ¸¥´Ù. À¥ ºê¶ó¿ìÁ®´Â ±âº»ÀûÀ¸·Î ¼öµ¿ ¸ðµå¸¦ »ç¿ëÇÏ°í ¸í·ÉÇà ftp ÇÁ·Î±×·¥µéÀº ÀϹÝÀûÀ¸·Î ´Éµ¿ ¸ðµå¸¦ »ç¿ëÇÑ´Ù. ´Éµ¿ ¸ðµå¿¡¼­´Â ¿ø°Ý ¸Ó½ÅÀÌ ÆÄÀÏÀ» º¸³»°íÀÚ ÇÒ ¶§(¶Ç´Â ls ³ª dir ¸í·ÉÀÇ °á°ú) ¿ì¼± ÀÌ ÂÊ Áö¿ª ¸Ó½ÅÀ¸·Î TCP ¿¬°áÀ» ½ÃµµÇÑ´Ù. µû¶ó¼­ ¿©±â¼­ »ç¿ëÇÏ´Â TCP Á¢¼ÓÀ» ¸·°Ô µÇ¸é ´Éµ¿ ¸ðµåÀÇ FTP °¡ ÀÛµ¿ÇÏÁö ¾Ê°Ô µÈ´Ù. ¸¸¾à ¼öµ¿ ¸ðµå¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù¸é ÁÁ´Ù. ¼öµ¿ ¸ðµå´Â ÀÚ·á ¹Þ±âÀÇ °æ¿ì¿¡µµ Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼­¹ö·Î ÀÚ·á Á¢¼ÓÀÌ ÀÌ·ïÁö±â ¶§¹®ÀÌ´Ù. ¼±ÅñÇÀÌ ¾ø´Ù¸é 1024 ÀÌ»óÀÇ Æ÷Æ® ±×¸®°í 6000°ú 6010 »çÀÌÀÇ Æ÷Æ®´Â Á¦¿ÜÇÑ Æ÷Æ®·Î TCP Á¢¼ÓÀÌ µé¾î¿À´Â °Í¿¡ ´ëÇÏ¿© Çã°¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù.(6000Àº X À©µµ¿ì°¡ »ç¿ëÇÑ´Ù) 4.3. Á×À½ÀÇ ÇÎ(Ping of Death) °É·¯³»±â ¸®´ª½º ¹Ú½º´Â ÇöÀç ±× À¯¸íÇÑ Á×À½ÀÇ ÇÎ(Ping of Death)¿¡ ´ëÇÏ¿© ¸é¿ªÀ» °¡Áö°í ÀÖ´Ù. ÀÌ ÇÎÀº ºñÁ¤»óÀûÀ¸·Î Å« ICMP ÆÐŶÀ» º¸³»¾î TCP ½ºÅà ¾È¿¡¼­ ¿À¹öÇÃ·Î¿ì °¡ ÀϾ°Ô ÇÏ°í µû¶ó¼­ ¼ö½Å Ãø¿¡ Çظ¦ ³¢Ä¡µµ·Ï µÇ¾î ÀÖ´Ù. Á×À½ÀÇ Çο¡ ¸é¿ª ±â´ÉÀ» °®Áö ¾ÊÀº ¸®´ª½º ¹Ú½º¸¦ º¸È£Çϱâ À§Çؼ­´Â °£´ÜÈ÷ ICMP Á¶°¢À» ¸·¾Æ¹ö¸®¸é ±×¸¸ÀÌ´Ù. Á¤»óÀûÀÎ ICMP ÆÐŶÀº Á¶°¢ ³ª´©±â°¡ ÇÊ¿äÇÒ Á¤µµ·Î Å©Áö ¾Ê±â ¶§¹®¿¡ °Å´ëÇÑ ÇÎ ¸»°í ´Ù¸¥ ºÎºÐ¿¡ ¿µÇâÀ» ¾øÀ» °ÍÀÌ´Ù. º»ÀÎÀÌ µè±â·Î´Â(È®½ÇÇÑ °ÍÀº ¾Æ´Ï´Ù) ¸î¸î ½Ã½ºÅÛÀÇ °æ¿ì Á¤»ó Å©±â ÀÌ»óÀÇ ICMP ÆÐŶÀÇ ¸¶Áö¸· Á¶°¢¸¸À¸·Îµµ ½Ã½ºÅÛÀÌ ¸ÁÃÄÁú ¼ö Àֱ⠶§¹®¿¡ ù¹ø° Á¶°¢¸¸ ¸·´Â °ÍÀº ±ÇÇÏÁö ¾Ê´Â´Ù. 4.4. Ƽ¾îµå·Ó(Teardrop)°ú ºÀÅ©(Bonk) °É·¯³»±â Ƽ¾îµå·Ó°ú ºÀÅ©´Â °ãÄ¡±â Á¶°¢(overlapping fragment) ¹æ¹ýÀ» »ç¿ëÇÏ´Â µÎ °¡Áö °ø°Ý ¹æ¹ýÀ¸·Î¼­ ÁÖ·Î ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® À©µµ¿ìÁî NT ¸Ó½Å¿¡ »ç¿ëµÈ´Ù. ¿©·¯ºÐÀÇ ¸®´ª½º ¶ó¿ìÅÍ°¡ Á¶°¢¸ðÀ¸±â¸¦ ÇÏ°Ô Çϰųª ÀÌ °ø°Ý¿¡ ¹«·ÂÇÑ À©µµ¿ìÁî NT¿Í °°Àº ¸Ó½Å¿¡ Á¶°¢ÀÌ °¡Áö ¸øÇϵµ·Ï ¸·À¸¸é µÈ´Ù. 4.5. Á¶°¢ Æøź(Fragment Bombs) °É·¯³»±â Some less-reliable TCP stacks are said to have problems dealing with ¸î¸î ½Å·Ú¼º¾øÀÌ ±¸ÇöµÇ¾î ÀÖ´Â TCP ½ºÅÃÀº Àüü Á¶°¢À» ¹ÞÁö ¸øÇÑ »óÅ¿¡¼­ °Å´ëÇÑ ¾çÀÇ Á¶°¢À» ó¸®ÇÒ ¶§ ¹®Á¦¸¦ ÀÏÀ¸Å²´Ù°í ÇÑ´Ù. ¸®´ª½º¿¡´Â ÀÌ·¯ÇÑ ¹®Á¦°¡ ¾ø´Ù. Á¶°¢À» ±×³É °É·¯³»¹ö¸®°Å³ª(ÀÌ °æ¿ì¿¡´Â Á¤»óÀûÀÎ ÆÐŶµµ °É·¯ ³»´Â È¿°ú¸¦ °®´Â´Ù) Ä¿³ÎÀ» ÄÄÆÄÀÏÇÒ ¶§ `IP: always defragment' ¿¡¼­ Y ¶ó°í ÇÑ´Ù. (¹°·Ð ¸®´ª½º ¹Ú½º°¡ ¸ðµç ÆÐŶÀÌ µå³ªµå´Â À¯ÀÏÇÑ Åë·ÎÀÏ ¶§¸¸ À¯È¿) 4.6. ¹æÈ­º® ±ÔÄ¢ º¯°æÇϱ⠹æÈ­º® ±ÔÄ¢À» º¯°æÇϴµ¥ ÀÖ¾î ŸÀֿ̹¡ °ü·ÃµÈ ¹®Á¦°¡ ÀÖ´Ù. ¸¸¾à ÁÖÀÇÇÏÁö ¾Ê´Â´Ù¸é ±ÔÄ¢À» º¯°æÇÏ´Â µµÁß ÆÐŶÀÌ Áö³ª°¡µµ·Ï ³õÄ¡´Â ¼ö°¡ ÀÖ´Ù. À̸¦ ¸·´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. # ipchains -I input 1 -j DENY # ipchains -I output 1 -j DENY # ipchains -I forward 1 -j DENY ... ±ÔÄ¢À» º¯È­½ÃŲ´Ù ... # ipchains -D input 1 # ipchains -D output 1 # ipchains -D forward 1 # º¯°æÇÏ´Â µ¿¾ÈÀº ¸ðµç ÆÐŶÀ» ¹ö¸®µµ·Ï ÇÑ´Ù. ¸¸¾à ÇÑ °³ÀÇ »ç½½¿¡ ´ëÇؼ­¸¸ º¯°æ ÀÛ¾÷À» ÇÏ°í ÀÖ´Ù¸é »õ·Î¿î ±ÔÄ¢À¸·Î »õ·Î¿î »ç½½À» ¸¸µé¾î ä¿î µÚ ±³Ã¼ÇÑ ¿¹Àü »ç½½À» °¡¸®Å°°í ÀÖ´Â ±ÔÄ¢ÀÌ »õ·Ó°Ô ¸¸µé »ç½½À» °¡¸®Å°µµ·Ï ±³Ã¼(`-R')ÇÒ ¼ö ÀÖ´Ù. ±× ´ÙÀ½ ¿¹ÀüÀÇ »ç½½À» »èÁ¦ÇÑ´Ù. ÀÌ·¸°Ô ÇÏ¿© ±³Ã¼ ÀÛ¾÷ÀÌ ÇÑ ¹ø¿¡ ÀÌ·ïÁö°Ô ÇÒ ¼ö ÀÖ´Ù. 4.7. º¸´Ù ³ªÀº °èȹµé º»ÀÎÀÌ ÀÛ¼ºÇÑ ÄÚµùÇÑ `libfw'¶ó´Â À̸§ÀÇ »ç¿ëÀÚ ¿µ¿ª ¶óÀ̺귯¸®¸¦ ¼Ò½º Äڵ忡 Æ÷ÇÔ½ÃÄÑ µÎ¾ú´Ù. IP »ç½½ 1.3 ÀÇ ±â´ÉÀ» »ç¿ëÇÏ¿© ÆÐŶÀ» »ç¿ëÀÚ ¿µ¿ªÀ¸·Î º¹»çÇØÁØ´Ù.(IP_FIREWALL_NETLINK ¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÔ) ÀÌ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© `»óÅÂÀ¯Áö °Ë»ç(stateful inspection)'¿Í °°Àº °ÍÀ» »ç¿ëÀÚ ¿µ¿ª¿¡¼­ ±¸ÇöÇÒ ¼ö ÀÖ´Ù.(º»ÀÎÀº »óÅ À¯Áö °Ë»çº¸´Ù´Â µ¿Àû ¹æÈ­º® À̶ó´Â ¿ë¾î¸¦ ´õ ¼±È£ÇÑ´Ù) ¶Ç ´Ù¸£°Ô ÀÀ¿ëÇÒ ¼ö ÀÖ´Â ÁÁÀº ºÐ¾ß´Â »ç¿ëÀÚº°·Î ÆÐŶÀ» Á¦¾îÇÏ´Â °ÍÀε¥ ÀÌ´Â »ç¿ëÀÚ ¿µ¿ªÀÇ µ¥¸ó »ìÆ캸±â¸¦ ÇÏ¸é °¡´ÉÇÏ´Ù. ÀÌ ÀÛ¾÷Àº ¸Å¿ì ½¬¿î ÀÛ¾÷ÀÌ´Ù. ¹æÈ­º®ÀÇ `Ç¥½Ã(mark)' ±â´ÉÀº ¸¹ÀÌ »ç¿ëµÇ°í ÀÖÁö ¸øÇÑ »óÅÂÀÌ´Ù. ÆÐŶÀÇ ¿ì¼±±ÇÀ» °£´ÜÈ÷ Á¶ÀýÇÒ ¼ö ÀÖµµ·Ï ¼­ºñ½º Ç°Áú(Quality of Service) Äڵ忡 ´ëÇÑ ¼øÀ§¸¦ ³ªÅ¸³»µµ·Ï »ç¿ëÇÒ ¼ö ÀÖ´Ù. 4.8. ¾ÕÀ¸·ÎÀÇ º¸°­ °èȹ ¾ÕÀ¸·Î´Â ¸ðµç ¹æÈ­º® Á¦¾î¸¦ /proc/sys/net/ipv4 ¹Ø¿¡ µÎ°íÀÚ ÇÑ´Ù. ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ¿© °ü¸®Çϱ⠽±°í ÀϹÝÀûÀ¸·Î ´õ ±ú²ýÇÏ°Ô º¸À̱⠶§¹®ÀÌ´Ù. »ç¿ëÀÚ ¿µ¿ªÀ¸·ÎºÎÅÍ Æ¯Á¤ »ç½½·Î ÆÐŶÀ» ´Ù½Ã ÁÖÀÔÇÏ´Â ÁÁÀº ¹æ¹ýÀ» °í¾ÈÇÏ°í ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é libfw ¼³°è°¡ Á» ´õ °£´ÜÇØÁø´Ù. 5. º°Ã· - ipchains°ú ipfwadm °£ÀÇ Â÷ÀÌÁ¡ º¯È­µÈ °Í Áß ÀϺδ Ŀ³Î º¯È­ÀÇ °á°úÀÌ¸ç ´Ù¸¥ ºÎºÐÀº ipchains¿Í ipfwadmÀÇ Â÷À̷κÎÅÍ À¯·¡ÇÑ °ÍÀÌ´Ù. 1. ¸¹Àº ÀμöµéÀÌ ´Ù½Ã Àç¹èÄ¡µÇ¾ú´Ù: ´ë¹®ÀÚ´Â ¸í·ÉÀ» ³ªÅ¸³»¸ç ¼Ò¹®ÀÚ´Â ¿É¼ÇÀ» ³ªÅ¸³»´Âµ¥ »ç¿ëµÇ°í ÀÖ´Ù. 2. ÀÓÀÇÀÇ »ç½½À» ¸¸µé ¼ö ÀÖÀ¸¸ç ³»Àå »ç½½À̶ó ÇÒ Áö¶óµµ Ç÷¡±× ¹æ½ÄÀÌ ¾Æ´Ï¶ó À̸§À» °®°í ÀÖ´Ù.(¿¹. `-I'¶ó°í ÇÏÁö ¾Ê°í `input'À̶ó°í ºÎ¸§) 3. `-k' ¿É¼ÇÀÌ »ç¶óÁ³´Ù: ´ë½Å `! -y' ¸¦ »ç¿ëÇ϶ó. 4. `-b' ¿É¼ÇÀº ½ÇÁ¦·Î µÎ °³ÀÇ ±ÔÄ¢À» »ðÀÔÇϰųª Ãß°¡Çϰųª »èÁ¦ÇÑ´Ù. Çϳª·Î µÈ `¾Ó¹æÇâ' ±ÔÄ¢À» ¸¸µéÁö ¾Ê´Â´Ù. 5. µÎ °¡Áö¸¦ Á¡°ËÇϱâ À§ÇØ(¾ç ¹æÇâ¿¡ ´ëÇÏ¿© ÇÑ ¹ø¾¿) `-C'¿¡ `-b' ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. 6. `-l'¿¡ »ç¿ëÇÏ´ø `-x' ¿É¼ÇÀÌ `-v'·Î ±³Ã¼µÇ¾ú´Ù. 7. ¿©·¯ °³ÀÇ ¹ß½ÅÁö Æ÷Æ®´Â ´õ ÀÌ»ó Áö¿øµÇÁö ¾Ê´Â´Ù. Æ÷Æ® ¹üÀ§ ¾Õ¿¡ ºÎÁ¤À» ÇÏ´Â ¹æ¹ýÀ¸·Î ´ë½ÅÇÒ ¼ö ÀÖÀ¸¸®¶ó »ý°¢ÇÑ´Ù. 8. ÀÎÅÍÆäÀ̽º´Â ¿À·ÎÁö À̸§À¸·Î¸¸ ¸í½ÃÇÒ ¼ö ÀÖ´Ù.(ÁÖ¼Ò´Â ¾ÈµÊ) ±¸½Ä ¹æ¹ýÀÌ 2.1 Ä¿³Î ½Ã¸®Áî¿¡¼­ ¸»¾øÀÌ º¯È­µÇ¾î ÀÖ´Ù. 9. Á¶°¢À» °Ë»çÇϸç ÀÚµ¿À¸·Î Çã¿ëÇÏÁö´Â ¾Ê´Â´Ù. 10. ¸í½ÃÀûÀΠȸ°è »ç½½Àº ¾ø´Ù. 11. IP ¿¡ ´ëÇÑ ¸ðµç ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÑ´Ù. 12. SYN, ACK ¸ÅĪ¿¡ ´ëÇÑ ±¸½Ä ¹æ¹ý(TCP ¾Æ´Ñ ÆÐŶ¿¡ ´ëÇؼ­´Â ¹«½ÃÇÔ)ÀÌ ¹Ù²î¾úµû. SYN ¿É¼ÇÀº TCP °ü·Ã ±ÔÄ¢ÀÌ ¾Æ´Ñ °÷¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. 13. Ä«¿îÅÍ´Â x86 ¿¡¼­ 32 ºñÆ®°¡ ¾Æ´Ï¶ó 64 ºñÆ®ÀÌ´Ù. 14. ¹Ý´ë ¿É¼ÇÀÌ Áö¿øµÈ´Ù. 15. ICMP Äڵ尡 Áö¿øµÈ´Ù. 16. ¿ÍÀϵå Ä«µå ÀÎÅÍÆäÀ̽º°¡ Áö¿øµÈ´Ù. 17. TOS 󸮿¡¼­ Á¤»ó¼º Á¡°ËÀÌ ÀÌ·ïÁø´Ù. ¿¹Àü Ä¿³Î Äڵ忡¼­´Â `0 À̾î¾ß ÇÔ (Must Be Zero)' TOS ºñÆ®¸¦ (ºÒ¹ýÀûÀ¸·Î) ó¸®ÇÏ´Â °æ¿ì ±×³É ¾Æ¹« ¸» ¾øÀÌ ¹«½ÃÇß´Ù. ipchains ´Â ±âŸ ´Ù¸¥ ºÒ¹ýÀûÀÎ Á¢±ÙÀÇ °æ¿ì¿Í ¸¶Âù°¡Áö·Î ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù. 5.1. °£·«ÇÑ ÂüÁ¶ µµÇ¥ [ ÁÖ·Î ¸í·É Àμö´Â ´ë¹®ÀÚÀÌ°í ¿É¼Ç Àμö´Â ¼Ò¹®ÀÚ·Î µÇ¾î ÀÖ´Ù] ÇÑ °¡Áö Àß ¾Ë¾ÆµÖ¾ß ÇÒ °ÍÀ¸·Î¼­ ¸Å½ºÄ¿·¹À̵ùÀº `-j MASQ' ¶ó°í Àû´Â´Ù. `-j ACCEPT'¿Í´Â ÀüÇô ´Ù¸¥ °ÍÀ¸·Î¼­ ipfwadm°ú °°ÀÌ ´Ü¼øÇÑ 2Â÷Àû ±â´ÉÀ¸·Î °£ÁÖÇÏÁö ¾Ê´Â´Ù. ================================================================ | ipfwadm | ipchains | ÁÖÀÇ »çÇ× ---------------------------------------------------------------- | -A [both] | -N acct | `acct' »ç½½À» ¸¸µé°í | |& -I 1 input -j acct | µé¾î¿À°í ³ª°¡´Â ÆÐŶÀÌ | |& -I 1 output -j acct | ÀÌ »ç½½À» Åë°úÇϵµ·Ï | |& acct | ÇÑ´Ù. ---------------------------------------------------------------- | -A in | input | ¸ñÇ¥°¡ ¾ø´Â ±ÔÄ¢ ---------------------------------------------------------------- | -A out | output | ¸ñÇ¥°¡ ¾ø´Â ±ÔÄ¢ ---------------------------------------------------------------- | -F | forward | [»ç½½]·Î »ç¿ëÇ϶ó. ---------------------------------------------------------------- | -I | input | [»ç½½]·Î »ç¿ëÇ϶ó. ---------------------------------------------------------------- | -O | output | [»ç½½]·Î »ç¿ëÇ϶ó. ---------------------------------------------------------------- | -M -l | -M -L | ---------------------------------------------------------------- | -M -s | -M -S | ---------------------------------------------------------------- | -a policy | -A [chain] -j POLICY | (-r ¿Í -m Âü°í). ---------------------------------------------------------------- | -d policy | -D [chain] -j POLICY | (-r ¿Í -m Âü°í). ---------------------------------------------------------------- | -i policy | -I 1 [chain] -j POLICY| (-r ¿Í -m Âü°í). ---------------------------------------------------------------- | -l | -L | ---------------------------------------------------------------- | -z | -Z | ---------------------------------------------------------------- | -f | -F | ---------------------------------------------------------------- | -p | -P | ---------------------------------------------------------------- | -c | -C | ---------------------------------------------------------------- | -P | -p | ---------------------------------------------------------------- | -S | -s | Æ÷Æ® Çϳª ¶Ç´Â ¹üÀ§¸¸ | | | À¯È¿. ´Ù¼ö ÁöÁ¤ ºÒ°¡ ---------------------------------------------------------------- | -D | -d | Æ÷Æ® Çϳª ¶Ç´Â ¹üÀ§¸¸ | | | À¯È¿. ´Ù¼ö ÁöÁ¤ ºÒ°¡ ---------------------------------------------------------------- | -V | | -i [À̸§]À» »ç¿ëÇÒ °Í. ---------------------------------------------------------------- | -W | -i | ---------------------------------------------------------------- | -b | -b | ½ÇÁ¦·Î´Â 2 °³ÀÇ ±ÔÄ¢ »ý¼º ---------------------------------------------------------------- | -e | -v | ---------------------------------------------------------------- | -k | ! -y | -p tcp ¸¦ ²À °°ÀÌ »ç¿ë | | | ÇØ¾ß ÇÑ´Ù. ---------------------------------------------------------------- | -m | -j MASQ | ---------------------------------------------------------------- | -n | -n | ---------------------------------------------------------------- | -o | -l | ---------------------------------------------------------------- | -r [redirpt] | -j REDIR [redirpt] | ---------------------------------------------------------------- | -t | -t | ---------------------------------------------------------------- | -v | -v | ---------------------------------------------------------------- | -x | -x | ---------------------------------------------------------------- | -y | -y | -p tcp ¸¦ ²À °°ÀÌ »ç¿ë | | | ÇØ¾ß ÇÑ´Ù. ---------------------------------------------------------------- 5.2. ipfwadm ¸í·É ¹ø¿ªÀÇ ¿¹ Old command: ipfwadm -F -p deny New command: ipchains -P forward DENY Old command: ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0 New command: ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0 Old command: ipfwadm -I -a accept -V 10.1.2.1 -S 10.0.0.0/8 -D 0.0.0.0/0 New command: ipchains -A input -j ACCEPT -i eth0 -s 10.0.0.0/8 -d 0.0.0.0/0 (Note that there is no equivalent for specifying interfaces by (ÁÖÀÇ: ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ¿© ÀÎÅÍÆäÀ̽º¸¦ ¸í½ÃÇÏ´Â ¹æ¹ýÀº ¾ø´Ù. ÀÎÅÍÆäÀ̽º À̸§¸¸À» »ç¿ëÇ϶ó. ÀÌ ¸Ó½ÅÀÇ ¿¹¿¡¼­ 10.1.2.1 Àº eth0 ¿¡ ÇØ´çÇÑ´Ù.) 6. º°Ã· - `ipfwadm-wrapper' ½ºÅ©¸³Æ® »ç¿ëÇϱâ `ipfwadm-wrapper' ½© ½ºÅ©¸³Æ®´Â ipfwadm 2.3a ¿Í ÇÏÀ§ ȣȯ¼ºÀ» °®Ãß±â À§ÇØ ¸¸µç ipfwadm ¿¡ ´ëÇÑ Ç÷¯±×-ÀÎ ±³Ã¼¿ëÀÌ´Ù. ´Ù·ê ¼ö ¾ø´Â À¯ÀÏÇÑ ±â´ÉÀº `-V' ¿É¼ÇÀÌ´Ù. ÀÌ ¿É¼ÇÀÌ »ç¿ëµÇ¸é °æ°í ¸Þ½ÃÁö°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. `-W' ¿É¼ÇÀ» »ç¿ëÇϸé `-V' ¿É¼ÇÀ» ¹«½ÃÇÑ´Ù. `-W' ¿É¼ÇÀÌ ¾ø´Â °æ¿ì¿¡´Â `ifconfig' ¸í·ÉÀ» »ç¿ëÇÏ¿© ÁÖ¼Ò¿Í ¿¬°üµÇ¾î ÀÖ´Â ÀÎÅÍÆäÀ̽º À̸§À» ãÀ¸·Á°í ½ÃµµÇÑ´Ù. ¸¸¾à ½ÇÆÐÇÑ´Ù¸é(¿¹¸¦ µé¾î ÀÎÅÍÆäÀ̽º°¡ ´Ù¿îµÇ¾î ÀÖ´Â »óÅÂÀÎ °æ¿ì) ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»º¸ÀÌ°í Á¾·áÇÑ´Ù. `-V' ¸¦ `-W' ·Î ¹Ù²Ù°Å³ª ½ºÅ©¸³Æ®ÀÇ Ç¥ÁØ Ãâ·ÂÀ» /dev/null ·Î ¸®´ÙÀÌ·ºÆ® ÇÏ¿© °æ°í ¸Þ½ÃÁö¸¦ ÇÇÇÒ ¼ö ÀÖ´Ù. ½ºÅ©¸³Æ®¿¡¼­ ½Ç¼öÇÑ °ÍÀ» ¹ß°ßÇϰųª ½ÇÁ¦ ipfwadm °ú ½ºÅ©¸³Æ® °£ÀÇ Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù¸é ¹ö±× º¸°í¸¦ ²À ÇØÁֱ⠹ٶõ´Ù : ¸ÞÀÏ ÁÖ¼Ò´Â Paul.Russell@rustcorp.com.au À̸ç ÁÖÁ¦¶õ¿¡ BUG-REPORT ¶ó°í Àû¾î º¸³»ÁÖ±æ ¹Ù¶õ´Ù. ¿©·¯ºÐÀÌ °®°í ÀÖ´Â ipfwadm ±¸¹öÀü(`ipfwadm -h')°ú »ç¿ë ÁßÀÎ ipchains ÀÇ ¹öÀü(`ipchains --version'), ipfwadm ·¦ÆÛ ½ºÅ©¸³Æ®ÀÇ ¹öÀü(`ipfwadm-wrapper --version')À» ³ª¿­ÇÏ°í ¶ÇÇÑ `ipchains-save'ÀÇ Ãâ·Âµµ º¸³»ÁÖ¾úÀ¸¸é ÇÑ´Ù. ¿ì¼± °¨»çÀÇ ¸»À» ÇÏ°í ½Í´Ù. ipchains¿Í ipfwadm-wrapper ½ºÅ©¸³Æ®¸¦ ¼¯¾î¾²´Â °ÍÀº ÁÁÁö ¾ÊÀ¸³ª ¿©·¯ºÐÀÇ ÀÚÀ¯ÀÌ´Ù. 7. º°Ã· - °¨»çÀÇ ¸» Many thanks have to go to Michael Neuling, who wrote the first releasable cut of the Generic IP Chains code while working for me. Public apologies for nixing his result-caching idea, which Alan Cox later proposed and I have finally begun implementing, having seen the error of my ways. Thanks to Alan Cox for his 24-hour EMail tech support, and encouragement. Thanks to all the authors of the ipfw and ipfwadm code, especially Jos Vos. Standing on the shoulders of giants and all that... This applies to Linus Torvalds and all the kernel and userspace hackers as well. Thanks to the diligent beta testers and bughunters, especially: Jordan Mendelson ICMP code suggestion. Shaw Carruthers For various ipchains and ipfwadm-wrapper bugfixes. Kevin Moule For a patch for glibc. Dr. Liviu Daia For documentation fixes and printk fix. Helmut Adams For fixing a race condition in v. large chains. Franck Sicard For masquerading listing fix. Kevin Littlejohn For ipchains-save bugfix with destination ports. Matt Kemner For more documentation fixes. John D. Hardin For `ipchains -X' suggestion. Alexey Kuznetsov For noticing a typo which stop marks being initialised. Ricardo Kustner For fixing my leftover debug messages in 2.0.33.