Ä¿³Î 2.4¿¡¼­ NAT
(network address translation) ±¸Çö

- 2.2¿¡¼­ÀÇ IP masquerade ¹× port forwarding -

ÇÊÀÚ : ¹èö¼ö / ¸®´ª½º¿ùµå ¹ßÇàÀÎ

 

     

    Ä¿³Î 2.4¿¡¼­ IP °øÀ¯(ip masquerade), ¼­¹ö ºÎÇϺлê(port forwarding), Åõ¸í ÇÁ¶ô½Ã(redirection)¸¦ »ç¿ëÇÏ·Á¸é iptables ÇÁ·Î±×·¥À» »ç¿ëÇØ¾ß ÇÑ´Ù. ¹°·Ð Ä¿³Î ÂÊ ¼¼Æõµ ÇÊ¿äÇÏ´Ù. 2.2¿¡¼­´Â ipchains¿Í ipmasqadmÀ¸·Î ºÐ¸®µÇ¾î ÀÖ¾ú´Âµ¥ À̸¦ Çϳª·Î ÅëÇÕÇßÀ» »Ó ¾Æ´Ï¶ó »ç¿ë¹ýµµ ÈξÀ ½¬¿öÁ³´Ù. ¶ÇÇÑ È®À强À» °í·ÁÇؼ­ ¼³°èµÇ¾ú´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù.

    iptables´Â NAT ±â´É»Ó ¾Æ´Ï¶ó filtering ±â´Éµµ µé¾î ÀÖ´Ù. filteringÀº ÆÐŶÀ» °É·¯ ³»´Â Áï ¾ø¾Ö´Â(°ÅºÎÇÏ´Â) ±â´ÉÀ» ´ã´çÇϹǷΠÁÖ·Î ¹æÈ­º®À» ±¸ÃàÇϴµ¥ »ç¿ëÇÑ´Ù. NAT´Â ÆÐŶÀÇ ³»¿ë Áï ÁÖ¼Ò, Æ÷Æ®¹øÈ£ µîÀ» º¯°æÇÑ´Ù. ÇÑ °³ÀÇ IP ÁÖ¼Ò¸¦ ¿©·¯ ´ëÀÇ Çǽÿ¡¼­ °øÀ¯ÇÏ¿© ÀÎÅͳÝÀ» »ç¿ëÇÏ´Â µ¥´Â NAT ±â´ÉÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.(2.2¿¡¼­ÀÇ ip masquerade) ÇÑ °³ÀÇ µµ¸ÞÀÎ ³×ÀÓ¿¡ ´ëÇØ ¿©·¯ ´ëÀÇ ¼­¹ö°¡ ¼­ºñ½º¸¦ Á¦°øÇÏ´Â ¼­¹ö ºÎÇϺл꿡µµ ¿ª½Ã NAT°¡ »ç¿ëµÈ´Ù.(2.2¿¡¼­ÀÇ port forwarding)

    ÀÌ ±Û¿¡¼­´Â Ä¿³Î 2.4¿¡¼­ IP °øÀ¯¿Í ¼­¹ö ºÎÇϺлêÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

 

I. Âü°íÀÚ·á

    ÀÌ ±ÛÀ» ¾²´Âµ¥ ¾Æ·¡ ÀڷḦ Âü°í ÇÏ¿´´Ù. iptables ÇÁ·Î±×·¥ °³¹ßÀº Netfilter ProjectÀÇ ÀϺÎÀÌ´Ù. Netfilter Project ÇÁ·ÎÁ§Æ®ÀÇ È¨ÆäÀÌÁö´Â http://netfilter.kernelnotes.org ÀÌ´Ù.

    1) Linux 2.4 NAT HOWTO (http://netfilter.kernelnotes.org/unreliable-guides/index.html)
    2) Linux 2.4 Packet Filtering HOWTO
        (http://netfilter.kernelnotes.org/unreliable-guides/index.html
    3) iptables man ÆäÀÌÁö

 

