ÀÎÅÍ³Ý »ýȰÁ¤º¸»çÀÌÆ® À¥Ãµ»çȨÇÇ
 

 
iptables »ç¿ëÇØ¼­ ƯÁ¤ ¾ÆÀÌÇÇ ¸·±â
POST : ˴̵ȍ 2007-03-20 19:00:10
Iptables¸¦ »ç¿ëÇϱâ À§ÇÑ ±âº»ÀûÀÎ ¼³Á¤¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. Iptables´Â Kernel 2.4.x ±â¹ÝÀÇ ¸®´ª½º ¼³Ä¡½Ã¿¡ ±âº»À¸·Î ¼³Ä¡µÇ¾îÀÖ°í /sbin µð·ºÅ丮 ¾Æ·¡¿¡ ÀÖ´Ù. ±×¸®°í iptables¿Í ipchains´Â µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î ¿ì¼± ipchainsÀÇ ¸ðµâÀ» ³»·ÁÁà¾ß ÇÑ´Ù.

¾Æ·¡ÀÇ ±×¸²Ã³·³ lsmod¸¦ ÇØº¸°í ¸¸¾à ipchains ¸ðµâÀÌ ¿Ã¶ó¿Í ÀÖ´Ù¸é rmmod ipchains ¸í·ÉÀ¸·Î ¸ðµâÀ» ³»·ÁÁà¾ß iptables »ç¿ëÀÌ °¡´ÉÇÏ´Ù.



ÀÌÁ¦ Iptables¿¡ ´ëÇØ¼­ º»°ÝÀûÀ¸·Î ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

±âº»ÀûÀ¸·Î Iptables¿¡´Â ¼¼°¡Áö chainÀÌ ÀÖ°í ¸ðµç ÆÐŶÀº ÀÌ ¼¼°¡Áö chainÁß Çϳª¸¦ Åë°úÇÏ°Ô µÈ´Ù. ÀÌ ¼¼°¡Áö chainÀº INPUT, OUTPUT, FORWARD chainÀε¥ ¿ì¼± ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ·Î µé¾î°¡´Â ¸ðµç ÆÐŶÀº INPUT chainÀ» Åë°úÇÑ´Ù. ±×¸®°í ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ¿¡¼­ ³ª°¡´Â ¸ðµç ÆÐŶÀº OUTPUT chainÀ» Åë°úÇÑ´Ù. ±×¸®°í ÇϳªÀÇ ³×Æ®¿öÅ©¿¡¼­ ´Ù¸¥ °÷À¸·Î º¸³»´Â ¸ðµç ÆÐŶÀº FORWARD chainÀ» Åë°úÇÑ´Ù.



Iptables°¡ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀº ÀÌµé °¢°¢ÀÇ INPUT, OUTPUT, FORWARD chain¿¡ ´ç½ÅÀÌ ¾î¶°ÇÑ ruleÀ» ¼¼¿ì´Â Áö¿¡ µû¶ó ´Þ¶óÁø´Ù.
¿¹¸¦ µé¾î ´ç½ÅÀÌ HTML ÆäÀÌÁö¸¦ ¿äûÇϱâ À§ÇØ www.yahoo.com¿¡ ÆÐŶÀ» º¸³½´Ù¸é ÀÌ ÆÐŶÀº ¿ì¼± ´ç½Å ÄÄÇ»ÅÍÀÇ OUTPUT chainÀ» Åë°úÇÏ°Ô µÈ´Ù.
±×·¯¸é kernel¿¡¼­ OUTPUT chainÀÇ ruleÀ» È®ÀÎÇϰí rule°ú match°¡ µÇ´ÂÁö È®ÀÎÀ» ÇϰԵȴÙ. ruleÁß¿¡¼­ ÃÖÃÊ·Î matchµÇ´Â °Í¿¡ ÀÇÇØ ´ç½ÅÀÌ º¸³½ ÆÐŶÀÇ ¿î¸íÀÌ °áÁ¤µÇ´Â °ÍÀÌ´Ù.
¸¸¾à ¾î¶² rule°úµµ matchµÇÁö ¾Ê´Â´Ù¸é Àüü chainÀÇ Á¤Ã¥ÀÌ ACCEPT³Ä DROPÀ̳Ŀ¡ µû¶ó ÆÐŶÀÇ ¿î¸íÀÌ °áÁ¤µÉ °ÍÀÌ´Ù. ±×·¯°í ³ª¼­ Yahoo! ¿¡¼­ ÀÀ´äÇÏ´Â ÆÐŶÀº ´ç½ÅÀÇ INPUT chainÀ» Åë°úÇÏ°Ô µÉ °ÍÀÌ´Ù.

