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

6. IP ¿Í ÀÌ´õ³Ý °ü·Ã Á¤º¸

ÀÌ ºÎºÐÀº ÀÌ´õ³Ý°ú IP ¿¡ °ü·ÃµÈ Á¤º¸¸¦ ´Ù·ê °ÍÀÌ´Ù. ¿©±âÀÇ ¼Ò ºÐ·ùµéÀº ±×°ÍµéÀÌ ¼ÒÀ§ ``ƯÁ¤ ±â¼ú¿¡ ´ëÇÑ'' ºÎºÐ¿¡¼­ °¡Àå Èï¹ÌÀÖ´Â °ÍµéÀ̶ó »ý°¢Ç߱⠶§¹®¿¡ ³ª´©¾ú´Ù. LANÀ» »ç¿ëÇÏ´Â »ç¶÷Àº ´©±¸³ª ÀÌ ºÎºÐµé¿¡¼­ ¾òÀ» °ÍÀÌ ÀÖÀ» °ÍÀÌ´Ù.

6.1 Ethernet

ÀÌ´õ³Ý ÀåÄ¡ÀÇ À̸§Àº `eth0', `eth1', `eth2' µîÀÌ´Ù. Ä¿³Î¿¡ ÀÇÇØ Ã³À½ ¹ß°ßµÇ´Â Ä«µå°¡ `eth0'À» ºÎ¿©¹Þ°í ³ª¸ÓÁö´Â ¹ß°ßµÇ´Â ¼ø¼­´ë·Î Çϳª¾¿ ºÎ¿©¹Þ´Â´Ù.

±âº»ÀûÀ¸·Î Ä¿³ÎÀº ÇϳªÀÇ ÀÌ´õ³Ý ÀåÄ¡¸¸À» ãÀ¸¸ç ´Ù¸¥ ÀåÄ¡¸¦ ã±â À§Çؼ± Á÷Á¢ ƯÁ¤ ¸í·ÉÀ» Ä¿³Î¿¡ ³»·ÁÁà¾ß ÇÑ´Ù.

¸®´ª½º »ó¿¡¼­ ÀÌ´õ³Ý Ä«µå¸¦ ÀÛµ¿Çϵµ·Ï ÇÏ´Â ¹ýÀ» ¾Ë°í ½ÍÀ¸¸é Ethernet-HOWTO¸¦ ÂüÁ¶Ç϶ó.

Ä¿³ÎÀÌ ÀÌ´õ³Ý Ä«µå¸¦ Áö¿øÇϵµ·Ï ¾Ë¸Â°Ô ¸¸µé¾îÁø ÈÄ¿¡´Â Ä«µå ¼³Á¤Àº ½±´Ù.

º¸Åë ¿©·¯ºÐÀº ¾Æ·¡¿Í °°Àº °ÍÀ» ¾´¸ç ´ëºÎºÐÀÇ ¹èÆ÷º»Àº ÀÌ´õ³Ý Ä«µå¸¦ Áö¿øÇϵµ·Ï ¼³Á¤À» Çß´Ù¸é À̸¦ ÀÌ¹Ì ÇØÁØ´Ù.

        root# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
        root# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
        

´ëºÎºÐÀÇ ÀÌ´õ³Ý µå¶óÀ̹öµéÀº Donald Becker, becker@CESDIS.gsfc.nasa.gov¿¡ ÀÇÇØ ¸¸µé¾îÁ³´Ù.

6.2 EQL - multiple line traffic equaliser

EQL ÀåÄ¡ À̸§Àº `eql'ÀÌ´Ù. Ç¥ÁØ Ä¿³Î ¼Ò½º·Î´Â ¸Ó½Å´ç ÇÑ°³ÀÇ EQL ÀåÄ¡¸¦ °¡Áú ¼ö ÀÖ´Ù. EQLÀº PPP³ª slip, plip°°Àº point-to-point ´ÙÁß ¿¬°áÀ» ÇÑ °³ÀÇ ³í¸®ÀûÀÎ tcp/ip ¿¬°á·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. º¸ÅëÀº ÇϳªÀÇ °í¼Ó ¿¬°áÀ» ¸¸µå´Â °Íº¸´Ù Àú¼ÓÀÇ ´ÙÁß ¿¬°áÀ» »ç¿ëÇÏ´Â ÆíÀÌ ºñ¿ëÀÌ ½Î´Ù.

Kernel Compile Options:

        Network device support  --->
            [*] Network device support
            <*> EQL (serial line load balancing) support
        

ÀÌ ±â¼úÀ» »ç¿ëÇϱâ À§Çؼ± ¿¬°áÀÇ ¹Ý´ëÆí¿¡ ÀÖ´Â ¸Ó½Åµµ EQLÀ» Áö¿øÇØ¾ß ÇÑ´Ù. ¸®´ª½º¿Í Livingstone Portmasters, »õ·Î¿î dial-in ¼­¹öµéÀº ȣȯ °¡´ÉÇÑ ±â´ÉÀ» Áö¿øÇÑ´Ù.

EQLÀ» ¼³Á¤Çϱâ À§Çؼ± metalab.unc.edu ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Â eql ÅøµéÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù.

¼³Á¤Àº ¸Å¿ì Á÷¼³ÀûÀÌ´Ù. eql ÀÎÅÍÆäÀ̽ºÀÇ ¼³Á¤À¸·Î ½ÃÀÛÇÑ´Ù. eql ÀÎÅÍÆäÀ̽º´Â ´Ù¸¥ ³×Æ®¿÷ ÀåÄ¡µé°ú ºñ½ÁÇÏ´Ù. ifconfig¸¦ ÀÌ¿ëÇÏ¿© IP ÁÖ¼Ò¿Í mtu¸¦ ¼³Á¤ÇÏ¸ç ¾Æ·¡¿Í °°´Ù.

        root# ifconfig eql 192.168.10.1 mtu 1006
        

±×´ÙÀ½ ¿©·¯ºÐÀÌ »ç¿ëÇÒ °¢ ÁÙµéÀ» Á÷Á¢ ½ÃÀÛÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ´Â point-to-point ³×Æ®¿÷ ÀåÄ¡ÀÇ °æ¿ì¿Í ¸¶Âù°¡ÁöÀÌ´Ù. ¿¬°áÀ» ½ÃÀÛÇÏ´Â ¹æ¹ýÀº ¿¬°áÀÇ Á¾·ù¿¡ µû¶ó ´Ù¸£¸ç ÀÚ¼¼ÇÑ »çÇ×Àº ¹®¼­ÀÇ ÇØ´ç ºÎºÐÀ» ÂüÁ¶ÇÏ¿©¶ó.

¸¶Áö¸·À¸·Î serial ¿¬°áÀ» EQL ÀåÄ¡¿Í ¿¬°á½ÃÄÑ¾ß ÇÑ´Ù. ÀÌ´Â `enslaving'À̶ó ºÒ¸®¸ç ¾Æ·¡¿Í °°Àº eql_enslave ¸í·ÉÀ¸·Î ¼öÇàµÈ´Ù.

        root# eql_enslave eql sl0 28800
        root# eql_enslave eql ppp0 14400
        

eql_enslave¿¡ ³Ñ°ÜÁÖ´Â `estimated speed' ¸Å°³º¯¼ö´Â Á÷Á¢Àº ¾Æ¹« °Íµµ ÇÏÁö ¾Ê´Â´Ù. ÀÌ´Â EQL µå¶óÀ̹ö°¡ ÀåÄ¡°¡ ¹ÞÀ» µ¥ÀÌŸ±×·¥ÀÇ ÇÒ´çÀ» °áÁ¤Çϸç ÀÌ °ªÀ» °¡Áö°í ¿¬°áµéÀÇ ¹ë·±½º¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Ù.

¿¬°áÀ» EQL ÀåÄ¡·ÎºÎÅÍ ¶¼¾î³»±â À§Çؼ± ¾Æ·¡Ã³·³ eql_emancipate ¸í·ÉÀ» ¾´´Ù.

        root# eql_emancipate eql sl0
        