II. ÁغñÀÛ¾÷

    Ä¿³Î 2.4¿¡¼­ NAT¸¦ ±¸ÇöÇÏ·Á¸é Ä¿³Î¿¡ ÇØ´ç Äڵ带 ¿Ã¸®°í(¸ðµâ·Îµµ °¡´É) »ç¿ëÀÚ ÇÁ·Î±×·¥ (iptables)À» ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸ðµç ÀÛ¾÷Àº µ¥ºñ¾È 2.2(potato)¿¡¼­ Å×½ºÆ®ÇÏ¿´´Ù. Ä¿³ÎÀº 2.4.2¸¦ »ç¿ëÇß´Ù.

    1. iptables ÇÁ·Î±×·¥ ¼³Ä¡

      1) ÆÄÀÏ ´Ù¿î·Îµå

      iptablesÀÇ ÃֽŹöÀüÀº 1.2ÀÌ´Ù. Netfilter Project »çÀÌÆ®(http://netfilter.kernelnotes.org/ )¿¡¼­ ´Ù¿î¹Þ¾Æ ¼³Ä¡ÇÑ´Ù. À§ »çÀÌÆ®¿¡¼­ ¾Æ·¡ ÆÄÀÏÀ» ´Ù¿î ¹Þ´Â´Ù.

      -rwxr--r--    1 bae      root       151774 Feb 24 18:00 iptables-1.2.tar.bz2

      2) ¾ÐÃà ÇØÁ¦

      bunzip2 iptables-1.2.tar.bz2
      tar xvf iptables-1.2.tar

      iptables-1.2 µð·ºÅ丮°¡ ¸¸µé¾îÁö°í ±× ¾È¿¡ ¼Ò½º°¡ À§Ä¡ÇÑ´Ù.

      3) cd iptables-1.2

      4) 2.4 Ä¿³Î ¼Ò½º¸¦ /usr/src/linux¿¡ ¼³Ä¡ÇÑ´Ù.

      5) make

      ¡¤2.4 Ä¿³Î ¼Ò½º°¡ ´Ù¸¥ µð·ºÅ丮¿¡ ÀÖÀ¸¸é ¾Æ·¡ ¸í·ÉÀÌ ÇÊ¿äÇÏ´Ù.
        make KERNEL_DIR=<<Ä¿³Î µð·ºÅ丮¸í>>

      6) make install

      ½ÇÇàÆÄÀÏÀº /usr/local/sbin/iptables ÀÌ´Ù. ¶óÀ̺귯¸®µµ µ¿½Ã¿¡ ¼³Ä¡µÈ´Ù. ´Ù¸¥ °÷¿¡¼­ iptables ÆÄÀϸ¸ º¹»çÇؼ­´Â NAT¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¶óÀ̺귯¸®µµ °°ÀÌ ¼³Ä¡ÇØ¾ß ÇϹǷΠÄÄÆÄÀÏÇϰųª rpmÀ¸·Î ¼³Ä¡ÇØ¾ß ÇÑ´Ù.

    2. Ä¿³Î ÄÚµå ¿Ã¸®±â

    filteringÀ̳ª NAT¸¦ »ç¿ëÇÏ·Á¸é ÇÊÈ÷ Ä¿³Î¿¡ ÇØ´ç Äڵ尡 ¿Ã¶ó°¡¾ß ÇÑ´Ù. ¸ðµâ·Î ¿Ã¸®´Â ¹æ¹ý°ú ÄÄÆÄÀÏÇؼ­ Äڵ忡 Æ÷ÇÔ½ÃÅ°´Â ¹æ¹ýÀÌ ÀÖ´Ù.

    ¿©±â¼­´Â Ä¿³ÎÀ» ÄÄÆÄÀÏÇؼ­ Äڵ带 ¼³Ä¡ÇÏ´Â °æ¿ìÀÇ make menuconfig(make config, make xconfig) ¿¡¼­  ÇÊ¿äÇÑ ¼±ÅûçÇ×À» ¼³¸íÇÑ´Ù.(Ä¿³Î 2.4.2) NAT¿Í Á÷Á¢ °ü·ÃµÈ ¼±ÅûçÇ׸¸ ¼³¸íÇß´Ù. ³×Æ®¿öÅ©³ª ·£Ä«µå¿¡ °ü·ÃµÈ ºÎºÐÀº ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â°Ô ¼±ÅÃÇØ¾ß ÇÑ´Ù.

      1) ¸ÞÀÎ ¸Þ´ºÀÇ ¡°Networking options  ¡° ¿¡¼­ ¾Æ·¡ ºÎºÐÀ» ¼±ÅÃÇÑ´Ù.

      [*]Network packet filtering
      [*]Socket Filtering
      [*]Unix domain sockets
      [*]Unix domain sockets
      [*]TCP/IP networking

      IP: Netfilter Configuration  --->

      <*> Connection tracking (required for masq/NAT)
      <*> FTP protocol support
      <*> IP tables support (required for filtering/masq/NAT)

      ¾Æ·¡ Ç׸ñ Áß¿¡¼­ ÀϹÝÀûÀÎ IP °øÀ¯³ª ¼­¹öºÎÇϺлêÀ» ±¸ÇöÇÏ·Á¸é <*> Ç¥½Ã°¡ ÀÖ´Â Ç׸ñÀ» ¼±ÅÃÇÑ´Ù. ³ª¸ÓÁö´Â ÆÐŶ ÇÊÅ͸µÀ» »ç¿ëÇϰųª Ư¼öÇÑ NAT ±â´É ±¸Çö½Ã¸¸ ÇÊ¿äÇÏ´Ù.

            < >   limit match support
      < >   MAC address match support
      < >   netfilter MARK match support
      < >   Multiple port match support
      < >   TOS match support
      < >   Connection state match support
      < >   Unclean match support (EXPERIMENTAL)
      < >   Owner match support (EXPERIMENTAL)
      < >   Packet filtering
      <*>   Full NAT
      <*>   MASQUERADE target support : À¯µ¿ IP »ç¿ë½Ã ÇÊ¿äÇÏ´Ù.
      < >   REDIRECT target support     : Åõ¸íÇÁ¶ô½Ã »ç¿ë½Ã ÇÊ¿äÇÏ´Ù.
      < >   Packet mangling
      < >   LOG target support

      2) ¾Æ·¡ ¸Þ´º¸¦ ¼±ÅÃÇϸé NAT ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.

      "Networking options"¿¡¼­ "Fast switching (read help!)"

 

