´ÙÀ½ ÀÌÀü Â÷·Ê

5. NAT Á¶ÀýÇϱâ

¾î¶² Á¢¼ÓÀ» ¹Ù²Ü°ÍÀΰ¡ ±×¸®°í ¾î¶»°Ô ¹Ù²Ü°ÍÀΰ¡¸¦ Ä¿³Î¿¡°Ô ¾Ë·ÁÁÖ±â À§ÇÏ¿© NAT ±ÔÄ¢µéÀ» ¸¸µé ÇÊ¿ä°¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô Çϱâ À§Çؼ­, ¿ì¸®´Â ¾ÆÁÖ ´ÙÀç´Ù´ÉÇÑ iptables¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀº '-t nat' À̶ó´Â Ưº°ÇÑ ¿É¼ÇÀ» »ç¿ëÇÏ¿© NAT Å×À̺íÀ» º¯°æÇØ ÁÜÀ¸·Î °¡´ÉÇÕ´Ï´Ù.

NAT Å×ÀÌºí¿¡´Â ¼¼°³ÀÇ 'üÀÎ'À̶ó ºÒ¸®´Â ±ÔÄ¢µéÀÌ ÀÖ½À´Ï´Ù. °¢ ±ÔÄ¢Àº ÀÏÄ¡ÇÏ´Â °ÍÀÌ ³ª¿Ã¶§±îÁö ¼ø¼­´ë·Î ½ÃÇèµË´Ï´Ù. ¼¼°³ÀÇ Ã¼ÀÎÀº PREROUTING( ¸ñÀûÁö NATÀÇ °Ü¿ì ÆÐŶÀÌ Ã³À½À¸·Î µé¾î¿Ã¶§), POSTROUTING ( ½ÃÀÛÁ¡ NATÀÇ °æ¿ì ÆÐŶÀÌ ¶°³ª°¥¶§), ±×¸®°í Ãâ·Â ( Áö¿ª ³×Æ®¿öÅ©¿¡¼­ »ý¼ºµÈ ¸ñÀûÁö NAT ÆÐŶ) ÀÔ´Ï´Ù.

¾Æ·¡ ±×¸²Àº ÀÌ·¯ÇÑ °ü°è¸¦ Àß ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Routing ]----------------->POSTROUTING----->
     \D-NAT/     [Decision]                    \S-NAT/
                     |                            ^
                     |                          __|__
                     |                         /     \
                     |                        | OUTPUT|
                     |                         \D-NAT/
                     |                            ^
                     |                            |
                     --------> Local Process ------

ÆÐŶÀÌ Áö³ª°¥¶§ À§ÀÇ °¢ ´Ü°è¿¡¼­ ¾î¶°ÇÑ Á¢¼Ó°ú ¿¬°üµÇ¾î ÀÖ´ÂÁö¸¦ »ìÆ캾´Ï´Ù. »õ·Î¿î Á¢¼ÓÀ̶ó¸é ÀÌ°ÍÀÌ Àû¿ëµÇ´Â üÀÎÀÌ ¹«¾úÀÎÁö¸¦ ¾Ë¾Æº¸°í ÀÌ°ÍÀ» ¾î¶»°Ô ÇÒ °ÍÀÎÁö¸¦ ¾Ë¾Æº¸±â À§ÇÏ¿© NAT Å×À̺íÀ» »ìÆ캾´Ï´Ù. NAT Å×À̺íÀÇ ³»¿ëÀº ÀÌÈÄ ÀÌ Á¢¼ÓÀ¸·ÎºÎÅÍ ¿À´Â ¸ðµç ÆÐŶ¿¡ Àû¿ëµË´Ï´Ù.

5.1 iptables »ç¿ëÇÒ¶§ÀÇ ´Ü¼øÇÑ ¼±ÅÃ

iptables Àº ¾Æ·¡¿¡ ³ª¿­µÈ ¸î°³ÀÇ ±âº» ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù. ¸ðµç µÎÁÙÀÇ ¿É¼ÇÀº iptables°¡ ´Ù¸¥ °¡´ÉÇÑ ¿É¼Ç°ú ±¸ºÐÇÒ ¼ö ÀÖ´Ù¸é ÁÙ¿© ¾µ¼ö ÀÖ½À´Ï´Ù.

°¡Àå Áß¿äÇÑ ¿É¼ÇÀº ¸ðµç NAT ÀÛµ¿¿¡ »ç¿ëµÇ´Â NAT Å×À̺íÀ» ÁöĪÇÏ´Â '-t nat' ¿É¼ÇÀÔ´Ï´Ù. µÎ¹ø°·Î Áß¿äÇÑ ¿É¼ÇÀº »õ·Î¿î ±ÔÄ¢À» ±× üÀÎÀÇ ³¡¿¡ Ãß°¡ÇÏ´Â '-A' ¿É¼ÇÀÔ´Ï´Ù.(¿¹. '-A POSTROUTING'). '-I'¿É¼ÇÀº üÀÎÀÇ Ã³À½¿¡ Ãß°¡ÇÕ´Ï´Ù (¿¹. '-I PREROUTING').

