¾î¶² Á¢¼ÓÀ» ¹Ù²Ü°ÍÀΰ¡ ±×¸®°í ¾î¶»°Ô ¹Ù²Ü°ÍÀΰ¡¸¦ Ä¿³Î¿¡°Ô ¾Ë·ÁÁÖ±â À§ÇÏ¿©
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 Å×À̺íÀÇ ³»¿ëÀº ÀÌÈÄ ÀÌ Á¢¼ÓÀ¸·ÎºÎÅÍ ¿À´Â ¸ðµç ÆÐŶ¿¡ Àû¿ëµË´Ï´Ù.
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
´Â ¿¡·¯¸¦ ³¾ °ÍÀÔ´Ï´Ù.
À§¿¡¼ ½ÃÀÛÁ¡°ú ¸ñÀûÁöÀÇ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù°í À̾߱â Çß½À´Ï´Ù. ½ÃÀÛÁ¡ ÁÖ¼ÒÀÇ ¿É¼ÇÀ» »ç¿ëÇß´Ù¸é ¸ðµç ½ÃÀÛÁ¡ ÁÖ¼Ò°¡ Á¶ÀÛ µÉ°ÍÀÌ°í ¸ñÀûÁö ÁÖ¼ÒÀÇ ¿É¼ÇÀ» »ç¿ëÇß´Ù¸é ¸ðµç ¸ñÀûÁö ÁÖ¼Ò°¡ Á¶ÀÛµÉ °ÍÀÔ´Ï´Ù.
TCP ³ª UDP ó·³ ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù ('-p', '--protocol'). ÁöÁ¤ÇÑ ÇÁ·ÎÅäÄÝÀÇ ÆÐŶ¸¸ ±ÔÄ¢°ú ÀÏÄ¡ÇÏ´ÂÁö °Ë»çÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÏ´Â ÁÖ ÀÌÀ¯´Â tcp³ª udp¸¦ ÁöÁ¤Çϸé Ãß°¡ÀÇ ¿É¼ÇÀÌ °¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù. ±× Ãß°¡ÀÇ ¿É¼ÇÀº '--source-port'¿Í '--destination-port' ÀÔ´Ï´Ù( ÁÙÀÓ¸». '--sport', '--dport').
ÀÌ·¯ÇÑ ¿É¼ÇÀº ¾î¶² ½ÃÀÛÁ¡À̳ª ¸ñÀûÁö Æ÷Æ®ÀÇ °Í¸¸À» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. ÀÌ°ÍÀº À¥ ¿ä±¸µé(TCP 80 À̳ª 8080 Æ÷Æ®)¸¦ ´Ù¸¥°÷À¸·Î ¹æÇâÀ» ¹Ù²Ù°í ´Ù¸¥ÆÐŶÀº ±×³É µÎ·Á°í ÇÒ¶§ À¯¿ëÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ¿É¼ÇÀº '-p' ¿É¼ÇµÚ¿¡ µû¶ó¿Í¾ß ÇÕ´Ï´Ù. (ÀÌ°ÍÀº ±× ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ È®Àå ¶óÀ̺귯¸®¸¦ ·ÎµùÇÏ´Â ºÎÀÛ¿ëµµ ÀÖ½À´Ï´Ù.) /etc/services ¿¡¼ ¾òÀ» ¼ö ÀÖ´Â À̸§À̳ª Æ÷Æ® ¹øÈ£¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÆÐŶÀ» ¼±ÅÃÇÏ´Â ¿©·¯ µî±ÞÀÇ ¹æ¹ýµéÀº °íÅ뽺·¯¿î ¼¼ºÎ»çÇ׵鿡 ´ëÇÑ ¼³¸íÀÌ
³ª¿ÍÀÖ´Â ¸Þ´º¾ó ÆäÀÌÁö¸¦ Âü°íÇϼ¼¿ä. (man iptables
).