III. NAT¿¡ ´ëÇÑ ÀÌÇØ

    iptables¸¦ Á¤È®È÷ »ç¿ëÇÏ·Á¸é iptables¿¡¼­ Á¤ÀÇÇÏ´Â NATÀÇ °³³äÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.

    1. NAT »ç¿ë ¿¹

    ¾Æ·¡ ±×¸²À» ±âÁØÀ¸·Î ¼³¸íÇÑ´Ù. ¾Æ·¡ ±×¸²¿¡¼­ ¸®´ª½ºC¿¡´Â µÎ °³ÀÇ ·£Ä«µå°¡ ¼³Ä¡µÇ¾î ÀÖ°í ÀÎÅÍ³Ý ÂÊÀÇ ·£Ä«µå(eth0) ¿¡´Â °øÀÎ IP(°íÁ¤) °¡ ºÎ¿©µÇ¾î ÀÖ´Ù.(211.217.xxx.yyy) µÎ¹ø° ·£Ä«µå¿¡´Â ³»ºÎ¾îµå·¹½º(192.168.1.1)°¡ ºÎ¿©µÇ¾î ÀÖ°í ³»ºÎ ·£(192.168.1.0/24)¿¡ ¿¬°áµÇ¾î ÀÖ´Ù.

         <±×¸² 1>

      1) ¿©·¯ ´ëÀÇ Çǽÿ¡¼­ ÇÑ °³ÀÇ IP¸¦ °øÀ¯ÇÏ¿© ÀÎÅͳÝÀ» »ç¿ë

      adsl À̳ª ÄÉÀ̺í¸ðµ©À¸·Î ÀÎÅͳÝÀ» ¿¬°áÇÏ´Â °æ¿ì º¸ÅëÀº 1°³ÀÇ IP ÁÖ¼Ò¸¦ ¹Þ´Â´Ù. (¿©·¯ °³¸¦ ¹ÞÀ» ¼ö ÀÖ´Â ¼­ºñ½º°¡ ÀÖÀ¸³ª ºñ¿ëÀÌ ¸¹ÀÌ µç´Ù.) À̶§ ÇÑ °³ÀÇ IPÁÖ¼Ò¸¦ ¿©·¯ ´ëÀÇ Çǽÿ¡¼­ °øÀ¯ÇÏ¿© ÀÎÅͳÝÀ» »ç¿ëÇÏ·Á ÇÒ °æ¿ì NAT°¡ »ç¿ëµÈ´Ù.  ¿ì¸®°¡ IP Masquerade¶ó ºÒ·¯¿Ô´Ù. ±×¸² 1] ¿¡¼­ À©µµ¿ìA, À©µµ¿ìB µÎ ´ëÀÇ Çǽÿ¡¼­ ¸®´ª½ºCÀÇ °øÀÎ IP(211.217.xxx.yyy)¸¦ °øÀ¯Çؼ­ ÀÎÅͳÝÀ» »ç¿ëÇÏ°Ô ¼³Á¤ÇÏ´Â °æ¿ìÀÌ´Ù.

      2) ÇÑ °³ÀÇ IP ÁÖ¼Ò(µµ¸ÞÀγ×ÀÓ)¿¡ ¿©·¯ ´ëÀÇ ¼­¹ö¸¦ ¿¬°áÇÏ´Â °æ¿ì

      ºÎÇϺлêÀ» À§ÇØ ÇÑ °³ÀÇ µµ¸ÞÀγ×ÀÓ(FQDN)¿¡ ´ëÇØ ¿©·¯ ´ëÀÇ ¼­¹ö¸¦ ¿î¿µÇÏ´Â °æ¿ìµµ NAT¸¦ »ç¿ëÇÑ´Ù.  Áï www.linuxlab.co.kr µµ¸ÞÀÎ ÇÑ °³¿¡ À¥¼­¹ö, ¸ÞÀϼ­¹ö, FTP ¼­¹ö¸¦ µû·Î ¿î¿µÇÏ´Â °æ¿ìÀÌ´Ù. ºÎÇÏÆòÁØÈ­(load balance) ±â´Éµµ ±¸ÇöÀÌ °¡´ÉÇÏ´Ù. Áï www.linuxlab.co.kr µµ¸ÞÀο¡ ´ëÇÑ À¥¼­ºñ½º¸¦ ¿©·¯ ´ëÀÇ ¼­¹ö°¡ ´ã´çÇÏ°Ô ÇÏ´Â °æ¿ìÀÌ´Ù. 2.2¿¡¼­´Â port forwardingÀ̶ó ºÒ¸®¿ü´Ù.

      (Ä¿³Î 2.2¿¡¼­ port forwarding »ç¿ë¹ýÀº ¸®´ª½º ¿ùµå 2000³â 3¿ùÈ£¿¡ ÀÖ´Ù.)

      ±×¸² 1] ¿¡¼­ À©µµ¿ìC¿¡¼­ bae@www.linuxlab.co.kr·Î ¸ÞÀÏÀ» º¸³»¸é ¸ÞÀÏÀº 192.168.1.10 ¼­¹ö·Î Àü´ÞµÇ°í À¥À» °Ë»öÇϸé(http://www.linuxlab.co.kr) 192.168.1.11 ¼­¹ö°¡ ÀÀ´äÇÏ°Ô ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù.

      3) Åõ¸í ÇÁ¶ô½Ã

      Çпø¿¡¼­ ÀÎÅÍ³Ý °­ÀǸ¦ ÇÏ´Â °æ¿ì´Â µ¿ÀÏ ³×Æ®¿öÅ©¿¡ ¿¬°áµÈ ¿©·¯ ´ëÀÇ Çǽÿ¡¼­ µ¿½Ã¿¡ °°Àº »çÀÌÆ®¸¦ ¿¬°áÇÑ´Ù. ÀÌ °æ¿ì ÇÁ¶ô½Ã ¼­¹ö¸¦ ¼³Ä¡ÇÏ¸é ¸ðµç Çǽô ¿ì¼± ÇÁ¶ô½Ã ¼­¹ö¿¡¼­ ¹æ¹®ÇÏ·Á´Â »çÀÌÆ®ÀÇ ÆäÀÌÁö°¡ ÀÖ´ÂÁö¸¦ È®ÀÎÇÏ°í ¿©±â¿¡ ¾øÀ» °æ¿ì´Â ÇÁ¶ô½Ã¼­¹ö¿¡¼­ ÇØ´ç »çÀÌÆ®¸¦ ¿¬°áÇØ ÆäÀÌÁö¸¦ °¡Á®´Ù Çǽÿ¡°Ô ÁØ´Ù.

      ÇÁ¶ô½Ã ¼­¹ö¸¦ »ç¿ëÇÏ·Á¸é ÇǽÃÀÇ À¥ºê¶ó¿ìÀú¿¡ ÇÁ¶ô½Ã¼­¹ö¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±×·±µ¥ Åõ¸íÇÁ¶ô½ÃÀÇ °æ¿ì´Â Ŭ¶óÀ̾ðÆ® ÇǽÃÀÇ À¥ºê¶ó¿ìÀú¿¡ ÇÁ¶ô½Ã¼­¹ö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

      ¸®´ª½º¿¡ Åõ¸íÇÁ¶ô½Ã¸¦ ¼³Á¤ÇÏ¸é ¸®´ª½º¸¦ Åë°úÇÏ´Â ÆÐŶÀº ÀÚµ¿À¸·Î ¸®´ª½º¿¡ ¼³Ä¡µÈ ÇÁ¶ô½Ã¼­¹ö ÇÁ·Î±×·¥(¿¹: squid)À¸·Î ¿¬°áµÈ´Ù.(¸®´ª½º¸¦ °¢ ÇǽÃÀÇ µðÆúÆ®°ÔÀÌÆ®·Î ÁöÁ¤ÇÏ¸é ¸ðµç ÆÐŶÀº ¸®´ª½º¸¦ Åë°úÇÑ´Ù.) ¿¹Àü¿¡´Â ¸®´ÙÀÌ·º¼ÇÀ̶ó°í ºÒ¸®¿ü´Ù.

      ±×¸² 1]¿¡¼­ À©µµ¿ìA¿¡¼­ www.debian.orgÀÇ ÆäÀÌÁö¸¦ °Ë»öÇÏ¸é ¸®´ª½ºC¿¡ ¼³Ä¡µÈ ÇÁ¶ô½Ã¼­¹öÇÁ·Î±×·¥(squid)ÀÌ www.debian.org¸¦ ¿¬°áÇØ ´ë½Å µ¥ÀÌÅ͸¦ °¡Á®´Ù À©µµ¿ìA¿¡ ³Ñ°ÜÁÖ´Â ¼³Á¤ÀÌ´Ù. ÀÌ ±Û¿¡¼­´Â Åõ¸íÇÁ¶ô½Ã ¼³Á¤Àº ¼³¸íÇÏÁö ¾Ê´Â´Ù. Transparent Proxy with Squid mini-HOWTO¸¦ Âü°í Ç϶ó.

    2. iptables¿¡¼­ NAT ÀÇ ºÐ·ù

    iptables¿¡¼­´Â Å©°Ô µÎ ºÎ·ùÀÇ NAT·Î ºÐ·ùÇÑ´Ù. À§ÀÇ 1) ÀÇ °æ¿ì¸¦ SNAT(Source NAT) À§ÀÇ 2) , 3)ÀÇ °æ¿ì´Â DNAT(Destination NAT) ¶ó ºÐ·ùÇÑ´Ù.

    SNAT´Â ÆÐŶÀÇ ¼Ò½º ¾îµå·¹½º¸¦ º¯°æÇÑ´Ù´Â ÀǹÌÀÌ´Ù. Áï ³»ºÎ ¾îµå·¹½ºÀÎ 192.168.1.100 À©µµ¿ìA ¿¡¼­ www.debian.org ¸®´ª½º¼­¹ö¸¦ ¿¬°áÇϸé debian ¼­¹ö¿¡¼­ º¼ ¶§ ÆÐŶÀÇ ¼Ò½º°¡ 192.168.1.100ÀÌ ¾Æ´Ñ 211.217.xxx.yyy·Î ³ªÅ¸³ª±â ¶§¹®ÀÌ´Ù.

    SNAT´Â ¶ó¿ìÆÃ(°æ·Î) °áÁ¤ ÀÌÈÄ¿¡ ÀÌ·ç¾îÁø´Ù.(post-routing) ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò´Â ÀÌ¹Ì Á¤ÇØÁ® ÀÖÀ¸¹Ç·Î(www.debian.org) ¶ó¿ìÆà °æ·Î´Â °áÁ¤µÇ¾î ÀÖ°í ÆÐŶÀÇ ¼Ò½º ÁÖ¼Ò°¡ ¸®´ª½º¸¦ ¶°³ª±â Á÷Àü¿¡ º¯°æµÈ´Ù.(192.168.1.100 -> 211.217.xxx.yyy)

    DNAT´Â ÀÌ¿Í´Â ¹Ý´ë´Ù. ¸®´ª½ºC¿¡¼­ ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò¸¦ º¯°æÇÑ´Ù. À©µµ¿ìC¿¡¼­ bae@www.linuxlab.co.kr ÁÖ¼Ò·Î ¸ÞÀÏÀ» º¸³»¸é ¸®´ª½ºC¿¡ µµÂøÇÑ ÆÐŶÀÇ ¸ñÀûÁö°¡ ¸®´ª½º BÀÇ ÁÖ¼Ò·Î º¯°æµÈ´Ù. Áï ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò°¡ ¸ÕÀú º¯°æµÇ°í(211.217.xxx.yyy -> 192.168.1.10) ±× º¯°æµÈ ÁÖ¼Ò¿¡ ÀÇ°ÅÇÏ¿© »õ·Î¿î ¶ó¿ìÆà °æ·Î°¡ ã¾ÆÁø´Ù. Áï DNAT´Â ¶ó¿ìÆà ÀÌÀü ´Ü°è¿¡¼­ ÀÛ¿ëÇÑ´Ù.(pre-routing)

    post-routing¿Í pre-routing Àº ¹«Ã´ È¥µ¿µÈ´Ù. Áï ³»°¡ ¿ÞÂÊÀ̶ó ÇÏ¸é »ó´ë¿¡¼­ ³ª¸¦ º¼ ¶§´Â ¿À¸¥ÂÊÀÌ´Ù. °á±¹ NAT °¡ routing º¸´Ù Àü¿¡ ÀÛ¿ëÇÏ´À³Ä ÈijÄÀÇ ±¸ºÐÀ¸·Î º¸¸é µÈ´Ù. (iptables ÆĶó¸ÞÅÍ ÁöÁ¤¿¡¼­ ÀÌ µÑÀ» È¥µ¿ÇÏ¸é ¿¡·¯°¡ ³­´Ù.)

 