IP ÁÖ¼Ò ¸·±â

ÀÌÁ¦ ±âÃÊÀûÀÎ °³³ä¿¡ ´ëÇØ¼­ ¾Ë¾ÆºÃÀ¸´Ï ½ÇÁ¦·Î »ç¿ëÇØ º¸µµ·Ï ÇϰڴÙ.

IptableÀ» »ç¿ëÇÒ ¶§¿¡´Â ±â¾ïÇØ¾ß ÇÒ ¸¹Àº ¿É¼ÇµéÀÌ ÀÖÀ¸¹Ç·Î man ÆäÀÌÁö(man iptables)¸¦ Àß È°¿ëÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ÀÌÁ¦ ƯÁ¤ IP¸¦ Á¶Á¾ÇÏ´Â ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. ¿ì¼± ´ç½ÅÀÌ 200.200.200.1 À̶ó´Â IP·ÎºÎÅÍ ¿À´Â ¸ðµç ÆÐŶÀ» ¸·°í ½Í¾îÇÑ´Ù°í °¡Á¤ÇÏÀÚ. ¿ì¼± -s ¿É¼ÇÀÌ »ç¿ëµÇ´Âµ¥ ¿©±â¿¡¼­ source IP³ª DNS nameÀ» ÁöĪÇÒ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ´ÙÀ½°ú °°ÀÌ ÇÔÀ¸·Î½á ÀÌ IP¸¦ ÁöĪÇÒ ¼ö ÀÖ´Ù.

iptables -s 200.200.200.1

ÇÏÁö¸¸ À§Ã³·³¸¸ ¸í·ÉÀ» ³»¸®¸é kernelÀº À§ÀÇ ÁÖ¼Ò¿¡¼­ ¿À´Â ÆÐŶÀ» ¾î¶»°Ô ó¸®ÇØ¾ß ÇÒ Áö¸¦ ¾Ë ¼ö°¡ ¾ø´Ù. ±×·¯¹Ç·Î -j ¿É¼ÇÀ¸·Î ±× ÆÐŶÀ» ¾î¶»°Ô ó¸®ÇØ¾ß ÇÏ´ÂÁö °áÁ¤ÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î 3°¡Áö ¿É¼ÇÀÌ Àִµ¥ ACCEPT, DENY, DROPÀÌ´Ù.

ACCEPT´Â ´ëÃæ ¿¹»óÇÒ ¼ö ÀÖµíÀÌ ÆÐŶÀ» Çã¿ëÇÏ´Â ¿É¼ÇÀÌ´Ù. DENY ¿É¼ÇÀº ÄÄÇ»ÅͰ¡ ¿¬°áÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù°í ¸Þ½ÃÁö¸¦ µ¹·Á º¸³»´Â ¿É¼ÇÀÌ´Ù. ±×¸®°í DROP ¿É¼ÇÀº ÆÐŶÀ» ¿ÏÀüÈ÷ ¹«½ÃÇØ ¹ö¸°´Ù. ¸¸¾à ¿ì¸®°¡ ÀÌ IP¿¡ ´ëÇØ È®½ÇÈ÷ ÀǽÉÀÌ °£´Ù¸é ¿ì¸®´Â DENY ´ë½Å¿¡ DROPÀ» »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù.
±×·¯¹Ç·Î °á°úÀûÀ¸·Ð ´ÙÀ½°ú°°ÀÌ ¿É¼ÇÀ» ÁÖ¸é µÈ´Ù.

iptables -s 200.200.200.1 -j DROP