´Ù¸¥ point-to-point ¿¬°áó·³ ¶ó¿ìÆÃÀ» Ãß°¡ÇØÁִµ¥ ½ÇÁ¦ Á÷·Ä ÀåÄ¡ ´ë½Å eql ÀåÄ¡¸¦ ¶ó¿ìÅÍ°¡ ÂüÁ¶ÇÏ´Â °ÍÀÌ ´Ù¸£´Ù. º¸Åë ¾Æ·¡Ã³·³ ¾´´Ù.

        root# route add default eql
        

EQL µå¶óÀ̹ö´Â Simon Jones, simon@ncm.com ¿¡ ÀÇÇØ °³¹ßµÇ¾ú´Ù.

6.3 IP Accounting (for Linux-2.0)

¸®´ª½º Ä¿³ÎÀÇ IP accounting ±â´ÉÀº ³×Æ®¿÷À» »ç¿ëÇÏ´Â ÀÚ·áµéÀ» ¸ð¾Æ¼­ ºÐ¼®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¸ð¾ÆÁø ÀÚ·áµéÀº ÃʱâÈ­ ÀÌÈÄ ´©ÀûµÈ ÆÐŶ°ú ¹ÙÀÌÆ®ÀÇ ¼öµé·Î ÀÌ·ç¾îÁø´Ù. »ç¿ë ¸ñÀû¿¡ µû¶ó À̵éÀ» ºÐ·ùÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ±ÔÄ¢µéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿É¼ÇÀº ÀÌÀüÀÇ ipfwadm ±â¹ÝÀÇ ¹æÈ­º® ±â´ÉÀÌ ``ipfwchains''·Î ´ëüµÇ¸é¼­ Ä¿³Î 2.1.102¶§ºÎÅÍ ºüÁ³´Ù.

Kernel Compile Options:

        Networking options  --->
            [*] IP: accounting
        

IP accountingÀ» ¼³Á¤Çϱâ À§Çؼ± Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ¿© ¼³Ä¡ÇÑ ÈÄ ipfwadm ¸í·ÉÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¼±ÅÃÇÑ accounting Á¤º¸¸¦ ÀÚ¼¼È÷ ºÐ·ùÇÏ´Â ¸¹Àº ¹æ¹ýµéÀÌ ÀÖ´Ù. ¿©±â¿¡¼± À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ ¿¹Á¦¸¦ °ñ¶úÀ¸¸ç ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§Çؼ± ipfwadm ¸Ç ÆäÀÌÁö¸¦ Àо±æ ¹Ù¶õ´Ù.

½Ã³ª¸®¿À: ¿©·¯ºÐÀº PPP ¿¬°áÀ» ÅëÇØ ÀÎÅͳݿ¡ ¿¬°áµÈ ÀÌ´õ³Ý ³×Æ®¿÷À» °¡Áö°í ÀÖ´Ù. ÀÌ´õ³Ý »ó¿¡¼­ ¸¹Àº ¼­ºñ½º¸¦ ÇÏ´Â ¸Ó½ÅÀ» °¡Áö°í ÀÖÀ¸¸ç ÀüüÀûÀÎ tcp, udp Æ®·¡ÇÈ »Ó ¾Æ´Ï¶ó ftp³ª www µîÀÇ °¢ ¼­ºñ½º¿¡ ÀÇÇÑ Æ®·¡Çȵµ ¾Ë°í ½Í´Ù.

¿©·¯ºÐÀº ¾Æ·¡ÀÇ ½© ½ºÅ©¸³Æ® ó·³ º¸ÀÌ´Â ¸í·ÉµéÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.

        #!/bin/sh
        #
        # Flush the accounting rules
        ipfwadm -A -f
        #
        # Set shortcuts
        localnet=44.136.8.96/29
        any=0/0
        # Add rules for local ethernet segment
        ipfwadm -A in  -a -P tcp -D $localnet ftp-data
        ipfwadm -A out -a -P tcp -S $localnet ftp-data
        ipfwadm -A in  -a -P tcp -D $localnet www
        ipfwadm -A out -a -P tcp -S $localnet www
        ipfwadm -A in  -a -P tcp -D $localnet
        ipfwadm -A out -a -P tcp -S $localnet
        ipfwadm -A in  -a -P udp -D $localnet
        ipfwadm -A out -a -P udp -S $localnet
        #
        # Rules for default
        ipfwadm -A in  -a -P tcp -D $any ftp-data
        ipfwadm -A out -a -P tcp -S $any ftp-data
        ipfwadm -A in  -a -P tcp -D $any www
        ipfwadm -A out -a -P tcp -S $any www
        ipfwadm -A in  -a -P tcp -D $any
        ipfwadm -A out -a -P tcp -S $any
        ipfwadm -A in  -a -P udp -D $any
        ipfwadm -A out -a -P udp -S $any
        #
        # List the rules
        ipfwadm -A -l -n
        #
        

``ftp-data''¿Í ``www' °°Àº À̸§µéÀº /etc/services ¾ÈÀÇ ÁÙµéÀ» °¡¸®Å²´Ù. ¸¶Áö¸· ¸í·ÉÀº °¢ Accounting ±ÔÄ¢µé°ú ¸ð¾ÆÁø °á°ú¸¦ Ãâ·ÂÇÑ´Ù.

IP accountingÀ» ºÐ¼®ÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÒ °ÍÀº Àû¿ëµÇ´Â ¸ðµç ±ÔÄ¢ÀÇ °á°ú°¡ ÇÕÇØÁø´Ù´Â °ÍÀÌ´Ù. µû¶ó¼­ ¿øÇÏ´Â °ªÀ» ¾ò±â À§Çؼ± ÀûÀýÇÑ »ê¼ú ¿¬»êÀÌ ÇÊ¿äÇÏ´Ù. ¿¹¸¦ µé¾î ftpµµ wwwµµ ¾Æ´Ñ ÀÚ·áÀÇ ¾çÀ» ¾Ë±æ ¿øÇÑ´Ù¸é °¢ °á°úµéÀ» ¸ðµç Æ÷Æ®¿¡ Àû¿ëµÇ´Â °á°ú¿¡¼­ »¬ °ÍÀÌ´Ù.

root# ipfwadm -A -l -n
IP accounting rules
 pkts bytes dir prot source               destination          ports
    0     0 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 20
    0     0 out tcp  44.136.8.96/29       0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 80
   10   572 out tcp  44.136.8.96/29       0.0.0.0/0            80 -> *
  252 10943 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> *
  231 18831 out tcp  44.136.8.96/29       0.0.0.0/0             * -> *
    0     0 in  udp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 out udp  44.136.8.96/29       0.0.0.0/0            * -> *
    0     0 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 20
    0     0 out tcp  0.0.0.0/0            0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 80
   10   572 out tcp  0.0.0.0/0            0.0.0.0/0            80 -> *
  253 10983 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> *
  231 18831 out tcp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 in  udp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 out udp  0.0.0.0/0            0.0.0.0/0            * -> *

6.4 IP Accounting (for Linux-2.2)

»õ accounting ÄÚµå´Â ``IP Firewall Chains''¸¦ ÅëÇØ ±¸ÇöµÈ´Ù. IP chains ȨÆäÀÌÁö¸¦ º¸¸é ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¹«¾ùº¸´Ùµµ ¿©·¯ºÐÀÇ ÇÊÅ͸¦ ¼³Á¤Çϱâ À§Çؼ± ipfwadm ´ë½Å¿¡ ipchains¸¦ »ç¿ëÇÏ°Ô µÉ °ÍÀÌ´Ù. (ÃֽŠĿ³Î ¼Ò½ºÀÇ Documentation/Changes·ÎºÎÅÍ)

6.5 IP Aliasing

ÇÑ ³×Æ®¿÷ ÀåÄ¡¿¡ µÑ ÀÌ»óÀÇ IP ÁÖ¼Ò¸¦ ºÎ¿©ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥µéÀÌ ÀÖÀ¸¸ç ÀÌ´Â ²Ï À¯¿ëÇÏ´Ù. ISP (Internet Service Provider)µéÀº Á¾Á¾ »ç¿ëÀڵ鿡°Ô ƯȭµÈ World Wide Web°ú ftp¸¦ Á¦°øÇϱâ À§ÇØ ÀÌ ±â´ÉÀ» »ç¿ëÇÑ´Ù. ¿©·¯ºÐÀº ¿©±â¿¡ ³ª¿Â °Íº¸´Ù ´õ ¸¹Àº Á¤º¸¸¦ ``IP-Alias mini-HOWTO''¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.