IV. IPTABLES ¼³Á¤

    1. Source NAT ´Â ¾Æ·¡¿Í °°ÀÌ ÁöÁ¤ÇÑ´Ù.(±âÁ¸ÀÇ IP Masquerade¸¦ ¸»ÇÔ.)

    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4

    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
    iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023

    -t -A ´Â À§ÀÇ ±Û(2)À» ÀÐÀ¸¸é ÀÌÇØ°¡ µÇ¸®¶ó°í º»´Ù. -o ´Â ÆÐŶÀ» º¸³»´Â ÀÎÅÍÆäÀ̽º ÀåÄ¡ÀÌ´Ù. SNAT ¿¡¼­´Â ÆÐŶÀ» ³» º¸³»´Â ÀåÄ¡(·£Ä«µå)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.  --to ´Â ³ª°¡´Â ÆÐŶ¿¡ ºÎ¿©ÇÒ  ¼Ò½º ÁÖ¼ÒÀÌ´Ù. IP °øÀ¯¶ó¸é --to ´Â ÀÎÅÍ³Ý ÂÊÀÇ °øÀÎ IP ¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.(ÁöÁ¤ ¾Ê¾Æµµ »ó°ü¾ø´Ù.)
     

    ÁÖÀÇ]

    ¸®´ª½º¿¡ NAT¸¦ ¼³Ä¡ÇÏ´Â °æ¿ì ¸®´ª½º´Â  °ÔÀÌÆ®¿þÀÌ·Î ÀÛ¿ëÇϹǷΠIP ForwardingÀÌ
    ÇÊ¿äÇÏ´Ù.
    ¾Æ·¡ ¸í·ÉÀ» Æ÷ÇÔÇÏ´Â ½ºÅ©¸³Æ®¸¦ /etc/rc.boot/ µð·ºÅ丮¿¡ ³Ö´Â´Ù.(µ¥ºñ¾È)

    #!/bin/bash
    echo ¡°IP forwarding setting..¡±
    echo ¡°1¡± > /proc/sys/net/ipv4/ip_forward

    IP forwarding ÀÌ È°¼ºÈ­µÇ¾ú´ÂÁö¸¦ È®ÀÎÇÏ·Á¸é ¾Æ·¡ ¸í·ÉÀ» ÁØ´Ù.

    churlsu:/etc/rc.boot# cat /proc/sys/net/ipv4/ip_forward
    1

    °ªÀÌ 1À̸é È°¼ºÈ­(enable) µÇ¾î ÀÖ´Ù.

 

    1.1 ½ÇÁ¦ »ç¿ë ¿¹

      1) Çѱ¹Åë½Å ADSLÀ» ¸®´ª½º¿¡ ¿¬°áÇØ ÀÎÅͳÝÀ» °øÀ¯(IP MASQUERADING)ÇÏ´Â
          °æ¿ìÀÇ ¼³Á¤Àº ¾Æ·¡¿Í °°´Ù.(¶óÀÌÆ®³ª ÇÁ¸®¹Ì¾öó·³ À¯µ¿ IP¸¦ ¹Þ´Â ¼­ºñ½ºÀÇ
          °æ¿ì¿¡¸¸ ÇØ´çÇÑ´Ù.)

          iptables  -t  nat  -A  POSTROUTING  -o  ppp0  -j  MASQUERADE

      2) ±×¸²1] ¿¡¼­ ¸®´ª½ºCÀÇ eth0¿¡ ºÎ¿©µÈ IP(°íÁ¤)¸¦ À©µµ¿ì A,B¿¡¼­ °øÀ¯ÇÏ¿©
          ÀÎÅͳÝÀ» »ç¿ëÇÏ°Ô ¼³Á¤ÇÏ·Á¸é ¾Æ·¡¿Í °°´Ù. Àü¿ë¼± ¶Ç´Â ADSL My IP, Multi IP
          »ç¿ë½Ã¿¡ ÇØ´çÇÑ´Ù.

          iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to
          211.217.xxx.yyy

          * -s 192.168.1.0/24´Â ÁöÁ¤ ¾Ê¾Æµµ µÈ´Ù.

      3) ±×¸² 1] ¿¡¼­ ¸®´ª½º CÀÇ eth0°¡ ÄÉÀ̺í¸ðµ©¿¡ ¿¬°áµÇ¾î ÀÖ´Ù¸é ¾Æ·¡Ã³·³
          ÁöÁ¤ÇÑ´Ù.(À¯µ¿ IP)

          iptables  -t  nat  -A  POSTROUTING  -o  eth0  -j  MASQUERADE

    1.2 È®ÀÎ

      - iptables ¼³Á¤ ³»¿ëÀ» È®ÀÎÇÏ·Á¸é ¾Æ·¡ ¸í·ÉÀ» ÁØ´Ù.

         iptables -t nat -L

      - 192.168.1.0 ³×Æ®¿öÅ©¿¡¼­ 211.217.xxx.yyy °øÀÎ IP¸¦ °øÀ¯Çϵµ·Ï ¼³Á¤ÇÑ °æ¿ì
         (À§ÀÇ 1.1ÀÇ 2) ÀÇ Ãâ·Â
       

      Chain PREROUTING (policy ACCEPT)
      target     prot opt source               destination

      Chain POSTROUTING (policy ACCEPT)
      target     prot opt source             destination
      SNAT       all  --  192.168.1.0/24  anywhere       to:211.217.xxx.yyy

      Chain OUTPUT (policy ACCEPT)
      target     prot opt source            destination

 

    2. DNAT

    DNAT ´Â ºÎÇϺлêÀ̳ª ÆòÁØÈ­¿¡¸¸ »ç¿ëÇÏ´Â°Ô ¾Æ´Ï´Ù. °£´ÜÇÑ ¹æÈ­º®À¸·Îµµ ²Ï À¯¿ëÇÏ´Ù. Áï À§ÀÇ ¸®´ª½ºC¿¡ DNAT¸¦ ¼³Á¤ÇÏ¿© À¥¼­¹ö¿Í ¸ÞÀϼ­¹ö¸¦ ³»ºÎ ÁÖ¼ÒÀÎ ¸®´ª½º A¿Í B¿¡¼­ ¼­ºñ½º Çϵµ·Ï ÁöÁ¤ÇÏ°í ÀÎÅͳݿ¡¼­ ´Ù¸¥ ¿¬°áÀº ¸®´ª½ºC·Î ÁöÁ¤ÇÏ¸é ¸®´ª½º C°¡ °£´ÜÇÑ ¹æÈ­º® ±¸½ÇÀ» ´ã´çÇÑ´Ù.

    2.1 »ç¿ë ¿¹

    -  ±×¸²1]¿¡¼­ ó·³ À©µµ¿ìC¿¡¼­ www.linuxlab.co.kr ÀÇ È¨ÆäÀÌÁö¸¦ °Ë»öÇÏ·Á ÇÒ ¶§ À̸¦
        ¸®´ª½ºA¿¡¼­ ´ã´çÇÏ°Ô ÇÏ·Á¸é ¾Æ·¡Ã³·³ ¼³Á¤ÇÑ´Ù.

        iptables -A PREROUTING -t nat -p tcp  -d 211.217.xxx.yyy  --dport 80 ¡¬
        -j DNAT --to  192.168.1.11:80

      1)  -A PREROUTING  : DNAT ´Â ¸ÕÀú ¸ñÀûÁö ÁÖ¼Ò¸¦ º¯°æÇÏ°í(211.217.xxx.yyy¸¦
           192.168.1.11·Î) ´ÙÀ½¿¡ ¶ó¿ìÆÃÀÌ ÀÌ·ç¾îÁø´Ù.

      2)  -t nat  : ºÎÇϺл굵 nat ±â´ÉÀÌ´Ù.

      3)  -p tcp  : À¥(www)Àº tcp ¸¦ »ç¿ëÇÑ´Ù.

      4)  -d 211.217.xxx.yyy  --dport 80 : µé¾î¿À´Â ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò°¡
           211.217.xxx.yyy ÀÌ°í Æ÷Æ®¹øÈ£°¡ www(80¹ø) ÀÎ °æ¿ì¸¸ ÀÌ ±ÔÄ¢À» Àû¿ëÇÑ´Ù.

      5)  -j DNAT : destination Nat

      6)  --to  192.168.1.11:80 : ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò¸¦ 192.168.1.11 Æ÷Æ®¹øÈ£¸¦ 80¹øÀ¸·Î
          ¼³Á¤Ç϶ó´Â ¶æ. µû¶ó¼­ 192.168.1.11 ¼­¹ö¿¡´Â 80¹ø Æ÷Æ®¿¡¼­ À¥¼­¹ö ÇÁ·Î±×·¥ÀÌ
          °¡µ¿ µÇ¾ß ÇÑ´Ù.

    - ¸ÞÀϼ­¹ö¸¦ ¸®´ª½ºB (192.168.1.10)·Î ¼³Á¤ÇÏ·Á¸é ¾Æ·¡Ã³·³ ÁöÁ¤ÇÑ´Ù.

    iptables -A PREROUTING -t nat -p tcp  -d 211.217.xxx.yyy  --dport 25 ¡¬
    -j DNAT --to  192.168.1.10:25

    - DNS ¼­¹ö¸¦ 192.168.1.10À¸·Î º¯°æÇÏ·Á¸é ¾Æ·¡Ã³·³ ÁöÁ¤ÇÑ´Ù.

    iptables -A PREROUTING -t nat -p udp  -d 211.217.xxx.yyy  --dport 53 ¡¬
    -j DNAT --to  192.168.1.10:53

    ÁÖÀÇ]  DNS ´Â udp ¸¦ »ç¿ëÇÑ´Ù.

    2.2 DNAT ¼³Á¤ È®ÀÎ

    À¥À» 192.168.1.11 ·Î DNAT ¼³Á¤À» ÇÏ¸é ¾Æ·¡Ã³·³ ³ª¿Â´Ù.(¸®´ª½ºC¿¡¼­ ¾Æ·¡ ¸í·ÉÀ» ÁØ´Ù.)

    churlsu:~# iptables -t nat -L
    Chain PREROUTING (policy ACCEPT)
    target     prot opt  source      destination
    DNAT     tcp  --  anywhere   churlsu.linuxlab.co.krtcp dpt:www to:192.168.1.11:80

    3. iptables ¼³Á¤ ÇØÁ¦

    - ±âÁ¸¿¡ ¼³Á¤µÅ ÀÖ´Â ¸ðµç nat ¼³Á¤À» Áö¿ì·Á¸é ¾Æ·¡ ¸í·ÉÀ» ÁØ´Ù.

      iptables -t nat -F

    - iptables ÀÇ ¸ðµç ¼³Á¤ÀÌ ÇØÁ¦µÈ °æ¿ì´Â ¾Æ·¡¿Í °°´Ù.

    churlsu:~# iptables -t nat -L
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination

    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

 