ÇÏÁö¸¸ ÀÌ ¸í·É¸¸À¸·Î´Â ¾ÆÁ÷ ÄÄÇ»ÅͰ¡ ¸í·ÉÀ» ÀÌÇØÇÒ ¼ö°¡ ¾ø´Ù. ¿ì¸®´Â ÇѰ¡Áö¸¦ ´õ Ãß°¡ÇØ¾ß µÇ´Âµ¥ ¹Ù·Î ¾î¶² chainÀÇ rule·Î Àû¿ë½ÃųÁö °áÁ¤ÇØ¾ß ÇÏ´Â °ÍÀÌ´Ù.
¿©·¯ºÐÀº -A ¿É¼ÇÀ» »ç¿ëÇØ¼­ À̸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. Áï ¾Æ±î À§¿¡¼­ º» INPUT, OUTPUT, FORWARD ¿É¼Ç Áß¿¡¼­ Çϳª¸¦ ¼±ÅÃÇØ¾ß ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¿É¼ÇÀ» ÁÜÀ¸·Î½á ´ç½ÅÀÌ ¼±ÅÃÇÑ chainÀÇ ¸Ç ¾Æ·¡ºÎºÐ¿¡ »õ·Î¿î ruleÀÌ Ãß°¡µÉ °ÍÀÌ´Ù.
µû¶ó¼­ ¿ì¸®´Â ¿ì¸®¿¡°Ô µé¾î¿À´Â ÆÐŶÀ» Â÷´ÜÇÏ°í ½ÍÀ¸¹Ç·Î INPUT ¿É¼ÇÀ» ÁÖ¸é µÇ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î Àüü ¸í·ÉÀº ´ÙÀ½°ú °°´Ù.

iptables -A INPUT -s 200.200.200.1 -j DROP


ÀÌ ÇÑ ÁÙÀÇ ¸í·ÉÀ¸·Î 200.200.200.1·ÎºÎÅÍ ¿À´Â ¸ðµç ÆÐŶÀ» ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ¿É¼ÇÀÇ ¼ø¼­´Â ¹Ù²î¾îµµ »ó°üÀÌ ¾ø´Ù. Áï -j DROPÀÌ -s 200.200.200.1 º¸´Ù ¾Õ¿¡ °¡µµ »ó°üÀÌ ¾ø´Ù. ¸¸¾à ±× ¹Ý´ë·Î 200.200.200.1·Î ÆÐŶÀÌ ¸ø°¡µµ·Ï ÇÏ·Á¸é INPUT ´ë½Å¿¡ OUTPUTÀ», -s ´ë½Å¿¡ -d(destination) ¿É¼ÇÀ» ÁÖ¸éµÈ´Ù.

2. Service Â÷´ÜÇϱâ


¸¸¾à ¿ì¸®°¡ ÇØ´ç ÄÄÇ»ÅͷκÎÅÍ telnet ¿äû¸¸ ¹«½ÃÇϰí½Í´Ù¸é ¾î¶»°Ô ÇØ¾ß Çϴ°¡? À̰͵µ ±×´ÙÁö ¾î·ÆÁö ¾Ê´Ù. ÀÏ´Ü Å« ¹üÁÖ·Î ³ª´©¾î ºÃÀ» ¶§ Àû¾îµµ 3°¡ÁöÀÇ ÇÁ·ÎÅäÄÝ - TCP, UDP, ICMP - °¡ ÀÖ´Ù. ´Ù¸¥ ´ëºÎºÐÀÇ ¼­ºñ½º¿Í ¸¶Âù°¡Áö·Î telnetÀº TCP ÇÁ·ÎÅäÄÝ·Î ÀÛµ¿ÇÑ´Ù. -p ¿É¼ÇÀ¸·Î ¿ì¸®´Â ÇÁ·ÎÅäÄÝÀ» °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ TCP¶ó°í¸¸ ¿É¼ÇÀ» Á༭´Â ÄÄÇ»ÅͰ¡ ÀνÄÇÏÁö¸¦ ¸øÇÑ´Ù. telnetÀº TCPÇÁ·ÎÅäÄÝ·Î ÀÛµ¿Çϴ ƯÁ¤ ¼­ºñ½º¿¡ ºÒ°úÇϱ⠶§¹®ÀÌ´Ù. ¿ì¼± ¿ì¸®°¡ ÇÁ·ÎÅäÄÝÀ» TCP·Î ¼³Á¤ÇÑ ´ÙÀ½¿¡´Â --destination-port ¿É¼ÇÀ¸·Î ÇØ´çÇÏ´Â port¸¦ ¼³Á¤ÇØ Áà¾ßÇÑ´Ù.
¿ì¼± telnetÀÇ Æ÷Æ®¹øÈ£´Â 23¹øÀÌ´Ù. Æ÷Æ®¹øÈ£ ´ë½Å¿¡ telnetÀ̶ó ½áµµ »ó°ü¾ø´Ù.
¿©±â¼­ source port ¿Í destination port¸¦ È¥µ¿ÇÏ¸é ¾ÈµÈ´Ù. Áï Ŭ¶óÀÌ¾ðÆ®´Â ¾î¶² Æ÷Æ®·Îµµ ÀÛµ¿ÇÒ ¼ö ÀÖ´Â ¹Ý¸é¿¡ ¼­¹ö´Â 23¹ø Æ÷Æ®·Î ÀÛµ¿Çϱ⠶§¹®ÀÌ´Ù. Áï Æ¯Á¤ ¼­ºñ½º¸¦ Â÷´ÜÇϱâ À§Çؼ­´Â -destination-port¸¦ ÀÌ¿ëÇÏ¸é µÇ°í, ±× ¹Ý´ë´Â -source-port¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. ÀÌÁ¦ ÀÌµé ¿É¼ÇÀ» ÇÕÃļ­ ¾Æ·¡¿Í °°ÀÌ ¸í·ÉÀ» ÁÖ¸é µÈ´Ù.

