¸®´ª½º 2.4 ÆÐŶ ÇÊÅ͸µ ÇÏ¿ìÅõ
¸®´ª½º 2.4 ÆÐŶ ÇÊÅ͸µ ÇÏ¿ìÅõ
Rusty Russell, mailing list netfilter@lists.samba.org
v1.0 Tue Mar 21 23:29:42 EST 2000
ÀÌ ¹®¼´Â 2.4 ¸®´ª½º Ä¿³Î¿¡¼ À߸øµÈ ÆÐŶÀ» ÇÊÅ͸µÇϱâ À§ÇÏ¿© ¾î¶»°Ô iptables À» ÀÌ¿ëÇϴ°¡¸¦ ±â¼úÇÑ´Ù.
¿©·¯ºÐ ȯ¿µÇÕ´Ï´Ù.
ÀÌ ¹®¼´Â ¿©·¯ºÐÀÌ IP address, network address, netmask, routing, DNS
°¡ ¹«¾úÀÎÁö ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ±×·¸Áö ¾Ê´Ù¸é '³×Æ®¿öÅ© °³³ä ÇÏ¿ìÅõ'
¸¦ Àб⸦ ±ÇÀ¯ÇÕ´Ï´Ù.
ÀÌ ÇÏ¿ìÅõ´Â »ó³ÉÇÑ ¼Ò°³(ÀÌ°Ô ¿©·¯ºÐÀ» ¿¹Þ°Ô ÇÏ°í Áö±ÝÀº È帮¸ÛÅÖÇÏ°í
±×·¯³ª ¹«¹æºñÀÎ)¿Í °¡°øµÇÁö¾ÊÀº ¿ÏÀü ³ëÃâ(which would leave all but the
hardiest souls confused, paranoid and seeking heavy weaponry)»çÀ̸¦ ³Ñ
³ªµé °ÍÀÌ´Ù.
¿©·¯ºÐÀÇ ³×Æ®¿öÅ©´Â ¾ÈÀüÇÏÁö ¾Ê´Ù. ºü¸£°í, Æí¾ÈÇÏ¸é¼ ±× »ç¿ëÀÌ ÁÁÀº
ÂÊÀ¸·Î¸¸ Çϵµ·ÏÇÏ°í ¾ÇÇÑ ½Ãµµ¸¦ Çã¶ôÇÏÁö ¾Êµµ·Ï ÇÏ·Á´Â °ÍÀº º¹ÀâÇÑ ¿µ
È°ü¿¡¼ ÀÚÀ¯·Î¿î ´ëÈ´Â Çã¶ôÇÏ¸é¼ "ºÒÀ̾ß"ÇÏ°í ¿ÜÄ¡´Â °ÍÀº ºÒÇãÇÏ´Â
°Íó·³ °ÅÀÇ ÇØ°áºÒ´ÉÀÇ ¹®Á¦¿Í °°´Ù. ÀÌ°Í¿¡´ëÇÑ ÇØ´äÀº ÀÌ ÇÏ¿ìÅõ¿¡¼
±¸ÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù.
¿©·¯ºÐÀÌ ÇÒ ¼öÀÖ´Â °ÍÀº ±× ÀýÃæÁ¡À» °áÁ¤ÇÏ´Â ÀÏÀÌ´Ù. ³ª´Â ÀÌ·¯ÇÑ ¸ñÀû
À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î¸î µµ±¸¿Í °æ°èÇÏ¿©¾ßÇÒ ¾àÁ¡¿¡ ´ëÇÏ¿© ¿©·¯ºÐÀÌ
ÁÁÀº ¸ñÀûÀ¸·Î »ç¿ëÇÏ°í ¾ÇÀÇÀÖ´Â ¸ñÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê±â¸¦ ¹Ù¶ó¸ç, ¾Ë·Á
ÁÖ·Á°í ÇÑ´Ù. ¶Ç´Ù¸¥ ¾î·Á¿î ¹®Á¦ÀÌ´Ù.
¼¼°³ÀÇ À¥»çÀÌÆ®°¡ ÀÖ´Ù.
netfilterÀÇ ¸ÞÀϸµ ¸®½ºÆ®¸¦ À§Çؼ´Â
»ï¹ÙÀÇ ¸®½ºÆ® ¼¹ö¸¦ º¸¶ó.
ÆÐŶÇÊÅÍ´Â Áö³ª°¡´Â ÆÐŶÀÇ ÇØ´õ¸¦ »ìÆ캸°í ±× Àüü ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ´Â
¼ÒÇÁÆ®¿þ¾îÀÇ ÀϺÎÀÌ´Ù. ÀÌ°ÍÀº ÆÐŶÀ» 'DROP'(Áï, ¸¶Ä¡ ÀüÇô Àü´ÞµÇÁöµµ ¸ø
Çß´ø°Í ó·³ ÆÐŶÀ» °ÅºÎ) ÇÏ´ø°¡, 'ACCEPT'(Áï, ÆÐŶÀÌ Áö³ª°¡µµ·Ï ³»¹ö·Á µÒ)
ÇÏ´ø°¡ ¶Ç´Â ´Ù¸¥ ´õ¿í º¹ÀâÇÑ ¹«¾ùÀ» ÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÒ °ÍÀÌ´Ù.
¸®´ª½º¿¡¼ ÆÐŶ ÇÊÅ͸µÀº Ä¿³Î ³»ºÎ¿¡ ±¸¼ºµÇ°í(Ä¿³ÎÀÇ ¸ðµâ·Î¼ ¶Ç´Â ±× ³»ºÎ¿¡
Æ÷ÇÔ µÇ´Â ÇüÅÂÀÌ´Ù), ¿ì¸®°¡ ÆÐŶÀ¸·Î ÇؾßÇÒ ¸î¸î º¹ÀâÇÑ °ÍÀÌ ÀÖ´Ù. ±×·¯³ª,
±× ÆÐŶÀÇ Çì´õ¸¦ °üÂûÇÏ°í ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ´Â ±âº» ¿øÄ¢Àº ¿©ÀüÈ÷ Àû¿ë
µÈ´Ù.
Á¦¾î, º¸¾È, °üÂû°¡´É¼º
- Á¦¾î:
-
¿©·¯ºÐÀÌ ³»ºÎ ³×Æ®¿öÅ©¿¡¼ ´Ù¸¥ ³×Æ®¿öÅ©·Î ¸®´ª½º ¹Ú½º¸¦ ÀÌ¿ëÇÏ¿©
Á¢¼ÓÀ» ÇÏ°íÀÚ ÇÒ¶§(¼ÒÀ§, ÀÎÅͳÝ) ¿©·¯ºÐÀº ¾î¶²ÇüÅÂÀÇ Àü¼ÛÀº °¡´ÉÇÏ°Ô
ÇÏ°í ´Ù¸¥°ÍÀº ºÒ°¡´ÉÇÏ°Ô ÇÒ ±âȸ¸¦ °¡Áø´Ù. ¿¹¸¦ µé¾î, ÆÐŶ Çì´õ¿¡´Â
¸ñÀûÁöÀÇ ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖ°í ÀÌ°ÍÀ¸·Î ÆÐŶÀÌ ¹Ù±ù ³×Æ®¿ö±×ÀÇ ´Ù¸¥°÷
À¸·Î °¡Áö ¾Êµµ·Ï ÇÑ´Ù. ´Ù¸¥ ¿¹·Î, ³ª´Â Dilbert archives¸¦ È£ÃâÇϱâ
À§ÇÏ¿© ³Ý½ºÄÉÀÙÀ» ÀÌ¿ëÇÑ´Ù. ±×°÷ÀÇ À¥ÆäÀÌÁö¿¡´Â doubleclick.netÀ¸·Î
ºÎÅÍÀÇ ±¤°í°¡ ÀÖ°í ³Ý½ºÄÉÀÙÀº ±× ±¤°í¸¦ ¹Þ±âÀ§ÇÏ¿© ³ªÀÇ ½Ã°£À» ¼ÒºñÇÑ
´Ù. doubleclick.netÀÇ ÁÖ¼Ò·Î °¡°Å³ª ¶Ç´Â ±×°÷¿¡¼ ¿À´Â ¾î¶°ÇÑ ÆÐŶµµ
Çã¶ôÇÏÁö ¾Êµµ·Ï ÆÐŶÇÊÅÍ¿¡°Ô À̾߱â ÇØ ³õÀ½À¸·Î ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö
ÀÖ´Ù. (ÀÌ·¸°Ô ÇÏ´Â ´õ ÁÁÀº ¹æ¹ýµµ ÀÖ´Ù : Junkbuster¸¦ º¸¼¼¿ä)
- º¸¾È:
-
¿©·¯ºÐÀÇ ¸ÚÁö°í, Àß Á¤µ·µÈ ³×Æ®¿öÅ©¿Í ÀÎÅͳÝÀÇ È¥µ·»çÀÌ¿¡ ¸®´ª½º ¹Ú½º
¸¸ÀÌ ÀÖ´Ù¸é, ¿©·¯ºÐÀÇ ³×Æ®¿öÅ©·Î µé¾î¿À·Á´Â °ÍÀ» ¾ïÁ¦ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº
±Ù»çÇÑ ÀÏÀÌ´Ù. ¿¹¸¦µé¾î, ¿©·¯ºÐÀº ¿©·¯ºÐÀÇ ³×Æ®¿öÅ©·ÎºÎÅÍ ³ª°¡´Â ¸ðµç
°ÍÀ» Çã¿ëÇÏ°í ½ÍÁö¸¸, ¹Ý¸é¿¡ ¹ÛÀ¸·ÎºÎÅÍ µé¾î¿À´Â, "Á×À½ÀÇ ÇÎ"°°Àº, ¾ÇÀÇ
ÀÖ´Â °Í¿¡ ´ëÇÏ¿©´Â °ÍÁ¤ÀÌ µÉ °ÍÀÌ´Ù. ´Ù¸¥ ¿¹·Î, ¾Æ¹«¸® ¿©·¯ºÐ ¸®´ª½º
¹Ú½ºÀÇ ¸ðµç °èÁ¤»ç¿ëÀÚ°¡ ¾ÏÈ£¸¦ °¡Áö°í ÀÖ´Ù°í ÇÏ´õµµ ¹Ù±ùÀ¸·ÎºÎÅÍÀÇ
Åڳݽõµ´Â ¹Ù¶óÁö ¾ÊÀ» °ÍÀÌ´Ù. ´ëºÎºÐÀÇ »ç¶÷µéó·³ ÀÎÅͳݿ¡¼ ±¸°æ²Û
ÀÌ µÇ°í ½Í°í Á¦°øÀÚ´Â µÇ°í½ÍÁö ¾ÊÀ» °ÍÀÌ´Ù. °£´ÜÈ÷ ¸»Çؼ, Á¢¼ÓÁß¿¡
¸ðµç µé¾î¿À·Á´Â ÆÐŶÀ» ÆÐŶ ÇÊÅ͸¦ ÀÌ¿ëÇÏ°Å °ÅºÎÇÒ·Á°í ÇÒ °ÍÀÌ´Ù.
- °üÂû°¡´É¼º:
-
°¡²û À߸ø ¼³Á¤µÈ Áö¿ª³×Æ®¿öÅ©´Â ÆÐŶÀ» ¹Ù±ù¼¼»óÀ¸·Î ÅäÇسõ´Â´Ù. ÆÐŶ
ÇÊÅÍ¿¡°Ô ¾î¶°ÇÑ ÀÌ»óÇÑ ÀÏÀÌ¶óµµ ÀϾ¸é ¿©·¯ºÐ¿¡°Ô ¾Ë·Á ÁÖµµ·Ï ¸»ÇØ
µÎ´Â °ÍÀº ±Ù»çÇÑ ÀÏÀÌ´Ù. ¿©·¯ºÐÀº ÀÌ·± ÀÏ¿¡´ëÇÏ¿© ¹«¾ùÀΰ¡¸¦ ÇÒ ¼öµµ
ÀÖ°í ±×³É 'ÀÌ»óÇÑ ÀÏÀ̳×'ÇÏ°í ³Ñ±æ ¼öµµ ÀÖ´Ù.
1.1 ½Ã¸®Áî ºÎÅÍ ¸®´ª½º Ä¿³ÎÀº ÆÐŶ ÇÊÅ͸µÀ» Æ÷ÇÔÇϱ⠽ÃÀÛÇß´Ù. Á¦ 1¼¼´ë´Â
BSDÀÇ ipfw¸¦ ±âº»À¸·Î ÇÏ¿´°í 1994³â ÈĹݱ⿡ Alan Cox¿¡ ÀÇÇؼ Æ÷Æ® µÇ¾ú´Ù.
ÀÌ°ÍÀº ¸®´ª½º 2.0¿¡¼ Jos Vos¿Í ´Ù¸¥À̵鿡 ÀÇÇؼ °³¼±µÇ¾ú°í Ä¿³ÎÀÇ ÇÊÅ͸µ
±ÔÄ¢À» Á¦¾îÇÏ´Â »ç¿ëÀÚ Åø·Î´Â 'ipfwadm'ÀÌ »ç¿ëµÇ¾ú´Ù. 1998³â Á߹ݿ¡ ¸®´ª½º
2.2¸¦ À§ÇÏ¿© ³ª´Â Michael NeulingÀÇ µµ¿òÀ¸·Î Ä¿³Î¿¡ ´ëÇÏ¿© ¿½ÉÈ÷ ÀÏÇÏ¿´°í
»ç¿ëÀÚ Åø·á´Â 'ipchains'¸¦ ³»³õ¾Ò´Ù. ¸¶Áö¸·À¸·Î, Á¦ 4¼¼´ë ÅøÀÌ 'iptables'ÀÌ°í
¸®´ª½º 2.4¸¦ À§ÇÏ¿© 1999³â Á߹ݿ¡ Ä¿³ÎÀ» Á¦ ÀÛ¼º ÇÏ¿´´Ù. ÀÌ ÇÏ¿ìÅõ ¹®¼°¡
ÃÐÁ¡À» ¸ÂÃß°í ÀÖ´Â °ÍÀÌ ÀÌ iptables ¿¡ ´ëÇÑ ³»¿ëÀÌ´Ù.
netfilter¸¦ °¡Áö°íÀÖ´Â Ä¿³ÎÀÌ ÇÊ¿äÇÏ´Ù. netfilter´Â ´Ù¸¥ °Íµé(iptables ¸ðµâ
°°Àº)ÀÌ ºÙÀ»¼ö ÀÖ´Â ¸®´ª½º Ä¿³ÎÀÇ ÀϹÝÀûÀÎ ±âº» ±¸Á¶ÀÌ´Ù. ÀÌ°ÍÀº 2.3.15 ÀÌ»ó
ÀÇ ¸®´ª½º Ä¿³Î¿¡ µé¾îÀÖ°í Ä¿³Î ¼³Á¤¿¡¼ CONFIG_NETFILTER ¿¡ 'Y'·Î ´ë´äÇÏ°í ÄÄ
ÆÄÀÏÇÑ °ÍÀ̾î¾ß ÇÑ´Ù.
iptables
¶ó´Â ÅøÀº Ä¿³Î¿¡°Ô ¾î¶² ÆÐŶÀ» ÇÊÅÍÇÒ °ÍÀÎÁö¸¦ ¾Ë·ÁÁØ´Ù. ¿©·¯ºÐÀÌ ÇÁ
·Î±×·¡¸Ó³ª º¯Å°¡ ¾Æ´Ï¶ó¸é, ÀÌ°ÍÀÌ ÆÐŶ ÇÊÅ͸µÀ» Á¦¾îÇÏ´Â ¼ö´ÜÀÌ´Ù.
iptables
iptables
´Â Ä¿³ÎÀÇ ÆÐŶ ÇÊÅ͸µ Å×ÀÌºí¿¡ ÇÊÅ͸µ ±ÔÄ¢À» »ðÀÔÇϰųª »èÁ¦ÇÏ´Â µµ±¸
ÀÌ´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ¹«¾úÀ» ¼³Á¤ÇßµçÁö, ÀçºÎÆýÿ¡´Â ¼Ò½ÇµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
´ÙÀ½¹ø ¸®´ª½º°¡ ´Ù½Ã ºÎÆõǾúÀ»¶§ ¼³Á¤ ³»¿ëµéÀÌ À缳ġ µÇ±â¸¦ ¹Ù¶õ´Ù¸é
±ÔÄ¢µéÀ» ¿µ¼Ó½ÃÅ°±â¸¦ º¸¾Æ¶ó
iptables
´Â ipfwadm
°ú ipchains
¸¦ ´ëÄ¡ÇÑ´Ù. ¼Õ½Ç¾øÀÌ iptables ÀÇ »ç¿ëÀ» ÇÇÇÏ°í ½Í
´Ù¸é
ipchains¿Í ipfwadm »ç¿ëÇϱ⸦ º¸¾Æ¶ó.
±ÔÄ¢µéÀ» ¿µ¼Ó½ÃÅ°±â
¿©·¯ºÐÀÇ ÆÄÀ̾î¿ù ¼³Á¤Àº Ä¿³Î¿¡ ÀúÀåµÇ¹Ç·Î ÀçºÎÆýÿ¡ ¼Õ½ÇµÈ´Ù. iptables-save
¿Í iptables-restoreÀ» ±¸ÇöÇÏ´Â °ÍÀº ³ªÀÇ TODO ¸®½ºÆ®¿¡ ÀÖ´Ù. À̰͵éÀÌ ³ª¿À°Ô
µÇ¸é Á¤¸» ÁÁÀ» °ÍÀÌ´Ù. ¾à¼ÓÇÑ´Ù.
±×µ¿¾ÈÀº ¿©·¯ºÐÀÇ ±ÔÄ¢À» ¼³Á¤ÇÏ´Â ¸í·ÉµéÀ» ÃʱâÈ ½ºÅ©¸³Æ®¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù. ¸í
·ÉµéÁß Çϳª°¡ ½ÇÆÐÇÏ¿´À»¶§¸¦ ´ëºñÇÏ¿© ¹º°¡ À̼ºÀûÀΰÍÀ» Çصξî¾ß ÇÑ´Ù. (º¸Åë
'exec /sbin/sulogin'À» »ç¿ëÇÑ´Ù.)
³ª´Â RustyÀÌ´Ù. ¸®´ª½º IP ÆÄÀ̾î¿ù À¯ÁöÇÏ´Â »ç¶÷ÀÌ°í ÀûÀýÇÑ ½Ã±â¿¡ ÀûÀýÇÑ
Àå¼Ò¿¡ ÀÖ°ÔµÈ ±×³É ¿öÅ·ÄÚ´õÀÏ »ÓÀÌ´Ù. ³ª´Â ipchains¸¦ ¸Í±Û¾ú´Ù. (½ÇÁ¦ÀûÀÎ
ÀÛ¾÷À» ÇÑ »ç¶÷À» º¼·Á¸é "How Do I Packet Filter Under Linux?"¶ó´Â ¹®¼¸¦
º¸¶ó), ±×¸®°í À̹ø¿¡ ÆÐŶ ÇÊÅ͸µÀ» ±¸ÇÒ ¼ö ÀÖÀ» Á¤µµÀÇ ¸¹Àº °ÍÀ» ¹è¿ü´Ù.
WatchGuard´Â Á¤¸» ÈǸ¢ÇÑ ÆÄÀ̾î¿ù ȸ»çÀ̸ç,
Á¤¸» ¸ÚÁø Ç÷°ÀÎ ÆÄÀ̾î¹Ú½º¸¦ ÆǸÅÇÏ¸ç ¾Æ¹«°Íµµ ÇÏÁö ¾Ê¾Æµµ ³ª¿¡°Ô ¿ù±ÞÀ»
ÁØ´Ù. ´öºÐ¿¡ ³ª´Â ÀÌ ÀÛÇ°À» ¸¸µå´Âµ¥ ³ªÀÇ ¸ðµç ½Ã°£À» ¼Ò¸ðÇÒ ¼ö ÀÖ¾ú°í,
ÀÌÀüÀÇ ÀÛ¾÷µµ ±×·¯ÇÏ´Ù. ³ª´Â 6°³¿ùÀÌ¸é ³¡¸¶Ä¡¸®¶ó ÁüÀÛÇßÁö¸¸ 12°³¿ùÀÌ
°É·È´Ù. ±×·¯³ª ³»°¡ ¹Ù¸£°Ô Çß´Ù´Â »ý°¢ÀÌ µç´Ù. ¼ö¸¹Àº ¼öÁ¤°ú Çϵåµð½ºÅ©
¹Ú»ì°ú, ÇѹøÀÇ ·¦Å¾ºÐ½Ç°ú ¸î¹øÀÇ ÆÄÀϽýºÅÛ ¹Ú»ì°ú ÇѹøÀÇ ¸ð´ÏÅÍ ¹Ú»ìÀÇ
°á°ú¹°ÀÌ ¿©±âÀÖ´Ù.
³»°¡ ¿©±â¿¡ ÀÖ´Â µ¿¾È, »ç¶÷µéÀÇ À߸øµÈ °³³äÀ» °íÃÄÁÖ°í ½Í´Ù. ³ª´Â Ä¿³Î´ë¿Õ
ÀÌ ¾Æ´Ï´Ù. ³ªµµ ³»°¡ Ä¿³Î´ë¿ÕÀÌ ¾Æ´Ñ°ÍÀ» ¾È´Ù. ¿Ö³ÄÇϸé ÀÌ·± Ä¿³Î¿¡ ´ëÇÑ ÀÛ
¾÷Áß ÁøÂ¥ Ä¿³Î´ë¿Õµé(David S. Miller, Alexey Kuznetsov, Andi Kleen, Alan
Cox °°Àº) ¸î¸í°ú Á¢ÃËÇØ ºÃ±â ¶§¹®ÀÌ´Ù. ±×·¯³ª ±×µéÀº ½É¿ÀÇÑ ¸¶¼úÀ» ÇÏ´À¶ó
³Ê¹«³ª ¹Ù»¦°í, ³»°¡ ¾ÈÀüÇÑ ¹° °¡ÀåÀÚ¸®¿¡¼ Çã¿ìÀû °Å¸®µµ·Ï ³»¹ö·Á µÎ¾ú´Ù.
´ëºÎºÐÀÇ »ç¶÷µéÀº ´Ü ÇϳªÀÇ PPP Á¢¼Ó¸¸ »ç¿ëÇÏ°í ¾î¶² ´©±¸µµ ÀÌ°ÍÀ»
ÅëÇؼ µé¾î¿À´Â °ÍÀ» ¿øÇÏÁö ¾Ê´Â´Ù.
## connection-tracking modulesÀ» »ðÀÔÇÑ´Ù. (not needed if built into kernel).
# insmod ip_conntrack
# insmod ip_conntrack_ftp
## ³»ºÎ·ÎºÎÅÍ ¿À´Â °ÍÀ» Á¦¿ÜÇÑ ´Ù¸¥ »õ·Î¿î Á¢¼ÓÀ» ¸·±âÀ§ÇÏ¿© »õ·Î¿î üÀÎÀ»
## ¸¸µç´Ù.
# iptables -N block
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP
## ÀԷ°ú Æ÷¿öµå üÀÎÀ¸·ÎºÎÅÍ ±× üÀÎÀ¸·Î °¡µµ·Ï ÇÑ´Ù.
# iptables -A INPUT -j block
# iptables -A FORWARD -j block
Ä¿³ÎÀº 'ÇÊÅÍ' Å×ÀÌºí¿¡ ¼¼°³ÀÇ ±ÔÄ¢À» °¡Áö°í ½ÃÀÛÇÑ´Ù. ÀÌ°ÍÀ» ÆÄÀ̾î¿ù üÀÎ
¶Ç´Â ±×³É üÀÎÀ̶ó°í ÇÑ´Ù. ±× ¼¼°³ÀÇ Ã¼ÀÎÀº INPUT, OUTPUT, FORWARD ÀÌ´Ù.
ÀÌ°ÍÀº 2.0 À̳ª 2.2 Ä¿³Î°ú´Â ¾ÆÁÖ ´Ù¸£°Ô ¿òÁ÷ÀδÙ.
ÀÌ Ã¼ÀÎÀº ¾Æ·¡±×¸²Ã³·³ »ý°å´Ù.
_____
/ \
-->[ ¶ó¿ìÆà ]--->|Æ÷¿öµù |------->
[ ÆÇ Á¤ ] \_____/ ^
| |
v ____
___ / \
/ \ | Ãâ·Â |
|ÀÔ·Â | \____/
\___/ ^
| |
----> Local Process ----
À§ ±×¸²¿¡¼ ¼¼°³ÀÇ ¿øÀº À§¿¡¼ ¾ð±ÞÇÑ ¼¼°³ÀÇ Ã¼ÀÎÀ» ³ªÅ¸³½´Ù. ÆÐŶÀÌ ÀÌ
±×¸²¿¡¼ µ¿±×¶ó¹Ì·Î ³ªÅ¸³½°÷¿¡ À̸£¸é ±× üÀÎÀº ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ
±âÀ§ÇÏ¿© ½ÃÇèÇÑ´Ù. üÀÎÀÌ ±× ÆÐŶÀ» DROP Ç϶ó°í Çϸé ÆÐŶÀº ±×°÷¿¡¼ »è
Á¦µÈ´Ù. ±×·¯³ª ±× üÀÎÀÌ ACCEPT ÇÏ°í Çϸé ÀÌ ÀÌ ±×¸²ÀÇ ´ÙÀ½ ºÎºÐÀ¸·Î °è
¼Ó Àü´ÞµÈ´Ù.
üÀÎÀº ±ÔÄ¢ÀÇ Á¡°ËÇ¥ÀÌ´Ù. °¢ ±ÔÄ¢Àº 'ÆÐŶÀÇ Çì´õ°¡ ÀÌ·¸°Ô µÇ¾îÀÖÀ¸¸é ÀÌ
°÷¿¡¼ ¹«¾ùÀ» Ç϶ó'´Â ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ±ÔÄ¢ÀÌ ±× ÆÐŶ¿¡ ¸ÂÁö ¾ÊÀ¸¸é ´Ù
À½ ±ÔÄ¢À» Âü°íÇÑ´Ù. ¸¶Áö¸·À¸·Î ´õÀÌ»ó °í·ÁÇÒ ±ÔÄ¢ÀÌ ¾øÀ¸¸é Ä¿³ÎÀº ¹«¾ù
À» ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§ÇÏ¿© ±× üÀÎÀÇ Á¤Ã¥À» È®ÀÎÇÑ´Ù. º¸¾ÈÀ» »ý°¢ÇÏ
´Â ½Ã½ºÅÛ¿¡¼ ÀÌ·¯ÇÑ Á¤Ã¥Àº º¸Åë Ä¿³Î¿¡°Ô ±× ÆÐŶÀ» DROP Çϵµ·Ï ÇÑ´Ù.
- ÆÐŶÀÌ Ä¿³Î¿¡ µµÅ¹ÇÏ¸é ±× ÆÐŶÀÇ ¸ñÀûÁö¸¦ È®ÀÎÇÑ´Ù. ÀÌ°ÍÀº '¶ó¿ìÆÃ'
À̶ó°í ÇÑ´Ù.
- ÀÌ°ÍÀÇ ¸ñÀûÁö°¡ ÀÌ°÷À̸é, ÆÐŶÀº À§ ±×¸²¿¡¼ ¾Æ·¡ÂÊ ¹æÇâÀ¸·Î Àü´Þ
µÇ¾î ÀԷ üÀο¡ µµ´ÞÇÑ´Ù. ÀÌ°ÍÀÌ ÀÌ Ã¼ÀÎÀ» Åë°úÇϸé ÆÐŶÀ» ±â´Ù¸®
°íÀÖ´ø ¾î¶² ÇÁ·Î¼¼¼µµ ±×°ÍÀ» ¹Þ°Ô µÈ´Ù.
- ±×·¸Áö ¾ÊÀ¸¸é, Ä¿³ÎÀÌ Æ÷¿öµù ºÒ´ÉÀ¸·Î µÇ¾îÀÖ´ø°¡, ÆÐŶÀ» ¾î¶»°Ô Æ÷
¿öµùÇØ¾ß Çϴ°¡¸¦ ¾ËÁö ¸øÇϸé, ±× ÆÐŶÀº DROP µÈ´Ù. Æ÷¿öµùÀÌ °¡´ÉÇÏ
°Ô µÇ¾îÀÖ°í ´Ù¸¥ °÷ÀÌ ¸ñÀûÁöÀ̸é ÆÐŶÀº ±×¸²ÀÇ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î Àü´Þ
µÇ¾î Æ÷¿öµù üÀÎÀ¸·Î °£´Ù. ÀÌ Ã¼ÀÎÀÌ ACCEPT ÇÏ°Ô µÇ¸é ÀÌ°ÍÀº Æ÷¿öµù
ÇÒ ³×Æ®¿öÅ©·Î º¸³»Áø´Ù.
- ¸¶Áö¸·À¸·Î, ÀÌ°÷¿¡¼ µ¹¾Æ°¡´ø ÇÁ·Î±×·¥Àº ³×Æ®¿öÅ© ÆÐŶÀ» Àü¼ÛÇÒ ¼ö ÀÖ
°Ô µÈ´Ù. ÀÌ ÆÐŶÀº Áï½Ã Ãâ·Â üÀο¡ º¸³»Áø´Ù. ÀÌ Ã¼ÀÎÀÌ ACCEPT ÇÏ°Ô
µÇ¸é ÀÌ ÆÐŶÀº ±× ¸ñÀûÁö°¡ ¾îµðµçÁö º¸³»Áø´Ù.
iptables´Â »ó´çÈ÷ ÀÚ¼¼ÇÑ ¸Þ´º¾ó ÆäÀÌÁö(man iptables
)¸¦ °¡Áö°í ÀÖ´Ù. ipchains
¿¡ Àͼ÷ÇÏ´Ù¸é
<@@ref>Appendix-Aipchains¿Í iptablesÀÇ ´Ù¸¥Á¡À» º¸¾Æ¶ó. ÀÌ µÑÀº ¸Å¿ì
ºñ½ÁÇÏ´Ù.
iptables
·Î ÇÒ¼ö ÀÖ´Â ÀÏ¿¡´Â ¸î°¡Áö ´Ù¸¥°ÍÀÌ ÀÖ´Ù. ù¹ø° ÀÛµ¿Àº Àüü
üÀÎÀ» Á¶ÀýÇÑ´Ù. óÀ½ ½ÃÀÛÀº ¼¼°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø üÀÎÀ¸·Î ½ÃÀÛÇÏ´Â
µ¥ ÀÌ°ÍÀº Á¦°ÅµÉ ¼ö ¾ø´Ù.
- »õ·Î¿î üÀÎ ¸¸µé±â (-N).
- ºñ¾îÀִ üÀÎÀ» Á¦°ÅÇϱâ (-X).
- ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ Á¤Ã¥À» ¹Ù²Ù±â (-P)
- ¾î¶² üÀÎÀÇ ±ÔÄ¢µéÀ» ³ª¿Çϱâ (-L)
- üÀÎÀ¸·ÎºÎÅÍ ±ÔÄ¢µéÀ» Áö¿ì±â (-F)
- üÀγ»ÀÇ ¸ðµç ±ÔÄ¢µéÀÇ ÆÐŶ°ú ¹ÙÀÌÆ®ÀÇ Ä«¿îµå¸¦ 0 À¸·Î ¸¸µé±â (-Z)
üÀÎ ³»ºÎÀÇ ±ÔÄ¢À» Á¶ÀÛÇÏ´Â ¸î°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
- üÀο¡ »õ·Î¿î ±ÔÄ¢À» Ãß°¡Çϱâ (-A)
- üÀÎÀÇ ¾î¶² ÁöÁ¡¿¡ ±ÔÄ¢À» »ðÀÔÇϱâ (-I)
- üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» ±³È¯Çϱâ (-R)
- üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» Á¦°ÅÇϱâ (-D)
- üÀο¡¼ ÀÏÄ¡Çϴ ù¹ø° ±ÔÄ¢À» Á¦°ÅÇϱâ (-D)
iptables´Â ¸ðµâ·Î µÇ¾îÀÖÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº iptable_filter.o ÀÌ´Ù. ÀÌ°ÍÀº
óÀ½À¸·Î iptables
¸¦ ½ÇÇàÇÒ¶§ ÀÚµ¿À¸·Î ·ÎµåµÉ °ÍÀÌ´Ù. ÀÌ°Í´À Ä¿³Î¿¡ ¿µ±¸È÷
Æ÷Ç﵃ ¼öµµ ÀÖ´Ù.
iptables ¸í·ÉÀÌ ½ÇÇàµÇ±â Àü¿¡´Â ±âº»ÀûÀ¸·Î ¸¸µé¾îÁ®Àִ üÀÎ(ÀÔ·Â, Æ÷¿öµù,
Ãâ·Â)¿¡´Â ¾Æ¹«¸¥ ±ÔÄ¢µµ ¾ø´Ù. (ÁÖÀÇ : ¾î¶² ¹èÆ÷ÆÇ¿¡´Â ÃʱâÈ ½ºÅ©±éÆ®¿¡
iptables¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ µé¾îÀÖÀ» ¼ö ÀÖ´Ù.) ÀԷ°ú Ãâ·Â üÀÎÀÇ Á¤Ã¥Àº
ACCEPTÀÌ°í Æ÷¿öµù üÀÎÀÇ Á¤Ã¥Àº DROPÀÌ´Ù. (iptable_filter ¸ðµâ¿¡
'forward=1' ¿É¼ÇÀ» ¼±ÅÃÇÏ¿© ÀÌ°ÍÀ» °íÄ¥ ¼ö ÀÖ´Ù.)
ÀÌ°ÍÀº ÆÐŶ ÇÊÅ͸µÀÇ ¾à¹æÀÇ °¨ÃÊÀÌ´Ù. ÀϹÝÀûÀ¸·Î Ãß°¡¿Í Á¦°Å ¸í·ÉÀ» »ç¿ëÇÒ
°ÍÀÌ´Ù. ´Ù¸¥°ÍÀº ÀÌ·± °³³äÀÇ ´Ü¼øÇÑ È®ÀåÀÌ´Ù.
°¢ ±ÔÄ¢Àº ÆÐŶÀÌ ÀÏÄ¡µÇ¾î¾ßÇÒ »óŸ¦ ¼³Á¤ÇÏ°í, ÀÏÄ¡µÇ¾úÀ»¶§ ¹«¾úÀ» ÇÒ °ÍÀΰ¡
('target')¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦µé¾î, ¿©·¯ºÐÀº 127.0.0.1·ÎºÎÅÍÀÇ ¸ðµç ICMP ÆÐŶÀ»
DROPÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ±×·¸´Ù¸é, ÀÌ°æ¿ì ÀÏÄ¡µÇ¾î¾ßÇÒ »óÅ´ 'ICMPÀÌ¸é¼ ±× Ãâó
°¡ 127.0.0.1' ÀÌ´Ù. ÀÌ °æ¿ì 'target' Àº DROP ÀÌ´Ù.
127.0.0.1 Àº 'loopback' ÀÎÅÍÆäÀ̼ ÀÌ°í ½ÇÁ¦ÀûÀÎ ³×Æ®¿öÅ© Á¢¼ÓÀÌ ÀüÇô ¾ø´õ¶óµµ
ÀÌ°ÍÀº °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀº 'ping' ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© »ý¼ºÇÒ ¼ö
ÀÖ´Ù. (ÀÌ°ÍÀº ´Ü¼øÈ÷ ICMP type 8 (¹ÝÀÀ¿ä±¸)À» º¸³»°í ¸ðµç ÇùÁ¶ÀûÀΠȣ½ºÆ®´Â
Ä£ÀýÇÏ°Ô ICMP type 0 (¹ÝÀÀ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä)À» ´ë´äÇÑ´Ù. ÀÌ°ÍÀº Å×½ºÆ®Çϴµ¥ À¯¿ë
ÇÏ´Ù.
# 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
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# 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'Àº ÇϳªÀÇ ÆÐŶ¸¸
º¸³»µµ·Ï ping¿¡°Ô ¸»ÇÏ´Â °ÍÀÌ´Ù.)
±×¸®°í, 'ÀÔ·Â' üÀο¡ 127.0.0.1¿¡¼ ¿À´Â ÆÐŶ('-s 127.0.0.1')À¸·Î ICMP
ÇÁ·ÎÅäÄÝÀÎ°Í ('-p icmp')Àº DROP ('-j DROP')Ç϶ó´Â ±ÔÄ¢À» Ãß°¡(-A)ÇÏ¿´´Ù.
±×¸®°í´Â ´Ù½Ã pingÀ¸·Î ±ÔÄ¢À» Å×½ºÆ®ÇÏ¿´´Ù. pingÀÌ ¿ÀÁö¾ÊÀº ÀÀ´äÀ» ±â´Ù
¸®Áö ¸øÇÏ°í ÀÀ´ä¹Þ±â¸¦ Æ÷±âÇϱâ±îÁö ¾à°£ÀÇ ½Ã°£ÀÌ °É¸±°ÍÀÌ´Ù.
±ÔÄ¢À» Á¦°ÅÇϴµ¥´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ù°, ÀÔ·ÂüÀο¡´Â ´Ü ÇϳªÀÇ ±ÔÄ¢
¸¸ÀÌ ÀÖ´Ù´Â °ÍÀ» ¾ÍÀ¸·Î, ¸î¹øÀ» Áö¿ö¶ó´Â ¹æ½ÄÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.
# iptables -D INPUT 1
#
ÀԷ üÀÎÀ¸·ÎºÎÅÍ 1¹ø ±ÔÄ¢À» Á¦°ÅÇÑ´Ù.
µÎ¹ø° ¹æ¹ýÀº -A ¸í·ÉÀ» ÀÌ¿ëÇÑ ÀÌÀüÀÇ ¸í·É¿¡¼ -A¸¦ -D·Î ´Ù²ãÁÖ¸é µÈ´Ù.
ÀÌ°ÍÀº º¹ÀâÇÑ ±ÔÄ¢À» °¡Áö°í ÀÖ°í °¢ ±ÔÄ¢ÀÌ ¸î¹ø° ±ÔÄ¢ÀÎÁö¸¦ ¿Ü¿ì°í
´Ù´Ï±â¸¦ ½È¾î ÇÑ´Ù¸é, ¾ÆÁÖ À¯¿ëÇÑ ¹æ¹ýÀÌ´Ù.
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
#
-D ¸í·ÉÀº -A ¸í·É°ú ¶È °°Àº ¹®¹ýÀÌ´Ù. (-I ³ª -R µµ ¸¶Âù°¡ÁöÀÌ´Ù.) ¸¸¾à,
¿©·¯°³ÀÇ ¶È °°Àº ±ÔÄ¢µéÀÌ °°Àº üÀο¡ ÀÖ´Ù¸é, ù¹ø° °Í¸¸ Á¦°Å µÉ °ÍÀÌ´Ù.
¾Õ¿¡¼ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-p'¸¦ ÀÌ¿ëÇÏ¿´°í, Ãâó¸¦ ÁöÁ¤Çϱâ
À§ÇÏ¿© '-s'¸¦ ÀÌ¿ëÇÏ¿´´Ù. ±× ¿Ü¿¡µµ ÆÐŶÀÇ Æ¯Â¡À» ÁöÁ¤Çϴµ¥ »ç¿ëµÇ
´Â ´Ù¸¥ ¿É¼ÇµéÀÌ ÀÖ´Ù. ¾Æ·¡´Â À̰͵鿡 ´ëÇÑ ¿Ïº®ÇÑ °³¿äÀÌ´Ù.
Ãâó¿Í ¸ñÀûÁö ÁöÁ¤
Ãâó('-s', '--source', '--src')¿Í ¸ñÀûÁö('-d', '--destination',
'--dst') IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ 4°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. °¡Àå º¸ÆíÀûÀÎ ¹æ¹ýÀº
'www.linuxhq.com', 'localhost' ó·³ À̸§À» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. µÎ¹ø°
¹æ¹ýÀº '127.0.0.1' ó·³ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù.
¼¼¹ø°¿Í ³×¹ø° ¹æ¹ýÀº IP ÁÖ¼ÒÀÇ ±×·ìÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î '199.95.207.0/24'
¶Ç´Â '199.95.207.0/255.255.255.0' °°Àº ÇüÅÂÀÌ´Ù. ÀÌ µÑÀº ¸ðµÎ
199.95.207.0 ºÎÅÍ 199.95.207.255 »çÀÌÀÇ ¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù. '/'
´ÙÀ½ÀÇ ¼ýÀÚ´Â IP ÁÖ¼ÒÀÇ ¾î¶² ºÎºÐÀÌ ÀǹÌÀִ°¡¸¦ ³ªÅ¸³½´Ù. '/32' ³ª
'/255.255.255.255' °¡ ±âº»°ªÀÌ´Ù.(IP ÁÖ¼ÒÀÇ ¸ðµçºÎºÐÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.)
¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ '/0' °¡ »ç¿ëµÈ´Ù.
# iptables -A INPUT -s 0/0 -j DROP
#
ÀÌ°ÍÀº '-s' ¿É¼ÇÀ» ÀÌ¿ëÇÏÁö ¾ÊÀº°Í°ú °°Àº È¿°ú¸¦ ³ªÅ¸³»¹Ç·Î Àß »ç¿ëµÇÁö
¾Ê´Â´Ù.
'¿ª'ÀÇ °æ¿ì ÁöÁ¤
¸¹Àº Áö½ÃÀÚµé('-s'³ª '-d' °°Àº)Àº ÀÏÄ¡ÇÏÁö ¾Ê´Â ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÏ¿©
'!'('not'À» ÀǹÌÇÑ´Ù)·Î ½ÃÀÛÇÏ´Â ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ¿¹·Î,
'-s ! localhost' ´Â localhost·ÎºÎÅÍ¿À´Â ÆÐŶÀÌ ¾Æ´Ñ°æ¿ì¸¦ ³ªÅ¸³½´Ù.
ÇÁ·ÎÅäÄÝ ÁöÁ¤
ÇÁ·ÎÅäÄÝÀº '-p' Áö½ÃÀÚ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝÀ» ¼ýÀÚ°¡ µÉ¼ö ÀÖ°í
(IPÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ¾Ë°í ÀÖ´Ù¸é) 'TCP', 'UDP', 'ICMP' °°Àº À̸§ÀÌ
µÉ ¼öµµ ÀÖ´Ù. ±×¸®°í 'tcp'´Â 'TCP'¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù.
ÇÁ·ÎÅäÄÝ À̸§ ÁöÁ¤¿¡µµ '!'À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. '-p ! TCP'
ÀÎÅÍÆäÀ̼ ÁöÁ¤
'-i'('--in-interface')¿Í '-o'('--out-interface')°¡ ÀÎÅÍÆäÀ̼¸¦ ÀúÁ¤
Çϴµ¥ »ç¿ëµÈ´Ù. ÀÎÅÍÆäÀ̼´Â ÆÐŶÀÌ µé¾î¿À°í ³ª°¡´Â ¹°¸®ÀûÀÎ µµ±¸ÀÌ´Ù.
ifconfig
¸í·ÉÀ» »ç¿ëÇÏ¿© ÇöÀç È°¼ºÈ µÇ¾îÀÖ´Â ÀÎÅÍÆäÀ̼¸¦ ¾Ë¾Æº¼¼ö ÀÖ´Ù.
ÀÔ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-o'
¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀÌ°í Ãâ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº ÀÔ·Â ÀÎÅÍ
ÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-i' ¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀÌ´Ù.
Æ÷¿öµù
üÀÎÀ» Áö³ª´Â ÆÐŶ¸¸ÀÌ ÀԷ°ú Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ °¡Áú°ÍÀÌ´Ù.
ÇöÀç Á¸ÀçÇÏÁö ¾Ê´Â ÀÎÅÍÆäÀ̼¸¦ ÁöÁ¤ÇÏ´Â °Íµµ ¾Æ¹«·± ¹®Á¦¾øÀÌ µÉ ¼ö ÀÖ
´Ù. ÀÌ°ÍÀº ÀÎÅÍÆäÀ̼°¡ È°¼ºÈ µÇ±â Àü±îÁö´Â ±ÔÄ¢¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ
ÀÖÀ»¼ö ¾øÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº dial-up PPP¸¦ »ç¿ëÇÏ´Â °æ¿ì ƯÈ÷ À¯¿ëÇÏ´Ù.
Ưº°ÇÑ °æ¿ì·Î, ÀÎÅÍÆäÀ̼ À̸§ÀÌ '+'·Î ³¡³¯¼ö Àִµ¥ ÀÌ°ÍÀº ±× À̸§À¸·Î
½ÃÀÛÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ ÁöÁ¤ÇÑ´Ù(±×°ÍÀÌ ÇöÀç Á¸ÀçÇϵç Á¸ÀçÇÏÁö
¾Êµç). ¿¹¸¦µé¾î, ¸ðµç PPP ÀÎÅÍÆäÀ̼¿Í ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» ÁöÁ¤ÇÏ·Á¸é
-i ppp+
¿Í°°ÀÌ ÇÏ¸é µÈ´Ù.
ÀÎÅÍÆäÀ̼ À̸§¾Õ¿¡ '!'µµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
ºÐÀý (Fragments) ÁöÁ¤
°¡²û ÆÐŶÀº Çѹø¿¡ ´Ù Àü´ÞµÇ±â¿¡´Â ³Ê¹« Å« °æ¿ì°¡ ÀÖ´Ù. ÀÌ·±°æ¿ì ÆÐŶÀº
¿©·¯ ºÐÀý·Î ³ª´µ¾îÁö°í ´ÙÁßÆÐŶÀÇ ÇüÅ·ΠÀü´ÞµÈ´Ù. ¸ñÀûÁö¿¡¼ ÀÌ ºÐÀýµé
Àº Àç ±¸¼ºµÇ¾î Àüü ÆÐŶÀÌ µÈ´Ù.
ºÐÀý¿¡¼ ¹®Á¦Á¡Àº ³»ºÎ ÆÐŶÀÇ ºÎºÐÀ¸·Î IP Çì´õ ´ÙÀ½ÀÇ À§Ä¡¿¡¼ ÇÁ·ÎÅäÄÝ
Çì´õ¸¦ ã´Âµ¥, ÀÌ°ÍÀº ù¹ø° ºÐÀý¿¡¸¸ Àֱ⠶§¹®¿¡ ãÀ»¼ö°¡ ¾ø´Ù.
¸¸¾à ¿©·¯ºÐÀÌ Á¢¼ÓÃßÀûÀ̳ª NAT¸¦ ÇÑ´Ù¸é ¸ðµç ºÐÀýÀº ÇÊÅ͸µ Äڵ忡 µµ´ÞÇÏ
±â Àü¿¡ ¹¶ÃÄÁö¹Ç·Î ºÐÀý¿¡ ´ëÇÑ °ÆÁ¤Àº ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
±×·¸Áö ¾Ê´Ù¸é, ºÐÀýµéÀÌ ÇÊÅ͸µ ±ÔÄ¢¿¡¼ ¾î¶»°Ô 󸮵Ǵ°¡¸¦ ÀÌÇØÇÏ´Â °Í
Àº Áß¿äÇÏ´Ù. ¿ì¸®°¡ °¡Áö°íÀÖÁö ¾ÊÀº Á¤º¸¸¦ ¿ä±¸ÇÏ´Â ÇÊÅ͸µ ±ÔÄ¢¿¡ ºÎÇÕµÉ
¼ö°¡ ¾ø´Ù. ÀÌ°ÍÀº ù¹ø° ÆÐŶÀº ´Ù¸¥ ÆÐŶ°ú °°ÀÌ Ã³¸®µÇ°í µÎ¹ø° ÀÌÈÄÀÇ
ºÐÀýÀº Àü´ÞµÉ ¼ö ¾øÀ½À» ÀǹÌÇÑ´Ù. ±×·¯¹Ç·Î -p TCP --sport www
('www'
¸¦ Ãâ½Å Æ÷Æ®·Î ÁöÁ¤ÇÏ´Â °æ¿ì)¿Í °°Àº ±ÔÄ¢¿¡ ¸Â´Â ºÐÀýÀº ÀÖÀ» ¼ö ¾ø´Ù(
ù¹ø° ºÐÀýÀ» Á¦¿ÜÇÏ°í). ±× ¹Ý´ëÀÇ ±ÔÄ¢ÀÎ -p TCP --sport ! www
µµ ºÐ
ÀýµéÀ» ó¸®ÇÒ ¼ö ¾ø´Ù.
±×·¯³ª, µÎ¹ø° ÀÌ»óÀÇ ºÐÀý¿¡ ´ëÇÏ¿© ±ÔÄ¢À» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-f'
('--fragment')¶ó´Â Áö½ÃÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. µÎ¹ø° ÀÌ»óÀÇ ºÐÀý¿¡´Â Àû¿ë
µÇÁö¾Ê´Â ±ÔÄ¢À» ÁöÁ¤Çϱâ À§ÇÏ¿© '-f' ¾Õ¿¡ '!' ¸¦ ºÙÀÌ´Â °Íµµ °¡´ÉÇÏ´Ù.
ÀϹÝÀûÀ¸·Î , ù¹ø° ºÐÀý¿¡ ÇÊÅ͸µÀÌ Àû¿ëµÇ¾î DROP µÇ¸é ¸ñÀûÁö ¿¡¼ ´Ù¸¥
ºÐÀýµéÀÇ ÀçÇÕ¼ºÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î, µÎ¹ø° ÀÌ»óÀÇ ºÐÀýÀÌ ±×³É Áö³ª°¡µµ·ÏÇÏ´Â
°Íµµ ¾ÈÀüÇÑ °ÍÀ¸·Î °£ÁÖ µÈ´Ù. ±×·¯³ª ´Ü¼øÈ÷ ºÐÀýµéÀ» Àü´ÞÇÏ´Â °Í¸¸À¸·Î
È£½ºÆ®¸¦ Å©·¡½¬°¡ »ý±â´Â ¹ö±×°¡ ¾Ë·ÁÁ® ÀÖ´Ù. ¿©·¯ºÐÀÌ °áÁ¤ÇÒ ÀÏÀÌ´Ù.
³×Æ®¿öÅ© Çì´õ¿¡ ´ëÇÑ ÁÖÀÇ : À߸ø ±¸¼ºµÈ ÆÐŶµéÀº ÀÌ·¯ÇÑ ½ÃÇèÀ» ÇÒ¶§ DROP
µÇ¾ú´Ù. (TCP, UDP, ICMP ÆÐŶÁß ±æÀÌ°¡ ³Ê¹« ª¾Æ ÆÄÀ̾î¿ù Äڵ尡 Æ÷Æ®³ª
ICMP ÄÚµå¿Í ÇüŸ¦ ÀÐÀ» ¼ö ¾ø´Â °æ¿ì). ¿Ö³ÄÇϸé TCP ºÐÀýÀº 8¹ø° À§Ä¡ºÎÅÍ
½ÃÀ۵DZ⠶§¹®ÀÌ´Ù.
¿¹·Î, ´ÙÀ½°ú °°Àº ±ÔÄ¢Àº 192.168.1.1 ·Î ÇâÇÏ´Â ºÐÀýÀ» DROP ½ÃŲ´Ù.
# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
#
iptables ÀÇ È®Àå : »õ·Î¿î ´ë»ó(Matches)
iptables
´Â È®Àå °¡´ÉÇÏ´Ù. Áï »õ·Î¿î ÇüŸ¦ Á¦°øÇϱâ À§ÇÏ¿© iptables¿Í
Ä¿³Î ¸ðµÎ°¡ È®Àå °¡´ÉÇÏ´Ù´Â ÀǹÌÀÌ´Ù.
ÀÌÁß ÀϺδ ǥÁØÀûÀÌ°í ´Ù¸¥ °ÍÀº ÀÌ»öÀûÀÌ´Ù. ´Ù¸¥»ç¶÷¿¡ ÀÇÇؼµµ È®Àå
Àº ¸¸µé¾îÁú ¼öµµ ÀÖÀ¸¸ç µ¶¸³ÀûÀ¸·Î ¹èÆ÷µÉ ¼ö ÀÖ´Ù.
Á¤»óÀûÀ¸·Î Ä¿³Î È®ÀåÀº Ä¿³Î ¸ðµâ ÇϺΠµð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù.
(/lib/modules/2.3.15/net). ÀÌ°ÍÀº ¿ä±¸¿¡ ÀÇÇÏ¿© ÀûÀçµÈ´Ù. ±×·¯¹Ç·Î Á÷
Á¢ ÀÌµé ¸ðµâÀ» ÀûÀçÇÒ ÇÊ¿ä´Â ¾ø´Ù.
iptablesÀÇ È®ÀåµéÀº °øÀ¯¶óÀ̹ö·¯¸® ÇüÅ·Πº¸Åë /usr/local/lib/iptables
¿¡ À§Ä¡ÇÑ´Ù. ¹èÆ÷ÆÇÀº ÀÌ°ÍÀ» /lib/iptables³ª /usr/lib/iptables¿¡ ³ÖÀ¸
·Á ÇÒ °ÍÀÌ´Ù.
È®ÀåÀº µÎ°¡Áö ÇüÅÂÀÌ´Ù. : »õ·Î¿î Ÿ°Ù(target), »õ·Î¿î Àû¿ë(match)
¾Æ·¡¿¡ »õ·Î¿î Ÿ°Ù¿¡ ´ëÇÏ¿© À̾߱â ÇÒ °ÍÀÌ´Ù. ¾î¶² ÇÁ·ÎÅäÄÝÀº ÀÚµ¿À¸·Î
»õ·Î¿î Å×½ºÆ®¸¦ Á¦°øÇϴµ¥ ÇöÀç·Î´Â TCP, UDP, ICMP ¿¡ ´ëÇؼ ¾Æ·¡¿¡
º¸¿© ÁÙ °ÍÀÌ´Ù.
ÀÌ°ÍÀ» À§Çؼ '-p' ¿É¼Ç µÚ¿¡ ÁöÁ¤Çϴµ¥ ±×·¯¸é È®ÀåÀ» ÀûÁ¦ÇÒ °ÍÀÌ´Ù.
¸í¹éÈ÷ ÇÒ·Á¸é '-m' ¿É¼ÇÀ¸·Î È®ÀåÀ» ÀûÀçÇÏ°í È®Àå ¿É¼ÇÀ» »ç¿ë°¡´ÉÇÏ°Ô
ÇÒ ¼ö ÀÖ´Ù.
È®Àå¿¡ ´ëÇÑ µµ¿òÀ» ¾òÀ¸·Á¸é, ÀûÁ¦ÇÏ´Â ¿É¼Ç('-p', '-j', '-m')À» '-h'³ª
'--help' ´ÙÀ½¿¡ ÁöÁ¤ÇÏ¸é µÈ´Ù.
TCP È®Àå
TCP È®ÀåÀº '--protocol tcp' °¡ ÁöÁ¤µÇ°í ´Ù¸¥ Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é
ÀÚµ¿À¸·Î ÀûÁ¦µÈ´Ù. ÀÌ°ÍÀº ´ÙÀ½°ú °°Àº ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --tcp-flags
-
'!' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ°Í µÚ¿¡ µÎ°³ÀÇ ´Ü¾î¸¦ »ç¿ëÇÑ´Ù. ù¹ø°
°ÍÀº °Ë»çÇÏ°íÀÚ ÇÏ´Â Áö½ÃÀÚ ¸®½ºÆ®ÀÇ ¸¶½ºÅ©ÀÌ´Ù. µÎ¹ø° ´Ü¾î´Â
Áö½ÃÀÚ¿¡°Ô ¾î¶²°ÍÀÌ ¼³Á¤ µÉ °ÍÀÎÁö¸¦ ¸»ÇØÁØ´Ù. ¿¹¸¦µé¾î,
# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY
ÀÌ°ÍÀº ¸ðµç°ÍÀÌ °Ë»çµÇ¾î¾ß ÇÔÀ» ¸»ÇÑ´Ù.('ALL'Àº `SYN,ACK,FIN,RST,URG,PSH'
¿Í °°´Ù.) ±×·¯³ª SYN °ú ACK ¸¸ ¼³Á¤µÈ´Ù. 'NONE'´Â Áö½ÃÀÚ°¡ ¾øÀ½
À» ¸»ÇÑ´Ù.
- --syn
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº '--tcp-flags SYN,RST,ACK,SYN'ÀÇ
¾à¾îÀÌ´Ù.
- --source-port
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÇϳªÀÇ TCP Æ÷Æ®³ª Æ÷Æ®ÀÇ ¹üÀ§¸¦
ÁöÁ¤ÇÑ´Ù. /etc/services ¿¡ ±â·ÏµÈ °Í°ú °°Àº Æ÷Æ® À̸§ÀÌ »ç¿ëµÉ ¼ö
µµ ÀÖ°í ¼ýÀÚ·Î ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù. ¹üÀ§´Â µÎ°³¸£ Æ÷Æ® À̸§À» '-' À¸
·Î ¿¬°áÇؼ »ç¿ëÇϰųª (Ä¿°Å³ª °°Àº°æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® µÚ¿¡
'-'¸¦ »ç¿ëÇϰųª (À۰ųª °°Àº °æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® ¾Õ¿¡ '-'
¸¦ µ¡ºÙÀÏ ¼ö ÀÖ´Ù.
- --sport
-
ÀÌ°ÍÀº '--source-port'¿Í µ¿ÀǾîÀÌ´Ù.
- --destination-port
-
¿Í
- --dport
-
´Â À§ÀÇ ³»¿ë°ú °°À¸³ª ¸ñÀû
Áö¸¦ ÁöÁ¤ÇÑ´Ù.
- --tcp-option
-
'!' ³ª ¼ýÀÚ°¡ ¿É¼Ç¿¡ ¼±ÇàµÉ ¼ö Àִµ¥ ¼ýÀÚ°¡ ¾Õ¿¡ ¿Ã°æ¿ì ±× ¼ýÀÚ
¿Í TCP ¿É¼ÇÀÌ °°Àº °æ¿ìÀÇ ÆÐŶÀ» °Ë»çÇÑ´Ù. TCP ¿É¼ÇÀ» °Ë»çÇÏ·Á ÇÒ
¶§ ¿ÏÀüÇÑ TCP Çì´õ¸¦ °®Áö¾Ê´Â °ÍÀº ÀÚµ¿À¸·Î DROP µÈ´Ù.
TCP Áö½ÃÀÚ¿¡´ëÇÑ ¼³¸í
°¡²û ÇÑÂÊ ¹æÇâ¿¡¼ÀÇ TCP Á¢¼Ó¸¸ Çã¶ûÇÏ°í ´Ù¸¥ ¹æÇâ¿¡¼ÀÇ Á¢¼ÓÀ» ºÒÇãÇÏ
´Â °ÍÀÌ À¯¿ëÇÏ´Ù. ¿¹·Î, ¿©·¯ºÐÀº ¿ÜºÎ WWW ¼¹ö·ÎÀÇ Á¢¼ÓÀº Çã¶ôÇÏ¸ç ±×
¼¹ö·Î ºÎÅÍÀÇ Á¢¼ÓÀº ºÒÇãÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù.
´Ü¼øÇÏ°Ô ±× ¼¹ö·ÎºÎÅÍ ¿À´Â TCP ÆÐŶÀ» ¸·À¸¸é µÈ´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù. ±×·¯
³ª, ºÒÇàÈ÷µµ ÀÛµ¿Çϱâ À§Çؼ TCP Á¢¼ÓÀº ¾ç¹æÇâÀÇ ÆÐŶÀ» ¿ä±¸ÇÑ´Ù.
ÇعýÀº Á¢¼ÓÀ» ¿ä±¸ÇÏ´Â ÆÐŶ¸¸ ¸·´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀ» SYN ÆÐŶÀ̶óÇÑ´Ù.
(¹°·Ð, ±â¼úÀûÀ¸·Î SYN Áö½ÃÀÚ ¼ÂÀ» °®´Â ÆÐŶÀÌ ÀÖ´Ù. ±×¸®°í FIN °ú ACK Áö½Ã
ÀÚ´Â Áö¿öÁø´Ù. ±×·¯³ª °£´ÜÈ÷ ±×°ÍÀ» SYN ÆÐŶÀ̶ó°í ÇÑ´Ù.) ÀÌ·¯ÇÑ ÆÐŶ¸¸
ºÒ°¡´ÉÀ¸·Î ¸¸µëÀ¸·Î¼ ¿ÜºÎ·Î ºÎÅÍÀÇ Á¢¼Ó ½Ãµµ¸¦ ¸·À» ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ °ÍÀ» À§Çؼ '--syn' Áö½ÃÀÚ°¡ »ç¿ëµÈ´Ù. : ÀÌ°ÍÀº ÇÁ·ÎÅäÄÝÀ» TCP ·Î
ÁöÁ¤ÇßÀ» ¶§¸¸ È¿°ú°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é, 192.168.1.1 ·ÎºÎÅÍÀÇ TCP Á¢¼ÓÀ» Áö
Á¤Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
-p TCP -s 192.168.1.1 --syn
Á¢¼ÓÀ» ½ÃÀÛÇÑ °Í ¿ÜÀÇ ¸ðµç ÆÐŶÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© '!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö
ÀÖ´Ù.
UDP È®Àå
ÀÌ È®ÀåÀº '--protocol udp'°¡ ÁöÁ¤µÇ°í Àû¿ëÀÌ ÀúÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î
ÀûÀçµÈ´Ù. ÀÌ°ÍÀº '--source-port', '--sport', '--destination-port',
'-dport'¸¦ Áö¿øÇÏ°í ³»¿ëÀº TCP ¼³¸í¿¡¼ ÀÚ¼¼È÷ ³ª¿Ô´Ù.
ICMP È®Àå
ÀÌ È®ÀåÀº '--protocol icmp'°¡ ÁöÁ¤µÇ°í ±× Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î
ÀûÀçµÈ´Ù. ÀÌ°ÍÀº ´Ü ÇϳªÀÇ »õ·Î¿î ¿É¼Ç¸¸ Áö¿øÇÑ´Ù.:
- --icmp-type
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ICMP ŸÀÔÀÇ À̸§('host-unreachable')
À̳ª ¼ýÀÚÇüÅ ('3'), ¶Ç´Â ¼ýÀÚÇüÅÂ¿Í ÄÚµå('/'·Î ºÐ¸® ¿¹. '3/3') ÀÇ Çü
Å°¡ »ç¿ëµÈ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ICMP ÇüÅÂÀÇ À̸§ÀÇ ¸®½ºÆ®´Â
'-p icmp --help' ÇÏ¸é ³ªÅ¸³´Ù.
±×¿ÜÀÇ Àû¿ë È®Àå
Netfilter ÆÐÅ°ÁöÀÇ ´Ù¸¥ È®ÀåÀº ½ÃÇèÀûÀÎ È®ÀåÀÌ´Ù. ÀÌ°ÍÀº (¼³Ä¡ µÇ¾îÀÖ´Ù¸é)
'-m' ¿É¼ÇÀ¸·Î È°¼ºÈ µÈ´Ù.
- mac
-
ÀÌ ¸ðµâÀº '-m mac' ¶Ç´Â '--match mac' À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
ÀÌ°ÍÀº µé¾î¿À´Â ÆÐŶÀÇ ÀÌ´õ³Ý ÁÖ¼Ò¸¦ °Ë»çÇÑ´Ù. ±×·¯¹Ç·Î ÀԷ üÀο¡
¼¸¸ À¯¿ëÇÏ´Ù. ÀÌ°ÍÀº ÇϳªÀÇ ¿É¼Ç¸¸ Á¦°øÇÑ´Ù.
- --mac-source
-
'!' ¿É¼ÇÀÌ ¼±Çà µÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÄÝ·ÐÀ¸·Î ºÐ¸®µÈ 16Áø¼ö ¼ýÀÚÀÇ
ÀÌ´õ³Ý ÁÖ¼Ò°¡ ¿Â´Ù. ¿¹ '--mac-source 00:60:08:91:CC:B7'
- limit
-
ÀÌ ¸ðµâÀº '-m limit' ¶Ç´Â '--match limit'À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ
´Ù. ÀÌ°ÍÀº ·Î±× ¸Þ¼¼Áö¸¦ ¾ïÁ¦ÇÒ¶§ ó·³ Àû¿ë°Ë»çÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϴµ¥
»ç¿ëÇÑ´Ù. 1ÃÊ¿¡ ÁÖ¾îÁø ¼ýÀÚ¸¸ÅÀÇ Àû¿ë¸¸ °Ë»çÇÑ´Ù. (±âº»°ªÀº ÇÑ ½Ã°£
¿¡ 3¹ø, ÃÖ°í 5¹øÀÌ´Ù.) ÀÌ°ÍÀº µÎ°³ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --limit
-
¼ýÀÚ°¡ µû¶ó¿Â´Ù : ÃÊ´ç Æò±Õ ÃÖ´ë Àû¿ë °Ë»ç ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ¼ýÀÚµÚ
¿¡ ½Ã°£´ÜÀ§¸¦ Áö¾îÇÒ ¼ö µµ ÀÖ´Ù. ('/second', '/minute', '/hour',
'/day'ÇüÅÂÀÌ´Ù. ¿¹·Î, '5/second' ¶Ç´Â '5/s'°¡ °¡´ÉÇÏ´Ù)
- --limit-burst
-
¼ýÀÚ°¡ µû¶ó¿Â´Ù. À§ÀÇ Á¦ÇÑÀÌ Àû¿ëµÇ±âÀüÀÇ ÃÖ´ë Burst(?) ¸¦ Á¦ÇÑ
ÇÑ´Ù.
ÀÌ Àû¿ëÀº Á¾Á¾ ·Î±×ÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϱâÀ§ÇÏ¿© LOG Ÿ°Ù°ú ÇÔ²² »ç¿ëµÈ
´Ù. ÀÌ°ÍÀ» ÀÌÇØÇϱâÀ§ÇÏ¿© ¾Æ·¡¿¡ ±âº» Á¦ÇѼ³Á¤À» ÇÏ´Â ·Î±× ÆÐŶÁ¦ÇÑ
À» º¸ÀÚ.
# iptables -A FORWARD -m limit -j LOG
ÀÌ ±ÔÄ¢¿¡ µµ´ÞµÉ¶§±îÁö ÆÐŶÀº ·Î±×µÉ °ÍÀÌ´Ù. »ç½Ç BurstÀÇ ±âº»°ªÀº
5 À̹ǷΠó¹Ç¤· 5°³ÀÇ ÆÐŶÀº ·Î±×µÉ°ÍÀÌ´Ù. ±× ÀÌÈÄ ¾ó¸¶³ª ¸¹Àº ÆÐŶÀÌ
µµ´ÞÇÏµç °£¿¡ ÇϳªÀÇ ÆÐŶÀÌ ·Î±×µÇ±âÀü¿¡ 20ºÐÀÌ °É¸± °ÍÀÌ´Ù. ±×¸®°í 20ºÐ
µ¿¾È ÆÐŶ Àû¿ëÀÌ ¾øÀ¸¸é Burst Çϳª°¡ ´Ù½Ã »ý±æ °ÍÀÌ´Ù. ÆÐŶ¾øÀÌ 100ºÐ
ÀÌ Áö³ª¸é Burst´Â ¿ÏÀüÀÌ ¿ø»ó º¹±¸ µÉ°ÍÀÌ´Ù. óÀ½ ½ÃÀÛÇÒ¶§·Î µ¹¾Æ°¡´Â °Í
ÀÌ´Ù.
À纹±¸ ½Ã°£À» 59½Ã°£ ÀÌ»óÀ¸·Î´Â ¼³Á¤ÇÏÁö ¸øÇÑ´Ù. ±×·¯¹Ç·Î Æò±Õ¼Óµµ¸¦ ÇÏ
·ç¿¡ 1°³·Î ¼³Á¤ÇÏ¿´´Ù¸é Burst ¼Óµµ´Â 3 ÀÌÇÏ°¡ µÇ¾î¾ß ÇÑ´Ù.
- owner
-
ÀÌ ¸ðµâÀº Áö¿ª¿¡¼ »ý¼ºµÈ ÆÐŶÀÇ »ý¼ºÀÚÀÇ ¿©·¯ Ư¡À» Àû¿ëÇÏ·Á°í ÇÑ´Ù.
ÀÌ°ÍÀº Ãâ·Â üÀο¡¸¸ »ç¿ëµÇ¸ç ¾î¶² ÆÐŶµé(ICMP ping ÀÀ´ä°°Àº)Àº ¼ÒÀ¯ÀÚ
°¡ ¾øÀ¸¹Ç·Î Àû¿ëµÇÁö ¾Ê´Â´Ù.
- --uid-owner userid
-
À¯È¿ÇÑ »ç¿ëÀÚ id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --uid-owner groupid
-
À¯È¿ÇÑ ±×·ì id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --pid-owner processid
-
ÁÖ¾îÁø ÇÁ·Î¼¼¼ id ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --sid-owner processid
-
¼¼¼Ç ±×·ì³»ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- unclean
-
ÀÌ ½ÃÇèÀûÀÎ ¸ðµâÀº Á¤È®È÷ '-m unclean' ¶Ç´Â '--match unclean'À¸·Î
ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¹«ÀÛÀ§ÀÇ ¿©·¯ °ÇÀü¼º °Ë»ç¸¦ ÇÑ´Ù. ÀÌ°ÍÀº
Á¦´ë·Î °Ë»çµÇÁö ¾Ê¾Ò°í ¾ÈÀü¼º µµ±¸·Îµµ »ç¿ëµÇÁö ¸øÇÑ´Ù.(¾Æ¸¶µµ ÀÌ°Í
Àº ¹«Á¦¸¦ ´õ¿í Èûµé°Ô ÇÏ°í ¹ö±× ±× ÀÚüÀÏ °ÍÀÌ´Ù.) ÀÌ°ÍÀº ¿É¼ÇÀÌ
¾ø´Ù.
»óÅÂ Àû¿ë
°¡Àå À¯¿ëÇÑ Àû¿ë ±âÁØÀº 'ip_conntrack' ¸ðµâÀÇ Á¢¼Ó ÃßÀû ºÐ¼®À» Çؼ®ÇÏ´Â
'state' È®ÀåÀÌ´Ù. ÀÌ°ÍÀ» °·ÂÈ÷ ÃßõÇÑ´Ù.
'-m state'¸¦ ÁöÁ¤ÇÔÀ¸·Î '--state' ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌÈÄ¿¡ ÄÞ¸¶·Î
ºÐ¸®µÇ´Â Àû¿ëÇÒ »óŵéÀÇ ¸®½ºÆ®°¡ ¿Â´Ù.('!' Áö½ÃÀÚ´Â »ç¿ëµÇ¾îÁöÁö ¾Ê´Â
´Ù.) ÀÌ »óŵéÀº ;
- NEW
-
»õ·Î¿î Á¢¼ÓÀ» ¸¸µå´Â ÆÐŶ
- ESTABLISHED
-
Á¸ÀçÇÏ´Â Á¢¼Ó¿¡ ¼ÓÇÏ´Â ÆÐŶ (Áï, ÀÀ´ä ÆÐŶÀ» °¡Á³´ø °Í)
- RELATED
-
±âÁ¸ÀÇ Á¢¼ÓÀÇ ºÎºÐÀº ¾Æ´ÏÁö¸¸ ¿¬°ü¼ºÀ» °¡Áø ÆÐŶÀ¸·Î . ICMP ¿¡·¯
³ª (FTP ¸ðµâÀÌ »ðÀÔ µÇ¾îÀÖÀ¸¸é) ftp µ¥ÀÌÅÍ Á¢¼ÓÀ» Çü¼ºÇÏ´Â
ÆÐŶ.
- INVALID
-
¾î¶² ÀÌÀ¯·Î È®ÀÎÇÒ ¼ö ¾ø´Â ÆÐŶ: ¾Ë·ÁÁø Á¢¼Ó°ú ºÎÇÕÇÏÁö ¾Ê´Â ICMP
¿¡·¯¿Í 'out of memory' µîÀ» Æ÷ÇÔÇÑ´Ù. º¸Åë ÀÌ·± ÆÐŶÀº DROP µÈ´Ù.
ÀÌÁ¦ ÆÐŶ¿¡¼ ¾î¶² °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Ò´Ù. ÀÌÁ¦ ¿ì¸®ÀÇ °Ë»ç¿¡ ÀÏÄ¡
ÇÏ´Â ÆÐŶÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö¸¦ ¸»ÇÏ´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ÀÌ°ÍÀ» ±ÔÄ¢ Ÿ°Ù
À̶ó°í ÇÑ´Ù.
µÎ°³ÀÇ ÀÌ¹Ì ¸¸µé¾îÁø ´Ü¼øÇÑ Å¸°ÙÀÌ ÀÖ´Ù. : DROP °ú ACCEPT. ÀÌ¹Ì ÀÌ°Í¿¡
´ëÇؼ´Â À̾߱⸦ ÇÑ ÀûÀÌ ÀÖ´Ù. Àû¿ëÀÌ µÇ´Â ÆÐŶ°ú ±×°ÍÀÇ Å¸°ÙÀÌ À§ÀÇ µÎ
°³Áß Çϳª¶ó¸é ´õÀÌ»óÀÇ Âü°íÇÒ ±ÔÄ¢Àº ¾ø´Ù. : ÆÐŶÀÇ ¿î¸íÀº °áÁ¤ µÇ´Â °Í
ÀÌ´Ù.
ÀÌ¹Ì ¸¸µé¾îÁø µÎ°³ÀÇ Å¸°Ù¿Ü¿¡ µÎ°¡Áö ÇüÅÂÀÇ Å¸°ÙÀÌ ÀÖ´Ù.: È®Àå°ú »ç¿ëÀÚ
ÁöÁ¤ÀÇ Ã¼Àεé ÀÌ´Ù.
»ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àεé
ipchains
·Î ºÎÅÍ »ó¼ÓµÇ´Â iptables
ÀÇ °·ÂÇÑ ±â´ÉÁßÀÇ Çϳª´Â ´É·ÂµÇ´Â »ç¿ë
ÀÚ°¡ ±âÁ¸ÀÇ ¼¼°³ÀÇ Ã¼ÀÎ(ÀÔ·Â, Ãâ·Â, Æ÷¿öµå)¿Ü¿¡ »õ·Î¿î üÀÎÀ» »ý¼ºÇÒ ¼ö
ÀÖ´Ù´Â °ÍÀÌ´Ù. ¸ðÀÓÀÇ °á°ú »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀº ±×°ÍÀ» ±¸ºÐÇϱâ À§ÇÏ¿© ¼Ò¹®
ÀÚ·Î ³ªÅ¸³½´Ù. (¾Æ·¡
Àüü üÀο¡ ´ëÇÑ ÀÛ¿ë ºÎºÐ¿¡¼ ¾î¶»°Ô »ç¿ëÀÚ ÁöÁ¤ÀÇ
»õ·Î¿î üÀÎÀ» ¸¸µå´ÂÁö ±â¼úÇÒ °ÍÀÌ´Ù.)
Ÿ°ÙÀÌ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÎ ±ÔÄ¢¿¡ ÆÐŶÀÌ ¸ÂÀ¸¸é ÆÐŶÀº »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ»
µû¶ó ¿òÁ÷ÀÌ°Ô µÈ´Ù. ±× üÀÎÀÌ ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏÁö ¸øÇÏ¸é ±×¸®°í ±× üÀο¡
µû¸¥ À̼ÛÀÌ ³¡³ª¸é, ÆÐŶÀº ÇöÁ¦ üÀÎÀÇ ´ÙÀ½ ±ÔÄ¢À¸·Î µ¹¾Æ¿Â´Ù.
±×¸²À» º¸ÀÚ. µÎ°³ÀÇ Ã¼ÀÎÀÌ ÀÖ°í ±×°ÍÀÌ ÀÔ·Â
°ú Å×½ºÆ®
¶ó´Â »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÌ
¶ó°í °¡Á¤ÇÏÀÚ.
`INPUT' `test'
---------------------------- ----------------------------
| Rule1: -p ICMP -j DROP | | Rule1: -s 192.168.1.1 |
|--------------------------| |--------------------------|
| Rule2: -p TCP -j test | | Rule2: -d 192.168.1.1 |
|--------------------------| ----------------------------
| Rule3: -p UDP -j DROP |
----------------------------
192.168.1.1 ·ÎºÎÅÍ ¿Í¼ 1.2.3.4 ·Î ÇâÇÏ´Â TCP ÆÐŶÀÌ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ÀÌ°ÍÀº
ÀÔ·Â
üÀÎÀ¸·Î µé¾î¿Â´Ù. Rule1 À» °Ë»çÇÑ´Ù. ¸ÂÁö ¾ÊÀ½. Rule2 ¸ÂÀ½. ±×°ÍÀÇ Å¸°Ù
Àº Å×½ºÆ®
, °í·Î ´ÙÀ½ °Ë»çÇÒ ±ÔÄ¢Àº Å×½ºÆ®
ÀÇ ½ÃÀÛÀÌ´Ù. Å×½ºÆ®
ÀÇ Rule1 ÀÌ ¸Â´Ù.
±×·¯³ª ÀÌ°ÍÀÌ Å¸°ÙÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ´ÙÀ½ ±ÔÄ¢ÀÌ °Ë»çµÈ´Ù. Rule 2.
¸ÂÁö ¾Ê´Ù. ±× üÀÎÀÇ ³¡¿¡ µµ´ÞÇß´Ù. ´Ù½Ã ÀԷ üÀÎÀ¸·Î µ¹¾Æ°¡¼ Rule3 À» °Ë»ç
ÇÑ´Ù. ±×°Íµµ ¸ÂÁö ¾Ê´Ù.
¿©±â¼ ÆÐŶÀÇ À̵¿°æ·Î¸¦ ±×¸²À¸·Î ³ªÅ¸³Â´Ù.
v __________________________
`INPUT' | / `test' v
------------------------|--/ -----------------------|----
| Rule1 | /| | Rule1 | |
|-----------------------|/-| |----------------------|---|
| Rule2 / | | Rule2 | |
|--------------------------| -----------------------v----
| Rule3 /--+___________________________/
------------------------|---
v
»ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àο¡¼ ´ë¸¦ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ¸·Î °¥¼ö ÀÖ´Ù. (±×·¯³ª ·çÇÁ
¸¦ µ¹¼ö´Â ¾ø´Ù. ·çÇÁ¸¦ ¹ß°ßÇÏ°Ô µÇ¸é ÆÐŶÀº DROP µÈ´Ù.)
iptables·ÎÀÇ È®Àå : »õ·Î¿î Ÿ°Ù
Ÿ°ÙÀÇ ´Ù¸¥ ÇüÅ´ ȮÀåÀÌ´Ù. Ÿ°Ù È®ÀåÀº Ä¿³Î ¸ðµâ·Î ±¸¼ºµÈ´Ù. ±×¸®°í iptables
¿¡ ´ëÇÑ ¼±ÅÃÀû È®ÀåÀº »õ·Î¿î ¸í·ÉÇàÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. ±âº»ÀûÀ¸·Î ³ÝÇÊÅÍ ¹èÆ÷¿¡
Æ÷ÇÔµÈ ¸î¸îÀÇ È®ÀåÀº ´ÙÀ½°ú °°´Ù.
- LOG
-
ÀÏÄ¡ÇÏ´Â ÆÐŶÀÇ Ä¿³Î ·Î±×¸¦ Á¦°øÇÑ´Ù. ÀÌ°ÍÀº ºÎ°¡ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --log-level
-
·¹º§ ¼ýÀÚ³ª À̸§ÀÌ µû¶ó¿Â´Ù. À¯È¿ÇÑ À̸§Àº (»óȲ¿¡ µû¶ó ´Ù¸£´Ù) 'debug'
'info', 'notice', 'warning', 'err', 'crit', 'alert', 'emerg' ÀÌ°í ÀÌ°Í
Àº °¢°¢ ¼ýÀÚ 7 ¿¡¼ 0 ¿¡ ´ëÀÀÇÑ´Ù. ÀÌ·± ·¹º§¿¡ ´ëÇÑ ¼³¸íÀº syslog.conf
ÀÇ man ÆäÀÌÁö¸¦ º¸¶ó.
- --log-prefix
-
14ÀÚ ±îÁöÀÇ ¹®ÀåÀÌ µû¶ó¿Â´Ù. ÀÌ ¸Þ¼¼Áö´Â ·Î±× ¸Þ¼¼ÁöÀÇ ½ÃÀۺκÐÀ¸·Î
º¸³»Á®¼ È®Àο¡ »ç¿ëµÉ ¼ö ÀÖ´Ù.
ÀÌ ¸ðµâÀº 'limit' Ÿ°Ù ´ÙÀ½¿¡ »ç¿ëÇÏ¸é °¡Àå È¿°úÀûÀÌ´Ù. ±×·¡¼ ·Î±×°¡ ³Ñ
Áö³ªÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖ´Ù.
- REJECT
-
ÀÌ ¸ðµâÀº 'DROP'°ú °°Àº È¿°ú¸¦ ³ªÅ¸³½´Ù. ´Ù¸¸, 'port unreachable' À̶ó´Â
¿¡·¯ ¸Þ¼¼Áö¸¦ ICMP ·Î º¸³½´Ù. ÁÖÀÇÇÒ °ÍÀº ICMP ¿¡·¯ ¸Þ¼¼Áö´Â ´ÙÀ½ÀÇ °æ¿ì
º¸³» ÁöÁö ¾Ê´Â´Ù ( RFC 1122 ¸¦ º¸¶ó) :
- °Ë»çµÈ ÆÐŶÀÌ ICMP ¿¡·¯¸Þ¼¼ÁöÀ̰ųª³ª ¾Ë¼ö ¾ø´Â ICMP ÇüÅÂÀÎ °æ¿ì
- °Ë»çµÈ ÆÐŶÀÌ Çì´õ°¡ ¾ø´Â ºÐÀýÀÎ °æ¿ì
- ³Ê¹« ¸¹Àº ICMP ¿¡·¯ ¸Þ¼¼Áö¸¦ ±× ¸ñÀûÁö·Î º¸³½ °æ¿ì.
REJECT ´Â '--reject-with'¶ó´Â ¿É¼ÇÀ» °¡Áö´Âµ¥ ÀÌ°ÍÀº »ç¿ëÇÒ ÀÀ´ä ÆÐŶÀ»
º¯°æÇÑ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¸Þ´º¾ó ÆäÀÌÁö¸¦ º¸¶ó.
Ưº°ÇÑ ¹Ì¸® ¸¸µé¾îÁø Ÿ°Ù
µÎ°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø Ÿ°ÙÀÌ ÀÖ´Ù : RETURN
, QUEUE
RETURN
Àº ÇÑ Ã¼ÀÎÀÇ ³¡À¸·Î º¸³»Áö´Â °Í°ú °°Àº È¿°ú°¡ ÀÖ´Ù. : ¹Ì¸® ¸¸µé¾îÁø ü
ÀÎÀÇ °æ¿ì ±× üÀÎÀÇ Á¤Ã¥Àº ½ÇÇàÀÌ´Ù. »ç¿ëÀÚ Á¤ÀÇ Ã¼ÀÎÀÇ °æ¿ì ÀÌ Ã¼ÀÎÀ¸·Î Á¡ÇÁ
ÇÏ´Â ±ÔÄ¢ÀÇ ¹Ù·Î ´ÙÀ½ÀÎ ÀÌÀü üÀÎÀ¸·Î À̵¿ÇÑ´Ù.
QUEUE
Àº Ưº°ÇÑ Å¸°ÙÀ¸·Î, »ç¿ëÀÚ°ø°£ÀÇ ÀÛ¾÷À» À§ÇØ ÆÐŶÀ» ´ë±âÇϵµ·Ï ÇÑ´Ù. ÆÐŶ
À» À§Çؼ ´ë±âÇÏ°íÀÖ´Â °ÍÀÌ ¾ø´Ù¸é(Áï, ÀÌ ÆÐŶÀ» ´Ù·ê ÇÁ·Î±×·¥ÀÌ ¾ÆÁ÷ ¾º¾îÁ®
ÀÖÁö ¾Ê´Ù¸é) ÆÐŶÀº DROP µÉ °ÍÀÌ´Ù.
iptables
ÀÇ À¯¿ëÇÑ ±â´ÉÁÖ Çϳª´Â ¿©·¯ °ü°è°¡ ÀÖ´Â ±ÔÄ¢À» ÇϳªÀÇ Ã¼ÀμÓÀ¸·Î
±×·ìÈ ÇÏ´Â °ÍÀÌ´Ù. üÀÎÀÇ À̸§Àº ¾î¶² °ÍÀ» »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ¹Ì¸® ¸¸µé¾î
Áø üÀΰúÀÇ È¥µ¿À» ¸·±â À§ÇÏ¿© ¼Ò¹®ÀÚ¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù. üÀÎÀÇ À̸§Àº 16
ÀÚ ±îÁö °¡´ÉÇÏ´Ù.
»õ¿À·é üÀÎ »ý¼º
»õ·Î¿î üÀÎÀ» ¸¸µé¾î º¸ÀÚ. ³ª´Â ¸Å¿ì »ó»ó·ÂÀÌ ÁÁÀº »ç¶÷À̹ǷΠÀÌ°ÍÀ» Å×½ºÆ®
¶ó°í ºÎ¸£±â·Î ÇÏ°Ú´Ù. '-N' ¶Ç´Â '--new-chain' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
# iptables -N test
#
´Ü¼øÇÏ´Ù. ÀÌÁ¦ ÀÌ Ã¼Àο¡ »ó¼¼ÇÑ ±ÔÄ¢À» Àû¿ëÇÒ ¼ö ÀÖ´Ù.
üÀÎ Á¦°Å
üÀÎÀ» Á¦°ÅÇÏ´Â °Íµµ ´Ü¼øÇϤ§. '-X' ³ª '--delete-chain' À» »ç¿ëÇÑ´Ù.
# iptables -X test
#
üÀÎÀ» Á¦°Å Çϴµ¥´Â ¸î°¡Áö Á¦ÇÑÀÌ ÀÖ´Ù. ÀÌ°ÍÀº ºñ¾îÀÖ¾î¾ß ÇÑ´Ù. (¾Æ·¡ÀÇ
üÀÎ ºñ¿ì±â¸¦ º¸¶ó) ±×¸®°í ±×°ÍÀº ´Ù¸¥ ¾î¶² ±ÔÄ¢ÀÇ Å¸°Ùµµ ¾Æ´Ï¾î¾ß ÇÑ´Ù.
¹Ì¸® ¸¸µé¾îÁø ¼¼°³ÀÇ Ã¼ÀÎÀº Á¦°ÅÇÒ ¼ö ¾ø´Ù.
üÀÎÀÇ À̸§À» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀº Á¦°ÅµÈ´Ù.
üÀÎ ºñ¿ì±â
ÇϳªÀÇ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢À» ºñ¿ì´Â °£´ÜÇÑ ¹æ¹ýÀÌ ÀÖÀ¸´Ï, '-F' ('--flush')
¸í·ÉÀÌ´Ù.
# iptables -F forward
#
üÀÎÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç üÀÎÀÇ ±ÔÄ¢ÀÌ Áö¿öÁø´Ù.
üÀÎ ±ÔÄ¢ ³ª¿Çϱâ
ÇÑ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢Àº '-L' ¸í·ÉÀ¸·Î ³ª¿ÇÒ ¼ö ÀÖ´Ù.
°¢ »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀ» ³ª¿Çß´ø 'refcnt' ´Â ±× üÀÎÀ» ±×µéÀÇ Å¸°ÙÀ¸·ÎÇÏ
´Â ±ÔÄ¢µéÀÇ ¹øÈ£ÀÌ´Ù. üÀÎÀÌ Á¦°ÅµÇ±â À§Çؼ´Â ÀÌ°ÍÀÌ '0' À¸·Î µÇ¾î¾ß ÇÑ´Ù.
(±×¸®°í ±× üÀÎÀº ºñ¾î¾ß ÇÑ´Ù)
üÀÎÀÇ À̸§ÀÌ »ý·«µÇ¸é ºñ¾îÀÖ´Â °ÍÀ» Æ÷ÇÔÇÑ ¸ðµç üÀÎÀÌ ³ª¿µÈ´Ù.
'-L' ¸í·É¿¡ µû¸£´Â ¿É¼ÇÀº ¼¼°³°¡ ÀÖ´Ù. '-n' (numeric) ¿É¼ÇÀº iptables
°¡
¿©·¯ºÐÀÌ DNS ¿ä±¸¸¦ ÇÊÅ͸µ ¾Æ¿ôÇÑ °æ¿ì³ª DNS°¡ ÀûÀýÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é
¿À·£ ½Ã°£ÀÌ °É¸®´Â, IP ÁÖ¼Ò¸¦ ã´Â °ÍÀ» ¿¹¹æÇÏ´Â ¾ÆÁÖ À¯¿ëÇÑ ¿É¼ÇÀÌ´Ù. ÀÌ°Í
Àº TCP¿Í UDP Æ÷Æ®°¡ À̸§ÀÌ ¾Æ´Ñ ¼ýÀÚ·Î Ãâ·ÂµÇµµ·Ï Çϱ⵵ ÇÑ´Ù.
'-v' ¿É¼ÇÀº ±ÔÄ¢ÀÇ ÀÚ¼¼ÇÑ Á¤º¸(ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÅÍ, TOS ºñ±³, ÀÎÅÍÆäÀ̼¿Í
°°Àº)¸¦ ³ªÅ¸³½´Ù.
ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÆ®´Â 'K'(1000), 'M'(1,000,000), 'G'(1,000,000,000) ¿Í °°Àº
Á¢¹Ì¾î¿Í ÇÔ²² ³ªÅ¸³´Ù. '-x' (È®Àå ¼ö) Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¸é ¾ó¸¶³ª Å« ¼ýÀÚµç Àü
ü ¼ýÀÚ°¡ ³ªÅ¸³´Ù.
Ä«¿îÆ® ¸®¼ÂÆ® ('0'À¸·Î ¸¸µé±â)
ÀÌ°ÍÀº Ä«¿îÆ®¸¦ ¸®¼ÂÇϴµ¥ À¯¿ëÇÏ´Ù. ÀÌ°ÍÀº '-Z' ('--zero') ¿É¼ÇÀ¸·Î °¡´ÉÇÏ´Ù.
ÀÌ°ÍÀÇ ¹®Á¦Á¡Àº ¸®¼ÂÇϱâ Á÷ÀüÀÇ Ä«¿îÆ® °ªÀ» ¾ËÇÊ¿ä°¡ ÀÖÀ» ¶§°¡ °¡²û ÀÖ´Ù´Â °Í
ÀÌ´Ù. ÀÌ·¯ÇÑ °æ¿ìÀÇ ¿¹·Î, ¾î¶² ÆÐŶÀÌ '-L' °ú '-Z' ¸í·É »çÀÌ¿¡ Áö³ª°¥ ¼ö ÀÖ´Ù.
ÀÌ·±ÀÌÀ¯·Î Ä«¿îÆ®¸¦ Àд °Í°ú µ¿½Ã¿¡ ¸®¼ÂÇϱâÀ§Çؼ '-L' °ú '-Z' ¸í·ÉÀ» °°ÀÌ
»ç¿ëÇÒ ¼ö ÀÖ´Ù.
Á¤Ã¥ ¼³Á¤
¿ì¸®°¡ ÀÌÀü üÀÎÀ» ÆÐŶÀÌ ¾î¶»°Ô Áö³ª°¡´Â°¡¸¦ ÀdzíÇÒ ¶§, ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ
³¡¿¡ ÆÐŶÀÌ ´Ù´Ù·¶À»¶§ ¹«½¼ ÀÏÀÌ ÀϾ °ÍÀΰ¡¸¦ ¼³¸íÇÏ¿´´Ù. ÀÌ °æ¿ì üÀÎÀÇ
Á¤Ã¥ÀÌ ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÑ´Ù. ¹Ì¸® ¸¸µé¾îÁø üÀÎ(ÀÔ·Â
, Ãâ·Â
, Æ÷¿öµå
)¸¸ÀÌ
Á¤Ã¥À» °¡Áö´Âµ¥, ÀÌ°ÍÀº »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀÇ ³¡¿¡ ´Ù´Ù¸¥ ÆÐŶÀÇ À̵¿Àº ÀÌÀü
üÀο¡¼ ¿ä¾àµÇ¾îÁö±â ¶§¹®ÀÌ´Ù.
Á¤Ã¥Àº ACCEPT
¶Ç´Â DROP
ÀÌ µÉ¼ö ÀÖ´Ù.
ipchains¿Í ipfwadmÀ» »ç¿ëÇϱâ
¹èÆ÷µÇ´Â ³ÝÇÊÅÍ¿¡´Â ipchains.o ¿Í ipfwadm.o ¶ó´Â ¸ðµâÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» ¿©·¯
ºÐÀÇ Ä¿³Î¿¡ Æ÷ÇÔ½ÃÅ°¸é ÀÌÀü°ú ¶È °°ÀÌ ipchains ³ª ipfwadmÀ» »ç¿ëÇÒ ¼ö ÀÖ
´Ù. ( ÁÖÀÇ : À̵éÀº iptables.o, ip_conntrack.o, ip_nat.o¿Í ȣȯ¼ºÀÌ ¾ø´Ù)
ÀÌ°ÍÀº ¾ÆÁ÷ Çѵ¿¾ÈÀº Áö¿øµÉ °ÍÀÌ´Ù. À̵éÀ» ¿ÏÀüÈ÷ ´ëÄ¡ÇÏ´Â ¾ÈÁ¤ÆÇÀÌ ³ª¿À
´Âµ¥ ±îÁö´Â 2 * [´ëÄ¡ÇÒ °ÍÀ̶ó´Â ¹ßÇ¥ - ù¹ø° ¾ÈÁ¤ÆÇ] À̶ó´Â °ø½ÄÀÌ Àû
¿ëµÈ´Ù°í »ý°¢ÇÑ´Ù.
Áï, ipfwadmÀÇ °æÀ§ ÀÌ°ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [October 1997 (2.1.102 release) - March 1995 (ipfwadm 1.0)]
+ January 1999 (2.2.0 release)
= November 2003.
±×¸®°í ipchainsÀÇ °æ¿ì ÀÌ°ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [August 1999 (2.3.15 release) - October 1997 (2.2.0 release)]
+ January 2000 (2.3.0 release?)
= September 2003.
±×·¯¹Ç·Î, 2004³â ±îÁö´Â °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾øÀ» °ÍÀÌ´Ù.
- ù°·Î, ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ À̸§µéÀÌ ¼Ò¹®ÀÚ¿¡¼ ´ë¹®ÀÚ·Î ¹Ù²î¾ú´Âµ¥ ÀÌ°ÍÀº
ÀԷ°ú Ãâ·Â üÀÎÀº ÀÌ°Ô Áö¿ª ³ÝÀ¸·Î ÇâÇÏ´Â ±×¸®°í Áö¿ª¿¡¼ »ý¼ºµÈ ÆÐŶ¸¸À»
Àû¿ëÇϱ⠶§¹®ÀÌ´Ù. ÀÌ°ÍÀº ¸ðµç µé¾î¿À´Â°Í°ú ³ª°¡´Â ÆÐŶÀ» ´Ù·é´Ù.
- '-i' Áö½ÃÀÚ´Â µé¾î¿À´Â ÀÎÅÍÆäÀ̽º¸¸ ÀǹÌÇÏ°í ÀÔ·Â °ú Æ÷¿öµå üÀÎ
¿¡¼¸¸ ÀÛµ¿ÇÑ´Ù. Æ÷¿öµå ³ª Ãâ·Â üÀο¡ »ç¿ëµÇ¾ú´ø '-i' ´Â '-o'·Î
¹Ù²ã¾ß ÇÑ´Ù.
- ÀÌÁ¦ TCP ¿Í UDP Æ÷Æ®´Â --source-port ¶Ç´Â --spotr (¶Ç´Â --destination-port
/ --dport) ¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¾îÁ®¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ°í '-p tcp' ¶Ç´Â '-p udp'
¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¾îÁ®¾ß ÇÑ´Ù. ±×·¯¸é ÀÌ°ÍÀº TCP ¶Ç´Â UDP È®ÀåÀ» °¢°¢ ÀûÀç
ÇÒ °ÍÀÌ´Ù. (ipt_tcp ¿Í ipt_udp ¸ðµâÀ» ¼öµ¿À¸·Î ÀûÁ¦ ÇϱâÀ§Çؼ Æ÷ÇÔ ½Ãų
¼öµµ ÀÖ´Ù.)
- TCP -y Áö½ÃÀÚ´Â --synÀ¸·Î ¹Ù²î¾ú°í `-p tcp'´ÙÀ½¿¡ ¿Í¾ß ÇÑ´Ù.
- DENY target ´Â DROP À¸·Î ¹Ù²î¾ú´Ù.
- Zeroing single chains while listing them works.
- ¸¸µé¾îÁø üÀÎÀ» '0'À¸·ÎÇϸé Á¤Ã¥ Ä«¿îÅ͵µ Áö¿öÁø´Ù.
- üÀÎÀ» ³ª¿ÇÏ´Â °ÍÀº Ä«¿îÆ®ÀÇ ½º³Ü¼¦À» Á¦°øÇÑ´Ù.
- REJECT ¿Í LOG ´Â È®ÀåµÈ targetÀÌ´Ù. Áï, À̰͵éÀº µ¶¸³µÈ Ä¿³Î ¸ðµâÀÌ´Ù´Â
ÀǹÌÀÌ´Ù.
- üÀÎ À̸§Àº 16ÀÚ ±îÁö °¡´ÉÇÏ´Ù.
- MASQ ¿Í REDIRECT ´Â ´õÀÌ»ó target ÀÌ ¾Æ´Ï´Ù. iptablesÀº ÆÐŶÀ» º¯È
½ÃÅ°Áö ¾Ê´Â´Ù. ÀÌ°ÍÀ» À§Çؼ NAT¶ó´Â ÇϺα¸Á¶°¡ ÀÖ´Ù. ÀÌ°ÍÀº ipnatctl
ÇÏ¿ìµÎ¸¦ Àо¾Æ¶ó.
- ±× ¿ÜÀÇ °ÍµéÀº Àؾî¸Ô¾ú´Ù.
¸®´ª½º 2.4 ÆÐŶ ÇÊÅ͸µ ÇÏ¿ìÅõ
¸®´ª½º 2.4 ÆÐŶ ÇÊÅ͸µ ÇÏ¿ìÅõ
Rusty Russell, mailing list netfilter@lists.samba.org
v1.0 Tue Mar 21 23:29:42 EST 2000
ÀÌ ¹®¼´Â 2.4 ¸®´ª½º Ä¿³Î¿¡¼ À߸øµÈ ÆÐŶÀ» ÇÊÅ͸µÇϱâ À§ÇÏ¿© ¾î¶»°Ô iptables À» ÀÌ¿ëÇϴ°¡¸¦ ±â¼úÇÑ´Ù.
¿©·¯ºÐ ȯ¿µÇÕ´Ï´Ù.
ÀÌ ¹®¼´Â ¿©·¯ºÐÀÌ IP address, network address, netmask, routing, DNS
°¡ ¹«¾úÀÎÁö ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ±×·¸Áö ¾Ê´Ù¸é '³×Æ®¿öÅ© °³³ä ÇÏ¿ìÅõ'
¸¦ Àб⸦ ±ÇÀ¯ÇÕ´Ï´Ù.
ÀÌ ÇÏ¿ìÅõ´Â »ó³ÉÇÑ ¼Ò°³(ÀÌ°Ô ¿©·¯ºÐÀ» ¿¹Þ°Ô ÇÏ°í Áö±ÝÀº È帮¸ÛÅÖÇÏ°í
±×·¯³ª ¹«¹æºñÀÎ)¿Í °¡°øµÇÁö¾ÊÀº ¿ÏÀü ³ëÃâ(which would leave all but the
hardiest souls confused, paranoid and seeking heavy weaponry)»çÀ̸¦ ³Ñ
³ªµé °ÍÀÌ´Ù.
¿©·¯ºÐÀÇ ³×Æ®¿öÅ©´Â ¾ÈÀüÇÏÁö ¾Ê´Ù. ºü¸£°í, Æí¾ÈÇÏ¸é¼ ±× »ç¿ëÀÌ ÁÁÀº
ÂÊÀ¸·Î¸¸ Çϵµ·ÏÇÏ°í ¾ÇÇÑ ½Ãµµ¸¦ Çã¶ôÇÏÁö ¾Êµµ·Ï ÇÏ·Á´Â °ÍÀº º¹ÀâÇÑ ¿µ
È°ü¿¡¼ ÀÚÀ¯·Î¿î ´ëÈ´Â Çã¶ôÇÏ¸é¼ "ºÒÀ̾ß"ÇÏ°í ¿ÜÄ¡´Â °ÍÀº ºÒÇãÇÏ´Â
°Íó·³ °ÅÀÇ ÇØ°áºÒ´ÉÀÇ ¹®Á¦¿Í °°´Ù. ÀÌ°Í¿¡´ëÇÑ ÇØ´äÀº ÀÌ ÇÏ¿ìÅõ¿¡¼
±¸ÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù.
¿©·¯ºÐÀÌ ÇÒ ¼öÀÖ´Â °ÍÀº ±× ÀýÃæÁ¡À» °áÁ¤ÇÏ´Â ÀÏÀÌ´Ù. ³ª´Â ÀÌ·¯ÇÑ ¸ñÀû
À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î¸î µµ±¸¿Í °æ°èÇÏ¿©¾ßÇÒ ¾àÁ¡¿¡ ´ëÇÏ¿© ¿©·¯ºÐÀÌ
ÁÁÀº ¸ñÀûÀ¸·Î »ç¿ëÇÏ°í ¾ÇÀÇÀÖ´Â ¸ñÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê±â¸¦ ¹Ù¶ó¸ç, ¾Ë·Á
ÁÖ·Á°í ÇÑ´Ù. ¶Ç´Ù¸¥ ¾î·Á¿î ¹®Á¦ÀÌ´Ù.
¼¼°³ÀÇ À¥»çÀÌÆ®°¡ ÀÖ´Ù.
netfilterÀÇ ¸ÞÀϸµ ¸®½ºÆ®¸¦ À§Çؼ´Â
»ï¹ÙÀÇ ¸®½ºÆ® ¼¹ö¸¦ º¸¶ó.
ÆÐŶÇÊÅÍ´Â Áö³ª°¡´Â ÆÐŶÀÇ ÇØ´õ¸¦ »ìÆ캸°í ±× Àüü ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ´Â
¼ÒÇÁÆ®¿þ¾îÀÇ ÀϺÎÀÌ´Ù. ÀÌ°ÍÀº ÆÐŶÀ» 'DROP'(Áï, ¸¶Ä¡ ÀüÇô Àü´ÞµÇÁöµµ ¸ø
Çß´ø°Í ó·³ ÆÐŶÀ» °ÅºÎ) ÇÏ´ø°¡, 'ACCEPT'(Áï, ÆÐŶÀÌ Áö³ª°¡µµ·Ï ³»¹ö·Á µÒ)
ÇÏ´ø°¡ ¶Ç´Â ´Ù¸¥ ´õ¿í º¹ÀâÇÑ ¹«¾ùÀ» ÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÒ °ÍÀÌ´Ù.
¸®´ª½º¿¡¼ ÆÐŶ ÇÊÅ͸µÀº Ä¿³Î ³»ºÎ¿¡ ±¸¼ºµÇ°í(Ä¿³ÎÀÇ ¸ðµâ·Î¼ ¶Ç´Â ±× ³»ºÎ¿¡
Æ÷ÇÔ µÇ´Â ÇüÅÂÀÌ´Ù), ¿ì¸®°¡ ÆÐŶÀ¸·Î ÇؾßÇÒ ¸î¸î º¹ÀâÇÑ °ÍÀÌ ÀÖ´Ù. ±×·¯³ª,
±× ÆÐŶÀÇ Çì´õ¸¦ °üÂûÇÏ°í ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ´Â ±âº» ¿øÄ¢Àº ¿©ÀüÈ÷ Àû¿ë
µÈ´Ù.
Á¦¾î, º¸¾È, °üÂû°¡´É¼º
- Á¦¾î:
-
¿©·¯ºÐÀÌ ³»ºÎ ³×Æ®¿öÅ©¿¡¼ ´Ù¸¥ ³×Æ®¿öÅ©·Î ¸®´ª½º ¹Ú½º¸¦ ÀÌ¿ëÇÏ¿©
Á¢¼ÓÀ» ÇÏ°íÀÚ ÇÒ¶§(¼ÒÀ§, ÀÎÅͳÝ) ¿©·¯ºÐÀº ¾î¶²ÇüÅÂÀÇ Àü¼ÛÀº °¡´ÉÇÏ°Ô
ÇÏ°í ´Ù¸¥°ÍÀº ºÒ°¡´ÉÇÏ°Ô ÇÒ ±âȸ¸¦ °¡Áø´Ù. ¿¹¸¦ µé¾î, ÆÐŶ Çì´õ¿¡´Â
¸ñÀûÁöÀÇ ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖ°í ÀÌ°ÍÀ¸·Î ÆÐŶÀÌ ¹Ù±ù ³×Æ®¿ö±×ÀÇ ´Ù¸¥°÷
À¸·Î °¡Áö ¾Êµµ·Ï ÇÑ´Ù. ´Ù¸¥ ¿¹·Î, ³ª´Â Dilbert archives¸¦ È£ÃâÇϱâ
À§ÇÏ¿© ³Ý½ºÄÉÀÙÀ» ÀÌ¿ëÇÑ´Ù. ±×°÷ÀÇ À¥ÆäÀÌÁö¿¡´Â doubleclick.netÀ¸·Î
ºÎÅÍÀÇ ±¤°í°¡ ÀÖ°í ³Ý½ºÄÉÀÙÀº ±× ±¤°í¸¦ ¹Þ±âÀ§ÇÏ¿© ³ªÀÇ ½Ã°£À» ¼ÒºñÇÑ
´Ù. doubleclick.netÀÇ ÁÖ¼Ò·Î °¡°Å³ª ¶Ç´Â ±×°÷¿¡¼ ¿À´Â ¾î¶°ÇÑ ÆÐŶµµ
Çã¶ôÇÏÁö ¾Êµµ·Ï ÆÐŶÇÊÅÍ¿¡°Ô À̾߱â ÇØ ³õÀ½À¸·Î ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö
ÀÖ´Ù. (ÀÌ·¸°Ô ÇÏ´Â ´õ ÁÁÀº ¹æ¹ýµµ ÀÖ´Ù : Junkbuster¸¦ º¸¼¼¿ä)
- º¸¾È:
-
¿©·¯ºÐÀÇ ¸ÚÁö°í, Àß Á¤µ·µÈ ³×Æ®¿öÅ©¿Í ÀÎÅͳÝÀÇ È¥µ·»çÀÌ¿¡ ¸®´ª½º ¹Ú½º
¸¸ÀÌ ÀÖ´Ù¸é, ¿©·¯ºÐÀÇ ³×Æ®¿öÅ©·Î µé¾î¿À·Á´Â °ÍÀ» ¾ïÁ¦ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº
±Ù»çÇÑ ÀÏÀÌ´Ù. ¿¹¸¦µé¾î, ¿©·¯ºÐÀº ¿©·¯ºÐÀÇ ³×Æ®¿öÅ©·ÎºÎÅÍ ³ª°¡´Â ¸ðµç
°ÍÀ» Çã¿ëÇÏ°í ½ÍÁö¸¸, ¹Ý¸é¿¡ ¹ÛÀ¸·ÎºÎÅÍ µé¾î¿À´Â, "Á×À½ÀÇ ÇÎ"°°Àº, ¾ÇÀÇ
ÀÖ´Â °Í¿¡ ´ëÇÏ¿©´Â °ÍÁ¤ÀÌ µÉ °ÍÀÌ´Ù. ´Ù¸¥ ¿¹·Î, ¾Æ¹«¸® ¿©·¯ºÐ ¸®´ª½º
¹Ú½ºÀÇ ¸ðµç °èÁ¤»ç¿ëÀÚ°¡ ¾ÏÈ£¸¦ °¡Áö°í ÀÖ´Ù°í ÇÏ´õµµ ¹Ù±ùÀ¸·ÎºÎÅÍÀÇ
Åڳݽõµ´Â ¹Ù¶óÁö ¾ÊÀ» °ÍÀÌ´Ù. ´ëºÎºÐÀÇ »ç¶÷µéó·³ ÀÎÅͳݿ¡¼ ±¸°æ²Û
ÀÌ µÇ°í ½Í°í Á¦°øÀÚ´Â µÇ°í½ÍÁö ¾ÊÀ» °ÍÀÌ´Ù. °£´ÜÈ÷ ¸»Çؼ, Á¢¼ÓÁß¿¡
¸ðµç µé¾î¿À·Á´Â ÆÐŶÀ» ÆÐŶ ÇÊÅ͸¦ ÀÌ¿ëÇÏ°Å °ÅºÎÇÒ·Á°í ÇÒ °ÍÀÌ´Ù.
- °üÂû°¡´É¼º:
-
°¡²û À߸ø ¼³Á¤µÈ Áö¿ª³×Æ®¿öÅ©´Â ÆÐŶÀ» ¹Ù±ù¼¼»óÀ¸·Î ÅäÇسõ´Â´Ù. ÆÐŶ
ÇÊÅÍ¿¡°Ô ¾î¶°ÇÑ ÀÌ»óÇÑ ÀÏÀÌ¶óµµ ÀϾ¸é ¿©·¯ºÐ¿¡°Ô ¾Ë·Á ÁÖµµ·Ï ¸»ÇØ
µÎ´Â °ÍÀº ±Ù»çÇÑ ÀÏÀÌ´Ù. ¿©·¯ºÐÀº ÀÌ·± ÀÏ¿¡´ëÇÏ¿© ¹«¾ùÀΰ¡¸¦ ÇÒ ¼öµµ
ÀÖ°í ±×³É 'ÀÌ»óÇÑ ÀÏÀ̳×'ÇÏ°í ³Ñ±æ ¼öµµ ÀÖ´Ù.
1.1 ½Ã¸®Áî ºÎÅÍ ¸®´ª½º Ä¿³ÎÀº ÆÐŶ ÇÊÅ͸µÀ» Æ÷ÇÔÇϱ⠽ÃÀÛÇß´Ù. Á¦ 1¼¼´ë´Â
BSDÀÇ ipfw¸¦ ±âº»À¸·Î ÇÏ¿´°í 1994³â ÈĹݱ⿡ Alan Cox¿¡ ÀÇÇؼ Æ÷Æ® µÇ¾ú´Ù.
ÀÌ°ÍÀº ¸®´ª½º 2.0¿¡¼ Jos Vos¿Í ´Ù¸¥À̵鿡 ÀÇÇؼ °³¼±µÇ¾ú°í Ä¿³ÎÀÇ ÇÊÅ͸µ
±ÔÄ¢À» Á¦¾îÇÏ´Â »ç¿ëÀÚ Åø·Î´Â 'ipfwadm'ÀÌ »ç¿ëµÇ¾ú´Ù. 1998³â Á߹ݿ¡ ¸®´ª½º
2.2¸¦ À§ÇÏ¿© ³ª´Â Michael NeulingÀÇ µµ¿òÀ¸·Î Ä¿³Î¿¡ ´ëÇÏ¿© ¿½ÉÈ÷ ÀÏÇÏ¿´°í
»ç¿ëÀÚ Åø·á´Â 'ipchains'¸¦ ³»³õ¾Ò´Ù. ¸¶Áö¸·À¸·Î, Á¦ 4¼¼´ë ÅøÀÌ 'iptables'ÀÌ°í
¸®´ª½º 2.4¸¦ À§ÇÏ¿© 1999³â Á߹ݿ¡ Ä¿³ÎÀ» Á¦ ÀÛ¼º ÇÏ¿´´Ù. ÀÌ ÇÏ¿ìÅõ ¹®¼°¡
ÃÐÁ¡À» ¸ÂÃß°í ÀÖ´Â °ÍÀÌ ÀÌ iptables ¿¡ ´ëÇÑ ³»¿ëÀÌ´Ù.
netfilter¸¦ °¡Áö°íÀÖ´Â Ä¿³ÎÀÌ ÇÊ¿äÇÏ´Ù. netfilter´Â ´Ù¸¥ °Íµé(iptables ¸ðµâ
°°Àº)ÀÌ ºÙÀ»¼ö ÀÖ´Â ¸®´ª½º Ä¿³ÎÀÇ ÀϹÝÀûÀÎ ±âº» ±¸Á¶ÀÌ´Ù. ÀÌ°ÍÀº 2.3.15 ÀÌ»ó
ÀÇ ¸®´ª½º Ä¿³Î¿¡ µé¾îÀÖ°í Ä¿³Î ¼³Á¤¿¡¼ CONFIG_NETFILTER ¿¡ 'Y'·Î ´ë´äÇÏ°í ÄÄ
ÆÄÀÏÇÑ °ÍÀ̾î¾ß ÇÑ´Ù.
iptables
¶ó´Â ÅøÀº Ä¿³Î¿¡°Ô ¾î¶² ÆÐŶÀ» ÇÊÅÍÇÒ °ÍÀÎÁö¸¦ ¾Ë·ÁÁØ´Ù. ¿©·¯ºÐÀÌ ÇÁ
·Î±×·¡¸Ó³ª º¯Å°¡ ¾Æ´Ï¶ó¸é, ÀÌ°ÍÀÌ ÆÐŶ ÇÊÅ͸µÀ» Á¦¾îÇÏ´Â ¼ö´ÜÀÌ´Ù.
iptables
iptables
´Â Ä¿³ÎÀÇ ÆÐŶ ÇÊÅ͸µ Å×ÀÌºí¿¡ ÇÊÅ͸µ ±ÔÄ¢À» »ðÀÔÇϰųª »èÁ¦ÇÏ´Â µµ±¸
ÀÌ´Ù. ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ¹«¾úÀ» ¼³Á¤ÇßµçÁö, ÀçºÎÆýÿ¡´Â ¼Ò½ÇµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
´ÙÀ½¹ø ¸®´ª½º°¡ ´Ù½Ã ºÎÆõǾúÀ»¶§ ¼³Á¤ ³»¿ëµéÀÌ À缳ġ µÇ±â¸¦ ¹Ù¶õ´Ù¸é
±ÔÄ¢µéÀ» ¿µ¼Ó½ÃÅ°±â¸¦ º¸¾Æ¶ó
iptables
´Â ipfwadm
°ú ipchains
¸¦ ´ëÄ¡ÇÑ´Ù. ¼Õ½Ç¾øÀÌ iptables ÀÇ »ç¿ëÀ» ÇÇÇÏ°í ½Í
´Ù¸é
ipchains¿Í ipfwadm »ç¿ëÇϱ⸦ º¸¾Æ¶ó.
±ÔÄ¢µéÀ» ¿µ¼Ó½ÃÅ°±â
¿©·¯ºÐÀÇ ÆÄÀ̾î¿ù ¼³Á¤Àº Ä¿³Î¿¡ ÀúÀåµÇ¹Ç·Î ÀçºÎÆýÿ¡ ¼Õ½ÇµÈ´Ù. iptables-save
¿Í iptables-restoreÀ» ±¸ÇöÇÏ´Â °ÍÀº ³ªÀÇ TODO ¸®½ºÆ®¿¡ ÀÖ´Ù. À̰͵éÀÌ ³ª¿À°Ô
µÇ¸é Á¤¸» ÁÁÀ» °ÍÀÌ´Ù. ¾à¼ÓÇÑ´Ù.
±×µ¿¾ÈÀº ¿©·¯ºÐÀÇ ±ÔÄ¢À» ¼³Á¤ÇÏ´Â ¸í·ÉµéÀ» ÃʱâÈ ½ºÅ©¸³Æ®¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù. ¸í
·ÉµéÁß Çϳª°¡ ½ÇÆÐÇÏ¿´À»¶§¸¦ ´ëºñÇÏ¿© ¹º°¡ À̼ºÀûÀΰÍÀ» Çصξî¾ß ÇÑ´Ù. (º¸Åë
'exec /sbin/sulogin'À» »ç¿ëÇÑ´Ù.)
³ª´Â RustyÀÌ´Ù. ¸®´ª½º IP ÆÄÀ̾î¿ù À¯ÁöÇÏ´Â »ç¶÷ÀÌ°í ÀûÀýÇÑ ½Ã±â¿¡ ÀûÀýÇÑ
Àå¼Ò¿¡ ÀÖ°ÔµÈ ±×³É ¿öÅ·ÄÚ´õÀÏ »ÓÀÌ´Ù. ³ª´Â ipchains¸¦ ¸Í±Û¾ú´Ù. (½ÇÁ¦ÀûÀÎ
ÀÛ¾÷À» ÇÑ »ç¶÷À» º¼·Á¸é "How Do I Packet Filter Under Linux?"¶ó´Â ¹®¼¸¦
º¸¶ó), ±×¸®°í À̹ø¿¡ ÆÐŶ ÇÊÅ͸µÀ» ±¸ÇÒ ¼ö ÀÖÀ» Á¤µµÀÇ ¸¹Àº °ÍÀ» ¹è¿ü´Ù.
WatchGuard´Â Á¤¸» ÈǸ¢ÇÑ ÆÄÀ̾î¿ù ȸ»çÀ̸ç,
Á¤¸» ¸ÚÁø Ç÷°ÀÎ ÆÄÀ̾î¹Ú½º¸¦ ÆǸÅÇÏ¸ç ¾Æ¹«°Íµµ ÇÏÁö ¾Ê¾Æµµ ³ª¿¡°Ô ¿ù±ÞÀ»
ÁØ´Ù. ´öºÐ¿¡ ³ª´Â ÀÌ ÀÛÇ°À» ¸¸µå´Âµ¥ ³ªÀÇ ¸ðµç ½Ã°£À» ¼Ò¸ðÇÒ ¼ö ÀÖ¾ú°í,
ÀÌÀüÀÇ ÀÛ¾÷µµ ±×·¯ÇÏ´Ù. ³ª´Â 6°³¿ùÀÌ¸é ³¡¸¶Ä¡¸®¶ó ÁüÀÛÇßÁö¸¸ 12°³¿ùÀÌ
°É·È´Ù. ±×·¯³ª ³»°¡ ¹Ù¸£°Ô Çß´Ù´Â »ý°¢ÀÌ µç´Ù. ¼ö¸¹Àº ¼öÁ¤°ú Çϵåµð½ºÅ©
¹Ú»ì°ú, ÇѹøÀÇ ·¦Å¾ºÐ½Ç°ú ¸î¹øÀÇ ÆÄÀϽýºÅÛ ¹Ú»ì°ú ÇѹøÀÇ ¸ð´ÏÅÍ ¹Ú»ìÀÇ
°á°ú¹°ÀÌ ¿©±âÀÖ´Ù.
³»°¡ ¿©±â¿¡ ÀÖ´Â µ¿¾È, »ç¶÷µéÀÇ À߸øµÈ °³³äÀ» °íÃÄÁÖ°í ½Í´Ù. ³ª´Â Ä¿³Î´ë¿Õ
ÀÌ ¾Æ´Ï´Ù. ³ªµµ ³»°¡ Ä¿³Î´ë¿ÕÀÌ ¾Æ´Ñ°ÍÀ» ¾È´Ù. ¿Ö³ÄÇϸé ÀÌ·± Ä¿³Î¿¡ ´ëÇÑ ÀÛ
¾÷Áß ÁøÂ¥ Ä¿³Î´ë¿Õµé(David S. Miller, Alexey Kuznetsov, Andi Kleen, Alan
Cox °°Àº) ¸î¸í°ú Á¢ÃËÇØ ºÃ±â ¶§¹®ÀÌ´Ù. ±×·¯³ª ±×µéÀº ½É¿ÀÇÑ ¸¶¼úÀ» ÇÏ´À¶ó
³Ê¹«³ª ¹Ù»¦°í, ³»°¡ ¾ÈÀüÇÑ ¹° °¡ÀåÀÚ¸®¿¡¼ Çã¿ìÀû °Å¸®µµ·Ï ³»¹ö·Á µÎ¾ú´Ù.
´ëºÎºÐÀÇ »ç¶÷µéÀº ´Ü ÇϳªÀÇ PPP Á¢¼Ó¸¸ »ç¿ëÇÏ°í ¾î¶² ´©±¸µµ ÀÌ°ÍÀ»
ÅëÇؼ µé¾î¿À´Â °ÍÀ» ¿øÇÏÁö ¾Ê´Â´Ù.
## connection-tracking modulesÀ» »ðÀÔÇÑ´Ù. (not needed if built into kernel).
# insmod ip_conntrack
# insmod ip_conntrack_ftp
## ³»ºÎ·ÎºÎÅÍ ¿À´Â °ÍÀ» Á¦¿ÜÇÑ ´Ù¸¥ »õ·Î¿î Á¢¼ÓÀ» ¸·±âÀ§ÇÏ¿© »õ·Î¿î üÀÎÀ»
## ¸¸µç´Ù.
# iptables -N block
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP
## ÀԷ°ú Æ÷¿öµå üÀÎÀ¸·ÎºÎÅÍ ±× üÀÎÀ¸·Î °¡µµ·Ï ÇÑ´Ù.
# iptables -A INPUT -j block
# iptables -A FORWARD -j block
Ä¿³ÎÀº 'ÇÊÅÍ' Å×ÀÌºí¿¡ ¼¼°³ÀÇ ±ÔÄ¢À» °¡Áö°í ½ÃÀÛÇÑ´Ù. ÀÌ°ÍÀ» ÆÄÀ̾î¿ù üÀÎ
¶Ç´Â ±×³É üÀÎÀ̶ó°í ÇÑ´Ù. ±× ¼¼°³ÀÇ Ã¼ÀÎÀº INPUT, OUTPUT, FORWARD ÀÌ´Ù.
ÀÌ°ÍÀº 2.0 À̳ª 2.2 Ä¿³Î°ú´Â ¾ÆÁÖ ´Ù¸£°Ô ¿òÁ÷ÀδÙ.
ÀÌ Ã¼ÀÎÀº ¾Æ·¡±×¸²Ã³·³ »ý°å´Ù.
_____
/ \
-->[ ¶ó¿ìÆà ]--->|Æ÷¿öµù |------->
[ ÆÇ Á¤ ] \_____/ ^
| |
v ____
___ / \
/ \ | Ãâ·Â |
|ÀÔ·Â | \____/
\___/ ^
| |
----> Local Process ----
À§ ±×¸²¿¡¼ ¼¼°³ÀÇ ¿øÀº À§¿¡¼ ¾ð±ÞÇÑ ¼¼°³ÀÇ Ã¼ÀÎÀ» ³ªÅ¸³½´Ù. ÆÐŶÀÌ ÀÌ
±×¸²¿¡¼ µ¿±×¶ó¹Ì·Î ³ªÅ¸³½°÷¿¡ À̸£¸é ±× üÀÎÀº ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏ
±âÀ§ÇÏ¿© ½ÃÇèÇÑ´Ù. üÀÎÀÌ ±× ÆÐŶÀ» DROP Ç϶ó°í Çϸé ÆÐŶÀº ±×°÷¿¡¼ »è
Á¦µÈ´Ù. ±×·¯³ª ±× üÀÎÀÌ ACCEPT ÇÏ°í Çϸé ÀÌ ÀÌ ±×¸²ÀÇ ´ÙÀ½ ºÎºÐÀ¸·Î °è
¼Ó Àü´ÞµÈ´Ù.
üÀÎÀº ±ÔÄ¢ÀÇ Á¡°ËÇ¥ÀÌ´Ù. °¢ ±ÔÄ¢Àº 'ÆÐŶÀÇ Çì´õ°¡ ÀÌ·¸°Ô µÇ¾îÀÖÀ¸¸é ÀÌ
°÷¿¡¼ ¹«¾ùÀ» Ç϶ó'´Â ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ±ÔÄ¢ÀÌ ±× ÆÐŶ¿¡ ¸ÂÁö ¾ÊÀ¸¸é ´Ù
À½ ±ÔÄ¢À» Âü°íÇÑ´Ù. ¸¶Áö¸·À¸·Î ´õÀÌ»ó °í·ÁÇÒ ±ÔÄ¢ÀÌ ¾øÀ¸¸é Ä¿³ÎÀº ¹«¾ù
À» ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§ÇÏ¿© ±× üÀÎÀÇ Á¤Ã¥À» È®ÀÎÇÑ´Ù. º¸¾ÈÀ» »ý°¢ÇÏ
´Â ½Ã½ºÅÛ¿¡¼ ÀÌ·¯ÇÑ Á¤Ã¥Àº º¸Åë Ä¿³Î¿¡°Ô ±× ÆÐŶÀ» DROP Çϵµ·Ï ÇÑ´Ù.
- ÆÐŶÀÌ Ä¿³Î¿¡ µµÅ¹ÇÏ¸é ±× ÆÐŶÀÇ ¸ñÀûÁö¸¦ È®ÀÎÇÑ´Ù. ÀÌ°ÍÀº '¶ó¿ìÆÃ'
À̶ó°í ÇÑ´Ù.
- ÀÌ°ÍÀÇ ¸ñÀûÁö°¡ ÀÌ°÷À̸é, ÆÐŶÀº À§ ±×¸²¿¡¼ ¾Æ·¡ÂÊ ¹æÇâÀ¸·Î Àü´Þ
µÇ¾î ÀԷ üÀο¡ µµ´ÞÇÑ´Ù. ÀÌ°ÍÀÌ ÀÌ Ã¼ÀÎÀ» Åë°úÇϸé ÆÐŶÀ» ±â´Ù¸®
°íÀÖ´ø ¾î¶² ÇÁ·Î¼¼¼µµ ±×°ÍÀ» ¹Þ°Ô µÈ´Ù.
- ±×·¸Áö ¾ÊÀ¸¸é, Ä¿³ÎÀÌ Æ÷¿öµù ºÒ´ÉÀ¸·Î µÇ¾îÀÖ´ø°¡, ÆÐŶÀ» ¾î¶»°Ô Æ÷
¿öµùÇØ¾ß Çϴ°¡¸¦ ¾ËÁö ¸øÇϸé, ±× ÆÐŶÀº DROP µÈ´Ù. Æ÷¿öµùÀÌ °¡´ÉÇÏ
°Ô µÇ¾îÀÖ°í ´Ù¸¥ °÷ÀÌ ¸ñÀûÁöÀ̸é ÆÐŶÀº ±×¸²ÀÇ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î Àü´Þ
µÇ¾î Æ÷¿öµù üÀÎÀ¸·Î °£´Ù. ÀÌ Ã¼ÀÎÀÌ ACCEPT ÇÏ°Ô µÇ¸é ÀÌ°ÍÀº Æ÷¿öµù
ÇÒ ³×Æ®¿öÅ©·Î º¸³»Áø´Ù.
- ¸¶Áö¸·À¸·Î, ÀÌ°÷¿¡¼ µ¹¾Æ°¡´ø ÇÁ·Î±×·¥Àº ³×Æ®¿öÅ© ÆÐŶÀ» Àü¼ÛÇÒ ¼ö ÀÖ
°Ô µÈ´Ù. ÀÌ ÆÐŶÀº Áï½Ã Ãâ·Â üÀο¡ º¸³»Áø´Ù. ÀÌ Ã¼ÀÎÀÌ ACCEPT ÇÏ°Ô
µÇ¸é ÀÌ ÆÐŶÀº ±× ¸ñÀûÁö°¡ ¾îµðµçÁö º¸³»Áø´Ù.
iptables´Â »ó´çÈ÷ ÀÚ¼¼ÇÑ ¸Þ´º¾ó ÆäÀÌÁö(man iptables
)¸¦ °¡Áö°í ÀÖ´Ù. ipchains
¿¡ Àͼ÷ÇÏ´Ù¸é
<@@ref>Appendix-Aipchains¿Í iptablesÀÇ ´Ù¸¥Á¡À» º¸¾Æ¶ó. ÀÌ µÑÀº ¸Å¿ì
ºñ½ÁÇÏ´Ù.
iptables
·Î ÇÒ¼ö ÀÖ´Â ÀÏ¿¡´Â ¸î°¡Áö ´Ù¸¥°ÍÀÌ ÀÖ´Ù. ù¹ø° ÀÛµ¿Àº Àüü
üÀÎÀ» Á¶ÀýÇÑ´Ù. óÀ½ ½ÃÀÛÀº ¼¼°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø üÀÎÀ¸·Î ½ÃÀÛÇÏ´Â
µ¥ ÀÌ°ÍÀº Á¦°ÅµÉ ¼ö ¾ø´Ù.
- »õ·Î¿î üÀÎ ¸¸µé±â (-N).
- ºñ¾îÀִ üÀÎÀ» Á¦°ÅÇϱâ (-X).
- ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ Á¤Ã¥À» ¹Ù²Ù±â (-P)
- ¾î¶² üÀÎÀÇ ±ÔÄ¢µéÀ» ³ª¿Çϱâ (-L)
- üÀÎÀ¸·ÎºÎÅÍ ±ÔÄ¢µéÀ» Áö¿ì±â (-F)
- üÀγ»ÀÇ ¸ðµç ±ÔÄ¢µéÀÇ ÆÐŶ°ú ¹ÙÀÌÆ®ÀÇ Ä«¿îµå¸¦ 0 À¸·Î ¸¸µé±â (-Z)
üÀÎ ³»ºÎÀÇ ±ÔÄ¢À» Á¶ÀÛÇÏ´Â ¸î°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
- üÀο¡ »õ·Î¿î ±ÔÄ¢À» Ãß°¡Çϱâ (-A)
- üÀÎÀÇ ¾î¶² ÁöÁ¡¿¡ ±ÔÄ¢À» »ðÀÔÇϱâ (-I)
- üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» ±³È¯Çϱâ (-R)
- üÀÎÀÇ ¾î¶² ÁöÁ¡ÀÇ ±ÔÄ¢À» Á¦°ÅÇϱâ (-D)
- üÀο¡¼ ÀÏÄ¡Çϴ ù¹ø° ±ÔÄ¢À» Á¦°ÅÇϱâ (-D)
iptables´Â ¸ðµâ·Î µÇ¾îÀÖÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº iptable_filter.o ÀÌ´Ù. ÀÌ°ÍÀº
óÀ½À¸·Î iptables
¸¦ ½ÇÇàÇÒ¶§ ÀÚµ¿À¸·Î ·ÎµåµÉ °ÍÀÌ´Ù. ÀÌ°Í´À Ä¿³Î¿¡ ¿µ±¸È÷
Æ÷Ç﵃ ¼öµµ ÀÖ´Ù.
iptables ¸í·ÉÀÌ ½ÇÇàµÇ±â Àü¿¡´Â ±âº»ÀûÀ¸·Î ¸¸µé¾îÁ®Àִ üÀÎ(ÀÔ·Â, Æ÷¿öµù,
Ãâ·Â)¿¡´Â ¾Æ¹«¸¥ ±ÔÄ¢µµ ¾ø´Ù. (ÁÖÀÇ : ¾î¶² ¹èÆ÷ÆÇ¿¡´Â ÃʱâÈ ½ºÅ©±éÆ®¿¡
iptables¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ µé¾îÀÖÀ» ¼ö ÀÖ´Ù.) ÀԷ°ú Ãâ·Â üÀÎÀÇ Á¤Ã¥Àº
ACCEPTÀÌ°í Æ÷¿öµù üÀÎÀÇ Á¤Ã¥Àº DROPÀÌ´Ù. (iptable_filter ¸ðµâ¿¡
'forward=1' ¿É¼ÇÀ» ¼±ÅÃÇÏ¿© ÀÌ°ÍÀ» °íÄ¥ ¼ö ÀÖ´Ù.)
ÀÌ°ÍÀº ÆÐŶ ÇÊÅ͸µÀÇ ¾à¹æÀÇ °¨ÃÊÀÌ´Ù. ÀϹÝÀûÀ¸·Î Ãß°¡¿Í Á¦°Å ¸í·ÉÀ» »ç¿ëÇÒ
°ÍÀÌ´Ù. ´Ù¸¥°ÍÀº ÀÌ·± °³³äÀÇ ´Ü¼øÇÑ È®ÀåÀÌ´Ù.
°¢ ±ÔÄ¢Àº ÆÐŶÀÌ ÀÏÄ¡µÇ¾î¾ßÇÒ »óŸ¦ ¼³Á¤ÇÏ°í, ÀÏÄ¡µÇ¾úÀ»¶§ ¹«¾úÀ» ÇÒ °ÍÀΰ¡
('target')¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦µé¾î, ¿©·¯ºÐÀº 127.0.0.1·ÎºÎÅÍÀÇ ¸ðµç ICMP ÆÐŶÀ»
DROPÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ±×·¸´Ù¸é, ÀÌ°æ¿ì ÀÏÄ¡µÇ¾î¾ßÇÒ »óÅ´ 'ICMPÀÌ¸é¼ ±× Ãâó
°¡ 127.0.0.1' ÀÌ´Ù. ÀÌ °æ¿ì 'target' Àº DROP ÀÌ´Ù.
127.0.0.1 Àº 'loopback' ÀÎÅÍÆäÀ̼ ÀÌ°í ½ÇÁ¦ÀûÀÎ ³×Æ®¿öÅ© Á¢¼ÓÀÌ ÀüÇô ¾ø´õ¶óµµ
ÀÌ°ÍÀº °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀº 'ping' ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© »ý¼ºÇÒ ¼ö
ÀÖ´Ù. (ÀÌ°ÍÀº ´Ü¼øÈ÷ ICMP type 8 (¹ÝÀÀ¿ä±¸)À» º¸³»°í ¸ðµç ÇùÁ¶ÀûÀΠȣ½ºÆ®´Â
Ä£ÀýÇÏ°Ô ICMP type 0 (¹ÝÀÀ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä)À» ´ë´äÇÑ´Ù. ÀÌ°ÍÀº Å×½ºÆ®Çϴµ¥ À¯¿ë
ÇÏ´Ù.
# 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
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# 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'Àº ÇϳªÀÇ ÆÐŶ¸¸
º¸³»µµ·Ï ping¿¡°Ô ¸»ÇÏ´Â °ÍÀÌ´Ù.)
±×¸®°í, 'ÀÔ·Â' üÀο¡ 127.0.0.1¿¡¼ ¿À´Â ÆÐŶ('-s 127.0.0.1')À¸·Î ICMP
ÇÁ·ÎÅäÄÝÀÎ°Í ('-p icmp')Àº DROP ('-j DROP')Ç϶ó´Â ±ÔÄ¢À» Ãß°¡(-A)ÇÏ¿´´Ù.
±×¸®°í´Â ´Ù½Ã pingÀ¸·Î ±ÔÄ¢À» Å×½ºÆ®ÇÏ¿´´Ù. pingÀÌ ¿ÀÁö¾ÊÀº ÀÀ´äÀ» ±â´Ù
¸®Áö ¸øÇÏ°í ÀÀ´ä¹Þ±â¸¦ Æ÷±âÇϱâ±îÁö ¾à°£ÀÇ ½Ã°£ÀÌ °É¸±°ÍÀÌ´Ù.
±ÔÄ¢À» Á¦°ÅÇϴµ¥´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ù°, ÀÔ·ÂüÀο¡´Â ´Ü ÇϳªÀÇ ±ÔÄ¢
¸¸ÀÌ ÀÖ´Ù´Â °ÍÀ» ¾ÍÀ¸·Î, ¸î¹øÀ» Áö¿ö¶ó´Â ¹æ½ÄÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.
# iptables -D INPUT 1
#
ÀԷ üÀÎÀ¸·ÎºÎÅÍ 1¹ø ±ÔÄ¢À» Á¦°ÅÇÑ´Ù.
µÎ¹ø° ¹æ¹ýÀº -A ¸í·ÉÀ» ÀÌ¿ëÇÑ ÀÌÀüÀÇ ¸í·É¿¡¼ -A¸¦ -D·Î ´Ù²ãÁÖ¸é µÈ´Ù.
ÀÌ°ÍÀº º¹ÀâÇÑ ±ÔÄ¢À» °¡Áö°í ÀÖ°í °¢ ±ÔÄ¢ÀÌ ¸î¹ø° ±ÔÄ¢ÀÎÁö¸¦ ¿Ü¿ì°í
´Ù´Ï±â¸¦ ½È¾î ÇÑ´Ù¸é, ¾ÆÁÖ À¯¿ëÇÑ ¹æ¹ýÀÌ´Ù.
# iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
#
-D ¸í·ÉÀº -A ¸í·É°ú ¶È °°Àº ¹®¹ýÀÌ´Ù. (-I ³ª -R µµ ¸¶Âù°¡ÁöÀÌ´Ù.) ¸¸¾à,
¿©·¯°³ÀÇ ¶È °°Àº ±ÔÄ¢µéÀÌ °°Àº üÀο¡ ÀÖ´Ù¸é, ù¹ø° °Í¸¸ Á¦°Å µÉ °ÍÀÌ´Ù.
¾Õ¿¡¼ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-p'¸¦ ÀÌ¿ëÇÏ¿´°í, Ãâó¸¦ ÁöÁ¤Çϱâ
À§ÇÏ¿© '-s'¸¦ ÀÌ¿ëÇÏ¿´´Ù. ±× ¿Ü¿¡µµ ÆÐŶÀÇ Æ¯Â¡À» ÁöÁ¤Çϴµ¥ »ç¿ëµÇ
´Â ´Ù¸¥ ¿É¼ÇµéÀÌ ÀÖ´Ù. ¾Æ·¡´Â À̰͵鿡 ´ëÇÑ ¿Ïº®ÇÑ °³¿äÀÌ´Ù.
Ãâó¿Í ¸ñÀûÁö ÁöÁ¤
Ãâó('-s', '--source', '--src')¿Í ¸ñÀûÁö('-d', '--destination',
'--dst') IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ 4°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. °¡Àå º¸ÆíÀûÀÎ ¹æ¹ýÀº
'www.linuxhq.com', 'localhost' ó·³ À̸§À» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. µÎ¹ø°
¹æ¹ýÀº '127.0.0.1' ó·³ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù.
¼¼¹ø°¿Í ³×¹ø° ¹æ¹ýÀº IP ÁÖ¼ÒÀÇ ±×·ìÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î '199.95.207.0/24'
¶Ç´Â '199.95.207.0/255.255.255.0' °°Àº ÇüÅÂÀÌ´Ù. ÀÌ µÑÀº ¸ðµÎ
199.95.207.0 ºÎÅÍ 199.95.207.255 »çÀÌÀÇ ¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù. '/'
´ÙÀ½ÀÇ ¼ýÀÚ´Â IP ÁÖ¼ÒÀÇ ¾î¶² ºÎºÐÀÌ ÀǹÌÀִ°¡¸¦ ³ªÅ¸³½´Ù. '/32' ³ª
'/255.255.255.255' °¡ ±âº»°ªÀÌ´Ù.(IP ÁÖ¼ÒÀÇ ¸ðµçºÎºÐÀÌ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.)
¸ðµç IP ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ '/0' °¡ »ç¿ëµÈ´Ù.
# iptables -A INPUT -s 0/0 -j DROP
#
ÀÌ°ÍÀº '-s' ¿É¼ÇÀ» ÀÌ¿ëÇÏÁö ¾ÊÀº°Í°ú °°Àº È¿°ú¸¦ ³ªÅ¸³»¹Ç·Î Àß »ç¿ëµÇÁö
¾Ê´Â´Ù.
'¿ª'ÀÇ °æ¿ì ÁöÁ¤
¸¹Àº Áö½ÃÀÚµé('-s'³ª '-d' °°Àº)Àº ÀÏÄ¡ÇÏÁö ¾Ê´Â ÁÖ¼Ò¸¦ ³ªÅ¸³»±â À§ÇÏ¿©
'!'('not'À» ÀǹÌÇÑ´Ù)·Î ½ÃÀÛÇÏ´Â ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ¿¹·Î,
'-s ! localhost' ´Â localhost·ÎºÎÅÍ¿À´Â ÆÐŶÀÌ ¾Æ´Ñ°æ¿ì¸¦ ³ªÅ¸³½´Ù.
ÇÁ·ÎÅäÄÝ ÁöÁ¤
ÇÁ·ÎÅäÄÝÀº '-p' Áö½ÃÀÚ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÅäÄÝÀ» ¼ýÀÚ°¡ µÉ¼ö ÀÖ°í
(IPÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ¾Ë°í ÀÖ´Ù¸é) 'TCP', 'UDP', 'ICMP' °°Àº À̸§ÀÌ
µÉ ¼öµµ ÀÖ´Ù. ±×¸®°í 'tcp'´Â 'TCP'¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù.
ÇÁ·ÎÅäÄÝ À̸§ ÁöÁ¤¿¡µµ '!'À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. '-p ! TCP'
ÀÎÅÍÆäÀ̼ ÁöÁ¤
'-i'('--in-interface')¿Í '-o'('--out-interface')°¡ ÀÎÅÍÆäÀ̼¸¦ ÀúÁ¤
Çϴµ¥ »ç¿ëµÈ´Ù. ÀÎÅÍÆäÀ̼´Â ÆÐŶÀÌ µé¾î¿À°í ³ª°¡´Â ¹°¸®ÀûÀÎ µµ±¸ÀÌ´Ù.
ifconfig
¸í·ÉÀ» »ç¿ëÇÏ¿© ÇöÀç È°¼ºÈ µÇ¾îÀÖ´Â ÀÎÅÍÆäÀ̼¸¦ ¾Ë¾Æº¼¼ö ÀÖ´Ù.
ÀÔ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-o'
¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀÌ°í Ãâ·Â
üÀÎÀ» Áö³ª´Â ÆÐŶÀº ÀÔ·Â ÀÎÅÍ
ÆäÀ̼¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¹Ç·Î '-i' ¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ ¾øÀ» °ÍÀÌ´Ù.
Æ÷¿öµù
üÀÎÀ» Áö³ª´Â ÆÐŶ¸¸ÀÌ ÀԷ°ú Ãâ·Â ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ °¡Áú°ÍÀÌ´Ù.
ÇöÀç Á¸ÀçÇÏÁö ¾Ê´Â ÀÎÅÍÆäÀ̼¸¦ ÁöÁ¤ÇÏ´Â °Íµµ ¾Æ¹«·± ¹®Á¦¾øÀÌ µÉ ¼ö ÀÖ
´Ù. ÀÌ°ÍÀº ÀÎÅÍÆäÀ̼°¡ È°¼ºÈ µÇ±â Àü±îÁö´Â ±ÔÄ¢¿¡ ÀÏÄ¡ÇÏ´Â ÆÐŶÀÌ
ÀÖÀ»¼ö ¾øÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº dial-up PPP¸¦ »ç¿ëÇÏ´Â °æ¿ì ƯÈ÷ À¯¿ëÇÏ´Ù.
Ưº°ÇÑ °æ¿ì·Î, ÀÎÅÍÆäÀ̼ À̸§ÀÌ '+'·Î ³¡³¯¼ö Àִµ¥ ÀÌ°ÍÀº ±× À̸§À¸·Î
½ÃÀÛÇÏ´Â ¸ðµç ÀÎÅÍÆäÀ̼¸¦ ¸ðµÎ ÁöÁ¤ÇÑ´Ù(±×°ÍÀÌ ÇöÀç Á¸ÀçÇϵç Á¸ÀçÇÏÁö
¾Êµç). ¿¹¸¦µé¾î, ¸ðµç PPP ÀÎÅÍÆäÀ̼¿Í ÀÏÄ¡ÇÏ´Â ±ÔÄ¢À» ÁöÁ¤ÇÏ·Á¸é
-i ppp+
¿Í°°ÀÌ ÇÏ¸é µÈ´Ù.
ÀÎÅÍÆäÀ̼ À̸§¾Õ¿¡ '!'µµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
ºÐÀý (Fragments) ÁöÁ¤
°¡²û ÆÐŶÀº Çѹø¿¡ ´Ù Àü´ÞµÇ±â¿¡´Â ³Ê¹« Å« °æ¿ì°¡ ÀÖ´Ù. ÀÌ·±°æ¿ì ÆÐŶÀº
¿©·¯ ºÐÀý·Î ³ª´µ¾îÁö°í ´ÙÁßÆÐŶÀÇ ÇüÅ·ΠÀü´ÞµÈ´Ù. ¸ñÀûÁö¿¡¼ ÀÌ ºÐÀýµé
Àº Àç ±¸¼ºµÇ¾î Àüü ÆÐŶÀÌ µÈ´Ù.
ºÐÀý¿¡¼ ¹®Á¦Á¡Àº ³»ºÎ ÆÐŶÀÇ ºÎºÐÀ¸·Î IP Çì´õ ´ÙÀ½ÀÇ À§Ä¡¿¡¼ ÇÁ·ÎÅäÄÝ
Çì´õ¸¦ ã´Âµ¥, ÀÌ°ÍÀº ù¹ø° ºÐÀý¿¡¸¸ Àֱ⠶§¹®¿¡ ãÀ»¼ö°¡ ¾ø´Ù.
¸¸¾à ¿©·¯ºÐÀÌ Á¢¼ÓÃßÀûÀ̳ª NAT¸¦ ÇÑ´Ù¸é ¸ðµç ºÐÀýÀº ÇÊÅ͸µ Äڵ忡 µµ´ÞÇÏ
±â Àü¿¡ ¹¶ÃÄÁö¹Ç·Î ºÐÀý¿¡ ´ëÇÑ °ÆÁ¤Àº ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
±×·¸Áö ¾Ê´Ù¸é, ºÐÀýµéÀÌ ÇÊÅ͸µ ±ÔÄ¢¿¡¼ ¾î¶»°Ô 󸮵Ǵ°¡¸¦ ÀÌÇØÇÏ´Â °Í
Àº Áß¿äÇÏ´Ù. ¿ì¸®°¡ °¡Áö°íÀÖÁö ¾ÊÀº Á¤º¸¸¦ ¿ä±¸ÇÏ´Â ÇÊÅ͸µ ±ÔÄ¢¿¡ ºÎÇÕµÉ
¼ö°¡ ¾ø´Ù. ÀÌ°ÍÀº ù¹ø° ÆÐŶÀº ´Ù¸¥ ÆÐŶ°ú °°ÀÌ Ã³¸®µÇ°í µÎ¹ø° ÀÌÈÄÀÇ
ºÐÀýÀº Àü´ÞµÉ ¼ö ¾øÀ½À» ÀǹÌÇÑ´Ù. ±×·¯¹Ç·Î -p TCP --sport www
('www'
¸¦ Ãâ½Å Æ÷Æ®·Î ÁöÁ¤ÇÏ´Â °æ¿ì)¿Í °°Àº ±ÔÄ¢¿¡ ¸Â´Â ºÐÀýÀº ÀÖÀ» ¼ö ¾ø´Ù(
ù¹ø° ºÐÀýÀ» Á¦¿ÜÇÏ°í). ±× ¹Ý´ëÀÇ ±ÔÄ¢ÀÎ -p TCP --sport ! www
µµ ºÐ
ÀýµéÀ» ó¸®ÇÒ ¼ö ¾ø´Ù.
±×·¯³ª, µÎ¹ø° ÀÌ»óÀÇ ºÐÀý¿¡ ´ëÇÏ¿© ±ÔÄ¢À» ÁöÁ¤ÇϱâÀ§ÇÏ¿© '-f'
('--fragment')¶ó´Â Áö½ÃÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. µÎ¹ø° ÀÌ»óÀÇ ºÐÀý¿¡´Â Àû¿ë
µÇÁö¾Ê´Â ±ÔÄ¢À» ÁöÁ¤Çϱâ À§ÇÏ¿© '-f' ¾Õ¿¡ '!' ¸¦ ºÙÀÌ´Â °Íµµ °¡´ÉÇÏ´Ù.
ÀϹÝÀûÀ¸·Î , ù¹ø° ºÐÀý¿¡ ÇÊÅ͸µÀÌ Àû¿ëµÇ¾î DROP µÇ¸é ¸ñÀûÁö ¿¡¼ ´Ù¸¥
ºÐÀýµéÀÇ ÀçÇÕ¼ºÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î, µÎ¹ø° ÀÌ»óÀÇ ºÐÀýÀÌ ±×³É Áö³ª°¡µµ·ÏÇÏ´Â
°Íµµ ¾ÈÀüÇÑ °ÍÀ¸·Î °£ÁÖ µÈ´Ù. ±×·¯³ª ´Ü¼øÈ÷ ºÐÀýµéÀ» Àü´ÞÇÏ´Â °Í¸¸À¸·Î
È£½ºÆ®¸¦ Å©·¡½¬°¡ »ý±â´Â ¹ö±×°¡ ¾Ë·ÁÁ® ÀÖ´Ù. ¿©·¯ºÐÀÌ °áÁ¤ÇÒ ÀÏÀÌ´Ù.
³×Æ®¿öÅ© Çì´õ¿¡ ´ëÇÑ ÁÖÀÇ : À߸ø ±¸¼ºµÈ ÆÐŶµéÀº ÀÌ·¯ÇÑ ½ÃÇèÀ» ÇÒ¶§ DROP
µÇ¾ú´Ù. (TCP, UDP, ICMP ÆÐŶÁß ±æÀÌ°¡ ³Ê¹« ª¾Æ ÆÄÀ̾î¿ù Äڵ尡 Æ÷Æ®³ª
ICMP ÄÚµå¿Í ÇüŸ¦ ÀÐÀ» ¼ö ¾ø´Â °æ¿ì). ¿Ö³ÄÇϸé TCP ºÐÀýÀº 8¹ø° À§Ä¡ºÎÅÍ
½ÃÀ۵DZ⠶§¹®ÀÌ´Ù.
¿¹·Î, ´ÙÀ½°ú °°Àº ±ÔÄ¢Àº 192.168.1.1 ·Î ÇâÇÏ´Â ºÐÀýÀ» DROP ½ÃŲ´Ù.
# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
#
iptables ÀÇ È®Àå : »õ·Î¿î ´ë»ó(Matches)
iptables
´Â È®Àå °¡´ÉÇÏ´Ù. Áï »õ·Î¿î ÇüŸ¦ Á¦°øÇϱâ À§ÇÏ¿© iptables¿Í
Ä¿³Î ¸ðµÎ°¡ È®Àå °¡´ÉÇÏ´Ù´Â ÀǹÌÀÌ´Ù.
ÀÌÁß ÀϺδ ǥÁØÀûÀÌ°í ´Ù¸¥ °ÍÀº ÀÌ»öÀûÀÌ´Ù. ´Ù¸¥»ç¶÷¿¡ ÀÇÇؼµµ È®Àå
Àº ¸¸µé¾îÁú ¼öµµ ÀÖÀ¸¸ç µ¶¸³ÀûÀ¸·Î ¹èÆ÷µÉ ¼ö ÀÖ´Ù.
Á¤»óÀûÀ¸·Î Ä¿³Î È®ÀåÀº Ä¿³Î ¸ðµâ ÇϺΠµð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù.
(/lib/modules/2.3.15/net). ÀÌ°ÍÀº ¿ä±¸¿¡ ÀÇÇÏ¿© ÀûÀçµÈ´Ù. ±×·¯¹Ç·Î Á÷
Á¢ ÀÌµé ¸ðµâÀ» ÀûÀçÇÒ ÇÊ¿ä´Â ¾ø´Ù.
iptablesÀÇ È®ÀåµéÀº °øÀ¯¶óÀ̹ö·¯¸® ÇüÅ·Πº¸Åë /usr/local/lib/iptables
¿¡ À§Ä¡ÇÑ´Ù. ¹èÆ÷ÆÇÀº ÀÌ°ÍÀ» /lib/iptables³ª /usr/lib/iptables¿¡ ³ÖÀ¸
·Á ÇÒ °ÍÀÌ´Ù.
È®ÀåÀº µÎ°¡Áö ÇüÅÂÀÌ´Ù. : »õ·Î¿î Ÿ°Ù(target), »õ·Î¿î Àû¿ë(match)
¾Æ·¡¿¡ »õ·Î¿î Ÿ°Ù¿¡ ´ëÇÏ¿© À̾߱â ÇÒ °ÍÀÌ´Ù. ¾î¶² ÇÁ·ÎÅäÄÝÀº ÀÚµ¿À¸·Î
»õ·Î¿î Å×½ºÆ®¸¦ Á¦°øÇϴµ¥ ÇöÀç·Î´Â TCP, UDP, ICMP ¿¡ ´ëÇؼ ¾Æ·¡¿¡
º¸¿© ÁÙ °ÍÀÌ´Ù.
ÀÌ°ÍÀ» À§Çؼ '-p' ¿É¼Ç µÚ¿¡ ÁöÁ¤Çϴµ¥ ±×·¯¸é È®ÀåÀ» ÀûÁ¦ÇÒ °ÍÀÌ´Ù.
¸í¹éÈ÷ ÇÒ·Á¸é '-m' ¿É¼ÇÀ¸·Î È®ÀåÀ» ÀûÀçÇÏ°í È®Àå ¿É¼ÇÀ» »ç¿ë°¡´ÉÇÏ°Ô
ÇÒ ¼ö ÀÖ´Ù.
È®Àå¿¡ ´ëÇÑ µµ¿òÀ» ¾òÀ¸·Á¸é, ÀûÁ¦ÇÏ´Â ¿É¼Ç('-p', '-j', '-m')À» '-h'³ª
'--help' ´ÙÀ½¿¡ ÁöÁ¤ÇÏ¸é µÈ´Ù.
TCP È®Àå
TCP È®ÀåÀº '--protocol tcp' °¡ ÁöÁ¤µÇ°í ´Ù¸¥ Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é
ÀÚµ¿À¸·Î ÀûÁ¦µÈ´Ù. ÀÌ°ÍÀº ´ÙÀ½°ú °°Àº ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --tcp-flags
-
'!' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ°Í µÚ¿¡ µÎ°³ÀÇ ´Ü¾î¸¦ »ç¿ëÇÑ´Ù. ù¹ø°
°ÍÀº °Ë»çÇÏ°íÀÚ ÇÏ´Â Áö½ÃÀÚ ¸®½ºÆ®ÀÇ ¸¶½ºÅ©ÀÌ´Ù. µÎ¹ø° ´Ü¾î´Â
Áö½ÃÀÚ¿¡°Ô ¾î¶²°ÍÀÌ ¼³Á¤ µÉ °ÍÀÎÁö¸¦ ¸»ÇØÁØ´Ù. ¿¹¸¦µé¾î,
# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY
ÀÌ°ÍÀº ¸ðµç°ÍÀÌ °Ë»çµÇ¾î¾ß ÇÔÀ» ¸»ÇÑ´Ù.('ALL'Àº `SYN,ACK,FIN,RST,URG,PSH'
¿Í °°´Ù.) ±×·¯³ª SYN °ú ACK ¸¸ ¼³Á¤µÈ´Ù. 'NONE'´Â Áö½ÃÀÚ°¡ ¾øÀ½
À» ¸»ÇÑ´Ù.
- --syn
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº '--tcp-flags SYN,RST,ACK,SYN'ÀÇ
¾à¾îÀÌ´Ù.
- --source-port
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÇϳªÀÇ TCP Æ÷Æ®³ª Æ÷Æ®ÀÇ ¹üÀ§¸¦
ÁöÁ¤ÇÑ´Ù. /etc/services ¿¡ ±â·ÏµÈ °Í°ú °°Àº Æ÷Æ® À̸§ÀÌ »ç¿ëµÉ ¼ö
µµ ÀÖ°í ¼ýÀÚ·Î ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù. ¹üÀ§´Â µÎ°³¸£ Æ÷Æ® À̸§À» '-' À¸
·Î ¿¬°áÇؼ »ç¿ëÇϰųª (Ä¿°Å³ª °°Àº°æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® µÚ¿¡
'-'¸¦ »ç¿ëÇϰųª (À۰ųª °°Àº °æ¿ì¸¦ À§Çؼ) ÇϳªÀÇ Æ÷Æ® ¾Õ¿¡ '-'
¸¦ µ¡ºÙÀÏ ¼ö ÀÖ´Ù.
- --sport
-
ÀÌ°ÍÀº '--source-port'¿Í µ¿ÀǾîÀÌ´Ù.
- --destination-port
-
¿Í
- --dport
-
´Â À§ÀÇ ³»¿ë°ú °°À¸³ª ¸ñÀû
Áö¸¦ ÁöÁ¤ÇÑ´Ù.
- --tcp-option
-
'!' ³ª ¼ýÀÚ°¡ ¿É¼Ç¿¡ ¼±ÇàµÉ ¼ö Àִµ¥ ¼ýÀÚ°¡ ¾Õ¿¡ ¿Ã°æ¿ì ±× ¼ýÀÚ
¿Í TCP ¿É¼ÇÀÌ °°Àº °æ¿ìÀÇ ÆÐŶÀ» °Ë»çÇÑ´Ù. TCP ¿É¼ÇÀ» °Ë»çÇÏ·Á ÇÒ
¶§ ¿ÏÀüÇÑ TCP Çì´õ¸¦ °®Áö¾Ê´Â °ÍÀº ÀÚµ¿À¸·Î DROP µÈ´Ù.
TCP Áö½ÃÀÚ¿¡´ëÇÑ ¼³¸í
°¡²û ÇÑÂÊ ¹æÇâ¿¡¼ÀÇ TCP Á¢¼Ó¸¸ Çã¶ûÇÏ°í ´Ù¸¥ ¹æÇâ¿¡¼ÀÇ Á¢¼ÓÀ» ºÒÇãÇÏ
´Â °ÍÀÌ À¯¿ëÇÏ´Ù. ¿¹·Î, ¿©·¯ºÐÀº ¿ÜºÎ WWW ¼¹ö·ÎÀÇ Á¢¼ÓÀº Çã¶ôÇÏ¸ç ±×
¼¹ö·Î ºÎÅÍÀÇ Á¢¼ÓÀº ºÒÇãÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù.
´Ü¼øÇÏ°Ô ±× ¼¹ö·ÎºÎÅÍ ¿À´Â TCP ÆÐŶÀ» ¸·À¸¸é µÈ´Ù°í »ý°¢ÇÒ °ÍÀÌ´Ù. ±×·¯
³ª, ºÒÇàÈ÷µµ ÀÛµ¿Çϱâ À§Çؼ TCP Á¢¼ÓÀº ¾ç¹æÇâÀÇ ÆÐŶÀ» ¿ä±¸ÇÑ´Ù.
ÇعýÀº Á¢¼ÓÀ» ¿ä±¸ÇÏ´Â ÆÐŶ¸¸ ¸·´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÆÐŶÀ» SYN ÆÐŶÀ̶óÇÑ´Ù.
(¹°·Ð, ±â¼úÀûÀ¸·Î SYN Áö½ÃÀÚ ¼ÂÀ» °®´Â ÆÐŶÀÌ ÀÖ´Ù. ±×¸®°í FIN °ú ACK Áö½Ã
ÀÚ´Â Áö¿öÁø´Ù. ±×·¯³ª °£´ÜÈ÷ ±×°ÍÀ» SYN ÆÐŶÀ̶ó°í ÇÑ´Ù.) ÀÌ·¯ÇÑ ÆÐŶ¸¸
ºÒ°¡´ÉÀ¸·Î ¸¸µëÀ¸·Î¼ ¿ÜºÎ·Î ºÎÅÍÀÇ Á¢¼Ó ½Ãµµ¸¦ ¸·À» ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ °ÍÀ» À§Çؼ '--syn' Áö½ÃÀÚ°¡ »ç¿ëµÈ´Ù. : ÀÌ°ÍÀº ÇÁ·ÎÅäÄÝÀ» TCP ·Î
ÁöÁ¤ÇßÀ» ¶§¸¸ È¿°ú°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é, 192.168.1.1 ·ÎºÎÅÍÀÇ TCP Á¢¼ÓÀ» Áö
Á¤Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
-p TCP -s 192.168.1.1 --syn
Á¢¼ÓÀ» ½ÃÀÛÇÑ °Í ¿ÜÀÇ ¸ðµç ÆÐŶÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© '!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö
ÀÖ´Ù.
UDP È®Àå
ÀÌ È®ÀåÀº '--protocol udp'°¡ ÁöÁ¤µÇ°í Àû¿ëÀÌ ÀúÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î
ÀûÀçµÈ´Ù. ÀÌ°ÍÀº '--source-port', '--sport', '--destination-port',
'-dport'¸¦ Áö¿øÇÏ°í ³»¿ëÀº TCP ¼³¸í¿¡¼ ÀÚ¼¼È÷ ³ª¿Ô´Ù.
ICMP È®Àå
ÀÌ È®ÀåÀº '--protocol icmp'°¡ ÁöÁ¤µÇ°í ±× Àû¿ëÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î
ÀûÀçµÈ´Ù. ÀÌ°ÍÀº ´Ü ÇϳªÀÇ »õ·Î¿î ¿É¼Ç¸¸ Áö¿øÇÑ´Ù.:
- --icmp-type
-
'!' ¿É¼ÇÀÌ ¼±ÇàµÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ICMP ŸÀÔÀÇ À̸§('host-unreachable')
À̳ª ¼ýÀÚÇüÅ ('3'), ¶Ç´Â ¼ýÀÚÇüÅÂ¿Í ÄÚµå('/'·Î ºÐ¸® ¿¹. '3/3') ÀÇ Çü
Å°¡ »ç¿ëµÈ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ICMP ÇüÅÂÀÇ À̸§ÀÇ ¸®½ºÆ®´Â
'-p icmp --help' ÇÏ¸é ³ªÅ¸³´Ù.
±×¿ÜÀÇ Àû¿ë È®Àå
Netfilter ÆÐÅ°ÁöÀÇ ´Ù¸¥ È®ÀåÀº ½ÃÇèÀûÀÎ È®ÀåÀÌ´Ù. ÀÌ°ÍÀº (¼³Ä¡ µÇ¾îÀÖ´Ù¸é)
'-m' ¿É¼ÇÀ¸·Î È°¼ºÈ µÈ´Ù.
- mac
-
ÀÌ ¸ðµâÀº '-m mac' ¶Ç´Â '--match mac' À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
ÀÌ°ÍÀº µé¾î¿À´Â ÆÐŶÀÇ ÀÌ´õ³Ý ÁÖ¼Ò¸¦ °Ë»çÇÑ´Ù. ±×·¯¹Ç·Î ÀԷ üÀο¡
¼¸¸ À¯¿ëÇÏ´Ù. ÀÌ°ÍÀº ÇϳªÀÇ ¿É¼Ç¸¸ Á¦°øÇÑ´Ù.
- --mac-source
-
'!' ¿É¼ÇÀÌ ¼±Çà µÉ ¼ö ÀÖ´Ù. ÀÌÈÄ¿¡ ÄÝ·ÐÀ¸·Î ºÐ¸®µÈ 16Áø¼ö ¼ýÀÚÀÇ
ÀÌ´õ³Ý ÁÖ¼Ò°¡ ¿Â´Ù. ¿¹ '--mac-source 00:60:08:91:CC:B7'
- limit
-
ÀÌ ¸ðµâÀº '-m limit' ¶Ç´Â '--match limit'À̶ó°í ÇÔÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ
´Ù. ÀÌ°ÍÀº ·Î±× ¸Þ¼¼Áö¸¦ ¾ïÁ¦ÇÒ¶§ ó·³ Àû¿ë°Ë»çÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϴµ¥
»ç¿ëÇÑ´Ù. 1ÃÊ¿¡ ÁÖ¾îÁø ¼ýÀÚ¸¸ÅÀÇ Àû¿ë¸¸ °Ë»çÇÑ´Ù. (±âº»°ªÀº ÇÑ ½Ã°£
¿¡ 3¹ø, ÃÖ°í 5¹øÀÌ´Ù.) ÀÌ°ÍÀº µÎ°³ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --limit
-
¼ýÀÚ°¡ µû¶ó¿Â´Ù : ÃÊ´ç Æò±Õ ÃÖ´ë Àû¿ë °Ë»ç ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ¼ýÀÚµÚ
¿¡ ½Ã°£´ÜÀ§¸¦ Áö¾îÇÒ ¼ö µµ ÀÖ´Ù. ('/second', '/minute', '/hour',
'/day'ÇüÅÂÀÌ´Ù. ¿¹·Î, '5/second' ¶Ç´Â '5/s'°¡ °¡´ÉÇÏ´Ù)
- --limit-burst
-
¼ýÀÚ°¡ µû¶ó¿Â´Ù. À§ÀÇ Á¦ÇÑÀÌ Àû¿ëµÇ±âÀüÀÇ ÃÖ´ë Burst(?) ¸¦ Á¦ÇÑ
ÇÑ´Ù.
ÀÌ Àû¿ëÀº Á¾Á¾ ·Î±×ÀÇ ¼Óµµ¸¦ Á¦ÇÑÇϱâÀ§ÇÏ¿© LOG Ÿ°Ù°ú ÇÔ²² »ç¿ëµÈ
´Ù. ÀÌ°ÍÀ» ÀÌÇØÇϱâÀ§ÇÏ¿© ¾Æ·¡¿¡ ±âº» Á¦ÇѼ³Á¤À» ÇÏ´Â ·Î±× ÆÐŶÁ¦ÇÑ
À» º¸ÀÚ.
# iptables -A FORWARD -m limit -j LOG
ÀÌ ±ÔÄ¢¿¡ µµ´ÞµÉ¶§±îÁö ÆÐŶÀº ·Î±×µÉ °ÍÀÌ´Ù. »ç½Ç BurstÀÇ ±âº»°ªÀº
5 À̹ǷΠó¹Ç¤· 5°³ÀÇ ÆÐŶÀº ·Î±×µÉ°ÍÀÌ´Ù. ±× ÀÌÈÄ ¾ó¸¶³ª ¸¹Àº ÆÐŶÀÌ
µµ´ÞÇÏµç °£¿¡ ÇϳªÀÇ ÆÐŶÀÌ ·Î±×µÇ±âÀü¿¡ 20ºÐÀÌ °É¸± °ÍÀÌ´Ù. ±×¸®°í 20ºÐ
µ¿¾È ÆÐŶ Àû¿ëÀÌ ¾øÀ¸¸é Burst Çϳª°¡ ´Ù½Ã »ý±æ °ÍÀÌ´Ù. ÆÐŶ¾øÀÌ 100ºÐ
ÀÌ Áö³ª¸é Burst´Â ¿ÏÀüÀÌ ¿ø»ó º¹±¸ µÉ°ÍÀÌ´Ù. óÀ½ ½ÃÀÛÇÒ¶§·Î µ¹¾Æ°¡´Â °Í
ÀÌ´Ù.
À纹±¸ ½Ã°£À» 59½Ã°£ ÀÌ»óÀ¸·Î´Â ¼³Á¤ÇÏÁö ¸øÇÑ´Ù. ±×·¯¹Ç·Î Æò±Õ¼Óµµ¸¦ ÇÏ
·ç¿¡ 1°³·Î ¼³Á¤ÇÏ¿´´Ù¸é Burst ¼Óµµ´Â 3 ÀÌÇÏ°¡ µÇ¾î¾ß ÇÑ´Ù.
- owner
-
ÀÌ ¸ðµâÀº Áö¿ª¿¡¼ »ý¼ºµÈ ÆÐŶÀÇ »ý¼ºÀÚÀÇ ¿©·¯ Ư¡À» Àû¿ëÇÏ·Á°í ÇÑ´Ù.
ÀÌ°ÍÀº Ãâ·Â üÀο¡¸¸ »ç¿ëµÇ¸ç ¾î¶² ÆÐŶµé(ICMP ping ÀÀ´ä°°Àº)Àº ¼ÒÀ¯ÀÚ
°¡ ¾øÀ¸¹Ç·Î Àû¿ëµÇÁö ¾Ê´Â´Ù.
- --uid-owner userid
-
À¯È¿ÇÑ »ç¿ëÀÚ id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --uid-owner groupid
-
À¯È¿ÇÑ ±×·ì id (¼ýÀÚ)ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --pid-owner processid
-
ÁÖ¾îÁø ÇÁ·Î¼¼¼ id ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- --sid-owner processid
-
¼¼¼Ç ±×·ì³»ÀÇ ÇÁ·Î¼¼¼°¡ »ý¼ºÇÑ ÆÐŶ¿¡ Àû¿ëÇÑ´Ù.
- unclean
-
ÀÌ ½ÃÇèÀûÀÎ ¸ðµâÀº Á¤È®È÷ '-m unclean' ¶Ç´Â '--match unclean'À¸·Î
ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¹«ÀÛÀ§ÀÇ ¿©·¯ °ÇÀü¼º °Ë»ç¸¦ ÇÑ´Ù. ÀÌ°ÍÀº
Á¦´ë·Î °Ë»çµÇÁö ¾Ê¾Ò°í ¾ÈÀü¼º µµ±¸·Îµµ »ç¿ëµÇÁö ¸øÇÑ´Ù.(¾Æ¸¶µµ ÀÌ°Í
Àº ¹«Á¦¸¦ ´õ¿í Èûµé°Ô ÇÏ°í ¹ö±× ±× ÀÚüÀÏ °ÍÀÌ´Ù.) ÀÌ°ÍÀº ¿É¼ÇÀÌ
¾ø´Ù.
»óÅÂ Àû¿ë
°¡Àå À¯¿ëÇÑ Àû¿ë ±âÁØÀº 'ip_conntrack' ¸ðµâÀÇ Á¢¼Ó ÃßÀû ºÐ¼®À» Çؼ®ÇÏ´Â
'state' È®ÀåÀÌ´Ù. ÀÌ°ÍÀ» °·ÂÈ÷ ÃßõÇÑ´Ù.
'-m state'¸¦ ÁöÁ¤ÇÔÀ¸·Î '--state' ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌÈÄ¿¡ ÄÞ¸¶·Î
ºÐ¸®µÇ´Â Àû¿ëÇÒ »óŵéÀÇ ¸®½ºÆ®°¡ ¿Â´Ù.('!' Áö½ÃÀÚ´Â »ç¿ëµÇ¾îÁöÁö ¾Ê´Â
´Ù.) ÀÌ »óŵéÀº ;
- NEW
-
»õ·Î¿î Á¢¼ÓÀ» ¸¸µå´Â ÆÐŶ
- ESTABLISHED
-
Á¸ÀçÇÏ´Â Á¢¼Ó¿¡ ¼ÓÇÏ´Â ÆÐŶ (Áï, ÀÀ´ä ÆÐŶÀ» °¡Á³´ø °Í)
- RELATED
-
±âÁ¸ÀÇ Á¢¼ÓÀÇ ºÎºÐÀº ¾Æ´ÏÁö¸¸ ¿¬°ü¼ºÀ» °¡Áø ÆÐŶÀ¸·Î . ICMP ¿¡·¯
³ª (FTP ¸ðµâÀÌ »ðÀÔ µÇ¾îÀÖÀ¸¸é) ftp µ¥ÀÌÅÍ Á¢¼ÓÀ» Çü¼ºÇÏ´Â
ÆÐŶ.
- INVALID
-
¾î¶² ÀÌÀ¯·Î È®ÀÎÇÒ ¼ö ¾ø´Â ÆÐŶ: ¾Ë·ÁÁø Á¢¼Ó°ú ºÎÇÕÇÏÁö ¾Ê´Â ICMP
¿¡·¯¿Í 'out of memory' µîÀ» Æ÷ÇÔÇÑ´Ù. º¸Åë ÀÌ·± ÆÐŶÀº DROP µÈ´Ù.
ÀÌÁ¦ ÆÐŶ¿¡¼ ¾î¶² °Ë»ç¸¦ ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¾Ò´Ù. ÀÌÁ¦ ¿ì¸®ÀÇ °Ë»ç¿¡ ÀÏÄ¡
ÇÏ´Â ÆÐŶÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö¸¦ ¸»ÇÏ´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ÀÌ°ÍÀ» ±ÔÄ¢ Ÿ°Ù
À̶ó°í ÇÑ´Ù.
µÎ°³ÀÇ ÀÌ¹Ì ¸¸µé¾îÁø ´Ü¼øÇÑ Å¸°ÙÀÌ ÀÖ´Ù. : DROP °ú ACCEPT. ÀÌ¹Ì ÀÌ°Í¿¡
´ëÇؼ´Â À̾߱⸦ ÇÑ ÀûÀÌ ÀÖ´Ù. Àû¿ëÀÌ µÇ´Â ÆÐŶ°ú ±×°ÍÀÇ Å¸°ÙÀÌ À§ÀÇ µÎ
°³Áß Çϳª¶ó¸é ´õÀÌ»óÀÇ Âü°íÇÒ ±ÔÄ¢Àº ¾ø´Ù. : ÆÐŶÀÇ ¿î¸íÀº °áÁ¤ µÇ´Â °Í
ÀÌ´Ù.
ÀÌ¹Ì ¸¸µé¾îÁø µÎ°³ÀÇ Å¸°Ù¿Ü¿¡ µÎ°¡Áö ÇüÅÂÀÇ Å¸°ÙÀÌ ÀÖ´Ù.: È®Àå°ú »ç¿ëÀÚ
ÁöÁ¤ÀÇ Ã¼Àεé ÀÌ´Ù.
»ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àεé
ipchains
·Î ºÎÅÍ »ó¼ÓµÇ´Â iptables
ÀÇ °·ÂÇÑ ±â´ÉÁßÀÇ Çϳª´Â ´É·ÂµÇ´Â »ç¿ë
ÀÚ°¡ ±âÁ¸ÀÇ ¼¼°³ÀÇ Ã¼ÀÎ(ÀÔ·Â, Ãâ·Â, Æ÷¿öµå)¿Ü¿¡ »õ·Î¿î üÀÎÀ» »ý¼ºÇÒ ¼ö
ÀÖ´Ù´Â °ÍÀÌ´Ù. ¸ðÀÓÀÇ °á°ú »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀº ±×°ÍÀ» ±¸ºÐÇϱâ À§ÇÏ¿© ¼Ò¹®
ÀÚ·Î ³ªÅ¸³½´Ù. (¾Æ·¡
Àüü üÀο¡ ´ëÇÑ ÀÛ¿ë ºÎºÐ¿¡¼ ¾î¶»°Ô »ç¿ëÀÚ ÁöÁ¤ÀÇ
»õ·Î¿î üÀÎÀ» ¸¸µå´ÂÁö ±â¼úÇÒ °ÍÀÌ´Ù.)
Ÿ°ÙÀÌ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÎ ±ÔÄ¢¿¡ ÆÐŶÀÌ ¸ÂÀ¸¸é ÆÐŶÀº »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ»
µû¶ó ¿òÁ÷ÀÌ°Ô µÈ´Ù. ±× üÀÎÀÌ ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÏÁö ¸øÇÏ¸é ±×¸®°í ±× üÀο¡
µû¸¥ À̼ÛÀÌ ³¡³ª¸é, ÆÐŶÀº ÇöÁ¦ üÀÎÀÇ ´ÙÀ½ ±ÔÄ¢À¸·Î µ¹¾Æ¿Â´Ù.
±×¸²À» º¸ÀÚ. µÎ°³ÀÇ Ã¼ÀÎÀÌ ÀÖ°í ±×°ÍÀÌ ÀÔ·Â
°ú Å×½ºÆ®
¶ó´Â »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀÌ
¶ó°í °¡Á¤ÇÏÀÚ.
`INPUT' `test'
---------------------------- ----------------------------
| Rule1: -p ICMP -j DROP | | Rule1: -s 192.168.1.1 |
|--------------------------| |--------------------------|
| Rule2: -p TCP -j test | | Rule2: -d 192.168.1.1 |
|--------------------------| ----------------------------
| Rule3: -p UDP -j DROP |
----------------------------
192.168.1.1 ·ÎºÎÅÍ ¿Í¼ 1.2.3.4 ·Î ÇâÇÏ´Â TCP ÆÐŶÀÌ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ÀÌ°ÍÀº
ÀÔ·Â
üÀÎÀ¸·Î µé¾î¿Â´Ù. Rule1 À» °Ë»çÇÑ´Ù. ¸ÂÁö ¾ÊÀ½. Rule2 ¸ÂÀ½. ±×°ÍÀÇ Å¸°Ù
Àº Å×½ºÆ®
, °í·Î ´ÙÀ½ °Ë»çÇÒ ±ÔÄ¢Àº Å×½ºÆ®
ÀÇ ½ÃÀÛÀÌ´Ù. Å×½ºÆ®
ÀÇ Rule1 ÀÌ ¸Â´Ù.
±×·¯³ª ÀÌ°ÍÀÌ Å¸°ÙÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ´ÙÀ½ ±ÔÄ¢ÀÌ °Ë»çµÈ´Ù. Rule 2.
¸ÂÁö ¾Ê´Ù. ±× üÀÎÀÇ ³¡¿¡ µµ´ÞÇß´Ù. ´Ù½Ã ÀԷ üÀÎÀ¸·Î µ¹¾Æ°¡¼ Rule3 À» °Ë»ç
ÇÑ´Ù. ±×°Íµµ ¸ÂÁö ¾Ê´Ù.
¿©±â¼ ÆÐŶÀÇ À̵¿°æ·Î¸¦ ±×¸²À¸·Î ³ªÅ¸³Â´Ù.
v __________________________
`INPUT' | / `test' v
------------------------|--/ -----------------------|----
| Rule1 | /| | Rule1 | |
|-----------------------|/-| |----------------------|---|
| Rule2 / | | Rule2 | |
|--------------------------| -----------------------v----
| Rule3 /--+___________________________/
------------------------|---
v
»ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼Àο¡¼ ´ë¸¦ »ç¿ëÀÚ ÁöÁ¤ÀÇ Ã¼ÀÎÀ¸·Î °¥¼ö ÀÖ´Ù. (±×·¯³ª ·çÇÁ
¸¦ µ¹¼ö´Â ¾ø´Ù. ·çÇÁ¸¦ ¹ß°ßÇÏ°Ô µÇ¸é ÆÐŶÀº DROP µÈ´Ù.)
iptables·ÎÀÇ È®Àå : »õ·Î¿î Ÿ°Ù
Ÿ°ÙÀÇ ´Ù¸¥ ÇüÅ´ ȮÀåÀÌ´Ù. Ÿ°Ù È®ÀåÀº Ä¿³Î ¸ðµâ·Î ±¸¼ºµÈ´Ù. ±×¸®°í iptables
¿¡ ´ëÇÑ ¼±ÅÃÀû È®ÀåÀº »õ·Î¿î ¸í·ÉÇàÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. ±âº»ÀûÀ¸·Î ³ÝÇÊÅÍ ¹èÆ÷¿¡
Æ÷ÇÔµÈ ¸î¸îÀÇ È®ÀåÀº ´ÙÀ½°ú °°´Ù.
- LOG
-
ÀÏÄ¡ÇÏ´Â ÆÐŶÀÇ Ä¿³Î ·Î±×¸¦ Á¦°øÇÑ´Ù. ÀÌ°ÍÀº ºÎ°¡ÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù.
- --log-level
-
·¹º§ ¼ýÀÚ³ª À̸§ÀÌ µû¶ó¿Â´Ù. À¯È¿ÇÑ À̸§Àº (»óȲ¿¡ µû¶ó ´Ù¸£´Ù) 'debug'
'info', 'notice', 'warning', 'err', 'crit', 'alert', 'emerg' ÀÌ°í ÀÌ°Í
Àº °¢°¢ ¼ýÀÚ 7 ¿¡¼ 0 ¿¡ ´ëÀÀÇÑ´Ù. ÀÌ·± ·¹º§¿¡ ´ëÇÑ ¼³¸íÀº syslog.conf
ÀÇ man ÆäÀÌÁö¸¦ º¸¶ó.
- --log-prefix
-
14ÀÚ ±îÁöÀÇ ¹®ÀåÀÌ µû¶ó¿Â´Ù. ÀÌ ¸Þ¼¼Áö´Â ·Î±× ¸Þ¼¼ÁöÀÇ ½ÃÀۺκÐÀ¸·Î
º¸³»Á®¼ È®Àο¡ »ç¿ëµÉ ¼ö ÀÖ´Ù.
ÀÌ ¸ðµâÀº 'limit' Ÿ°Ù ´ÙÀ½¿¡ »ç¿ëÇÏ¸é °¡Àå È¿°úÀûÀÌ´Ù. ±×·¡¼ ·Î±×°¡ ³Ñ
Áö³ªÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖ´Ù.
- REJECT
-
ÀÌ ¸ðµâÀº 'DROP'°ú °°Àº È¿°ú¸¦ ³ªÅ¸³½´Ù. ´Ù¸¸, 'port unreachable' À̶ó´Â
¿¡·¯ ¸Þ¼¼Áö¸¦ ICMP ·Î º¸³½´Ù. ÁÖÀÇÇÒ °ÍÀº ICMP ¿¡·¯ ¸Þ¼¼Áö´Â ´ÙÀ½ÀÇ °æ¿ì
º¸³» ÁöÁö ¾Ê´Â´Ù ( RFC 1122 ¸¦ º¸¶ó) :
- °Ë»çµÈ ÆÐŶÀÌ ICMP ¿¡·¯¸Þ¼¼ÁöÀ̰ųª³ª ¾Ë¼ö ¾ø´Â ICMP ÇüÅÂÀÎ °æ¿ì
- °Ë»çµÈ ÆÐŶÀÌ Çì´õ°¡ ¾ø´Â ºÐÀýÀÎ °æ¿ì
- ³Ê¹« ¸¹Àº ICMP ¿¡·¯ ¸Þ¼¼Áö¸¦ ±× ¸ñÀûÁö·Î º¸³½ °æ¿ì.
REJECT ´Â '--reject-with'¶ó´Â ¿É¼ÇÀ» °¡Áö´Âµ¥ ÀÌ°ÍÀº »ç¿ëÇÒ ÀÀ´ä ÆÐŶÀ»
º¯°æÇÑ´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¸Þ´º¾ó ÆäÀÌÁö¸¦ º¸¶ó.
Ưº°ÇÑ ¹Ì¸® ¸¸µé¾îÁø Ÿ°Ù
µÎ°³ÀÇ ¹Ì¸® ¸¸µé¾îÁø Ÿ°ÙÀÌ ÀÖ´Ù : RETURN
, QUEUE
RETURN
Àº ÇÑ Ã¼ÀÎÀÇ ³¡À¸·Î º¸³»Áö´Â °Í°ú °°Àº È¿°ú°¡ ÀÖ´Ù. : ¹Ì¸® ¸¸µé¾îÁø ü
ÀÎÀÇ °æ¿ì ±× üÀÎÀÇ Á¤Ã¥Àº ½ÇÇàÀÌ´Ù. »ç¿ëÀÚ Á¤ÀÇ Ã¼ÀÎÀÇ °æ¿ì ÀÌ Ã¼ÀÎÀ¸·Î Á¡ÇÁ
ÇÏ´Â ±ÔÄ¢ÀÇ ¹Ù·Î ´ÙÀ½ÀÎ ÀÌÀü üÀÎÀ¸·Î À̵¿ÇÑ´Ù.
QUEUE
Àº Ưº°ÇÑ Å¸°ÙÀ¸·Î, »ç¿ëÀÚ°ø°£ÀÇ ÀÛ¾÷À» À§ÇØ ÆÐŶÀ» ´ë±âÇϵµ·Ï ÇÑ´Ù. ÆÐŶ
À» À§Çؼ ´ë±âÇÏ°íÀÖ´Â °ÍÀÌ ¾ø´Ù¸é(Áï, ÀÌ ÆÐŶÀ» ´Ù·ê ÇÁ·Î±×·¥ÀÌ ¾ÆÁ÷ ¾º¾îÁ®
ÀÖÁö ¾Ê´Ù¸é) ÆÐŶÀº DROP µÉ °ÍÀÌ´Ù.
iptables
ÀÇ À¯¿ëÇÑ ±â´ÉÁÖ Çϳª´Â ¿©·¯ °ü°è°¡ ÀÖ´Â ±ÔÄ¢À» ÇϳªÀÇ Ã¼ÀμÓÀ¸·Î
±×·ìÈ ÇÏ´Â °ÍÀÌ´Ù. üÀÎÀÇ À̸§Àº ¾î¶² °ÍÀ» »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ¹Ì¸® ¸¸µé¾î
Áø üÀΰúÀÇ È¥µ¿À» ¸·±â À§ÇÏ¿© ¼Ò¹®ÀÚ¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù. üÀÎÀÇ À̸§Àº 16
ÀÚ ±îÁö °¡´ÉÇÏ´Ù.
»õ¿À·é üÀÎ »ý¼º
»õ·Î¿î üÀÎÀ» ¸¸µé¾î º¸ÀÚ. ³ª´Â ¸Å¿ì »ó»ó·ÂÀÌ ÁÁÀº »ç¶÷À̹ǷΠÀÌ°ÍÀ» Å×½ºÆ®
¶ó°í ºÎ¸£±â·Î ÇÏ°Ú´Ù. '-N' ¶Ç´Â '--new-chain' ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
# iptables -N test
#
´Ü¼øÇÏ´Ù. ÀÌÁ¦ ÀÌ Ã¼Àο¡ »ó¼¼ÇÑ ±ÔÄ¢À» Àû¿ëÇÒ ¼ö ÀÖ´Ù.
üÀÎ Á¦°Å
üÀÎÀ» Á¦°ÅÇÏ´Â °Íµµ ´Ü¼øÇϤ§. '-X' ³ª '--delete-chain' À» »ç¿ëÇÑ´Ù.
# iptables -X test
#
üÀÎÀ» Á¦°Å Çϴµ¥´Â ¸î°¡Áö Á¦ÇÑÀÌ ÀÖ´Ù. ÀÌ°ÍÀº ºñ¾îÀÖ¾î¾ß ÇÑ´Ù. (¾Æ·¡ÀÇ
üÀÎ ºñ¿ì±â¸¦ º¸¶ó) ±×¸®°í ±×°ÍÀº ´Ù¸¥ ¾î¶² ±ÔÄ¢ÀÇ Å¸°Ùµµ ¾Æ´Ï¾î¾ß ÇÑ´Ù.
¹Ì¸® ¸¸µé¾îÁø ¼¼°³ÀÇ Ã¼ÀÎÀº Á¦°ÅÇÒ ¼ö ¾ø´Ù.
üÀÎÀÇ À̸§À» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀº Á¦°ÅµÈ´Ù.
üÀÎ ºñ¿ì±â
ÇϳªÀÇ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢À» ºñ¿ì´Â °£´ÜÇÑ ¹æ¹ýÀÌ ÀÖÀ¸´Ï, '-F' ('--flush')
¸í·ÉÀÌ´Ù.
# iptables -F forward
#
üÀÎÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç üÀÎÀÇ ±ÔÄ¢ÀÌ Áö¿öÁø´Ù.
üÀÎ ±ÔÄ¢ ³ª¿Çϱâ
ÇÑ Ã¼ÀÎÀÇ ¸ðµç ±ÔÄ¢Àº '-L' ¸í·ÉÀ¸·Î ³ª¿ÇÒ ¼ö ÀÖ´Ù.
°¢ »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀ» ³ª¿Çß´ø 'refcnt' ´Â ±× üÀÎÀ» ±×µéÀÇ Å¸°ÙÀ¸·ÎÇÏ
´Â ±ÔÄ¢µéÀÇ ¹øÈ£ÀÌ´Ù. üÀÎÀÌ Á¦°ÅµÇ±â À§Çؼ´Â ÀÌ°ÍÀÌ '0' À¸·Î µÇ¾î¾ß ÇÑ´Ù.
(±×¸®°í ±× üÀÎÀº ºñ¾î¾ß ÇÑ´Ù)
üÀÎÀÇ À̸§ÀÌ »ý·«µÇ¸é ºñ¾îÀÖ´Â °ÍÀ» Æ÷ÇÔÇÑ ¸ðµç üÀÎÀÌ ³ª¿µÈ´Ù.
'-L' ¸í·É¿¡ µû¸£´Â ¿É¼ÇÀº ¼¼°³°¡ ÀÖ´Ù. '-n' (numeric) ¿É¼ÇÀº iptables
°¡
¿©·¯ºÐÀÌ DNS ¿ä±¸¸¦ ÇÊÅ͸µ ¾Æ¿ôÇÑ °æ¿ì³ª DNS°¡ ÀûÀýÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é
¿À·£ ½Ã°£ÀÌ °É¸®´Â, IP ÁÖ¼Ò¸¦ ã´Â °ÍÀ» ¿¹¹æÇÏ´Â ¾ÆÁÖ À¯¿ëÇÑ ¿É¼ÇÀÌ´Ù. ÀÌ°Í
Àº TCP¿Í UDP Æ÷Æ®°¡ À̸§ÀÌ ¾Æ´Ñ ¼ýÀÚ·Î Ãâ·ÂµÇµµ·Ï Çϱ⵵ ÇÑ´Ù.
'-v' ¿É¼ÇÀº ±ÔÄ¢ÀÇ ÀÚ¼¼ÇÑ Á¤º¸(ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÅÍ, TOS ºñ±³, ÀÎÅÍÆäÀ̼¿Í
°°Àº)¸¦ ³ªÅ¸³½´Ù.
ÆÐŶ°ú ¹ÙÀÌÆ® Ä«¿îÆ®´Â 'K'(1000), 'M'(1,000,000), 'G'(1,000,000,000) ¿Í °°Àº
Á¢¹Ì¾î¿Í ÇÔ²² ³ªÅ¸³´Ù. '-x' (È®Àå ¼ö) Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¸é ¾ó¸¶³ª Å« ¼ýÀÚµç Àü
ü ¼ýÀÚ°¡ ³ªÅ¸³´Ù.
Ä«¿îÆ® ¸®¼ÂÆ® ('0'À¸·Î ¸¸µé±â)
ÀÌ°ÍÀº Ä«¿îÆ®¸¦ ¸®¼ÂÇϴµ¥ À¯¿ëÇÏ´Ù. ÀÌ°ÍÀº '-Z' ('--zero') ¿É¼ÇÀ¸·Î °¡´ÉÇÏ´Ù.
ÀÌ°ÍÀÇ ¹®Á¦Á¡Àº ¸®¼ÂÇϱâ Á÷ÀüÀÇ Ä«¿îÆ® °ªÀ» ¾ËÇÊ¿ä°¡ ÀÖÀ» ¶§°¡ °¡²û ÀÖ´Ù´Â °Í
ÀÌ´Ù. ÀÌ·¯ÇÑ °æ¿ìÀÇ ¿¹·Î, ¾î¶² ÆÐŶÀÌ '-L' °ú '-Z' ¸í·É »çÀÌ¿¡ Áö³ª°¥ ¼ö ÀÖ´Ù.
ÀÌ·±ÀÌÀ¯·Î Ä«¿îÆ®¸¦ Àд °Í°ú µ¿½Ã¿¡ ¸®¼ÂÇϱâÀ§Çؼ '-L' °ú '-Z' ¸í·ÉÀ» °°ÀÌ
»ç¿ëÇÒ ¼ö ÀÖ´Ù.
Á¤Ã¥ ¼³Á¤
¿ì¸®°¡ ÀÌÀü üÀÎÀ» ÆÐŶÀÌ ¾î¶»°Ô Áö³ª°¡´Â°¡¸¦ ÀdzíÇÒ ¶§, ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ
³¡¿¡ ÆÐŶÀÌ ´Ù´Ù·¶À»¶§ ¹«½¼ ÀÏÀÌ ÀϾ °ÍÀΰ¡¸¦ ¼³¸íÇÏ¿´´Ù. ÀÌ °æ¿ì üÀÎÀÇ
Á¤Ã¥ÀÌ ±× ÆÐŶÀÇ ¿î¸íÀ» °áÁ¤ÇÑ´Ù. ¹Ì¸® ¸¸µé¾îÁø üÀÎ(ÀÔ·Â
, Ãâ·Â
, Æ÷¿öµå
)¸¸ÀÌ
Á¤Ã¥À» °¡Áö´Âµ¥, ÀÌ°ÍÀº »ç¿ëÀÚ Á¤ÀÇÀÇ Ã¼ÀÎÀÇ ³¡¿¡ ´Ù´Ù¸¥ ÆÐŶÀÇ À̵¿Àº ÀÌÀü
üÀο¡¼ ¿ä¾àµÇ¾îÁö±â ¶§¹®ÀÌ´Ù.
Á¤Ã¥Àº ACCEPT
¶Ç´Â DROP
ÀÌ µÉ¼ö ÀÖ´Ù.
ipchains¿Í ipfwadmÀ» »ç¿ëÇϱâ
¹èÆ÷µÇ´Â ³ÝÇÊÅÍ¿¡´Â ipchains.o ¿Í ipfwadm.o ¶ó´Â ¸ðµâÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» ¿©·¯
ºÐÀÇ Ä¿³Î¿¡ Æ÷ÇÔ½ÃÅ°¸é ÀÌÀü°ú ¶È °°ÀÌ ipchains ³ª ipfwadmÀ» »ç¿ëÇÒ ¼ö ÀÖ
´Ù. ( ÁÖÀÇ : À̵éÀº iptables.o, ip_conntrack.o, ip_nat.o¿Í ȣȯ¼ºÀÌ ¾ø´Ù)
ÀÌ°ÍÀº ¾ÆÁ÷ Çѵ¿¾ÈÀº Áö¿øµÉ °ÍÀÌ´Ù. À̵éÀ» ¿ÏÀüÈ÷ ´ëÄ¡ÇÏ´Â ¾ÈÁ¤ÆÇÀÌ ³ª¿À
´Âµ¥ ±îÁö´Â 2 * [´ëÄ¡ÇÒ °ÍÀ̶ó´Â ¹ßÇ¥ - ù¹ø° ¾ÈÁ¤ÆÇ] À̶ó´Â °ø½ÄÀÌ Àû
¿ëµÈ´Ù°í »ý°¢ÇÑ´Ù.
Áï, ipfwadmÀÇ °æÀ§ ÀÌ°ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [October 1997 (2.1.102 release) - March 1995 (ipfwadm 1.0)]
+ January 1999 (2.2.0 release)
= November 2003.
±×¸®°í ipchainsÀÇ °æ¿ì ÀÌ°ÍÀÇ Áö¿øÀÌ Á¾·áµÉ ¶§´Â :
2 * [August 1999 (2.3.15 release) - October 1997 (2.2.0 release)]
+ January 2000 (2.3.0 release?)
= September 2003.
±×·¯¹Ç·Î, 2004³â ±îÁö´Â °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾øÀ» °ÍÀÌ´Ù.
- ù°·Î, ¹Ì¸® ¸¸µé¾îÁø üÀÎÀÇ À̸§µéÀÌ ¼Ò¹®ÀÚ¿¡¼ ´ë¹®ÀÚ·Î ¹Ù²î¾ú´Âµ¥ ÀÌ°ÍÀº
ÀԷ°ú Ãâ·Â üÀÎÀº ÀÌ°Ô Áö¿ª ³ÝÀ¸·Î ÇâÇÏ´Â ±×¸®°í Áö¿ª¿¡¼ »ý¼ºµÈ ÆÐŶ¸¸À»
Àû¿ëÇϱ⠶§¹®ÀÌ´Ù. ÀÌ°ÍÀº ¸ðµç µé¾î¿À´Â°Í°ú ³ª°¡´Â ÆÐŶÀ» ´Ù·é´Ù.
- '-i' Áö½ÃÀÚ´Â µé¾î¿À´Â ÀÎÅÍÆäÀ̽º¸¸ ÀǹÌÇÏ°í ÀÔ·Â °ú Æ÷¿öµå üÀÎ
¿¡¼¸¸ ÀÛµ¿ÇÑ´Ù. Æ÷¿öµå ³ª Ãâ·Â üÀο¡ »ç¿ëµÇ¾ú´ø '-i' ´Â '-o'·Î
¹Ù²ã¾ß ÇÑ´Ù.
- ÀÌÁ¦ TCP ¿Í UDP Æ÷Æ®´Â --source-port ¶Ç´Â --spotr (¶Ç´Â --destination-port
/ --dport) ¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¾îÁ®¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ°í '-p tcp' ¶Ç´Â '-p udp'
¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¾îÁ®¾ß ÇÑ´Ù. ±×·¯¸é ÀÌ°ÍÀº TCP ¶Ç´Â UDP È®ÀåÀ» °¢°¢ ÀûÀç
ÇÒ °ÍÀÌ´Ù. (ipt_tcp ¿Í ipt_udp ¸ðµâÀ» ¼öµ¿À¸·Î ÀûÁ¦ ÇϱâÀ§Çؼ Æ÷ÇÔ ½Ãų
¼öµµ ÀÖ´Ù.)
- TCP -y Áö½ÃÀÚ´Â --synÀ¸·Î ¹Ù²î¾ú°í `-p tcp'´ÙÀ½¿¡ ¿Í¾ß ÇÑ´Ù.
- DENY target ´Â DROP À¸·Î ¹Ù²î¾ú´Ù.
- Zeroing single chains while listing them works.
- ¸¸µé¾îÁø üÀÎÀ» '0'À¸·ÎÇϸé Á¤Ã¥ Ä«¿îÅ͵µ Áö¿öÁø´Ù.
- üÀÎÀ» ³ª¿ÇÏ´Â °ÍÀº Ä«¿îÆ®ÀÇ ½º³Ü¼¦À» Á¦°øÇÑ´Ù.
- REJECT ¿Í LOG ´Â È®ÀåµÈ targetÀÌ´Ù. Áï, À̰͵éÀº µ¶¸³µÈ Ä¿³Î ¸ðµâÀÌ´Ù´Â
ÀǹÌÀÌ´Ù.
- üÀÎ À̸§Àº 16ÀÚ ±îÁö °¡´ÉÇÏ´Ù.
- MASQ ¿Í REDIRECT ´Â ´õÀÌ»ó target ÀÌ ¾Æ´Ï´Ù. iptablesÀº ÆÐŶÀ» º¯È
½ÃÅ°Áö ¾Ê´Â´Ù. ÀÌ°ÍÀ» À§Çؼ NAT¶ó´Â ÇϺα¸Á¶°¡ ÀÖ´Ù. ÀÌ°ÍÀº ipnatctl
ÇÏ¿ìµÎ¸¦ Àо¾Æ¶ó.
- ±× ¿ÜÀÇ °ÍµéÀº Àؾî¸Ô¾ú´Ù.