V.  iptables  ¿É¼Ç

    ¾Æ·¡´Â nat ¿¡¼­ »ç¿ëÇÏ´Â Áß¿äÇÑ ¿É¼Ç¸¸ ¼³¸íÇß´Ù. ³ª¸ÓÁö´Â man ÆäÀÌÁö¸¦ Âü°í Ç϶ó.

    1) -t  : --table

    table À» ¼±ÅÃÇÑ´Ù. filter, nat, mangle ¼¼°¡Áö ¼±ÅÃÀÌ ÀÖ´Ù. Ä¿³Î¿¡ ÇØ´ç Å×À̺íÀ» Áö¿øÇÏ´Â Äڵ尡 µé¾î ÀÖ¾î¾ß ÇÑ´Ù. ¸ðµâ ÀÚµ¿ÀûÀ縦 »ç¿ëÇÑ´Ù¸é ÇØ´ç Å×À̺íÀ» ¼±ÅÃÇÏ¸é ±×¿Í °ü·ÃµÈ Ä¿³Î ¸ðµâÀÌ ÀûÀçµÈ´Ù.  µðÆúÆ®´Â filter À̹ǷΠnat¸¦ »ç¿ëÇÏ·Á¸é ÇÊÈ÷ nat ¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

    2) -A  : --append

    ±ÔÄ¢À» Ãß°¡ÇÑ´Ù.

    INPUT, FORWARD :  -t°¡ filterÀÎ °æ¿ì »ç¿ë °¡´É
    POSTROUTING, PREROUTING: -t°¡ natÀÎ °æ¿ì »ç¿ë °¡´É
    OUTPUT: ¾çÂÊ ´Ù »ç¿ë

    3) -i :   --in-interface

    ÆÐŶÀÌ µé¾î¿À´Â(incoming) ÀÎÅÍÆäÀ̽º(ÀåÄ¡)¸¦ ÁöÁ¤ÇÑ´Ù. (-t °¡ nat À̸é PREROUTING¿¡¼­¸¸ ÁöÁ¤ °¡´ÉÇÏ´Ù.) ÀÎÅÍÆäÀ̽º¸í ¾Õ¿¡ ¡°!¡± À» Ãß°¡ÇÏ¸é ±× ÀåÄ¡´Â Á¦¿ÜÇÑ´Ù´Â Àǹ̰¡ µÈ´Ù. µÚ¿¡ ¡°+¡±¸¦ Ãß°¡ÇÏ¸é ±× À̸§À¸·Î ½ÃÀÛÇÏ´Â ¸ðµç ÀåÄ¡¸¦ ÀǹÌÇÑ´Ù. µðÆúÆ®´Â +ÀÌ´Ù.

    4) -o :  --out-interface

    outgoing ÀÎÅÍÆäÀ̽º Áï ÆÐŶÀÌ ³ª°¡´Â ³×Æ®¿öÅ© ÀåÄ¡¸¦ ÁöÁ¤ÇÑ´Ù. (-t°¡ natÀ̸é POSTROUTING ¿¡¼­¸¸ ÁöÁ¤ °¡´ÉÇÏ´Ù) ¡°!¡± °ú ¡°+¡± Àº -i ¿Í µ¿ÀÏÇÑ´Ù.

    5) -s  :  --source

    ¼Ò½º ¾îµå·¹½º/netmask ¸¦ ÁöÁ¤ÇÑ´Ù. SNAT¿¡¼­ ¹ÛÀ¸·Î ³ª°¡´Â ÆÐŶÀÇ ¼Ò½º¾îµå·¹½º¿¡ µû¶ó ±ÔÄ¢À» Àû¿ëÇÏ·Á ÇÒ ¶§ ÁöÁ¤ÇÑ´Ù.  ÁּҴ ȣ½ºÆ®³×ÀÓ, ³×Æ®¿öÅ©³×ÀÓ, IP ÁÖ¼Ò µîÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡ Çü½ÄÀÌ °¡´ÉÇÏ´Ù. ¾Õ¿¡ ¡°!¡±À» ³ÖÀ¸¸é ¹Ý´ëÀÇ °³³äÀÌ µÈ´Ù.

            - 192.168.1.100
            - 192.168.1.0/24
            - 192.168.1.0/255.255.255.0

    6) -d :  --destination

    ¸ñÀûÁö ÁÖ¼Ò/netmask ¸¦ ÁöÁ¤ÇÑ´Ù. DNAT ¿¡¼­ µé¾î¿À´Â ÆÐŶÀÇ ¸ñÀûÁö ÁÖ¼Ò¿¡ µû¶ó ±ÔÄ¢À» Àû¿ëÇÏ·Á ÇÒ ¶§ ÁöÁ¤ÇÑ´Ù. À§ÀÇ -s ¿Í »ç¿ë¹ýÀÌ °°´Ù.

    7) -p :  --protocol

    tcp ³ª udp ¸¦ ÁöÁ¤ÇÑ´Ù.

    8) --to :  --to-source,  --to-destination,  

    --to ´Â SNAT  ¿¡¼­´Â --to-sourceÀÇ ÀǹÌÀÌ´Ù. Áï ³»º¸³»´Â ÆÐŶ¿¡ »õ·Î ºÎ¿©ÇÒ ¼Ò½º IP ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.  º¸ÅëÀº ÀÎÅÍ³Ý ÂÊ¿¡ ¿¬°áµÈ ·£Ä«µåÀÇ ÁÖ¼ÒÀÌ´Ù.

    DNAT ¿¡¼­´Â --to-destination ÀÇ ÀǹÌÀÌ´Ù. Áï ÆÐŶÀÇ »õ·Î¿î ¸ñÀûÁö ÁÖ¼ÒÀÌ´Ù. Port forwarding ¿¡¼­ ´Â ³»ºÎ ·£¿¡ ¼³Ä¡µÈ ¼­¹öÀÇ ÁÖ¼ÒÀÌ´Ù.

    9) --dport :

    -p ¿Í °°ÀÌ »ç¿ëµÈ´Ù. DNAT¿¡¼­ µé¾î¿À´Â ÆÐŶÀÇ ¸ñÀûÁö Æ÷Æ®¿¡ µû¶ó ±ÔÄ¢À» Àû¿ëÇÏ·Á ÇÒ ¶§ ÁöÁ¤ÇÑ´Ù.




¡ã top

homeÀ¸·Î...