./iptables –A INPUT –s 200.200.200.1 –p tcp --destination-port telnet –j DROP


±×¸®°í IPÀÇ ¿µ¿ªÀ» ¼±ÅÃÇÏ°í ½Í´Ù¸é 200.200.200.0/24 ¿Í °°ÀÌ ¼³Á¤ÇÏ¸é µÈ´Ù. À̰ÍÀº 200.200.200.* ¿¡ ÇØ´çÇÏ´Â ¸ðµç IP¸¦ ¼±ÅÃÇÏ´Â °Í°ú °°´Ù.

¼±ÅÃÀûÀÎ Â÷´Ü

ÀÌÁ¦ Á»´õ ½ÉÈ­µÈ ³»¿ë¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. ¿ì¼± ¿©·¯ºÐÀÇ ÄÄÇ»ÅͰ¡ local area network(LAN)¿¡ ÀÖ°í, Internet¿¡ Á¢¼Ó °¡´ÉÇÏ´Ù°í °¡Á¤ÇÑ´Ù. ¾Ë´Ù½ÃÇÇ LANÀº eth0À¸·Î Internet ¿¬°áÀº ppp0À¸·Î ±¸ºÐÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¦ ´Ù½Ã ´ÙÀ½°ú °°ÀÌ °¡Á¤ÇØ º¸ÀÚ. ¿ì¸®´Â telnet ¼­ºñ½º¸¦ LAN»óÀÇ ÄÄÇ»ÅÍ¿¡°Ô´Â ¼­ºñ½ºÇÏ°í º¸¾È»ó Internet»ó¿¡¼­´Â Á¢±ÙÇÏÁö ¸øÇϵµ·Ï ÇÏ°í ½Í´Ù. ÀÌ°Í ¿ª½Ã ½±°Ô ±¸¼ºÇÒ ¼ö ÀÖ´Ù. ¿ì¸®´Â input interface¿¡ ´ëÇØ¼­´Â -i ¿É¼ÇÀ» output interface¿¡ ´ëÇØ¼­´Â -o ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Áï ´ÙÀ½Ã³·³ ¸í·ÉÀ» ÁÖ¸é µÈ´Ù.

./iptables –A INPUT –p tcp --destination-port telnet –i ppp0 –j DROP


ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¿ì¸®´Â LAN»óÀÇ »ç¿ëÀÚ´Â telnetÀ» »ç¿ëÇÏ°í ±×¹Û¿¡ Internet»óÀÇ »ç¿ëÀÚ´Â telnet À» »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.