Kernel Compile Options:

        Networking options  --->
            ....
            [*] Network aliasing
            ....
            <*> IP: aliasing support
        

Ä¿³ÎÀ» IP_Alias Áö¿ø°ú ÇÔ²² ÄÄÆÄÀÏÇؼ­ ¼³Ä¡ÇÑ ´ÙÀ½¿£ ¼³Á¤Àº ¸Å¿ì °£´ÜÇÏ´Ù. aliasµéÀº ½ÇÁ¦ ³×Æ®¿÷ ÀåÄ¡¿Í ¿¬°üµÈ °¡»óÀÇ ³×Æ®¿÷ ÀåÄ¡µé¿¡ Ãß°¡µÈ´Ù. ÀÌ ÀåÄ¡µé¿¡´Â ´Ü¼øÇÑ ¸í¸í¹ýÀÌ ¾²À̴µ¥ <devname>:<virtual dev num> °ú °°Àº ½ÄÀ¸·Î ¿¹¸¦ µé¾î eth0:0, ppp0:10 µîÀÌ´Ù. ÀÌ ifname:number ÀåÄ¡´Â ÁÖ ÀÎÅÍÆäÀ̽º°¡ ¼³Á¤µÈ ÈÄ¿¡¸¸ ¼³Á¤µÉ ¼ö ÀÖ´Ù´Â °ÍÀ» ¸í½ÉÇضó.

¿¹¸¦ µé¾î ¿©·¯ºÐÀÌ µÎ °³ÀÇ ¼­·Î ´Ù¸¥ IP ¼­ºê³×Æ®¿÷À» µ¿½Ã¿¡ Áö¿øÇÏ´Â ÀÌ´õ³Ý ³×Æ®¿÷À» °¡Áö°í ÀÖ°í ¿©·¯ºÐÀÇ ¸Ó½ÅÀÌ ¾ç ÂÊÀ» ¸ðµÎ Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇØÁÖ¸é µÈ´Ù.

        root# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
        root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0

        root# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
        root# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
        