NAT¸¦ ÀÌ¿ëÇÒ ÆÐŶÀÇ ½ÃÀÛÁ¡À̳ª ('-s', '--source') ¸ñÀûÁö ('-d', '--destination')À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇµÚ¿¡´Â ÇϳªÀÇ IP ÁÖ¼Ò(¿¹. 192.168.1.1)³ª À̸§ (¿¹. www.kernelnotes.org)À̳ª ³×Æ®¿öÅ© ÁÖ¼Ò (¿¹. 192.168.1.0/24 ¶Ç´Â 192.168..0/255.255.255.0) °¡ µû¶ó¿É´Ï´Ù.

ÀÏÄ¡ÇÏ´Â ÀÎÅÍÆäÀ̼­¸¦ ÁöÁ¤ÇÒ ¼öµµ Àִµ¥ µé¾î¿À´Â °Í('-i', '--in-interface')°ú ³ª°¡´Â °Í('-o', '--out-interface')¸¦ µû·Î ÁöÁ¤ÇÕ´Ï´Ù. ±×·¯³ª ¾î¶² üÀο¡ ÀÌ ±ÔÄ¢À» Àû¿ëÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. PREROUTING ¿¡´Â µé¾î¿À´Â ÀÎÅÍÆäÀ̼­¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ°í POSTROUTING (±×¸®°í Ãâ·Â) ¿¡´Â ³ª°¡´Â ÀÎÅÍÆäÀ̼­¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀ» À߸ø ¼±ÅÃÇϸé iptables´Â ¿¡·¯¸¦ ³¾ °ÍÀÔ´Ï´Ù.

5.2 ¾î¶°ÇÑ ÆÐŶÀ» Á¶ÀÛÇÒ °ÍÀÎÁö, ¼¶¼¼ÇÑ ¼±ÅÃ

À§¿¡¼­ ½ÃÀÛÁ¡°ú ¸ñÀûÁöÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù°í À̾߱â Çß½À´Ï´Ù. ½ÃÀÛÁ¡ ÁÖ¼ÒÀÇ ¿É¼ÇÀ» »ç¿ëÇß´Ù¸é ¸ðµç ½ÃÀÛÁ¡ ÁÖ¼Ò°¡ Á¶ÀÛ µÉ°ÍÀÌ°í ¸ñÀûÁö ÁÖ¼ÒÀÇ ¿É¼ÇÀ» »ç¿ëÇß´Ù¸é ¸ðµç ¸ñÀûÁö ÁÖ¼Ò°¡ Á¶ÀÛµÉ °ÍÀÔ´Ï´Ù.

TCP ³ª UDP ó·³ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù ('-p', '--protocol'). ÁöÁ¤ÇÑ ÇÁ·ÎÅäÄÝÀÇ ÆÐŶ¸¸ ±ÔÄ¢°ú ÀÏÄ¡ÇÏ´ÂÁö °Ë»çÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÏ´Â ÁÖ ÀÌÀ¯´Â tcp³ª udp¸¦ ÁöÁ¤Çϸé Ãß°¡ÀÇ ¿É¼ÇÀÌ °¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù. ±× Ãß°¡ÀÇ ¿É¼ÇÀº '--source-port'¿Í '--destination-port' ÀÔ´Ï´Ù( ÁÙÀÓ¸». '--sport', '--dport').

ÀÌ·¯ÇÑ ¿É¼ÇÀº ¾î¶² ½ÃÀÛÁ¡À̳ª ¸ñÀûÁö Æ÷Æ®ÀÇ °Í¸¸À» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. ÀÌ°ÍÀº À¥ ¿ä±¸µé(TCP 80 À̳ª 8080 Æ÷Æ®)¸¦ ´Ù¸¥°÷À¸·Î ¹æÇâÀ» ¹Ù²Ù°í ´Ù¸¥ÆÐŶÀº ±×³É µÎ·Á°í ÇÒ¶§ À¯¿ëÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ¿É¼ÇÀº '-p' ¿É¼ÇµÚ¿¡ µû¶ó¿Í¾ß ÇÕ´Ï´Ù. (ÀÌ°ÍÀº ±× ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ È®Àå ¶óÀ̺귯¸®¸¦ ·ÎµùÇÏ´Â ºÎÀÛ¿ëµµ ÀÖ½À´Ï´Ù.) /etc/services ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Â À̸§À̳ª Æ÷Æ® ¹øÈ£¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÆÐŶÀ» ¼±ÅÃÇÏ´Â ¿©·¯ µî±ÞÀÇ ¹æ¹ýµéÀº °íÅ뽺·¯¿î ¼¼ºÎ»çÇ׵鿡 ´ëÇÑ ¼³¸íÀÌ ³ª¿ÍÀÖ´Â ¸Þ´º¾ó ÆäÀÌÁö¸¦ Âü°íÇϼ¼¿ä. (man iptables).


´ÙÀ½ ÀÌÀü Â÷·Ê