Rule ¼ø¼­¿¡ °üÇÏ¿©
ÀÌÁ¦ ´ÙÀ½ ´Ü°è·Î µé¾î°¡±â¿¡ ¾Õ¼­¼­ ruleÀ» Á¶Á¾ÇÏ´Â ´Ù¸¥ ¹æ¹ý¿¡ ´ëÇØ¼­ °£´ÜÈ÷ ¾Ë¾Æº¸ÀÚ.
IptablesÀÇ chain¿¡¼­´Â ¸ÕÀú µî·Ï µÈ ruleÀÌ È¿·ÂÀ» ¹ß»ýÇϱ⶧¹®¿¡ µî·ÏÀ» ÇÏ´Â ¼ø¼­°¡ Áß¿äÇÏ´Ù. ¸ðµç °ÍÀ» °ÅºÎÇÏ´Â ¼³Á¤ÀÌ ¸ÕÀú¿À°Ô µÇ¸é ±× ÀÌÈÄ¿¡ Æ÷Æ®¸¦ ¿­¾îÁÖ´Â ¼³Á¤ÀÌ ¿Íµµ È¿°ú°¡ ¾ø´Ù. ±×·¯¹Ç·Î Çã¿ëÇÏ´Â Á¤Ã¥ÀÌ ¸ÕÀú¿À°í ³ª¼­ °ÅºÎÇÏ´Â Á¤Ã¥ÀÌ ¿Í¾ßÇÑ´Ù.

–A ¿É¼ÇÀ» ÁÜÀ¸·Î½á ¿ì¸®´Â »õ·Î¿î ±ÔÄ¢À» chainÀÇ ¸Ç ¾Æ·¡¿¡ Ãß°¡ÇÏ°Ô µÈ´Ù. Áï chain»óÀÇ »óÀ§ ruleÀÌ ¸ÕÀú ÀÛµ¿Çϱ⠶§¹®¿¡, ¸¸ÀÏ »õ·Î Ãß°¡ÇÏ´Â ruleÀ» ¸ÕÀú ÀÛµ¿½Ã۱â À§Çؼ­´Â -I ¿É¼ÇÀ» ÁÜÀ¸·Î½á »õ·Î¿î ruleÀ» ¿øÇÏ´Â À§Ä¡¿¡ ³õÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î INPUT chainÀÇ °¡Àå À§¿¡ ¾î¶² ruleÀ» ³õ°í ½Í´Ù¸é ¡°-I INPUT 1¡± À̶ó ¸í·ÉÇÏ¸é µÈ´Ù. ±×¸®°í ´Ù¸¥ À§Ä¡·Î ³õ°í ½Í´Ù¸é 1À» ´Ù¸¥ ¼ýÀÚ·Î ¹Ù²ãÁÖ¸é µÈ´Ù.

±×¸®°í ÀÌ¹Ì À§Ä¡µÈ ruleÀ» ´Ù¸¥ À§Ä¡·Î ¹Ù²Ù°í ½Í´Ù¸é -R ¿É¼ÇÀ» ÁÖ¸é µÈ´Ù. -I ¿É¼ÇÀ» ÁÖ´Â °Í°ú ¸¶Âù°¡Áö·Î »ç¿ëÇÒ ¼ö Àִµ¥ ´Ù¸¸ -I¿É¼ÇÀ» »ç¿ëÇØ¼­ 1ÀÇ À§Ä¡¿¡ ³õÀ¸¸é ´Ù¸¥ ruleµéÀÌ ¹ØÀ¸·Î ÇÑÄ­¾¿ ³»·Á°¡´Â ¹Ý¸é -R¿É¼ÇÀ» »ç¿ëÇØ¼­ 1ÀÇ À§Ä¡¿¡ ³õÀ¸¸é ±× À§Ä¡ÀÇ ruleÀº »èÁ¦µÈ´Ù.

±×¸®°í ³¡À¸·Î ruleÀ» »èÁ¦ÇÏ°í ½Í´Ù¸é -D¿É¼Ç°ú ¼ýÀÚ¸¦ »ç¿ëÇÏ¸é µÇ°í, -L ¿É¼ÇÀ» »ç¿ëÇϸé ÀÛ¼ºµÈ ¸ðµç ruleÀÇ ¸ñ·ÏÀ» º¸¿©ÁÖ°í, -F ¿É¼ÇÀ» ÁÖ¸é ÇØ´ç chainÀÇ ¸ðµç ruleÀ» »èÁ¦ÇÑ´Ù. ±×¸®°í ¸¸¾à chainÀ» ¸í½ÃÇÏÁö ¾Ê¾Ò´Ù¸é ¸ðµç °ÍÀ» flushÇÒ °ÍÀÌ´Ù.