alias¸¦ Áö¿ì±â À§Çؼ± ´Ü¼øÈ÷ À̸§ µÚ¿¡ `-'¸¦ ºÙ¿©ÁÖ¸é µÈ´Ù.

        root# ifconfig eth0:0- 0
        

alias¿¡ °ü·ÃµÈ ¸ðµç route Á¤º¸µéµµ ÀÚµ¿À¸·Î Áö¿öÁú °ÍÀÌ´Ù.

6.6 IP Firewall (for Linux-2.0)

IP Firewall°ú ¹æÈ­º® ¹®Á¦´Â Firewall-HOWTO¿¡¼­ Á» ´õ ±í°Ô ´Ù·ïÁú °ÍÀÌ´Ù. IP FirewallingÀº ¿©·¯ºÐÀÌ ÁöÁ¤ÇÑ IP ÁÖ¼Ò·Î °¡´Â ȤÀº ±× ÁÖ¼Ò¿¡¼­ ¿À´Â µ¥ÀÌŸ±×·¥µéÀ» °É·¯³»°Å³ª Åë°ú½ÃÅ´À¸·Î½á Çã°¡µÇÁö ¾ÊÀº ³×Æ®¿÷ Á¢±ÙÀ¸·ÎºÎÅÍ ¿©·¯ºÐÀÇ ¸Ó½ÅÀ» º¸È£ÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¼¼ °³ÀÇ ´Ù¸¥ ±ÔÄ¢ µî±ÞÀÌ Àû¿ëµÇ´Âµ¥ incoming filtering°ú outgoing filtering, forwarding filteringÀÌ´Ù. Incoming ruleÀº ³×Æ®¿÷ ÀåÄ¡°¡ ¹Þ¾ÆµéÀÌ´Â µ¥ÀÌŸ±×·¥¿¡ Àû¿ëµÇ¸ç Outgoing ruleÀº ³×Æ®¿÷ ÀåÄ¡¸¦ ÅëÇØ ³ª°¡´Â µ¥ÀÌŸ±×·¥¿¡, Forwarding ruleÀº ¹Þ¾Æµé¿©Áö±ä Çϳª ÀÌ ¸Ó½ÅÀ¸·Î ¿ÀÁö ¾ÊÀº, ´Ù½Ã¸»ÇØ ÀÌ ¸Ó½ÅÀ» °ÅÃÄ ´Ù¸¥ °÷À¸·Î °¡´Â µ¥ÀÌŸ±×·¥¿¡ Àû¿ëµÈ´Ù.

Kernel Compile Options:

        Networking options  --->
            [*] Network firewalls
            ....
            [*] IP: forwarding/gatewaying
            ....
            [*] IP: firewalling
            [ ] IP: firewall packet logging
        

IP firewall ±ÔÄ¢µéÀÇ ¼³Á¤Àº ipfwadm ¸í·ÉÀ» »ç¿ëÇÏ¿© ÀÌ·ç¾îÁø´Ù. ¾Õ¿¡¼­ ¾ð±ÞÇÑ °Íó·³ ³ª´Â º¸¾È Àü¹®°¡°¡ ¾Æ´Ï¸ç µû¶ó¼­ º¸¾ÈÀÌ ¿©·¯ºÐ¿¡°Ô Áß¿äÇÑ ¹®Á¦¶ó¸é ³»°¡ °£´ÜÇÑ ¿¹Á¦¸¦ º¸¿©ÁÖ´Â °Í°ú´Â º°µµ·Î ¿©·¯ºÐ ½º½º·Î ±ÔÄ¢µéÀ» °øºÎÇÏ°í °³¹ßÇØ¾ß ÇÑ´Ù.

IP firewallÀ» ¾²´Â ´ëºÎºÐÀÇ °æ¿ì´Â ¾Æ¸¶µµ ¸®´ª½º ¸Ó½ÅÀ» ¶ó¿ìÅͳª ¹æÈ­º®ÀÇ °ÔÀÌÆ®¿þÀÌ(gateway)·Î »ç¿ëÇÏ¿© ¿©·¯ºÐÀÇ ·ÎÄ® ³×Æ®¿÷À» ¿ÜºÎÀÇ Çã°¡µÇÁö ¾ÊÀº Á¢±ÙÀ¸·ÎºÎÅÍ º¸È£ÇÏ°íÀÚ ÇÏ´Â °æ¿ìÀÏ °ÍÀÌ´Ù.

¾Æ·¡ÀÇ ¼³Á¤Àº Arnt Gulbrandsen, <agulbra@troll.no>ÀÇ µµ¿ò¿¡ ±â¹ÝÇÏ°í ÀÖ´Ù.

¾Æ·¡ÀÇ ¿¹Á¦´Â ¹ØÀÇ ±×¸²¿¡ ³ª¿Â °Íó·³ ¸®´ª½º firewall/router ¸Ó½Å À§¿¡ ¹æÈ­º®À» ¼³Á¤ÇßÀ» °æ¿ìÀÌ´Ù.

-                                   -
 \                                  | 172.16.37.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |  172.16.174.30 | Linux |      |
NET =================|  f/w  |------|    ..37.19
    |    PPP         | router|      |  --------
   /                 ---------      |--| Mail |
  /                                 |  | /DNS |
 /                                  |  --------
-                                   -

¾Æ·¡ ¸í·ÉµéÀº º¸Åë rc ÆÄÀÏ ¾È¿¡ µé¾î°¡¼­ ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§¸¶´Ù ÀÚµ¿À¸·Î ½ÃÀ۵ǵµ·Ï µÇ¾îÀÖ´Ù. º¸¾ÈÀ» ÃÖ´ë·Î Çϱâ À§Çؼ± ÀÎÅÍÆäÀ̽º°¡ ¼³Á¤µÈ ÈÄ¿¡, ±×·¯³ª ¹æÈ­º® ¸Ó½ÅÀÌ ¸®ºÎÆõǴ µ¿¾È ´©±º°¡ Á¢±Ù ±ÇÇÑÀ» ¾ò´Â °ÍÀ» ¸·±â À§ÇØ ÀÎÅÍÆäÀ̽º°¡ ½ÇÁ¦·Î ÀÛµ¿µÇ±â ÀÌÀü¿¡ ¾Æ·¡ ¸í·ÉµéÀÌ ½ÇÇàµÇ¾ß ÇÑ´Ù.

        #!/bin/sh

        # Flush the 'Forwarding' rules table
        # Change the default policy to 'accept'
        #
        /sbin/ipfwadm -F -f
        /sbin/ipfwadm -F -p accept
        #
        # .. and for 'Incoming'
        #
        /sbin/ipfwadm -I -f
        /sbin/ipfwadm -I -p accept

        # First off, seal off the PPP interface
        # I'd love to use '-a deny' instead of '-a reject -y' but then it
        # would be impossible to originate connections on that interface too.
        # The -o causes all rejected datagrams to be logged. This trades
        # disk space against knowledge of an attack of configuration error.
        #
        /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30

        # Throw away certain kinds of obviously forged packets right away:
        # Nothing should come from multicast/anycast/broadcast addresses
        #
        /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
        #
        # and nothing coming from the loopback network should ever be
        # seen on a wire
        #
        /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24
        
        # accept incoming SMTP and DNS connections, but only
        # to the Mail/Name Server
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53
        #
        # DNS uses UDP as well as TCP, so allow that too
        # for questions to our name server
        #
        /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53
        #
        # but not "answers" coming to dangerous ports like NFS and
        # Larry McVoy's NFS extension.  If you run squid, add its port here.
        #
        /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \
                -D 172.16.37.0/24 2049 2050
        
        # answers to other user ports are okay
        #
        /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \
                -D 172.16.37.0/24 53 1024:65535
        
        # Reject incoming connections to identd
        # We use 'reject' here so that the connecting host is told
        # straight away not to bother continuing, otherwise we'd experience
        # delays while ident timed out.
        #
        /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113

        # Accept some common service connections from the 192.168.64 and
        # 192.168.65 networks, they are friends that we trust.
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \
                -D 172.16.37.0/24 20:23
        
        # accept and pass through anything originating inside
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0
        
        # deny most other incoming TCP connections and log them
        # (append 1:1023 if you have problems with ftp not working)
        #
        /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24
        
        # ... for UDP too
        #
        /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24
        

ÁÁÀº ¹æÈ­º® ¼³Á¤Àº º¹ÀâÇÏ´Ù. ÀÌ ¿¹Á¦´Â ¿©·¯ºÐ¿¡°Ô ¾î´À Á¤µµÀÇ ½ÃÀÛÁ¡¸¸À» º¸¿©ÁØ´Ù. ipfwadm ¸Þ´º¾ó ÆäÀÌÁö°¡ ÀÌ ÅøÀ» »ç¿ëÇÏ´Â µ¥¿¡ µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ¹æÈ­º®À» ¼³Á¤ÇÏ°íÀÚ ÇÑ´Ù¸é ¹ÏÀ»¸¸ÇÑ °÷¿¡ ¹°¾îº¸°í ¸¹Àº Ãæ°í¸¦ ¹Þ¾Æ¶ó. ¶ÇÇÑ ¿ÜºÎ¿¡¼­ ¿©·¯ºÐÀÇ ¼³Á¤À» °Ë»çÇϵµ·Ï Çضó.

6.7 IP Firewall (for Linux-2.2)

»õ·Î¿î ¹æÈ­º® Äڵ尡 ``IP Firewall Chains''¸¦ ÅëÇØ ±¸ÇöµÈ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ± IP chains ȨÆäÀÌÁö¸¦ º¸¶ó. Áö±Ý ¿©·¯ºÐÀÇ ÇÊÅ͸¦ ¼³Á¤Çϱâ À§Çؼ± ipfwadm ´ë½Å ipchains¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. (ÃֽŠĿ³ÎÀÇ Documentation/Changes ÂüÁ¶)

¿ì¸®µµ ÀÌ ³»¿ëÀÌ ÃֽŰú °Å¸®°¡ ¸Ö´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ¸¸ç Á» ´õ ÃֽŠ³»¿ëÀ» ´Ù·ç±â À§ÇØ ÇöÀç ÀÛ¾÷ÁßÀÌ´Ù. ¾Æ¸¶ 1999³â 8¿ùÀÇ »õ ¹öÁ¯¿¡¼± ´Ù·ïÁú °ÍÀÌ´Ù. (¿ªÀÚÁÖ: ÇöÀç ¹ø¿ªÁßÀÎ ÀÌ ¹®¼­°¡ 1999³â 8¿ù ¹öÁ¯ÀÌ´Ù-_-;)

6.8 IPIP Encapsulation

¿Ö ¿©·¯ºÐÀº IP µ¥ÀÌŸ±×·¥ ³»¿¡ IP µ¥ÀÌŸ±×·¥À» Áý¾î³Ö±â¸¦ ¿øÇϳª? ÀÌ·± ¹æ½ÄÀ» ÀÌÀü¿¡ º» ÀûÀÌ ¾ø´Ù¸é ÀÌ»óÇÑ °ÍÀ¸·Î º¸ÀÏ °ÍÀÌ´Ù. Mobile-IP¿Í IP-Multicast°¡ ÀÌ ¹æ½ÄÀÌ »ç¿ëµÇ´Â ÈçÇÑ ¿¹ÀÌ´Ù. ¶ÇÇÑ Àß ¾Ë·ÁÁ® ÀÖÁø ¾ÊÁö¸¸ ÀÌ ¹æ½ÄÀ» Á¦ÀÏ ¸¹ÀÌ ¾²´Â °÷Àº Amateur RadioÀÌ´Ù.

Kernel Compile Options:

        Networking options  --->
            [*] TCP/IP networking
            [*] IP: forwarding/gatewaying
            ....
            <*> IP: tunneling
        

IP tunnel ÀåÄ¡´Â `tunl0', `tunl1' µîÀ¸·Î ºÒ¸°´Ù.

ÀϹÝÀûÀÎ IP ¶ó¿ìÆà ±ÔÄ¢Àº IP ³×Æ®¿÷ÀÌ ³×Æ®¿÷ ÁÖ¼Ò¿Í ³×Æ®¿÷ ¸¶½ºÅ©·Î ÀÌ·ç¾îÁ® ÀÖµµ·Ï ¿ä±¸ÇÑ´Ù. ÀÌ´Â ÇÑ ¶ó¿ìÆà ¿£Æ®¸®¸¦ ÅëÇØ ÀÏ·ÃÀÇ ¿¬¼ÓµÈ ÁÖ¼ÒµéÀÌ ¸ðµÎ ¶ó¿ìÆõǵµ·Ï ÇØÁØ´Ù. ÀÌ´Â ¸Å¿ì Æí¸®ÇÏÁö¸¸ ¿©·¯ºÐÀÌ ³×Æ®¿÷ÀÇ Æ¯Á¤ ºÎºÐ¿¡ ¿¬°áµÇ¾î ÀÖ´Â µ¿¾È ƯÁ¤ IP ÁÖ¼Ò¸¸À» »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¹®Á¦°¡ ¾øÀ¸³ª ¿©·¯ºÐÀÇ mobile netizenÀ̶ó¸é °è¼Ó ÇÑ Àå¼Ò¿¡ Á¢¼ÓµÇ¾î ÀÖÀ» ¼ø ¾øÀ» °ÍÀÌ´Ù. IP/IP encapsulation (IP tunneling)Àº ¿©·¯ºÐÀÇ IP ÁÖ¼Ò·Î ¿Àµµ·Ï µÇ¾î ÀÖ´Â µ¥ÀÌŸ±×·¥ÀÌ ÇÑ ¹ø ´õ ½×¿©Á®¼­ ´Ù¸¥ IP ÁÖ¼Ò·Î µ¹·ÁÁöµµ·Ï ÇϹǷνá Á¦ÇÑÀ» ±Øº¹ÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ´Ù¸¥ IP ³×Æ®¿÷¿¡¼­ ÀÛ¾÷À» ÇÒ ¿¹Á¤À̶ó¸é ¿ø·¡ ³×Æ®¿÷ÀÇ ¸Ó½ÅÀÌ ¿©·¯ºÐÀÇ IP ÁÖ¼Ò·Î ¿À´Â µ¥ÀÌŸ±×·¥À» ¹Þ¾Æ¼­ Àӽ÷ΠÇöÀç »ç¿ëÇÏ´Â ÁÖ¼Ò·Î µ¹·ÁÁÖµµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