3. SYN Packets
Á»´õ ½ÉÈ­µÈ ³»¿ë¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ. ¿ì¼± ÆÐŶµéÀº ƯÁ¤ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù. ±×¸®°í ÇÁ·ÎÅäÄÝÀÌ TCP¶ó¸é ¿ª½Ã ƯÁ¤ port¸¦ »ç¿ëÇÑ´Ù. ±×·¯¹Ç·Î ¿©·¯ºÐ ÄÄÇ»ÅÍÀÇ ¸ðµç Æ÷Æ®¸¦ ¸·À½À¸·Î½á º¸¾ÈÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÇÏÁö¸¸ ´ç½ÅÀÌ ´Ù¸¥ ÄÄÇ»ÅÍ¿¡ ÆÐŶÀ» º¸³»¸é ±× ÄÄÇ»ÅÍ´Â ´ç½Å¿¡°Ô ´Ù½Ã ÀÀ´äÀ» ÇØ¾ßÇÑ´Ù. ±×·¯¹Ç·Î ¸¸¾à ´ç½Å¿¡°Ô µé¾î¿À´Â ¸ðµç Æ÷Æ®¸¦ ¸·¾Æ¹ö¸°´Ù¸é ´ç½Å¿¡°Ô ÀÀ´äÇÏ´Â ÆÐŶµµ °á±¹ ¸ø µé¾î¿À¹Ç·Î connectionÀ» ÇÏ´Â Àǹ̰¡ ¾øÀ» °ÍÀÌ´Ù.

ÇÏÁö¸¸ ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ´Ù. µÎ ÄÄÇ»ÅͰ¡ TCP connectionÀ¸·Î ÆÐŶÀ» ÁÖ°í ¹Þ´Â´Ù¸é ±× connectionÀº ¿ì¼± ÃʱâÈ­°¡ µÇ¾î¾ß ÇÑ´Ù.

À̰ÍÀº ¹Ù·Î SYN packetÀÌ ´ã´çÇÑ´Ù. SYN packetÀº ´Ü¼øÈ÷ ´Ù¸¥ ÄÄÇ»ÅÍ¿¡°Ô ÁÖ°í ¹ÞÀ» Áغñ°¡ µÇ¾ú´Ù´Â °Í¸¸ ¾Ë·ÁÁÖ´Â ÃʱâÈ­ ±â´É¸¸À» ÇÑ´Ù. ÀÌÁ¦ ¼­ºñ½º¸¦ ¿äûÇÏ´Â ÄÄÇ»ÅÍ´Â ¿ì¼±ÀûÀ¸·Î SYN packetÀ» º¸³½´Ù´Â °ÍÀ» ¾Ë°Ô µÇ¾ú´Ù. ±×·¯¹Ç·Î µé¾î¿À´Â SYN packet¸¸ ¸·±â¸¸ ÇÏ¸é ´Ù¸¥ ÄÄÇ»ÅͰ¡ ´ç½Å ÄÄÇ»ÅÍÀÇ ¼­ºñ½º¸¦ ÀÌ¿ëÇÏÁö ¸øÇÏ°Ô ÇÒ ¼ö ÀÖ°í, ÇÏÁö¸¸ ´ç½ÅÀº ±×µé°ú Åë½ÅÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

Áï ÀÌ¿Í °°ÀÌ ÇÏ¸é ´ç½ÅÀÌ ¸ÕÀú ÆÐŶÀ» º¸³»¼­ ¿äûÀÌ µé¾î¿À´Â °ÍÀÌ ¾Æ´Ï¸é ¸ðµÎ ¹«½ÃÇØ ¹ö¸®°Ô µÈ´Ù.
ÀÌ ¿É¼ÇÀ» »ç¿ëÇϱâ À§Çؼ­´Â ¼±ÅÃÇÑ ÇÁ·ÎÅäÄÝ µÚ¿¡ --synÀ̶ó°í ¸í·ÉÀ» ³ÖÀ¸¸é µÈ´Ù. ÀÌÁ¦ ÀÎÅͳÝÀ¸·ÎºÎÅÍ ¿À´Â ¸ðµç ¿¬°áÀ» ¸·±âÀ§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ruleÀ» Á¤ÇÏ¸é µÈ´Ù.