A tunneled network configuration.

 192.168.1/24                          192.168.2/24

     -                                     -
     |      ppp0 =            ppp0 =       |
     |  aaa.bbb.ccc.ddd  fff.ggg.hhh.iii   |
     |                                     |
     |   /-----\                 /-----\   |
     |   |     |       //        |     |   |
     |---|  A  |------//---------|  B  |---|
     |   |     |     //          |     |   |
     |   \-----/                 \-----/   |
     |                                     |
     -                                     -

ÀÌ ±×¸²Àº IPIP encapsulationÀ» ¾²´Â ´Ù¸¥ ¸¶¶¥ÇÑ ÀÌÀ¯, °¡»ó °³º° ³×Æ®¿öÅ·À» ³ªÅ¸³½´Ù. ÀÌ ¿¹Á¦´Â ¿©·¯ºÐÀÌ ±âº»ÀûÀÎ ´ÙÀ̾ó¾÷ ÀÎÅÍ³Ý ¿¬°áÀ» °¡Áø µÎ ¸Ó½ÅÀ» °¡Áö°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. °¢ È£½ºÆ®´Â ÇÑ °³ÀÇ IP ÁÖ¼Ò¸¦ ºÎ¿©¹Þ¾Ò´Ù. ÀÌ ¸Ó½Åµé µÚ¿¡´Â ¿¹¾àµÈ IP ³×Æ®¿÷ ÁÖ¼Ò·Î ¼³Á¤µÈ ·ÎÄ® ³×Æ®¿÷ÀÌ Á¸ÀçÇÑ´Ù. ³×Æ®¿÷ ¶ó¿ìÅÍ·Î ÀÎÅͳݿ¡ ¿¬°áµÇ´Â °Íó·³ A ³×Æ®¿÷¿¡ Àִ ȣ½ºÆ®µéÀÌ B ³×Æ®¿÷ À§ÀÇ È£½ºÆ®µé¿¡ Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï ÇÏ±æ ¿øÇÑ´Ù°í Çغ¸ÀÚ. IPIP encapsulationÀÌ À̸¦ °¡´ÉÇÏ°Ô ÇØÁØ´Ù. ÁÖÀÇÇÒ °ÍÀº encapsulationÀÌ A¿Í B ³×Æ®¿÷ »óÀÇ È£½ºÆ®µéÀÌ ÀÎÅÍ³Ý »ó¿¡¼­ ¼­·Î Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¹®Á¦¸¦ ÇØ°áÇÏ´Â °ÍÀÌ ¾Æ´Ï¸ç ¿©ÀüÈ÷ À̸¦ À§Çؼ± IP Masquerade °°Àº ±â¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. encapsulationÀº º¸Åë ¶ó¿ìÅͷνáÀÇ ¸Ó½Å ±â´É¿¡ ÀÇÇØ ±¸ÇöµÈ´Ù.

¸®´ª½º ¶ó¿ìÅÍ `A'´Â ¾Æ·¡¿Í °°Àº ½ºÅ©¸³Æ®·Î ¼³Á¤µÉ °ÍÀÌ´Ù.

        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=fff.ggg.hhh.iii
        #
        # Ethernet configuration
        ifconfig eth0 192.168.1.1 netmask $mask up
        route add -net 192.168.1.0 netmask $mask eth0
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # Tunnel device configuration
        ifconfig tunl0 192.168.1.1 up
        route add -net 192.168.2.0 netmask $mask gw $remotegw tunl0
        

¸®´ª½º ¶ó¿ìÅÍ `B'´Â ¾Æ·¡¿Í °°Àº ½ºÅ©¸³Æ®·Î ¼³Á¤µÉ °ÍÀÌ´Ù.

        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=aaa.bbb.ccc.ddd
        #
        # Ethernet configuration
        ifconfig eth0 192.168.2.1 netmask $mask up
        route add -net 192.168.2.0 netmask $mask eth0
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # Tunnel device configuration
        ifconfig tunl0 192.168.2.1 up
        route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
        

¸í·É:

        route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
        

ÀÌ´Â `192.168.1.0/24·Î ÇâÇÏ´Â µ¥ÀÌŸ±×·¥µéÀ» IPIP ĸ½¶È­ µ¥ÀÌŸ±×·¥ ¼Ó¿¡ ³Ö¾î¼­ aaa.bbb.ccc.ddd'ÀÇ ÁÖ¼Ò·Î º¸³½´Ù'´Â °ÍÀ» ¶æÇÑ´Ù.

¼³Á¤Àº ¾ç Ãø¿¡¼­ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. tunnel ÀåÄ¡´Â ¶ó¿ìÆýÿ¡ ÀÚ½ÅÀÌ ¶ó¿ìÆÃÇϵµ·Ï ¹ÞÀº µ¥ÀÌŸ±×·¥À» Áý¾î³ÖÀ» IP µ¥ÀÌŸ±×·¥ÀÇ ¸ñÀûÁö·Î `gw'¸¦ »ç¿ëÇÑ´Ù. ±× ¸Ó½Å ¿ª½Ã IPIP µ¥ÀÌŸ±×·¥À» decapsulateÇÏ´Â ¹ýÀ» ¾Ë¾Æ¾ß ÇÏ¸ç ´Ù½Ã¸»ÇØ tunnel ÀåÄ¡°¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

A tunneled host configuration.

¶ó¿ìÆà ÇÏ´Â °ÍÀÌ Àüü ³×Æ®¿÷ÀÏ ÇÊ¿æ ¾øÀ¸¸ç ´Ü ÇϳªÀÇ IP ÁÖ¼Ò¸¸À» ¶ó¿ìÆÃÇÒ ¼ö ÀÖ´Ù. ÀÌ·² °æ¿ì `¿ø°Ý' ¸Ó½ÅÀÇ tunl ÀåÄ¡´Â ¸Ó½ÅÀÇ IP ÁÖ¼Ò·Î ¼ºÀýÇØ¾ß Çϸç A ÂÊ¿¡¼± tunnel ÀåÄ¡¸¦ ÅëÇÑ ³×Æ®¿÷ ¶ó¿ìÆà º¸´Ù´Â È£½ºÆ® ¶ó¿ìÆÃ(±×¸®°í Proxy Arp)¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ¿¡ ¸Âµµ·Ï ¼³Á¤À» Á¶Á¤Çؼ­ ¾Ë¸Â°Ô ´Ù½Ã ±×·Áº¸ÀÚ. ÀÌÁ¦ ¿ì¸®´Â ¿ÏÀüÈ÷ ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖ°í È£½ºÆ® `A'¿¡ ÀÇÇØ Áö¿øµÇ´Â ¿ø°Ý ³×Æ®¿÷ÀÇ ÀϺÎÀÎ °Íó·³ ÀÛµ¿ÇÏ·Á´Â È£½ºÆ® `B'¸¦ °¡Áö°í ÀÖ´Ù.

 192.168.1/24

     -
     |      ppp0 =                ppp0 =
     |  aaa.bbb.ccc.ddd      fff.ggg.hhh.iii
     |
     |   /-----\                 /-----\
     |   |     |       //        |     |
     |---|  A  |------//---------|  B  |
     |   |     |     //          |     |
     |   \-----/                 \-----/
     |                      also: 192.168.1.12
     -