./iptables –A INPUT –i ppp0 –p tcp --syn –j DROP


´ç½ÅÀÌ ¸¸¾à À¥ ¼­ºñ½º¸¦ ¿î¿µÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó¸é À̰ÍÀº À¯¿ëÇÑ ruleÀÌ µÉ °ÍÀÌ´Ù.

¸¸¾à ´ç½ÅÀÌ À¥¼­ºñ½º¸¦ À§ÇØ ÇϳªÀÇ Æ÷Æ®(¿¹¸¦µé¾î 80¹ø-HTTP)¸¸ ¿­¾îµÎ°í ½Í´Ù¸é ¿ª½Ã ÇѰ¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
¹Ù·Î ¡°!¡± ¸¶Å©¸¦ »ç¿ëÇÏ¸é µÇ´Âµ¥ ¸¹Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­Ã³·³ ¡°!¡±Àº ¡°not¡±À» ÀǹÌÇÑ´Ù.

¿¹¸¦µé¾î 80¹ø Æ÷Æ®¸¸ Á¦¿ÜÇÏ°í ¸ðµç SYN packetµéÀ» ¸·°í½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

./iptables –A INPUT –i ppp0 –p tcp --syn --destination-port ! 80 –j DROP


´Ù¼Ò º¹ÀâÇѵíÇØµµ °£´ÜÇÑ ruleÀÌ´Ù.

Chain Á¤Ã¥

¸¶Áö¸·À¸·Î ÇѰ¡Áö ³²Àº °ÍÀÌ ÀÖ´Ù. À̰ÍÀº chainÀÇ Á¤Ã¥À» ¹Ù²Ù´Â °ÍÀ¸·Î INPUT°ú OUTPUT chainÀº µðÆúÆ®·Î ACCEPT·Î Á¤ÇØÁ® ÀÖ°í, FORWARD chainÀº DENY·Î Á¤ÇØÁ® ÀÖ´Ù.
¸¸¾à ´ç½ÅÀÇ ÄÄÇ»Å͸¦ ¶ó¿ìÅÍ·Î »ç¿ëÇÏ·Á¸é ´ç½ÅÀº FORWARD chainÀÇ Á¤Ã¥À» ACCEPT·Î ¼³Á¤ÇÏ°í ½ÍÀ» °ÍÀÌ´Ù.

ÀÌ·²¶§ ¾î¶»°Ô ÇØ¾ßÇϴ°¡? À̰ÍÀº ¸Å¿ì °£´ÜÇÏ´Ù. -P ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù. Áï FORWARD chainÀ» ACCEPT·Î Á¤Çϱâ À§Çؼ± ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ³»¸®¸é µÈ´Ù.

./iptables -P FORWARD ACCEPT


4. iptables, ½ºÅ©¸³Æ®·Î ¸¸µé¾î »ç¿ëÇϱâ

À̹ø¿¡´Â iptable ¸í·É¾î¸¦ Æí¸®ÇÏ°Ô ½ºÅ©¸³Æ®·Î ¸¸µé¾î¼­ »ç¿ëÇØ º¸ÀÚ
ÀÏ´Ü iptables¶ó´Â ÆÄÀÏÀ» ´ÙÀ½Ã³·³ ÀÛ¼ºÇØ º¸ÀÚ. ÆÄÀÏÀÇ À§Ä¡´Â /etc/sysconfig/ ¾Æ·¡¿¡ µÎµµ·Ï ÇϰڴÙ.


--begin script--
#!/bin/sh

# ¿ì¼± ¸ðµç RuleÀ» Á¤¸®ÇÑ´Ù.

/sbin/iptables -F

# ´ÙÀ½À¸·Î °¢°¢¿¡ ´ëÇÑ Á¤Ã¥À» ¼¼¿î´Ù.

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