¸®´ª½º ¶ó¿ìÅÍ `A'´Â ´ÙÀ½°ú °°ÀÌ ¼³Á¤µÈ´Ù.

        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=fff.ggg.hhh.iii
        #
        # Ethernet configuration
        ifconfig eth0 192.168.1.1 netmask $mask up
        route add -net 192.168.1.0 netmask $mask eth0
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # Tunnel device configuration
        ifconfig tunl0 192.168.1.1 up
        route add -host 192.168.1.12 gw $remotegw tunl0
        #
        # Proxy ARP for the remote host
        arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub
        

¸®´ª½º È£½ºÆ® `B'´Â ´ÙÀ½°ú °°ÀÌ ¼³Á¤µÈ´Ù.

        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=aaa.bbb.ccc.ddd 
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # Tunnel device configuration
        ifconfig tunl0 192.168.1.12 up
        route add -net 192.168.1.0 netmask $mask gw $remotegwtunl0
        

ÀÌ·± Á¾·ùÀÇ ¼³Á¤Àº Mobile-IP ºÐ¾ß¿¡¼­ ´õ¿í ÀüÇüÀûÀÌ´Ù. ÀÌ ºÐ¾ß¿¡¼­´Â ÇϳªÀÇ È£½ºÆ®°¡ ÀÎÅÍ³Ý ³»ºÎ¸¦ µ¹¾Æ´Ù´Ï¸é¼­µµ ³»³» ÇϳªÀÇ IP ÁÖ¼Ò¸¦ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù. ½ÇÁ¦·Î À̸¦ ´Ù·ç´Â °Í¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÑ´Ù¸é Mobile-IP ºÎºÐÀ» Âü°íÇ϶ó.

6.9 IP Masquerade

¸¹Àº »ç¶÷µéÀº ÀÎÅͳݿ¡ Á¢¼ÓÇϱâ À§ÇØ ´Ü¼øÇÑ ´ÙÀ̾ó¾÷ °èÁ¤À» °¡Áö°í ÀÖÀ» »ÓÀÌ´Ù. ÀÌ·± Á¾·ùÀÇ ¼³Á¤À» ¾²´Â °ÅÀÇ ¸ðµç »ç¶÷µéÀº ISP (Internet Service Provider) ·ÎºÎÅÍ ´ÜÁö ÇϳªÀÇ IP ÁÖ¼Ò¸¸À» ÇÒ´ç¹Þ´Â´Ù. ÀÌ´Â ´Ü ÇϳªÀÇ È£½ºÆ®°¡ ³×Æ®¿÷¿¡ Á¢¼ÓÇÒ °æ¿î ÀϹÝÀûÀ¸·Î ÃæºÐÇÏ´Ù. IP Masquerade´Â ¿©·¯ È£½ºÆ®µéÀÌ ´ÙÀ̾ó¾÷ ¿¬°áÀ» ÇÏ´Â ¸Ó½Åó·³ º¸À̵µ·Ï ÇϹǷνá ÇÑ IP ÁÖ¼Ò¸¦ ¿©·¯ ¸Ó½ÅµéÀÌ ¾µ ¼ö ÀÖµµ·Ï ÇÏ´Â ÀÏÁ¾ÀÇ Æ®¸¯ÀÌ´Ù. (¿ªÀÚÁÖ: masquerade´Â °¡Àå ¹«µµÈ¸, °¡ÀåÇÏ´Ù. ÀÇ ¶æÀÌ´Ù.) ÇÑ ÀÛÀº Á¦ÇÑÁ¡Àº masquerade ±â´ÉÀ» ÇÑ ¹æÇâÀ¸·Î¸¸ ÀÛµ¿ÇÑ´Ù´Â °ÍÀÌ´Ù. ´Ù½Ã ¸»ÇØ ÀÌ ±â´ÉÀ» »ç¿ëÇϴ ȣ½ºÆ®´Â Á¢¼ÓÀ» Çϵµ·Ï ¿äûÀ» ÇÒ ¼ö´Â ÀÖÁö¸¸ ¿ø°Ý È£½ºÆ®·ÎºÎÅÍÀÇ Á¢¼ÓÀ» ¹Þ¾ÆµéÀÌÁö´Â ¸øÇÑ´Ù´Â °ÍÀÌ´Ù. talk°°Àº ÀϺΠ³×Æ®¿÷ ¼­ºñ½º´Â ÀÛµ¿ÇÏÁö ¾ÊÀ¸¸ç ftp°°Àº ¼­ºñ½ºµéÀº ¼öµ¿ (PASV) ¸ðµå·Î ÀÛµ¿Çϵµ·Ï ¼³Á¤µÇ¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¿îÀÌ ÁÁ°Ôµµ WWW³ª irc, telnet °°Àº ´ëºÎºÐÀÇ ³×Æ®¿÷ ¼­ºñ½º´Â Àß ÀÛµ¿ÇÑ´Ù.

Kernel Compile Options:

        Code maturity level options  --->
            [*] Prompt for development and/or incomplete code/drivers
        Networking options  --->
            [*] Network firewalls
            ....
            [*] TCP/IP networking
            [*] IP: forwarding/gatewaying
            ....
            [*] IP: masquerading (EXPERIMENTAL)
        

º¸Åë ¿©·¯ºÐÀº ¸®´ª½º ¸Ó½Å¿¡ ´Üµ¶(standalone) ¸Ó½ÅÀÏ ¶§Ã³·³ slipÀ̳ª ppp ¿¬°áÀ» Áö¿øÇϵµ·Ï ¸¸µç´Ù. ÀÌ¿¡ Ãß°¡·Î ¿¹¾àµÈ ³×Æ®¿÷ ÁÖ¼Ò·Î ¼³Á¤ÀÌ µÈ ÀÌ´õ³Ý °°Àº ¶Ç ´Ù¸¥ ³×Æ®¿÷ ÀåÄ¡¸¦ °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. masquerade µÉ È£½ºÆ®µéÀº ÀÌ µÎ ¹ø° ³×Æ®¿÷ »ó¿¡ Á¸ÀçÇÑ´Ù. °¢°¢ÀÇ ÀÌ È£½ºÆ®µéÀº À§ ¸®´ª½º ¸Ó½ÅÀÇ ÀÌ´õ³Ý Æ÷Æ® ÁÖ¼Ò¸¦ ±âº» gateway³ª ¶ó¿ìÅÍ·Î ¼³Á¤ÇÑ´Ù.

ÀüÇüÀûÀÎ ¼³Á¤Àº ¾Æ·¡Ã³·³ º¸ÀδÙ.

-                                   -
 \                                  | 192.168.1.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |                | Linux | .1.1 |
NET =================| masq  |------|
    |    PPP/slip    | router|      |  --------
   /                 ---------      |--| host |
  /                                 |  |      |
 /                                  |  --------
-                                   -

IPFWADMÀ» ÀÌ¿ëÇÑ Masquerading

ÀÌ ¼³Á¤¿¡ °¡Àå ÀûÀýÇÑ ¸í·ÉÀº ¾Æ·¡¿Í °°´Ù.

        # Network route for ethernet
        route add -net 192.168.1.0 netmask 255.255.255.0 eth0
        #
        # Default route to the rest of the internet.
        route add default ppp0
        #
        # Cause all hosts on the 192.168.1/24 network to be masqueraded.
        ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 
        

IPCHAINSÀ» ÀÌ¿ëÇÑ Masquerading

IPFWADMÀ» ¾²´Â °æ¿ì¿Í ºñ½ÁÇϳª ¸í·É ±¸Á¶°¡ ¹Ù²î¾ú´Ù.

        # Network route for ethernet
        route add -net 192.168.1.0 netmask 255.255.255.0 eth0
        #
        # Default route to the rest of the internet.
        route add default ppp0
        #
        # Cause all hosts on the 192.168.1/24 network to be masqueraded.
        ipchains -A forward -s 192.168.1.0/24 -j MASQ
        

¿©·¯ºÐÀº IP Masquerade Resource Page·ÎºÎÅÍ Linux IP Masquerade¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ masquerading¿¡ ´ëÇÑ ¸Å¿ì ÀÚ¼¼ÇÑ ¹®¼­·Î ``IP-Masquerade mini-HOWTO''°¡ ÀÖ´Ù(¿©±â¿¡´Â ´Ù¸¥ OSµéÀ» Linux masquerade ¼­¹ö¿Í ÇÔ²² ÀÛµ¿Çϵµ·Ï ¼³Á¤ÇÏ´Â ¹ýµµ ³ª¿ÍÀÖ´Ù).

6.10 IP Transparent Proxy

ip transparent proxy´Â ´Ù¸¥ ¸Ó½ÅÀ» ÇâÇÏ´Â ¼­ºñ½º³ª ¼­¹ö¸¦ ÀÌ ¸Ó½ÅÀÇ ±× ¼­ºñ½ºµé·Î µ¹¸± ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ±â´ÉÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ±â´ÉÀº ¸®´ª½º ¸Ó½ÅÀ» ¶ó¿ìÅÍ·Î ¾²´Â µ¿½Ã¿¡ proxy ¼­¹ö·Î ¾²´Â °÷¿¡¼­ À¯¿ëÇÏ´Ù. ¿©·¯ºÐÀº °¢ ¼­ºñ½ºµé·Î ¿À´Â ¸ðµç ¿¬°áµéÀ» ·ÎÄ® proxy ¼­¹ö·Î µ¹¸± ¼ö ÀÖ´Ù.

Kernel Compile Options:

        Code maturity level options  --->
                [*] Prompt for development and/or incomplete code/drivers
        Networking options  --->
                [*] Network firewalls
                ....
                [*] TCP/IP networking
                ....
                [*] IP: firewalling
                ....
                [*] IP: transparent proxy support (EXPERIMENTAL)
        

transparent proxy Ư¡ÀÇ ¼³Á¤Àº ipfwadm ¸í·ÉÀ» »ç¿ëÇؼ­ ÇÑ´Ù.

¾µ¸¸ÇÑ ¿¹°¡ ¾Æ·¡¿¡ ÀÖ´Ù.

        root# ipfwadm -I -a accept -D 0/0 telnet -r 2323
        

ÀÌ ¿¹´Â ¾î¶² È£½ºÆ®ÀÇ telnet Æ÷Æ®(23)¿¡ µé¾î¿À´Â ¿¬°áµéÀ» ¸ðµÎ ÀÌ È£½ºÆ®ÀÇ 2323 Æ÷Æ®·Î µ¹·ÁÁØ´Ù. ¸¸¾à ±× Æ÷Æ®¿¡¼­ ¼­ºñ½º¸¦ µ¹¸®°í ÀÖ´Ù¸é À̸¦ telnet ¿¬°á·Î µ¹¸®°Å³ª log¸¦ ³²±â°Å³ª ȤÀº ¿øÇÏ´Â ¹«¾ùÀ̵ç ÇÒ ¼ö ÀÖ´Ù.

´õ¿í Èï¹ÌÀÖ´Â ¿¹´Â ¸ðµç http ¿¬°áµéÀ» local cache¸¦ ÅëÇϵµ·Ï µ¹¸®´Â °ÍÀÌ´Ù. ±×·¯³ª proxy ¼­¹ö°¡ »ç¿ëÇÏ´Â protocolÀº º¸ÅëÀÇ http¿Í´Â ´Ù¸£´Ù. Ŭ¶óÀ̾ðÆ®°¡ http¸¦ ÀÌ¿ëÇÒ °æ¿î www.server.com:80¿¡ ¿¬°áµÇ¾î /path/page¸¦ ¿äûÇÏÁö¸¸ local cache¿¡ ¿¬°áµÉ ¶§´Â proxy.local.domain:8080¿¡ Á¢¼ÓÇؼ­ www.server.com/path/page¸¦ ¿äûÇÑ´Ù.

http ¿äûÀ» local proxy¸¦ ÅëÇØ °É·¯³»±â À§Çؼ± transproxy¶ó´Â ÀÛÀº ¼­¹ö¸¦ »ðÀÔÇؼ­ ±× ÇÁ·ÎÅäÄÝÀ» ¹Þ¾ÆµéÀÏ ÇÊ¿ä°¡ ÀÖ´Ù (ÀÌ´Â À¥¿¡¼­ ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù). ÀÌ transproxy¸¦ 8081 Æ÷Æ®¿¡¼­ µ¹µµ·Ï °áÁ¤ÇÑ ´ÙÀ½ ¾Æ·¡ ¸í·ÉÀ» ³»¸°´Ù.

        root# ipfwadm -I -a accept -D 0/0 80 -r 8081
        

±×·¯¸é transproxy ÇÁ·Î±×·¥Àº ¿ÜºÎ ¼­¹ö·Î °¡´Â ¸ðµç ¿¬°áÀ» ¹ÞÀº ÈÄ ÇÁ·ÎÅäÄÝ°£ÀÇ »óÀÌÁ¡À» º¸Á¤ÇÑ ÈÄ local proxy·Î ±× ¿¬°áµéÀ» º¸³¾ °ÍÀÌ´Ù.

6.11 IPv6

¿©·¯ºÐÀÌ ¸· IP ³×Æ®¿öÅ·À» ÀÌÇØÇϱ⠽ÃÀÛÇÏ´Â ¼ø°£ ±ÔÄ¢ÀÌ º¯ÇüµÇ¾ú´Ù. IPv6´Â Internet ProtocolÀÇ version 6¿¡ ´ëÇÑ ÁÙÀÓ¸»ÀÌ´Ù. IPv6´Â ÇÒ´çÇÒ IP ÁÖ¼ÒÀÇ ºÎÁ· ¹®Á¦¸¦ ±Øº¹Çϱâ À§ÇØ °³¹ßµÇ¾ú´Ù. IPv6 ÁÖ¼Ò´Â 16¹ÙÀÌÆ®(128ºñÆ®)¸¦ »ç¿ëÇÑ´Ù. IPv6´Â ¸¹Àº ´Ù¸¥ ¼öÁ¤ »çÇ×µéÀ» Æ÷ÇÔÇϴµ¥ ±× Áß¿£ IPv4 ³×Æ®¿÷ º¸´Ù IPv6 ³×Æ®¿÷À» ´Ù·ç±â ½±µµ·Ï ÇÏ´Â ´Ü¼øÈ­µµ ÀÖ´Ù.

¸®´ª½º´Â ÀÌ¹Ì ¿ÏÀüÇÏÁö´Â ¾ÊÁö¸¸ ÀÛµ¿Àº ÇÏ´Â IPv6¸¦ 2.2.* ¹öÁ¯ÀÇ Ä¿³Îµé¿¡¼­ ±¸ÇöÇØ ³ù´Ù.

¿©·¯ºÐÀÌ ÀÌ »õ·Î¿î ÀÎÅÍ³Ý ±â¼úÀ» °æÇèÇØ º¸°í ½Í°Å³ª ÇÊ¿äÇÏ´Ù¸é www.terra.net¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Â IPv6-FAQ¸¦ Àо¶ó.

6.12 Mobile IP

"IP mobility"¶ó´Â ¸»Àº ÇÑ È£½ºÆ®°¡ IP ÁÖ¼ÒÀÇ º¯È­³ª ¿¬°á Áß´Ü ¾øÀÌ ÀÎÅͳÝÀÇ ÇÑ ÁöÁ¡¿¡¼­ ´Ù¸¥ ÁöÁ¡À¸·Î ¿¬°áÀ» À̵¿½Ãų ¼ö ÀÖ´Â ´É·ÂÀ» ¸»ÇÑ´Ù. ÀϹÝÀûÀ¸·Î IP È£½ºÆ®°¡ ¿¬°á ÁöÁ¡À» ¹Ù²Ù´Â °æ¿ì IP ÁÖ¼Òµµ ¹Ù²ã¾ß¸¸ ÇÑ´Ù. IP Mobility´Â mobile È£½ºÆ®¿¡ °íÁ¤ IP ÁÖ¼Ò¸¦ ÇÒ´çÇÏ°í ÀÌ ÁÖ¼Ò·Î ¿À´Â µ¥ÀÌŸ±×·¥µéÀ» ½ÇÁ¦ »ç¿ëµÇ´Â IP ÁÖ¼Ò·Î µ¹¸®´Â ÀÚµ¿ ¶ó¿ìÆðú ÇÔ²² IP encapsulation (tunneling)À» »ç¿ëÇÏ¿© ÀÌ ¹®Á¦¸¦ ±Øº¹ÇÑ´Ù.