# localhost¿¡¼­ÀÇ trafficÀ» ¹Þ¾ÆµéÀδÙ.

/sbin/iptables -A INPUT -i lo -j ACCEPT

# È®¸³µÈ ¿¬°á¿¡ ´ëÇÑ PacketÀ» ¹Þ¾ÆµéÀδÙ.

/sbin/iptables -A INPUT -i eth0 -p tcp ! --syn -j ACCEPT

# DNS ÀÀ´äÀ» ¹Þ¾ÆµéÀδÙ.

/sbin/iptables -A INPUT -i eth0 -p tcp --source-port 53 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p udp --source-port 53 -j ACCEPT

# ÀÎÁõ ¿¬°áÀ» °ÅºÎÇÑ´Ù(±×·¸Áö ¾ÊÀ» °æ¿ì ¸ÞÀϼ­¹ö°¡ ¿À·§µ¿¾È

ŸÀӾƿô »óŰ¡ µÉ °ÍÀÌ´Ù.)
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 113 -j REJECT

# echo³ª ¸ñÀûÁö¿¡ µµÂø ¸øÇϰųª ½Ã°£ ÃʰúµÈ icmp packetµéÀ» ¹Þ¾ÆµéÀδÙ.

/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type 0 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type 3 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type 11 -j ACCEPT

--end script—


À§ÀÇ ½ºÅ©¸³Æ®´Â ÇϳªÀÇ ¿¹¿¡ ºÒ°úÇÏ°í ±âŸ ssh³ª ftp, sambaµîÀ» ÀÌ¿ëÇϱâ À§ÇÑ ¼³Á¤»çÇ×À» Á÷Á¢ ÀÛ¼ºÇØ¾ß ÇÑ´Ù.
ÆÄÀÏ ÀÛ¼ºÀÌ ³¡³µÀ¸¸é ÆÄÀÏ¿¡ ½ÇÇà±ÇÇÑÀ» Áà¾ßÇÑ´Ù. º¸¾È»ó root¸¸ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ±ÇÇÑÀ» º¯°æÇÑ ÈÄ À§ÀÇ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ¸é µÈ´Ù.

È®ÀÎÀ» ÇÏ·Á¸é /sbin/iptables –L À̶ó°í ÇÏ¸é ¹æ±Ý ½ÇÇà½ÃŲ ½ºÅ©¸³Æ®°¡ ³ª¿Ã °ÍÀÌ´Ù.

±×¸®°í ºÎÆÃ½Ã¸¶´Ù ½ÇÇàÀ» ½ÃŰ·Á¸é /etc/rc.d/rc.local ÆÄÀÏ ¸Ç ¾Æ·¡ ºÎºÐ¿¡ ´ÙÀ½Ã³·³ ³ÖÀ¸¸é µÈ´Ù.

if [ -f /etc/sysconfig/iptables ]; then
/etc/sysconfig/iptables
fi

À̹ø ½Ã°£¿¡´Â IptablesÀÇ ±âÃʸ¸À» ¾Ë¾Æº¸¾Ò´Ù. ¿©±â ÀÖ´Â Á¤º¸¸¦ ÅëÇØ¼­ ´ç½ÅÀº ±âº»ÀûÀÎ firewallÀ» ¼³Á¤ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷ ¸¹Àº °ÍµéÀÌ ³²¾ÆÀÖ´Ù. ´õ ¸¹Àº ¿É¼Ç¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â À§Çؼ­ man ÆäÀÌÁö¸¦ Ȱ¿ëÇϱ⠹ٶó°í Iptables¿¡ °ü·ÃµÈ ½ÉÈ­µÈ ¹®¼­µéÀ» Âü°íÇϱ⠹ٶõ´Ù.

Reference Site

http://kldp.org/Translations/html/Packet_Filtering-KLDP/Packet_Filtering-KLDP-7.html
http://linux.com/enhance/newsitem.phtml?sid=125&aid=12431
http://chongnux.klug.or.kr/board/read.php?table=tip1&no=326
http://linux.co.kr/tips/se.html?keyword=iptables

* ¿ø¹®Ãâó : http://www.eblove.com/rgboard/view.php?&bbs_id=web1004i01&doc_num=119

Á¶È¸¼ö : 14858