¸®´ª½º¿¡¼­ ¿ÏÀüÇÑ IP mobility µµ±¸¸¦ Á¦°øÇϱâ À§ÇÑ ÇÁ·ÎÁ§Æ®°¡ ÁøÇàÁßÀÌ´Ù. ÀÌ ÇÁ·ÎÁ§Æ®¿Í µµ±¸µéÀÇ »óÅ´ Linux Mobile IP Home Page¿¡¼­ º¼ ¼ö ÀÖ´Ù.

6.13 Multicast

IP Multicast´Â ´Ù¸¥ IP ³×Æ®¿÷ »óÀÇ ¸¹Àº IP È£½ºÆ®µéÀÌ ±×µé¿¡°Ô µ¿½Ã¿¡ º¸³»Áö´Â IP µ¥ÀÌŸ±×·¥À» ¹Þµµ·Ï ÇØÁØ´Ù. ÀÌ ±â¼úÀº ¿Àµð¿À¿Í ºñµð¿À Àü¼Û µîÀÇ ÀÎÅͳÝÀ» ÅëÇÑ ¹æ¼ÛÀ» À§ÇØ °³¹ßµÇ¾ú´Ù.

Kernel Compile Options:

Networking options  --->
        [*] TCP/IP networking
        ....
        [*] IP: multicasting

¾à°£ÀÇ µµ±¸¿Í ÀÛÀº ³×Æ®¿÷ ¼³Á¤ÀÌ ÇÊ¿äÇÏ´Ù. ¸®´ª½º »ó¿¡¼­ÀÇ Multicast Áö¿ø¿¡ ´ëÇÑ Ãß°¡ Á¤º¸´Â Multicast-HOWTO¸¦ º¸¶ó.

6.14 NAT - Network Address Translation

IP Network Address Translation ±â´ÉÀº ¸®´ª½º IP Masquerade ±â´ÉÀÇ ÈξÀ Ç¥ÁØÈ­µÈ ±â¼úÀÌ´Ù. RFC-1631¿¡ º¸´Ù ÀÚ¼¼È÷ ±â¼úµÇ¾î ÀÖ´Ù. NAT´Â IP-Masquerade°¡ Áö¿øÇÏÁö ¸øÇÏ´Â ±â´ÉµéÀ» Á¦°øÇϸç ÀÌ´Â NAT°¡ ¹æÈ­º®ÀÌ ÀÖ´Â ¶ó¿ìÅͳª º¸´Ù Å« ±Ô¸ðÀÇ È¯°æ¿¡ ´õ ÀûÇÕÇϵµ·Ï ÇØÁØ´Ù.

Linux 2.0.29 Ä¿³Î¿¡ ´ëÇÑ NAT ±¸ÇöÀÇ ¾ËÆÄ ¹öÁ¯ÀÌ Michael.Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de¿¡ ÀÇÇØ °³¹ßµÇ¾î ¿Ô´Ù. MichaelÀÇ ¹®¼­¿Í ±¸ÇöÀº Linux IP Network Address Web Page ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

»õ·Î¿î Linux 2.2.x Ä¿³ÎµéÀº ¸î¸î NATÀÇ ±â´ÉÀ» ¶ó¿ìÆà ¾Ë°í¸®Áò¿¡ Æ÷ÇÔÇÏ°í ÀÖ´Ù.

6.15 Traffic Shaper - º¯È¯ °¡´ÉÇÑ ´ë¿ªÆø

traffic shaper´Â »õ ÀÎÅÍÆäÀ̽º ÀåÄ¡¸¦ ¸¸µå´Â µå¶óÀ̹öÀÌ´Ù. ±× ÀåÄ¡µéÀº »ç¿ëÀÚÀÇ Á¤ÀÇ¿¡ µû¶ó Æ®·¡ÇÈÀÌ Á¦ÇÑµÉ ¼ö ÀÖ°í ½ÇÁ¦ Àü¼Û¿¡ À־ ½ÇÁ¦ÀÇ ³×Æ®¿÷ ÀåÄ¡¿¡ ÀÇÁ¸Çϸ鼭 ³×Æ®¿÷ Æ®·¡ÇÈÀ» ¹ÛÀ¸·Î ³»º¸³»´Â ÀåÄ¡·Î ¾²ÀÏ ¼ö ÀÖ´Ù.

shaper´Â Linux-2.1.15¿¡¼­ ¼Ò°³µÇ¾ú°í Linux-2.0.36À¸·Î °Å²Ù·Î Àû¿ëµÇ¾ú´Ù (shaper ÀåÄ¡ÀÇ Á¦ÀÛÀÚÀ̸ç Linux-2.0¸¦ °ü¸®ÇÏ´Â Alan Cox°¡ ¹èÆ÷ÇÑ 2.0.36-pre-patch-2¿¡ Æ÷ÇԵǾî ÀÖ´Ù).

traffic shaper´Â ¸ðµâ·Î¸¸ ÄÄÆÄÀ쵃 ¼ö ÀÖÀ¸¸ç shapecfg ÇÁ·Î±×·¥À¸·Î ¾Æ·¡¿Í °°Àº ¹æ½ÄÀ¸·Î ¼³Á¤µÈ´Ù.

        shapecfg attach shaper0 eth1
        shapecfg speed shaper0 64000
        

shaper ÀåÄ¡´Â ÆÐŶµéÀÌ ¶ó¿ìÆà Å×ÀÌºí¿¡ µû¶ó shaper¸¦ Åë°úÇÏ´Â °æ¿ì¿¡ ¹ÛÀ¸·Î ³ª°¡´Â Æ®·¡ÇÈÀÇ ´ë¿ªÆø¸¸À» Á¶ÀýÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ``Ãâ¹ßÁö ÁÖ¼Ò¿¡ ÀÇÇÑ ¶ó¿ìÆÃ'' ±â´ÉÀº ¸®´ª½º ¶ó¿ìÅ͸¦ »ç¿ëÇϴ ƯÁ¤ È£½ºÆ®µéÀÇ Àü¹ÝÀûÀÎ ´ë¿ªÆøÀ» Á¦ÇÑÇÏ´Â µ¥ µµ¿òÀ» ÁØ´Ù.

Linux-2.2´Â ÀÌ¹Ì ±×·± ¶ó¿ìÆÃÀ» Áö¿øÇϸç Linux-2.0¿¡¼­ ÀÌ ±â´ÉÀÌ ÇÊ¿äÇÏ´Ù¸é ftp.invlogic.com¿¡¼­ Mike McLaganÀÌ ¸¸µç ÆÐÄ¡¸¦ Á¡°ËÇØ º¸¶ó. shaper¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â Documentationnetworking/shaper.txt¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.

µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇÑ shapingÀ» ½ÃÇèÇØ º¸°í ½Í´Ù¸é ftp.systemy.it·ÎºÎÅÍ »õ ¹öÁ¯ÀÎ rshaper-1.01¸¦ ½ÃµµÇØ º¼ ¼ö ÀÖ´Ù.

6.16 Linux-2.2¿¡¼­ÀÇ ¶ó¿ìÆÃ

LinuxÀÇ ÃֽŠ¹öÁ¯ÀÎ 2.2´Â ¶ó¿ìÆà Á¤Ã¥¿¡ ÀÖ¾î ¸¹Àº À¯¿¬¼ºÀ» Á¦°øÇÑ´Ù. ºÒÇàÈ÷µµ ¿©·¯ºÐÀº ÀÌ ÇÏ¿ìÅõ ¹®¼­ÀÇ ´ÙÀ½ ¹öÁ¯À» ±â´Ù¸®°Å³ª Ä¿³Î ¼Ò½º¸¦ ÀÐÀ¸·¯ °¡¾ßÇÑ´Ù.


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