Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > º¸¾È(security) > ¹æÈ­º®, ÆÐŶ ÇÊÅ͸µ / IDS µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù


  IPFW How-To ¹ø¿ª ¹®¼­ - part 1 (±Û Daemonize) ÀÛ¼ºÀÏ : 2005/01/17 23:49
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 8073
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      -------------------------------------------------------------------------
    Ãâó : http://www.optro.co.kr/~silpapa/?page=view&ctn=tips&id=218&num=1
    Á¦¸ñ: IPFW How-To ¹ø¿ª ¹®¼­ - part 1
    ±Û¾´ÀÌ: Daemonize [ȨÆäÀÌÁö] ¡¡¡¡¡¡±Û¾´½Ã°£: 04/02/25 18:08 ¡¡¡¡¡¡ÀÐÀº¼ö: 446
    -------------------------------------------------------------------------

    ¹Ì¿Ï¼º ¹®¼­ÀÔ´Ï´Ù. ½Ã°£ ³¯¶§¸¶´Ù Á¶±Ý¾¿ Á¶±Ý¾¿ Çؼ®ÇÒ·Á°í ÇÕ´Ï´Ù.
    °ü¸®ÀÚ´ÔÀÌ "´ë·« Á¶Ä¡ ¾ÈŸ" ¶ó°í ÆǴܵǽøé Áö¿öÁÖ¼¼¿ä. Ū.
    ¿ø¹®Àº www.defcon1.org ¿¡ °¡½Ã¸é Àß º¸½Ç¼ö ÀÖ½À´Ï´Ù.
    ±×¸®°í °í¼ö´ÔµéÀÇ ¾Æ³¦¾ø´Â ÁöÀûµµ °¨»ç.

    1. Packet Filters ¿¡ ´ëÇÑ ÀϹÝÀû ¼Ò°³

    Ipfw(8) Àº ipfirewall(4) ÀÇ ¸í·ÉÇà ÇÁ·Î±×·¥À¸·Î FreeBSD ¿¡¼­ °¡Àå º¸ÆíÀûÀÎ IP ÇÊÅ͸µ, Traffic Á¶Á¤ µµ±¸À̸ç FreeBSD ¿¡¼­ ±âº»ÀûÀ¸·Î ´Ù·ê ¼ö ÀÖ½À´Ï´Ù. (¹æÈ­º® ÀÚü´Â Ä¿³Î ±âº»¼³Á¤¿¡ ºñÈ°¼ºÈ­ µÇ¾î ÀÖ½À´Ï´Ù. )
    Ipfw ·ê(rules)ÀÇ ³í¸®Àû ÀÛ¿ëÀº ´Ù¸¥ packet filter µé°ú À¯»çÇÕ´Ï´Ù. ´Ü IPFilter ÀÇ °æ¿ì ·ê(rules)À» ´Ù·ë¿¡ ÀÖ¾î ´Ù¼Ò ºñÈ¿À²ÀûÀ̸ç, ÃÖÀûÈ­ ½ÃÅ°´Âµ¥ ¸¹Àº ³ë·ÂÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. (Àͼ÷ÇØÁ³´ÙÇÏ´õ¶óµµ ipf(8)¿¡ ¾²ÀÌ´Â quick À̶ó´Â Å°¿öµå°¡ ¸Å¹ø Àüü ·ê¼Â(ruleset) À» °Ç³Ê¶ÙÁö ¾Êµµ·Ï ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù.) ÀÌ·¸°Ô ¸»ÇÏ´Â °ÍÀÌ ipf(8) ÀÇ È¿¿ëÀ» ±ï¾Æ³»¸®´Â °ÍÀº ¾Æ´Ï¸ç ±× ³ª¸§´ë·Î ÀåÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù. Ưº°È÷ ÇÑÂÊ¿¡ ¾ø´Â ±â´ÉÀ» ÇÊ¿ä·Î ÇÑ´ÙµçÁö ÇÏÁö ¾Ê´Â´Ù¸é ¾î¶² ÆÐŶ ÇÊÅ͸µ ÅøÀ» »ç¿ëÇÒ °ÍÀÎÁö ÃÖÁ¾ÀûÀ¸·Î °áÁ¤ÇÏ´Â °ÍÀº °³ÀÎÀû ¼±ÅÃÀÔ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¿ì¸®´Â ³ªÁß¿¡ µÎ Åø¿¡ ´ëÇØ Ã¶ÀúÇÑ ºñ±³ÀÛ¾÷À» ÇÒ °ÍÀÔ´Ï´Ù.

    ¼­¼úÇÑ´ë·Î ipfirewall(4)Àº ÆÐŶ ÇÊÅ͸µ ¹æÈ­º® (packet filtering firewall)À» ÀǹÌÇÕ´Ï´Ù. ÀÌ´Â ÆÐŶ¿¡ ±âÃÊÇÑ ¿¬°áÀ» °¨½ÃÇÒ»Ó¸¸ ¾Æ´Ï¶ó FreeBSD 4.0 ¿¡¼­ º¸µí ±Ùº»ÀûÀÎ ¿¬°á ÁöÇâÀû(connection oriented) ÇÊÅ͸µ¿¡ ÀÇÇØ ÀÛµ¿ÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ¾çÂʸðµÎ¿¡¼­ Çϳª ȤÀº ±× ÀÌ»óÀÇ ³ÝÆ®¿÷ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÑ ÇÊÅ͸µÀÌ ÇàÇØÁý´Ï´Ù. ÀÌ°ÍÀº 'Åõ¸í(transparent)'ÇÏ°Ô ÀÌ·ç¾îÁö´Âµ¥ ¸»ÇÏÀÚ¸é ¾î¶² °ÍÀÌ ºí·Ï´çÇϱâ Àü±îÁö´Â ¹æÈ­º®ÀÌ ÀÖ¾ú´ÂÁö ¾ËÁö ¸øÇÑ´Ù´Â ¶æÀÔ´Ï´Ù.

    ¹æÈ­º® ±¸ÃàÀº ¸¹Àº ÇüŸ¦ ¶Ù°í ÀÖÁö¸¸ Å©°Ô µÎ °¡Áö Á¤Ã¥À¸·Î ³ª´· ¼ö ÀÖ½À´Ï´Ù. ¿­¸° ¹æÈ­º®Àº ±âº»ÀûÀ¸·Î ¸ðµç ÆÐŶÀÇ Åë°ú¸¦ Çã¿ëÇÏ°í ¿øÄ¡ ¾Ê´Â °Í¸¸À» ºí·ÏÇÕ´Ï´Ù. ¹Ý¸é¿¡ ´ÝÈù ¹æÈ­º®Àº ±âº»ÀûÀ¸·Î ¸ðµç ÆÐŶÀ» ¸·°í ¿øÇÏ´Â ÆÐŶ¸¸ Åë°ú½Ãŵ´Ï´Ù. ÈÄÀÚ°¡ Á» ´õ ŸÀÌÆ®ÇÑ ¹æÈ­º® ¼³Á¤ÀÌÁö¸¸ ±¸¼ºÇϱⰡ ±î´Ù·Ó½À´Ï´Ù. ¿Ö³ÄÇϸé Àڽŵµ ¾ËÁö ¸øÇÑ Ã¤ ÀÚ½ÅÀÌ ¿øÇÏ´Â Æ®·¡ÇȱîÁö ½±°Ô ¸·À» ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.

    2. IPfirewall È°¼ºÈ­Çϱâ

    Ipfirewall(4)Àº µÎ °¡Áö ¹æ¹ýÀ¸·Î È°¼ºÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀûÀýÇÑ ¿É¼ÇÀ» Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ ³Ö°í Ä¿³ÎÀ» ÀçºôµåÇϰųª ȤÀº Ä¿³Î¿¡ kldload(8)À» ÅëÇØ ipfw.ko ¸ðµâÀ» µ¿ÀûÀ¸·Î ·ÎµùÇÏ¸é µË´Ï´Ù. µÎ °¡Áö ¹æ¹ý ¸ðµÎ ipfirewall ÀÇ ±âº»Àû ±¸µ¿¿¡ ÃæºÐÇÕ´Ï´Ù¸¸, ÀüÀÚÀÇ ¹æ¹ý¸¸ÀÌ ·Î±ë(logging)µîÀÇ Ãß°¡ÀûÀÎ ¼³Á¤ ¿É¼ÇÀ» Á¦°øÇØ ÁÝ´Ï´Ù.

    µ¿Àû(dynamically)À¸·Î ipfw À» ·Îµù½ÃÅ°·Á¸é °£´ÜÈ÷ ´ÙÀ½ ¸í·ÉÀ» ³»¸®¸é µË´Ï´Ù.

    # kldload ipfw
    #

    Á¤Àû(statically)À¸·Î ipfirewall À» È°¼ºÈ­½ÃÅ°·Á¸é ´ÙÀ½¿¡ ÇØ´çÇÏ´Â ³»¿ëÀÌ Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ µé¾î°¡¾ß ÇÕ´Ï´Ù.

    options IPFIREWALL

    ±×·¯°í³ª¼­, Ä¿³ÎÀ» ÀçºôµåÇÏ°í ÀçºÎÆÃÇϸé ipfirewall(4)ÀÌ Á¤Àû(statically) À¸·Î È°¼ºÈ­ µË´Ï´Ù.

    ÇÏÁö¸¸, º¸ÀÌ´Â °Íó·³ ±×¸® °£´ÜÇÑ ¹®Á¦´Â ¾Æ´Õ´Ï´Ù. °ü¸®ÀÚ´Â Äܼ־տ¡ ÀÖÀ» ¶§¸¸ À§¿Í °°Àº ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹æÈ­º®À» È¿À²ÀûÀ¸·Î Çϱâ À§Çؼ± Á»´õ Ãß°¡ÀûÀÎ ¿É¼ÇÀÌ ÇÊ¿äÇÕ´Ï´Ù. À§¿¡¼­ ¸»ÇÑ ¹æÈ­º® Á¤Ã¥ (¿­¸° ȤÀº ´ÝÈù)À» »ó±âÇÑ´Ù¸é ±âº» ¹æÈ­º® Á¤Ã¥ÀÌ ´ÝÈù Á¤Ã¥ (Closed)À϶§ »óȲÀÌ ¿Ö ±×¸® º¹ÀâÇØÁö´Â°¡¸¦ ±ú´ÞÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·± ¿¬À¯·Î, ¾î¶°ÇÑ Ãß°¡ ÀÛ¾÷¾øÀÌ ´Ü¼øÈ÷ ipfirewall(4)¸¦ È°¼ºÈ­½ÃŲ´Ù¸é ¸ðµç ³×Æ®¿÷ Æ®·¡ÇÈÀÌ ºí·ÏµÇ´Âµ¥, ÀÌ°ÍÀÌ °ð ¿ø°ÝÀ¸·Î ipfirewall(4)¸¦ È°¼ºÈ­½ÃÄ×À» ¶§ Àç¾ÓÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. Àç¾ÓÀº ÇÇÇØÁú¼ö ÀÖ½À´Ï´Ù¸¸ ±×·³¿¡µµ ºÒ±¸, Á¤ÀûÀ̵ç (statically) µ¿ÀûÀ̵ç(dynamically)°£¿¡ ipfirewall(4)¸¦ ¿ø°Ý¿¡¼­ È°¼ºÈ­½ÃÅ°´Â °ÍÀº °áÄÚ ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù.

    ¾î¶µç ¿ø°ÝÁö¿¡¼­ ipfirewall(4)¸¦ µ¿ÀûÀ¸·Î ·Îµù½ÃÅ°°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½ ¸í·ÉÀ» ±ÇÀåÇÕ´Ï´Ù.

    #kldload ipfw && ipfw -q add 65000 allow all from any to any
    #

    ÀÌ°ÍÀº ¸ðµç Æ®·¡ÇÈÀ» ¸·´Â ´ë½Å Çã¿ëÇÏ´Â ·êÀ» ÃëÇϸç,
    µû¶ó¼­ ¿ø°ÝÁö ÄÄÇ»ÅÍ¿¡¼­ Â÷´Ü´çÇÏÁö ¾Ê½À´Ï´Ù. ºñ½ÁÇÏ°Ô, ³×Æ®¿÷¿¡ ¿¬°áµÈ ·ÎÄøӽſ¡¼­ ´ç½ÅÀÇ ¿¬°áÀ» ²÷°í ½ÍÁö ¾ÊÀ»¶§ ±ÇÀåÇÕ´Ï´Ù.

    ipfirewall(4)À» ¿ø°ÝÀ¸·Î Ä¿³Î¿¡¼­ Á¤ÀûÀ¸·Î(statically) È°¼ºÈ­½ÃÅ°´Â ÀÏÀº Ãß°¡ÀûÀÎ ÀÛ¾÷À» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ ¿É¼ÇÀ» Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ Áý¾î³Ö°í Ä¿³ÎÀ» ÀçºôµùÇß´Ù¸é, rc.conf ÆÄÀÏ¿¡ Àû¾îµµ µÎ°¡ÁöÀÇ ipfirewall(4) ¿É¼ÇÀ» Ãß°¡ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº ÄÄÇ»ÅÍ°¡ ÀçºÎÆõžúÀ»¶§, µðÆúÆ®·Î ¼³Á¤µÈ ´ÝÈù ¹æÈ­º® Á¤Ã¥¿¡ ÀÇÇØ »ç¿ëÀÚ°¡ ºí·Ï´çÇÏ´Â ÀÏÀ» ¸·±â À§ÇÔÀÔ´Ï´Ù.

    firewall_enable="YES"
    firewall_type="OPEN"

    /etc/rc.firewall ¿¡´Â ¿©·¯°¡Áö ¹æÈ­º® Á¤Ã¥ÀÌ ÀÖ½À´Ï´Ù¸¸, ³ªÁß¿¡ »ìÆ캸±â·Î ÇÏ°Ú½À´Ï´Ù. Áö±Ý Ãʺ¸ÀÚ¿¡°Ô ÀÖ¾î ¿­¸°(Open) Á¤Ã¥ÀÌ ÁÁÀº ¹æÆíÀÔ´Ï´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î Ä¿³Î ¼³Á¤ ÆÄÀÏ¿¡ ´ÙÀ½ÀÇ ¿É¼ÇÀ» Ãß°¡ÇØ ÁÜÀ¸·Î½á ipfw(8)ÀÇ ¿­¸°(Open) Á¤Ã¥À» Ä¿³Î¿¡ È°¼ºÈ­ ½Ãų¼ö ÀÖ½À´Ï´Ù.

    options IPFIREWALL_DEFAULT_TO_ACCEPT

    ÀÌ °æ¿ì, À§ÀÇ rc.conf ÆÄÀÏ ¿É¼ÇÀº Ä¿³ÎÀÇ ±âº»ÀûÀÎ ¼³Á¤¿¡ ÀÇÇØ, ¿ì¸®°¡ ¿­¸°(Open) Á¤Ã¥À» È°¼ºÈ­ ½ÃÅ°´Âµ¥ ÀÖ¾î /etc/rc.firewall À» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â °Í°ú ºñ½ÁÇÏ°Ô ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.
    ±×·¯³ª Ä¿³Î¿¡ ÀÌ¿Í °°Àº ±â´ÉÀ» È°¼ºÈ­½ÃÄ×´Ù ÇÏ´õ¶óµµ, ¾î¶µç /etc/rc.conf ÆÄÀÏ¿¡ ¿É¼ÇÀ» Ãß°¡ÇÏ´Â ÀÏÀº ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ¿Ö³ÄÇϸé ÈÄ¿¡ Á¤ÇØÁø ·ê¼Â(ruleset)À» »ç¿ëÇϱâ À§ÇØ /etc/rc.firewall À» »ç¿ëÇÏ°Ô µÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ÀÌ°ÍÀº Ä¿³Î¿¡ µ¿ÀûÀ¸·Î(dynamically) ·Îµù½ÃÄ×À»¶§¿¡µµ µ¿ÀÏÇÏ°Ô Àû¿ëµÇ¸ç ÀÌÈÄ¿¡ ÀçºÎÆÃÈÄ¿¡µµ ÀÚµ¿ÀûÀ¸·Î ipfw.ko ¸ðµâÀÌ ·ÎµùµÇ°Ô µË´Ï´Ù. /etc/rc.conf ÆÄÀÏÀÇ ¹æÈ­º® È°¼ºÈ­ ±â´ÉÀº ipfw.ko ¸ðµâÀ» ·ÎµùÇÏ´Â Æí¸®ÇÑ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.

    Ä¿³Î¿¡ Á¤ÀûÀ¸·Î ipfirewall(4)¸¦ È°¼ºÈ­½ÃÄ×À»¶§ ¾µ ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ ¿É¼ÇÀ¸·Î ÀÎÇØ »ç¿ëÀÚ´Â Àû¾îµµ ÇöÀçÀÇ FreeBSD µðÀÚÀλó ipfirewall(4)À» È°¼ºÈ­½ÃÅ°´Â µ¥ ÀÖ¾î ÀÌ°ÍÀÌ ´õ ³ªÀº ¹æ¹ýÀ̶ó ±ú´ÞÀ» °ÍÀÔ´Ï´Ù. IPFIREWALL_DEFAULT_TO_ACCEPT ¿Í ´õºÒ¾î,

    options IPFIREWALL_VERBOSE
    options IPFIREWALL_FORWARD
    options IPFIREWALL_VERBOSE_LIMIT=#

    ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

    IPFIREWALL_VERBOSE ´Â 'log' Å°¿öµå¸¦ °¡Áø ¸ðµç ·ê¿¡ ÀÇÇØ ÆÐŶ È°µ¿ (packet activity)À» syslogd(8)¿¡ ÀÚ¼¼ÇÏ°Ô º¸°íÇÏ°Ô ÇÔÀ¸·Î½á ipfirewall(4)¸¦ ÅëÇÑ Æ®·¡ÇÈ ±â·ÏÀ» °¡´ÉÇÏ°Ô ÇØÁÝ´Ï´Ù.
    ÀÌ°Ç ³ªÁß¿¡ ´õ ¸íÈ®ÇÏ°Ô ¼³¸íÇÏ°Ú½À´Ï´Ù.

    IPFIREWALL_FORWARD´Â ipfirewall(4)ÀÇ 'fwd' Ä¿¸Çµå¿¡ ÀÇÇÑ ´Ù¸¥ È£½ºÆ®·ÎÀÇ ÆÐŶ Æ÷¿öµùÀ» °¡´ÉÇÏ°Ô Çϸç ÀÌ°ÍÀº ³ªÁß¿¡ Á» ´õ ±í°Ô ´Ù·ïÁú °ÍÀÔ´Ï´Ù.

    IPFIREWALL_VERBOSE_LIMIT=# Àº ƯÁ¤ÇÑ ·ê¿¡ ÀÇÇÑ ÆÐŶ ±â·Ï¿¡ ´ëÇØ ÇѰ踦 ¸íÈ®È÷ Á¤ÇÕ´Ï´Ù. ÀÌ°Í¿¡ ÀÇÇØ syslogd(8)¿Í (³ªÁß¿¡ º¼ /etc/syslog.conf ¿¡ ºñÈ°¼ºÈ­ µÇ¾îÀÖÁö¾Ê´Ù¸é) »ç¿ëÀÚ ÄܼÖÀº ipfirewall(4) ÀÇ ÀÛµ¿¿¡ ÀÇÇØ Á¡·É´çÇÏÁö ¾Ê°Ô µË´Ï´Ù. '#' Àº ÀÛµ¿ÇÏ°í ÀÖ´Â ·ê¿¡ ´ëÇÑ ±â·ÏÀÇ ¿¬¼ÓÀû Ƚ¼ö·Î ´ë½ÅÇÕ´Ï´Ù.

    ¸¸¾à IPv6 ¸¦ È°¼ºÈ­ ½ÃÄ×´Ù¸é IPv6 ÆÐŶ¿¡ ´ëÇØ ±×¿¡ »óÀÀÇÏ´Â ¹æÈ­º®ÀÇ È°µ¿ÀÌ ´ÙÀ½ÀÇ ¿É¼ÇÀ¸·Î Àû¿ëµË´Ï´Ù.

    options IPV6FIREWALL
    options IPV6FIREWALL_VERBOSE
    options IPV6FIREWALL_VERBOSE_LIMIT=100
    options IPV6FIREAWLL_DEFAULT_TO_ACCEPT

    Ãß°¡·Î, ipfirewall(4)¿Í °ü·ÃÇÏ¿© 4°¡Áö ¿É¼ÇÀÌ Ä¿³Î¿¡ ´õ ¼³Á¤µÉ ¼ö ÀÖÁö¸¸, ¿©±â¼­´Â ´Ù·çÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇÏ¸é ±×°ÍµéÀº ±âº»ÀûÀÎ ¹æÈ­º®ÀÇ ÀÛ¿ë¿¡ ÇÊ¿äÇÏÁö ¾ÊÀ¸¸ç Á» ´õ º¹ÀâÇÑ routing »óȲ°ú °ü·ÃÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù.

    2.1 rc.firewall and OPEN firewalls

    »ç¿ëÀÚ°¡ ¹æÈ­º® ŸÀÔ(firewall type)À» ¾î¶»°Ô Á¤Çß´ÂÁö¿¡ »ó°ü¾øÀÌ ¸¸¾à firewall_enable="YES" °¡ rc.conf ÆÄÀÏ¿¡ Ãß°¡µÇ¾î ½Ã½ºÅÛÀÌ ÀçºÎÆõǾúÀ» °æ¿ì, rc.conf ÆÄÀÏ·Î ºÎÅÍ /etc/rc.firewall ÀÌ ½ÃÀÛµÇ¸ç ±×°ÍÀ¸·ÎºÎÅÍ ´ÙÀ½ µÎ ÇàÀÌ ½ÇÇàµË´Ï´Ù.

    ${fwcmd} add 100 pass all from any to any via lo0
    ${fwcmd} add 200 deny all from any to 127.0.0.0/8

    {fwcmd} ´Â »ç¿ëÀÚ°¡ ipfw(8)À» Á¶¿ëÈ÷(quietly) ±¸µ¿½Ãų °ÍÀÎÁö (-q ¿É¼Ç) ȤÀº ±×·¸Áö ¾ÊÀºÁö¿¡ µû¶ó rc.firewall ½ºÅ©¸³Æ®ÀÇ Àü¹ÝºÎ¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. óÀ½ ·êÀº ·çÇÁ ¹é µð¹ÙÀ̽º (lo0)¸¦ ÅëÇÑ ¸ðµç Æ®·¡ÇÈÀ» Çã¿ëÇÏ¸ç µÎ¹ø° ·êÀº localhost ³×Æ®¿÷À» °Ü³ÉÇÑ ¸ðµç Æ®·¡ÇÈÀ» ¸·½À´Ï´Ù.
    óÀ½ ·êÀº ·ÎÄà ¸Ó½ÅÀÇ IPC (inter-process communication) Æ®·¡ÇÈÀ» Çã¿ëÇϴµ¥ ¹Ýµå½Ã ÇÊ¿äÇϸç, µÎ¹ø° ·êÀº ¿ÜºÎÀÇ ¸ðµç ÆÐŶÀÌ ·çÇÁ¹é µð¹ÙÀ̽º ÀåÄ¡ ÁÖ¼ÒÀÎ localhost ÁÖ¼Ò·Î °¡´Â °ÍÀ» Çã¿ëÇÏÁö ¾ÊÀ½À¸·Î½á »ç¿ëÀÚÀÇ ·ÎÄà Ʈ·¡ÇÈÀ» º¸È£ÇÏ°Ô µË´Ï´Ù. ¸¸¾à ÀÌ µÎ ·êÀÌ ¾ø°í ¹æÈ­º®ÀÌ ±âº» ¼³Á¤ÀÌ ´ÝÈù Á¤Ã¥(Closed policy) À̶ó¸é ´Ù¸¥ °Í º¸´Ù RPC(3) ¼­ºñ½º°¡ ÀÛµ¿ÇÏÁö ¾Ê´Â °É º¸°Ô µÉ °ÍÀÔ´Ï´Ù.

    ´ÙÀ½, »ç¿ëÀÚ°¡ rc.conf ÆÄÀÏ¿¡ "OPEN" À̶ó´Â ¹æÈ­º® ÇüŸ¦ ÁöÁ¤ÇßÀ» ¶© ´ÙÀ½ ¶óÀÎÀÌ È°¼ºÈ­µË´Ï´Ù.

    ${fwcmd} add 65000 pass all from any to any

    ÀÌ°ÍÀº ·ÎÄÃÈ£½ºÆ®¸¦ ÇâÇÑ °ÍÀ» Á¦¿ÜÇÑ ¸ðµç ¿ÜºÎÀÇ Æ®·¡ÇÈÀ» Çã¿ëÇÏ°í ¸ðµç ³»ºÎ Æ®·¡ÇÈÀÇ ¿ÜºÎ Àü´ÞÀ» °¡´ÉÄÉ ÇÕ´Ï´Ù. Ä¿³Î¿¡ IPFIREWALL_DEFAULT_TO_ACCEPT ¸¦ Ãß°¡ÇÏ´Â °Íµµ µ¿ÀÏÇÑ ÀÛ¿ëÀ» ÇÕ´Ï´Ù. Ä¿³Î¿¡ ¿­¸°(OPEN) Á¤Ã¥À» °¡´ÉÇÏ°Ô ÇÏ¿´´Ù¸é #65535 ruleÀº "deny ip from any to any" ´ë½Å "allow ip from any to any" ¸¦ ÀÚµ¿À¸·Î ÃëÇÏ°í Ãß°¡·Î ¿­¸° Á¤Ã¥¿¡ °üÇÑ rc.firewall ÆÄÀÏ¿¡ ÀÖ´Â #65500 rule À» ºÒÇÊ¿äÇÏ°Ô ¸¸µé °ÍÀÔ´Ï´Ù. ±×·± ¿¬À¯·Î Ä¿³Î¿£ ¿­¸° Á¤Ã¥À¸·Î Ç쵂 ´Ù¸¥ ¾î¶°ÇÑ ·êÀ» Çã¿ëÇÏÁö ¾Ê°í ½Í´Ù¸é ¹æÈ­º® ŸÀÔ(firewall type)À» "UNKNOWN"À¸·Î Á¤ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù. ¸¸¾à ¿¹¸¦ µé¾î ´Ü¼øÈ÷ ¹æÈ­º®À» ½ÃÇèÇϰųª ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ °üÂûÇÏ°íÀÚ ÇÑ´Ù¸é ¹æÈ­º® ŸÀÔÀ» ÀÌó·³ open À¸·Î ÇÏ´Â °É·Î ÃæºÐÇÏ¸ç ¼½¼Ç 3À¸·Î ³Ñ¾î°¡µµ µË´Ï´Ù.

    ÇÏÁö¸¸ rc.firewall ¿¡ ÀÖ´Â ¹Ì¸® Á¤ÇØÁø ruleset À» »ç¿ëÇϰųª ÀڽŸ¸ÀÇ Æ¯Á¤ÇÑ rulesets À» ¸¸µé°íÀÚ ÇÑ´Ù¸é µÎ ¿É¼Ç (OPEN or UNKNOWN)¸¸À¸·Ð ºÒÃæºÐÇÕ´Ï´Ù.

    2.2 ruleset ·ÎµùÇϱâ

    ruleset °ú °ü·ÃÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº Å©°Ô µÎ °¡Áö ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. rc.firewall ¿¡ ¹Ì¸® Á¤ÇØÁø °ÍÀ» »ç¿ëÇϵçÁö, ȤÀº ÀڽŸ¸ÀÇ °ÍÀ» ¸¸µå´Â °ÍÀÔ´Ï´Ù. ÀúÀÚ´Â µÎ°¡Áö ÀÌÀ¯·Î ÈÄÀÚ¸¦ ÃßõÇÕ´Ï´Ù.

    - ÀϹÝÀû Âü°í ÆÄÀÏ·Î Á¸ÀçÇÏ´Â rc.firewall ÆÄÀÏÀ» °Çµå¸®Áö ¾Ê°í ´ç½ÅÀÇ ±âÈ£¿¡ ¸Â°Ô ¹æÈ­º® ·êÀ»
    Á¤ÇÒ ¼ö ÀÖ´Ù.

    - ipfw(8) ±¸¹®¿¡ Àͼ÷ÇØÁ®¾ß Çϴµ¥ ±×·¸°Ô ÇÔÀ¸·Î½á ipfw(8)À» ´õ ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.

    2.2.1 ¹Ì¸® Á¤ÇØÁø Firewall Types

    ¹°·Ð, ÃÖÁ¾Àû °áÁ¤Àº °ü¸®ÀÚ ¸¶À½ÀÌÁÒ. ´©±º°¡ ¹Ì¸® ¸¸µé¾îÁø rulesets À» »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é rc.firewall ÆÄÀÏÀ» Àß Àо°í ±×°ÍµéÀ» È°¼ºÈ­ ½ÃÅ°±â Àü¿¡ ±×°Íµé¿¡ Àͼ÷ÇØÁ®¾ß ÇÕ´Ï´Ù. ¾î¶² rulesets À» ·ÎµùÇÒ °ÍÀÎÁö´Â rc.conf ÆÄÀÏÀÇ firewall_type=" " ¿¡ ÀÇÇØ Á¤ÇØÁý´Ï´Ù. "OPEN" ŸÀÔ°ú º°µµ·Î ¼¼°¡Áö »ç¿ë°¡´ÉÇÑ Å¸ÀÔÀÌ ÀÖ½À´Ï´Ù.

    "CLIENT" ÀÌ ruleset Àº ¸î °¡Áö ±âº»Àû rules ¸¦ °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. ±×°ÍÀº ·ÎÄà ³×Æ®¿÷ (NAT µÚ¿¡ ÀÖ´Â »ç¼³ ³×Æ®¿÷ÀÌ µÉ ¼öµµ ÀÖ½À´Ï´Ù.) À¸·Î ºÎÅÍ ÀÚ½ÅÀ¸·ÎÀÇ ¸ðµç Æ®·¡ÇÈÀ» Çã¿ëÇÕ´Ï´Ù. mail, DNS, NTP ÆÐŶµéÀ» ³×Æ®¿÷ ³»¿ÜºÎ·Î Çã¿ëÇÏ¸ç »ç¼³ ³×Æ®¿÷ (private network) ¿ÜºÎ¿¡ ÀÖ´Â ¾î¶°ÇÑ È£½ºÆ®·Î ºÎÅÍÀÇ ³»ºÎ È£½ºÆ®µé »çÀÌÀÇ TCP ¿¬°á ÃʱâÈ­¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ°ÍÀº Ưº°ÇÑ ÇÁ·Ï½Ã°¡ ¾ø´Ù¸é vanilla NAT ¼³Á¤ÇÏ¿¡¼­ ºÒ°¡´ÉÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ¼³Á¤Àº default open À̳ª default closed Á¤Ã¥ ¸ðµÎ¿¡°Ô À¯È¿ÇÕ´Ï´Ù.

    "SIMPLE" ÀÌ ruleset Àº ´Ù¼Ò ¿ª¼³ÀûÀÔ´Ï´Ù. CLIENT ruleset º¸´Ù ´õ º¹ÀâÇÏ°í óÀ½¿¡ Á÷°üÀûÀ¸·Î ÀÌÇØÇÏ·Á¸é ÀÏÁ¤ÇÑ internet RFC Áö½ÄÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×°ÍÀº ÀÓÀÇÀÇ ³»ºÎ È£½ºÆ®¿Í °°Àº ÁÖ¼Ò¸¦ °¡Áö´Â ¿ÜºÎ ÆÐŶÀÇ Ä§ÀÔ¿¡ ÀÇÇÑ spoofing À» ¸·À»·Á°í ÇÕ´Ï´Ù. RFC 1918 ¿¡ Á¤ÀÇµÈ ¸ðµç private-net ÁÖ¼Ò¸¦ °¡Áø ÆÐŶÀÇ À¯ÀÔÀ̳ª ´©Ãâ(leaking in or out)À» ¸·À» °ÍÀ̸ç Manning internet draft (http:www.ietf.org/internet-drafts/draft-manning-dsua-03.txt)¿¡ Á¤ÀÇµÈ ¸ðµç Ãß°¡ÀûÀÎ ¶ó¿ìÆà ºÒ°¡ÇÑ ³×Æ®¿÷ (additional non-routable networks)À» ¸·À» °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ±×·³¿¡µµ ºÒ±¸ÇÏ°í mail,www,DNS,NTP Æ®·¡ÇÈ°ú fragmented µÈ ÆÐŶÀ» Åë°ú½Ãų °ÍÀÌ¸ç ¿ÜºÎ È£½ºÆ®¿¡ ÀÇÇØ ¿¬°áÀ» ÃʱâÈ­ÇÒ·Á´Â Àǵµ (attempts for connexions to be initiated) ¸¦ ¸·À»»Ó¸¸ ¾Æ´Ï¶ó CLIENT ó·³ ÀÌ·¯ÇÑ ¸ðµç ½Ãµµ¸¦ ±â·ÏÇÒ °ÍÀÔ´Ï´Ù.

    "CLOSED" ÀÌ°ÍÀº ¾î¶°ÇÑ ·ê(rules)À» °¡´ÉÇÏ°Ô ÇÏ´Â °Ç ¾Æ´Ï¶ó¼­ ±â¼úÀûÀ¸·Î º¸ÀÚ¸é ruleset Àº ¾Æ´Õ´Ï´Ù. »ç½Ç ±×°ÍÀº ¿ì¸®°¡ ÇÏÁö¸»µµ·Ï °æ°í¹Þ¾Ò´ø ¸ðµç ÀϵéÀ» ´Ù ¸·¾ÆÁÖ¸ç ¸ðµç Æ®·¡ÇÈÀ» º¸·ùÇÏ´Â ±âº»ÀûÀÎ Æó¼â Á¤Ã¥À» Çã¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. (¾Õ¼­ ¼³¸íÇß´ø lo0À» ÅëÇÑ Æ®·¡ÇÈÀº Á¦¿ÜµË´Ï´Ù.) ±×°ÍÀº »ç¿ëÀÚ°¡ Ä¿³Î¿¡ ±âº» ¿­¸° Á¤Ã¥ (default open policy) ¸¦ °¡´ÉÇÏ°Ô ÇÏÁö ¾Ê¾Ò´Ù¸é ¸ðµç IP ¼­ºñ½º¸¦ ¹Ýµå½Ã ¸·¾ÆÁÝ´Ï´Ù. ÀÌ·¸°Ô ÇÏÁø ¸¶¼¼¿ä.

    2.2.2 Custom Firewall Types

    »ç¿ëÀÚ°¡ ÀڽŸ¸ÀÇ ruleset À» »ç¿ëÇϱâ·Î °áÁ¤Çß´Ù¸é rc.conf ÆÄÀÏÀÇ firewall_type ¿É¼ÇÀÇ °Í ´ë½Å ÇϳªÀÇ ÆÄÀÏÀ» Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, rc.conf ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¤Ô¤¶¤Ã¤µ´Ù°í »ý°¢ÇÕ´Ï´Ù.

    firewall_enable="YES"
    firewall_type="/etc/rc.firewall.rules"

    ÀÌ°ÍÀº »ç¿ëÀÚ°¡ ƯÁ¤ÇÑ ipfirewall(4) ruleset À» /etc/rc.firewall.rules ÆÄÀÏ¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ°Ô Çã¿ëÇÏ°í ºÎÆýø¶´Ù ±×°ÍÀ» ÀÛµ¿½Ãŵ´Ï´Ù. ´õ ³ª¾Æ°¡, ruleset À» ºü¸£°Ô Àû¿ë½ÃÅ°°íÀÚ ÇÑ´Ù¸é rc.conf ÆÄÀÏ¿¡ ´ÙÀ½ÇàÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

    firewall_quiet="YES"

    ÀÌ ÆÄÀÏ¿¡ ³ª¿Â ruleset Çü½ÄÀº rc.firewall ¿¡¼­ º¼ ¼ö ÀÖ´ø °Íµé°ú´Â ¾à°£ ´Ù¸¦ °Ì´Ï´Ù. rc.firewall Àº ÀÚ½ÅÀÌ ½º½º·Î ½ÇÇàµÇµµ·Ï °í¾ÈµÈ sh(1) ½ºÅ©¸³Æ®À̱⠶§¹®ÀÌÁÒ. ipfirewall(4)
    rule ÆÄÀÏÀº À¯ÀÏÇÏ°Ô ipfw(8)¿¡ ÀÇÇؼ­¸¸ ½ÇÇàµÇ¾îÁý´Ï´Ù. ±Ùº»Àû Â÷ÀÌÁ¡Àº rc.firewall ÆÄÀÏ¿¡´Â {fwcmd} ¶ó´Â ½© º¯¼ö°¡ Á¤ÀǵÇÀÖ´Â ¹Ý¸é ipfirewall(4) rule ÆÄÀÏ¿¡´Â ±×¿¡ »óÀÀÇÏ´Â °ÍÀ» º¼ ¼ö ¾ø´Ù´Â Á¡ÀÔ´Ï´Ù. °£´ÜÇÏ°Ô ÀڽŸ¸ÀÇ ·êµé »ÓÀÔ´Ï´Ù. ÈÄ¿¡ ¿ì¸®°¡ ¿¹½Ã ÆÄÀÏÀ» ¸¸µé¾î º¼¶§ ´Ü°èÀûÀ¸·Î ´õ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

    3. Basic Ipfw(8) Rule Syntax (±âº»ÀûÀÎ ipfw ¹®¹ý)

    ipfw(8) ¹®¹ýÀº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. ¾î¶°ÇÑ ·êÀÌ¶óµµ Äֿܼ¡¼­ ipfw(8) ¸í·ÉÀ¸·Î ½ÇÇà°¡´ÉÇÕ´Ï´Ù. ¹®¹ýÀ» µé¿©´Ùº¸±âÀü¿¡ ¸ÕÀú, ÇöÀç È°¼ºÈ­µÈ ipfirewall(4) ·êÀ» ¾î¶»°Ô ³ª¿­ÇÒ ¼ö ÀÖ´ÂÁö ´ë°­ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

    3.1 ·ê ³ª¿­Çϱâ (Listing Rules)

    °¡Àå °£´ÜÇÏ°Ô, ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.

    ipfw list

    ÀÌ´Â ·ê ³Ñ¹ö¿¡ ÀÇÇØ Á¤·ÄµÈ ¸ðµç ·êµéÀ» º¸¿©ÁÝ´Ï´Ù. ¾î¶°ÇÑ ÆÐŶÀÌ Æ¯Á¤ÇÑ ·ê¿¡ ÀÇÇØ ¸ÅÄ¡µÈ °¡Àå ÃÖ±Ù ½Ã°£À» µ¡ºÙ¿© Ç¥½ÃÇϱâ À§Çؼ­´Â ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.

    ipfw -t list

    ȤÀº

    ipfw show

    µÑ ¸ðµÎ °°Àº ¹æ½ÄÀ¸·Î °°Àº Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù. óÀ½ Ä÷³ÀÌ rule number ÀÌ°í, ±× ´ÙÀ½ÀÌ ·ê¿¡ ¸ÅÄ¡µÇ¾î ³ª°£(outgoing) ÆÐŶµéÀÇ ¼ýÀÚÀÔ´Ï´Ù. °è¼ÓÇؼ­ ·ê¿¡ ¸ÅÄ¡µÈ µé¾î¿Â(incoming) ÆÐŶÀÇ ¼öÀÌ°í ³¡À¸·Î ·ê ÀÚü°¡ ³ª¿É´Ï´Ù.

    3.2 ±âº» ¸í·É°ú ÀÛ¿ë

    °íÁ¤ ÇÊÅ͸µ ruleset (stateless filtering ruleset) À» ÀÛ¼ºÇÔ¿¡ ÀÖ¾î »ç¿ë °¡´ÉÇÑ ¿©·¯ ¿É¼Çµé¿¡ ´ëÇØ Á¶±Ý¾¿ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¿¹½ÃµÈ º¸±â¿¡¼­ ¹æÈ­º® Á¶Àý À¯Æ¿ (/sbin/ipfw)À» Á¦¿ÜÇÑ ·ê¸¸À» ¾ð±ÞÇÒ °ÍÀε¥ ¸¸¾à ¸í·ÉÇà¿¡¼­ ¼öµ¿À¸·Î µ¿ÀÏÇÑ ·êÀ» ¼³Á¤Çϱâ À§Çؼ­´Â ipfw À» ¼±ÇàÇÏ¿© »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¸°Ô ÇÏÁö ¾Ê´Â´Ù¸é ipfw(8)¿¡ Àü´ÞµÉ ·êÀ» ±¸¼ºÇÏ°íÀÚ ÇÒ¶§ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

    add 1000 allow all from any to any

    ÀÌ°ÍÀº °¡Àå ´Ü¼øÇÑ ·êÀÇ ¿¹ÀÔ´Ï´Ù. OPEN ¹æÈ­º® ŸÀÔÀ» ³íÇÑ ¼½¼Ç 2.1 ¿¡¼­ ·ê ³Ñ¹ö¸¦ Á¦¿ÜÇϸé Àü¿¡ ¹ú½á º¸¾Ò´ø °ÍÀÌÁÒ.
    * rc.firewall ÆÄÀÏÀÇ ±× ·ê¿¡ »ç¿ëµÈ "pass" ¶ó´Â Áö½ÃÀÚ (parameter)´Â "allow" ¹× "permit" À̶ó´Â °Íµé°ú µ¿ÀǾîÀÌ¸ç ¼­·Î ¹Ù²ã ¾µ ¼ö ÀÖ½À´Ï´Ù. À§ ·ê¿¡¼­´Â ¸ðµç Ãâ¹ßÁö (any source)¿¡¼­ ºñ·ÔµÈ ¸ðµç ÆÐŶµéÀ» ¾î¶°ÇÑ ¸ñÀûÁö(any destination)¸¦ ÇâÇϵç Åë°ú½ÃŲ´Ù´Â ¾ê±âÀÔ´Ï´Ù.

    ´ëºÎºÐÀÇ »óȲ¿¡¼­ ipfirewall(4) Àº ƯÁ¤ÇÑ ÆÐŶÀÌ ¾î¶² ·ê¿¡ µé¾î¸Â´Â ¼ø°£ ruleset °Ë»ç°¡ °Å±â¼­ ¸ØÃß°Ô µË´Ï´Ù.

    ¿ì¸®°¡ º» °Íó·³, °¡Àå ´Ü¼øÇÑ ÇüÅÂÀÇ ipfw(4) ¹®¹ýÀº

    [command] [rule #] [action] [proto] from [source] to [destination]

    ÀÔ´Ï´Ù.

    Áß¿äÇÑ ¸í·ÉÀº "add" ¿Í "delete" ÀÔ´Ï´Ù. ¸» ±×´ë·Î ÀÔ´Ï´Ù. ·ê ³Ñ¹ö´Â (rule number) ´Â 0ºÎÅÍ ½ÃÀÛÇؼ­ 65535 ¹ø¿¡¼­ ³¡³³´Ï´Ù. ¸¶Áö¸· ·ê ³Ñ¹ö´Â Ä¿³ÎÀÇ ±âº» ¹æÈ­º® Á¤Ã¥¿¡ ÀÇÇØ Ç×»ó Á¤Àǵ˴ϴÙ. ·ê¼Â (ruleset) Ž»öÀº (º¸Åë) °¡Àå ¸ÕÀú ¸ÅÄ¡µÈ ½ÃÁ¡¿¡¼­ ¸ØÃ߱⠶§¹®¿¡ ±¦Âú½À´Ï´Ù. ±×·¡¼­ ¸¸¾à °ÅÀÇ ³¡ÀÎ ·ê ( µÎ¹ø° ºÎÅÍ ¸¶Áö¸·±îÁö) ÀÇ ³Ñ¹ö°¡ 65000 ÀÌ°í ±×°ÍÀÌ rc.firewall ¿¡ ¸ðµç ÆÐŶÀ» Çã¿ëÇϵµ·Ï Á¤Àǵžî ÀÖ´Ù¸é ¸¶Áö¸· ·ê (65535)ÀÌ ´ÝÈù Ä¿³Î ¹æÈ­º® Á¤Ã¥ÀÏÁö¶ó ÇÏ´õ¶ó°í ±âº»ÀûÀ¸·Î ¸ðµç ÆÐŶÀ» Åë°ú½ÃÅ°°Ô µË´Ï´Ù. ¿Ö³ÄÇÏ¸é ¸¶Áö¸· ·êÀº °áÄÚ µµ´ÞÇÒ ¼ö ¾ø±â ¶§¹®ÀÌÁÒ.

    "action" Àº ¿©·¯ °¡Áö°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.

    "allow" | "pass" | "permit" - ÀÌ "action" À» °®°í ÀÖ´Â ·ê (rule)°ú ¸ÅÄ¡µÇ´Â ¸ðµç ÆÐŶÀº ¹æÈ­º®À» Åë°úÇϵµ·Ï Çã¿ëµÇ°í ruleset Ž»öÀº Á¾·áµË´Ï´Ù.

    "deny" | "drop" - ÀÌ "action" À» Æ÷ÇÔÇÏ´Â ·ê°ú ¸ÅÄ¡µÇ´Â ¸ðµç ÆÐŶÀº ¹æÈ­º®¿¡ ÀÇÇØ Á¶¿ëÈ÷ ºí·ÏµÇ°í (blocked) ruleset Ž»öÀº Á¾·áµË´Ï´Ù.

    add 1100 deny all from any to any

    ÀÌ°ÍÀº ¾î¶² °÷¿¡¼­ ¿Àµç ¾î¶² °÷À¸·Î °¡µç ¸ðµç ÆÐŶÀ» °ÅºÎÇÕ´Ï´Ù.

    "reset" - ÀÌ "action" À» Æ÷ÇÔÇÏ´Â ·ê°ú ¸ÅÄ¡µÇ´Â ¸ðµç ÆÐŶÀº ºí·ÏµÇ°í ipfirewall(4) Àº ±× ÆÐŶÀ» º¸³½ °÷ (source) ¿¡ TCP reset (RST) ¸Þ½ÃÁö¸¦ º¸³»·Á°í ½ÃµµÇÕ´Ï´Ù. ruleset Ž»öÀº Á¾·áµË´Ï´Ù. ´ç¿¬È÷ ÀÌ°ÍÀº ¿À·ÎÁö TCP ÆÐŶ¿¡°Ô¸¸ ÇØ´çµÇ±â ¶§¹®¿¡ ÇÁ·ÎÅäÄÝÀº "tcp" °¡ µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ÀÌ "tcp" ´Â ¿À·ÎÁö TCP ÆÐŶ°ú ¸ÅÄ¡µÉ»Ó, ¸ðµç IP ÆÐŶÀ» ÀǹÌÇÏ´Â "all" À» ÀǹÌÇÏÁö ¾Ê½À´Ï´Ù.

    ÀÌ·¯ÇÑ action Àº ±×·¸Áö ¾Ê´Ù¸é filtered port µÚ¿¡ ÀÖ´Â ¼­ºñ½º¸¦ ¹ß°ßÇÒ ¼ö ÀÖ´Â ³ÝÆ®¿÷ ½ºÄ³³Ê (network scanner) ¸¦ ¼ÓÀ̴µ¥ ¶§¶§·Î À¯¿ëÇÕ´Ï´Ù. ¹Ý¸é¿¡ ipfirewall(4) ÀÌ RST ÆÐŶÀ¸·Î ÀÀ´äÇÏ°Ô ²û µÈ ƯÁ¤ÇÑ IP ¿Í Æ÷Æ®·Î ´ë¿ë·®ÀÇ ÆÐŶÀÌ Àü´ÞµÇ¸é (flooded) Ä¿´Ù¶õ ÁüÀÌ µÉ ¼ö ÀÖ°í µû¶ó¼­ ´ç½ÅÀÇ ´ë¿ªÆø »ç¿ë·®À» ¹è·Î ÇÏ°Ô µË´Ï´Ù.

    add 1200 reset tcp from any to any

    ÀÌ°ÍÀº ¾îµð¿¡¼­ ¿Í¼­ ¾îµð·Î °¡µç ( from any to anywhere) ¸ðµç TCP ÆÐŶÀ» °ÅºÎÇÏ°í °¢°¢ TCP RST ÀÀ´ä ÆÐŶÀ» ÆÐŶÀÇ Àü¼ÛÁö (source) ·Î º¸³¾ °ÍÀÔ´Ï´Ù.

    "count" - ÀÌ action À» Æ÷ÇÔÇÏ´Â ·ê°ú ¸ÅÄ¡µÇ´Â ¸ðµç ÆÐŶÀº ipfirewall(4) ¿¡°Ô ÆÐŶ Ä«¿îÅÍ (packet counter) ¸¦ Áõ°¡½ÃÄÑÁÙ °ÍÀ» ¿äûÇÏ°Ô µË´Ï´Ù. ruleset Ž»öÀº °è¼Ó µË´Ï´Ù.

    add 1300 count all from any to any

    ÀÌ°ÍÀº ÀÌ ·ê¿¡ ´ëÇÑ ÆÐŶ Ä«¿îÅÍ (packet counter) ¸¦ Áõ°¡½ÃÅ°´Âµ¥, ÀÌ°ÍÀº Àü¼ÛÁö¿Í ¸ñÀûÁö¿¡ »ó°ü¾øÀÌ (coming from anywhere and going anywhere) ¸ðµç ÆÐŶ°ú ¸ÅÄ¡µË´Ï´Ù.

    "skipto [number]" - ÀÌ action À» Æ÷ÇÔÇÏ´Â ·ê°ú ¸ÅĪµÇ´Â ¸ðµç ÆÐŶÀº ipfirewall(4) ¿¡°Ô [number]¿¡ ÀÇÇØ Áö½ÃµÈ ³Ñ¹ö¿Í µ¿ÀÏÇϰųª ȤÀº ±×¿Í Å« ¹øÈ£·Î ½ÃÀ۵Ǵ ruleset À¸·Î ruleset Ž»öÀ» °è¼Ó ÇÒ °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù.

    add 1400 skipto 1800 all from any to any

    ÀÌ°ÍÀº óÀ½À¸·Î ÀÌ ·ê°ú ¸¸³ª´Â ¸ðµç ÆÐŶ¿¡ ´ëÇØ 1800 ¹ø ·ê±îÁöÀÇ ruleset Ž»öÀ» »ý·«ÇÕ´Ï´Ù.

    3.3. Specifying Protocols ( ÇÁ·ÎÅäÄÝ Á¤Çϱâ )

    "proto" ´Â ¸ÅĪÀ» ¿øÇÏ´Â ÇÁ·ÎÅäÄÝÀÔ´Ï´Ù. "ip" ³ª "all" Å°¿öµå´Â ¸ðµç ÇÁ·ÎÅäÄÝ¿¡ »óÀÀÇϴ ijġµÈ ÇÁ·ÎÅäÄÝÀ» ÀǹÌÇÕ´Ï´Ù. °áÄÚ ÇÁ·ÎÅäÄÝÀº Çѵΰ¡Áö°¡ ¾Æ´ÏÁö¸¸ ÈçÈ÷ ÀÚÁÖ ¸ÅÄ¡µÇ´Â ÆÐŶ ÇÁ·ÎÅäÄÝ (matched packet protocols) Àº icmp, udp, ±×¸®°í tcp ÀÔ´Ï´Ù. ·ê¿¡ ¸ÅĪµÉ ¼ö ÀÖ´Â ¸ðµç ÇÁ·ÎÅäÄÝÀ» º¸°í ½Í´Ù¸é 'more /etc/protocols' ÇϽʽÿä.

    3.4 Specifying the Source and Destination Address (Àü¼ÛÁö¿Í ¸ñÀûÁö¸¦ Á¤Çϱâ)

    "source" ¿Í "destination" Àº °°Àº Çü½ÄÀ» ÃëÇÕ´Ï´Ù. /etc/hosts ¿¡ Á¤Àǵǰųª ȤÀº dns ¸¦ ÅëÇÏ¿© Á¤ÀÇµÈ À̸§(name) ÀÌ µÉ ¼ö µµ ÀÖ°í, IP ÁÖ¼Ò (address) ³ª bitmask (ȤÀº netmask)¸¦ Æ÷ÇÔÇÑ ³×Æ®¿÷ ÁÖ¼Ò (network address) °¡ µÉ ¼öµµ ÀÖÀ¸¸ç ¸¸¾à ÇÁ·ÎÅäÄÝÀÌ tcp ȤÀº udp ¶ó¸é ¼±ÅÃÀûÀ¸·Î Çϳª³ª ±× ÀÌ»óÀÇ Æ÷Æ® ¹øÈ£¸¦ µ¿¹ÝÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î À̸§ (name) À̳ª IP ¸¦ »ç¿ëÇÏ´Â °ÍÀº Á÷°üÀûÀÔ´Ï´Ù.

    add 1000 allow all from myhost to hishost
    add 1100 deny all from 10.0.0.5 to any

    óÀ½ ·êÀº "myhost" ¿¡¼­ "hishost" ·Î °¡´Â ¸ðµç Æ®·¡ÇÈÀ» Çã¿ëÇÏ°í, µÎ¹ø° ·êÀº 10.0.0.5 ¿¡¼­ ÀÓÀÇÀÇ ¸ñÀûÁö·Î ÇâÇÏ´Â ¸ðµç ÆÐŶÀ» °ÅºÎÇÕ´Ï´Ù. ÀÏ´Ü ¾î¶² ÆÐŶÀÌ À̰͵é ÁßÇϳª¿¡ °É¸®°Ô µÇ¸é, ±× ÆÐŶ¿¡ ´ëÇÑ ruleset Ž»öÀº ¸ØÃß°Ô µÇ°í ±× ÆÐŶ¿¡ ¸ÅÄ¡µÇ´Â ·ê¿¡ Á¤ÇØÁø action ¿¡ µû¶ó Åë°úÇϰųª ¹ö·ÁÁý´Ï´Ù. (passed or dropped) ÀÌ°ÍÀÌ È£½ºÆ® ±â¹Ý (host based filtering) ÇÊÅ͸µÀÇ °£´ÜÇÑ ¿¹ÀÔ´Ï´Ù. Áï ¾î¶² ÆÐŶÀÌ ¾î¶² È£½ºÆ®·Î ºÎÅÍ Àü´ÞµÇ°í ȤÀº ¾î¶² È£½ºÆ®¿¡°Ô ÀüÇØÁö´Â°¡¿¡ µû¶ó ÇÊÅ͸µÀÌ µÇ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ³×Æ®¿÷ ±â¹Ý ÇÊÅ͸µ (network based filtering) Àº ÀÌ¿Í À¯»çÇÏ°Ô ÀÛµ¿ÇÏ¸ç ´ÙÀ½ ¿¹¿Í °°ÀÌ bitmask ³ª netmask ¸¦ »ç¿ëÇÑ ³×Æ®¿÷ ÀνÄÀÌ ÀÌ·ç¾îÁý´Ï´Ù.

    add 2000 allow all from 192.168.0.0/16 to any
    add 2100 deny all from any to 10.0.0.0:255.0.0.0

    óÀ½ ·êÀº IP ¹üÀ§°¡ 192.168.0.0 - 192.168.255.255 ¿¡ ÇØ´çµÇ´Â ¸ðµç Æ®·¡ÇÈÀ» Çã¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀ» ¸í½ÃÇϱâ À§ÇØ bitmask ¸¦ »ç¿ëÇÕ´Ï´Ù. bitmask ´Â ¸ÅÄ¡µÇ´Â ÆÐŶ¿¡ ´ëÇÏ¿© ¾ó¸¶³ª ¸¹Àº ³×Æ®¿÷ ÁÖ¼Ò (192.168.0.0) ÀÇ ºñÆ® (bits) °¡ µ¿ÀÏÇÏ°Ô Àû¿ëµÇ´ÂÁö ¸íÈ®È÷ ÇÕ´Ï´Ù.
    À§ ¿¹¿¡¼­ º¸ÀÚ¸é 32 ºñÆ® ÁÖ¼Ò¿¡¼­ óÀ½ 16 ºñÆ®°¡ °°°í (remain the same), ¾ÕÀÇ 16 ºñÆ®°¡ óÀ½ÀÇ µÎ 8 ºñÆ®ÀÎ 192.168 ·Î µÇ±â ¶§¹®¿¡ 192.168 À̶ó´Â ¾ÕÀÇ µÎ 8ºñÆ®¸¦ °¡Áø ¸ðµç Àü¼Û ÁÖ¼Ò (source)¿Í ¸ÅÄ¡µÇ´Â ¸ðµç ÁÖ¼Ò´Â ÀÌ ·ê°ú ¸ÅÄ¡µË´Ï´Ù.
    µÎ¹ø° ·êÀº ³Ý¸¶½ºÅ© (netmask) ¸¦ ÀÌ¿ëÇÏ¿© ÀÌ¿Í ºñ½ÁÇÑ ÀÛ¾÷À» ÇÕ´Ï´Ù. ³Ý¸¶½ºÅ©´Â ÁöÁ¤µÈ ³×Æ®¿÷ ÁÖ¼Ò¿¡¼­ ¾ó¸¶³ª ¸¹Àº bits °¡ ·ê°ú ¸ÅĪµÇ´Â Áö¸¦ °¡¸®Åµ´Ï´Ù. À§ÀÇ ¿¹ µÎ¹ø° ·ê¿¡¼­ ³Ý¸¶½ºÅ©´Â 255.0.0.0 ÀÔ´Ï´Ù. óÀ½ 8 ºñÆ®´Â ³ôÀº ºñÆ® (high bits)·Î Á¤ÇØÁý´Ï´Ù. ´Ù½Ã ¸»ÇÏÀÚ¸é óÀ½ 8ºñÆ®°¡ ³ô°Ô Á¤ÇØÁ³½À´Ï´Ù. (set high) ÀÌ°ÍÀº ipfw(8)¿¡°Ô ³×Æ®¿÷ ÁÖ¼Ò (10.0.0.0) ÀÇ Ã³À½ 8ºñÆ®¸¦ °¡Áø ÆÐŶ¸¸À» ¸ÅÄ¡½ÃÄÑ¾ß ÇÑ´Ù°í ÁöÁ¤ÇÕ´Ï´Ù. ³×Æ®¿÷ ÁÖ¼ÒÀÇ Ã³À½ 8ºñÆ®´Â 10À̱⠶§¹®¿¡, óÀ½ 8ºñÆ®°¡ 10 ÀÎ ¸ñÀûÁö ÁÖ¼Ò (10.0.0.0 °ú 10.255.255.255 »çÀÌÀÇ ¸ðµç ÁÖ¼Ò)¸¦ °¡Áø ¸ðµç ÆÐŶµéÀÌ ÀÌ ·ê¿¡ ¸ÅÄ¡µÇ°í action ¿¡ µû¶ó¼­ ¹ö·ÁÁö°Ô µË´Ï´Ù.

    ·ê°úÀÇ ¸ÅÄ¡´Â (rules matches) ´Â "not" À̶ó´Â Å°¿öµå¿¡ ÀÇÇØ ¹Ý´ë·Î ¼³Á¤µÉ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ ipfw(8) ¸í·ÉÇà¿¡¼­ 192.168.0.3 ¿¡¼­ ¿ÀÁö ¾ÊÀº ¸ðµç ÆÐŶÀº ¹ö·ÁÁö°Ô µË´Ï´Ù.

    add 1000 deny all from not 192.168.0.3

    3.4 Introduction to Bitmasks and Netmasks (ºñÆ®¸¶½ºÅ©¿Í ³Ý¸¶½ºÅ©¿¡ ´ëÇÑ ¼Ò°³)

    ºñÆ®¸¶½ºÅ©(bitmask) ¿Í ³Ý¸¶½ºÅ©(netmask)ÀÇ ±âº» ¿ø¸®´Â °£´ÜÇÕ´Ï´Ù¸¸ °¡²û¾¿ Ãʺ¸ À¯Àúµé¿¡°Ô È¥µ¿À» ÀÏÀ¸Åµ´Ï´Ù. ÀÌÁø ¼ýÀÚ¿¡ ´ëÇÑ Áö½ÄÀ» ÇÊ¿ä·Î Çϱ⠶§¹®ÀÌÁÒ. ÀÌÁø ÇüÅ·ΠµÈ(binary form) IP ÁÖ¼Ò´Â ´õ ¸¹Àº °É °¡¸£ÃÄÁÝ´Ï´Ù. ±×·¯³ª ½ÊÁø¹ý°ú ÀÌÁø¹ýÀÇ È¥¶õ½º·¯¿î °³³äÀº ½±°Ô Ãʺ¸ÀÚ¸¦ ´çȲÇÏ°Ô ¸¸µì´Ï´Ù. Àá½Ã °£´ÜÇÑ Âü°í·Î, ´ÙÀ½ÀÇ Å×À̺íÀº ±âº» C class¿¡ ´ëÀÀÇÏ´Â ºñÆ®¸¶½ºÅ©¿Í ³Ý¸¶½ºÅ©¿¡ ÀÇÇØ ¾î¶°ÇÑ ³×Æ®¿÷ ¿µ¿ªÀÌ ÁöÁ¤µÇ´ÂÁö, ±×¸®°í º¸´Ù ´õ ´ë±Ô¸ðÀÇ ³×Æ®¿÷À» À§ÇÑ Ãß°¡ÀûÀÎ ºñÆ®¸¶½ºÅ©/³Ý¸¶½ºÅ©¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ º¸¿©ÁÝ´Ï´Ù.

    Bitmask Netmask Total IPs / Usable IPs
    (ºñÆ®¸¶½ºÅ©) (³Ý¸¶½ºÅ©) (ÃÑ IP ¼ö) / (»ç¿ë°¡´ÉÇÑ IP ¼ö)
    32 255.255.255.255 1 1
    31 255.255.255.254 2 1
    30 255.255.255.252 4 2
    29 255.255.255.248 8 6
    28 255.255.255.240 16 14
    27 255.255.255.224 32 30
    26 255.255.255.192 64 62
    25 255.255.255.128 128 126
    24 255.255.255.0 256 254

    ¡¦¡¦

    22 255.255.252.0 1024 1022
    20 255.255.240.0 4096 4094
    16 255.255.0.0 65536 65534
    12 255.240.0.0 1048576 1048574
    8 255.0.0.0 256^3 (256^3)-2
    0 0.0.0.0 (all IPs)256^4 (256^4)-2

    º¸¸é ÀÏÁ¤ÇÑ ÆÐÅÏÀÌ ÀÖ½À´Ï´Ù. ÃÑ IP ¼ö´Â 2ÀÇ Á¦°öÇüÅÂÀÌ°í »ç¿ë°¡´ÉÇÑ IP ¼ö´Â °Å±â¿¡¼­ 2¸¦ »« °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¸ðµç IP ³×Æ®¿÷/¼­ºê³ÝÀº ³×Æ®¿÷°ú ºê·Îµåij½ºÆ® (network and broadcast)¿¡ ÇÒ´çµÈ 2°³ÀÇ IP¸¦ °®°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ³Ý¸¶½ºÅ©ÀÇ ¸¶Áö¸· 8ºñÆ®´Â 255¿¡¼­ ½ÃÀÛÇÏ¿© 2ÀÇ Á¦°öÇüÅ·Π°¨¼ÒÇÏ¸ç ¹Ý¸é¿¡ ºñÆ®¸¶½ºÅ©´Â 1ÀÇ Á¦°öÇüÅ·Π°¨¼ÒÇÕ´Ï´Ù. ¿Ö³ÄÇϸé 2Áø¹ý¿¡¼­´Â ½ÊÁø¹ý¿¡¼­Ã³·³ 10À¸·Î ³ª´©Áö ¾Ê°í 2·Î ³ª´©¾î ³ª¸ÓÁö¸¦ ¿ìÃø¿¡¼­ºÎÅÍ ÁÂÃøÀ¸·Î ½á ³ª°¡±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ·± ÆÐÅÏÀº ¸ðµç ³Ý¸¶½ºÅ©¿Í ºñÆ®¸¶½ºÅ©¿¡ µ¿ÀÏÇÏ°Ô Àû¿ëµË´Ï´Ù.

    À§¿¡¼­ º¸¾Ò´ø Å×À̺í/ÆÐÅÏÀ» °¡Áö°í °£´ÜÇÑ ¿¹·Î ´ÙÀ½¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â IP ¿µ¿ªÀ» ¾Ë¾Æº¸±â·Î ÇսôÙ.

    172.16.100.32/28

    ¿ì¼± ³×Æ®¿÷ ÁÖ¼Ò´Â 172.16.100.32 ÀÓÀ» ¾Ë ¼ö ÀÖÀ¸¹Ç·Î ¼­ºê³ÝÀº ±× ÁּҷκÎÅÍ ½ÃÀÛµÊÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. µÑ°, ºñÆ®¸¶½ºÅ© 28Àº ¸¶Áö¸· 4ºñÆ®(32-28)°¡ ³·°Ô Á¤ÇØÁö°í (set low) 28 ºñÆ®°¡ ³ô°Ô ¼³Á¤ (set high) µÇ¾î ÀÖÀ½À» ¾Ë°Ô µË´Ï´Ù. ³·°Ô ¼³Á¤µÈ ºñÆ®°¡ ÈξÀ Àû±â ¶§¹®¿¡ ±×°ÍµéÀ» »ç¿ëÇØ °è»êÇØ º¸±â·Î ÇÏÁÒ. ¸ðµç ºñÆ®´Â 2°¡Áö °ªÀ» °¡Áö±â ¶§¹®¿¡ 2^4 Àº ¾ó¸¶³ª ¸¹Àº È£½ºÆ®°¡ ÀÌ ºñÆ®¸¶½ºÅ©¿¡ ÀÇÇØ ¼³Á¤µÇ´ÂÁö ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ °æ¿ì¿¡¼­´Â 172.16.100.32 + 16 = 172.16.100.48 À̹ǷΠIP ¿µ¿ªÀº 172.16.100.32 – 172.16.100.48 ÀÔ´Ï´Ù. Å×À̺íÀ» º»´Ù¸é 16°³ÀÇ IP°¡ ºñÆ®¸¶½ºÅ© 28¿¡ »óÀÀÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ¸¹Ç·Î, ±×°ÍÀ» ÀÌ¿ëÇØ °è»êÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÀڽŸ¸ÀÇ ÈûÀ¸·Î °è»êÇÏ´Â °ÍÀÌ ÈÎ ³´½À´Ï´Ù. Çѹø ¹è¿ö¼­ °è¼Ó ½á ¸ÔÀ¸´Ï±î¿ä.

    3.4.2 Specifying Ports and Port Ranges (Æ÷Æ®¿Í Æ÷Æ® ¹üÀ§ ¼³Á¤)

    »ç¿ëÀÚ´Â ¿ª½Ã È£½ºÆ®¿Í ´õºÒ¾î Æ÷Æ® ±â¹Ý ÇÊÅ͸µ (port-based filtering)°ú ³×Æ®¿÷ ±â¹Ý ÇÊÅ͸µ (network-based filtering)À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ÷Æ®´Â ¸ñÀûÁö³ª Àü¼ÛÁö ÁÖ¼Ò ´ÙÀ½¿¡ °£´ÜÈ÷ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ÷Æ® ¹üÀ§´Â ´ë½¬ (dash)³ª ÄÞ¸¶, ȤÀº ºñÆ®¸¶½ºÅ©¸¦ »ç¿ëÇÏ¿© Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¡Àå Áß¿äÇÑ °ÍÀº ¸ðµç ÇÁ·ÎÅäÄÝÀÌ Æ÷Æ®¿Í °ü·Ã(port-sensitive) µÇÁö ¾Ê±â ¶§¹®¿¡ Æ÷Æ®¸¦ ÁöÁ¤ÇÒ ¶§ ¸ðµç ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÔ´Ï´Ù.

    add 1000 allow tcp from any to 172.16.0.5 25
    add 1100 allow tcp from any to 172.16.0.5 1021-1023
    add 1200 allow tcp from any to 172.16.0.5 21,22,23
    add 1300 deny udp from any to 192.168.0.5 1024:8

    óÀ½ ·ê(rule) ¿¡¼­´Â 172.16.0.5ÀÇ 25 ¹ø Æ÷Æ®¸¦ ÇâÇÑ ¸ðµç TCP ÆÐŶÀÌ ¸ÅÄ¡µË´Ï´Ù. µÎ¹ø° ·ê¿¡¼­´Â 172.16.0.5 ·Î ÇâÇÏ´Â 1021¹ø¿¡¼­ 1023¹ø ±îÁöÀÇ Æ÷Æ®µéÀ» ÇâÇÑ ÆÐŶÀÌ ¸ÅÄ¡µË´Ï´Ù. ¼¼¹ø°´Â 172.16.0.5 ÀÇ 21,22,23 ¹ø Æ÷Æ®¸¦ ÇâÇÑ ÆÐŶÀÌ ¸ÅÄ¡µË´Ï´Ù. ¸¶Áö¸·Àº È£½ºÆ® 192.168.0.5 ÀÇ 1024¿¡¼­ 1028¹ø ±îÁöÀÇ Æ÷Æ®¸¦ ÇâÇÑ UDP ÆÐŶÀÌ ¸ÅÄ¡µË´Ï´Ù. ¸¶Áö¸· ·êÀº Æ÷Æ®¸¦ ÁöÁ¤Çϱ⿡ ºñÆ®¸¶½ºÅ©¸¦ »ç¿ëÇÏ¿´±â ¶§¹®¿¡ ´Ù¼Ò Çò°¥¸®±â ½±½À´Ï´Ù. 1024 Æ÷Æ®´Â 10 ºñÆ®¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ºñÆ®¸¶½ºÅ©´Â 192.168.0.5¸¦ ÇâÇÑ 1024 Æ÷Æ®ÀÇ ¸¶Áö¸· 8ºñÆ®¿¡ ÇØ´çµÇ´Â ¸ðµç Æ÷Æ®µéÀ» °¡¸®Åµ´Ï´Ù. 10 – 8 À» Çؼ­ 2 ºñÆ®°¡ µÇ°í ±× ÀÌ ºñÆ®°¡ 2^2 ·Î Çؼ­ 4°³ÀÇ Æ÷Æ®°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ½ÃÀÛÀ» 1024 ·Î Çؼ­ 4°³ÀÇ Æ÷Æ®¿¡ ÇØ´çÇÏ´Â ÆÐŶÀÌ ¸ÅÄ¡µÇ´Â °ÍÀÌÁÒ.

    Æ÷Æ®¿¡ ºñÆ®¸¶½ºÅ©¸¦ »ç¿ëÇÏ´Â °ÍÀº Àß ¾²ÀÌÁö ¾Ê°í IP ÁÖ¼Ò¿¡ µ¡ºÙÀÌ´Â ºñÆ®¸¶½ºÅ©³ª ³Ý¸¶½ºÅ©º¸´Ù ´õ Çò°¥¸± ¼ö ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé Æ÷Æ®¿¡¼­ÀÇ ºñÆ®¼ö´Â ¸¶½ºÅ© ¾Õ¿¡ ÁöÁ¤µÈ Æ÷Æ®¿¡ µû¶ó º¯Çϱ⠶§¹®ÀÔ´Ï´Ù. ±×·¯¹Ç·Î, ´ë½¬(dash)¸¦ »ç¿ëÇϰųª ÄÞ¸¶·Î ºÐ¸®ÇÏ¿© Æ÷Æ®¸¦ ÁöÁ¤ÇÏ´Â °É ÃßõÇÕ´Ï´Ù.

    4. Advanced ipfw(8) Rule Syntax (°í±Þ ipfw ¹®¹ý)

    À§¿¡¼­ ´ë·«ÀûÀ¸·Î »ìÆ캻 ipfw(8)ÀÇ ·ê ¼³Á¤¹ýÀÌ ¸¹Àº ´Ü¼øÇÑ »óȲ¿¡ ´ëóÇÒ ¼ö ÀÖÁö¸¸ º¸´Ù ´õ º¹ÀâÇÑ »óȲµé, ¿¹¸¦ µé¾î ½Ã½ºÅÛÀÌ ÇÑ °³ ÀÌ»óÀÇ ³×Æ®¿÷ ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í Àִٵ簡, ƯÁ¤ÇÑ ¸ÅÄ¡»óȲ¿¡ ´ëÇØ Æ¯º°ÇÑ ¹ÝÀÀÀ» ÇÏ±æ ¿øÇÑ´ÙµçÁö ȤÀº Æ®·¡ÇÈ È帧 (traffice flow)¿¡ ´ëÇØ ´õ ¸¹Àº Á¶Á¤À» ÇÏ°í ½ÍÀº °æ¿ì¿¡ »ó´çÈ÷ ¸ðÀÚ¶ø´Ï´Ù.
    ´ÙÀ½°ú °°ÀÌ ipfw(8) ¿¡ ´ëÇÑ ±¸¹®À» È®Àå½ÃÄÑ º¾½Ã´Ù.

    [command] [rule #] [action] [log [logamount number]] [proto]
    from [source] to [destination] [interface-spec] [options]

    »õ·Î¿î ±â´ÉµéÀ» Æ÷ÇÔÇÏ´Â ºÎºÐÀ» À̹ø ¼½¼Ç¿¡¼­ ´Ù·ê °Ì´Ï´Ù. ¶ÇÇÑ Àü¿¡ ¼³¸íÇÏÁö ¾Ê¾Ò´ø Ãß°¡ÀûÀÎ ¡°action¡± À» ¾Ë¾Æº¸±â·Î ÇÏ°Ú½À´Ï´Ù. ±¸¹® (syntax)ÀÌ »ó´çÈ÷ ¾î·Æ°Ô º¸ÀÌÁö¸¸ ÂùÂùÈ÷ ¶â¾îº¸°í ÇÇ°ïÇÏÁö ¾Êµµ·Ï Á¶±Ý¾¿ ¾Ë¾Æº¸±â·Î ÇÏÁÒ.

    4.1 ¡°unreach¡± Action

    ¿ì¼± »õ·Î¿î ¡°action¡± À» ¼Ò°³ÇÕ´Ï´Ù.

    ¡°unreach [code]¡± – ÀÌ action À» Áö´Ñ ·ê¿¡ ¸ÅÄ¡µÇ´Â ¸ðµç ÆÐŶÀº ICMP unreach code ¸¦ ³»º¸³»°í (response) ±× µÚ·Î ruleset °Ë»öÀ» ¸ØÃß°Ô µË´Ï´Ù. »ç¿ë°¡´ÉÇÑ unreach code ´Â ¼ýÀÚ³ª ȤÀº À̸§À¸·Î ÁöÁ¤µË´Ï´Ù. ´ÙÀ½Àº ICMP unreach code ¸¦ °£·«È÷ ³ª¿­ÇÏ°í ±×¿¡ ´ëÀÀÇÏ´Â À̸§À» ½á ³õÀº °ÍÀÔ´Ï´Ù. À̰͵éÀÌ ¹«¾ù¿¡ »ç¿ëµÇ´ÂÁö ¾ËÁö ¸øÇÑ´Ù¸é ¾µ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

    net 0 net-prohib 9
    host 1 host-prohib 10
    protocol 2 tosnet 11
    port 3 toshost 12
    needfrag 4 filter-prohib 13
    srcfail 5 host-precedence 14
    net-unknown 6 precedence-cutoff 15
    host-unknown 7
    isolated 8

    4.2 Interface and Flow Control (ÀÎÅÍÆäÀ̽º¿Í È帧 Á¦¾î)

    ¼½¼Ç 3 ÀÇ ipfw(8) ±âº»Àû ¹®¹ý ¼³¸í¿¡¼­ ºüÁø Áß¿äÇÑ ±â´ÉÀº ÀÎÅÍÆäÀ̽º¿Í È帧 Á¦¾î (interface and Flow control) ÀÔ´Ï´Ù. Áï, ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º(interface)¸¦ °¡Áö°í ÀÖÀ» ¶§ (multihomed) ¾î¶² ÀÎÅÍÆäÀ̽º¸¦ Åë°úÇÏ´Â ÆÐŶÀ» ¸ÅÄ¡½Ãų °ÍÀÎÁö ±×¸®°í ¾î¶°ÇÑ ¹æÇâÀ¸·Î À̵¿ÇÏ´Â ÆÐŶÀ» ¸ÅÄ¡½Ãų °ÍÀÎÁö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù. Áö±Ý±îÁö´Â ¹æÇâ(direction)À¸·Î Àü¼ÛÁö¿Í ¸ñÀûÁö ÁÖ¼Ò (source and destination address)¸¦ ´ë°­ (loosely) »ç¿ëÇߴµ¥, ÆÐŶÀÌ ¹æÈ­º®À» Åë°úÇÒ ¶§ ÁøÂ¥ µé¾î¿À´ÂÁö ³ª°¡´ÂÁö¿¡ ´ëÇØ ¾î¸²ÁüÀÛÇÏ´Â ±×·± ¹æ¹ýÀº ½Å·ÚÇÒ ¼ö ¾ø´Â ¹æ¹ýÀÔ´Ï´Ù. ¸¸¾à ´Ü¼øÈ÷ µé¾î¿À°Å³ª ȤÀº ³ª°¡´Â ÆÐŶ¸¸À» ¸ÅÄ¡½ÃÅ°±æ ¿øÇÑ´Ù¸é ¡°in¡± °ú ¡°out¡± Å°¿öµå¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. µÑ ¸ðµÎ À§¿¡¼­ »ìÆ캻 ¹®¹ý ±¸¹®Áß ¡°interface-spec¡± ºÎºÐ¿¡ ´ëÀÀÇÏ¸ç µû¶ó¼­, ÀÓÀÇÀÇ ¿É¼Çµéº¸´Ù ¾Õ¼­ ¸ðµç ·êÀÇ ¸¶Áö¸· ºÎºÐ¿¡ »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÀÓÀÇÀÇ °÷¿¡¼­ ¿Í¼­ ÀÓÀÇÀÇ °÷À¸·Î °¡´Â (coming in from anywhere and going anywhere) ¸ðµç ÆÐŶÀ» ¸ÅÄ¡½ÃÅ°°íÀÚ ÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.

    add 1000 allow all from any to any in

    Ưº°ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Åë°úÇÏ´Â ÆÐŶÀ» ¸ÅÄ¡½ÃÅ°°íÀÚ ÇÑ´Ù¸é ¡°via¡± ¿É¼Ç°ú µÚµû¸£´Â ÀÎÅÍÆäÀ̽º À̸§À» »ç¿ëÇÏ¸é µË´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ëÀÚ°¡ PCI 3Com 3c59x ¸¦ °¡Áö°í ÀÖ´Ù¸é ±× ÀÎÅÍÆäÀ̽º µð¹ÙÀ̽º¸íÀº xl0 ÀÌ µË´Ï´Ù. Á¤È®È÷ ÀÓÀÇÀÇ Àü¼ÛÁö¿Í ÀÓÀÇÀÇ ¸ñÀûÁö¸¦ °¡Áø ±× ÀÎÅÍÆäÀ̽º·Î À¯ÀԵǴ ¸ðµç ÆÐŶµéÀ» ¸ÅÄ¡½ÃÅ°°íÀÚ ÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ½áÁÖ¸é ÃæºÐÇÕ´Ï´Ù.

    Add 1100 allow all from any to any in via xl0

    ȤÀº ¾Æ¸¶ ¿©·¯ ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í ÀÖ°í (multihomed system) ÀÓÀÇÀÇ ÀåÄ¡¸¦ Åë°úÇÏ¿© ³ª°¡´Â ¸ðµç ÆÐŶÀ» ¸ÅÄ¡½ÃÅ°°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

    add 1200 allow all from any to any out via any

    ´«Ä¡ ëÀ»Áö ¸ð¸£Áö¸¸, ¹æÈ­º® ·êÀ» ³ª¿­ÇÒ ¶§ ·ê»óÀ¸·Ð ¡°in¡± ¡°out¡± Å°¿öµå¸¦ ¡°via¡± ¿Í ÇÔ²² »ç¿ëÇß´Ù ÇÏ´õ¶óµµ ½ÇÁ¦·Î º¸ÀÌ´Â °ÍÀº ¡°in¡±À̳ª ¡°out¡± Áß ¹«¾ùÀ» »ç¿ëÇߴ°¡¿¡ µû¶ó ¡°via¡± °¡ ¾Æ´Ï°í ¡°recv¡± ³ª ¡°xmit¡± ÀÌ µË´Ï´Ù. ´ÙÀ½À» º¾½Ã´Ù.

    (root@nu)~># ipfw add 7000 allow all from any to any out via xl0
    (root@nu)~># ipfw list | grep 7000
    07000 allow ip from any to any out xmit xl0
    (root@nu)~>#

    »ç½ÇÀº, ¡°in¡± À̳ª ¡°out¡± Å°¿öµå¸¦ ¾µ ¶§ ¡°via¡± ´ë½Å ¡°recv¡± ³ª ¡°xmit¡± À» ¾µ µµ ÀÖ½À´Ï´Ù¸¸ ±×·¸°Ô ÇÏ´Â °ÍÀº ÇÊ¿äÇÏÁöµµ ¾ÊÀ» »Ó´õ·¯ Ãʺ¸ÀÚ¿¡°Ô ´Ù¼Ò È¥¶õÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù.

    ¸ðµç °æ¿ì¿¡ ÀÖ¾î, ÀÌ·¯ÇÑ ¿É¼ÇµéÀº ¹æÈ­º®À¸·Î À¯ÀԵǰųª ³ª°¡°Å³ª ȤÀº ƯÁ¤ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Åë°úÇÏ´Â ÆÐŶÀ» ¸íÈ®È÷ ÇÊÅ͸µÇÔÀ¸·Î½á ´ÙÁß ÀÎÅÍÆäÀ̽º¸¦ °¡Áø ½Ã½ºÅÛÀ̳ª º¸ÆíÀûÀ¸·Î ¸ðµç ½Ã½ºÅÛ»óÀÇ ³×Æ®¿÷ Æ®·¡ÇÈ¿¡ ´ëÇÑ º¸´Ù °­·ÂÇÑ ÅëÁ¦¸¦ °¡´ÉÇÏ°Ô ÇØ ÁÝ´Ï´Ù.

    4.3 Matching specific ICMP and TCP Packet Types (ƯÁ¤ÇÑ ICMP ¿Í TCP ÆÐŶ ŸÀÔÀ» ¸ÅĪ½ÃÅ°±â)

    ICMP, TCP, ±×¸®°í IP ÆÐŶÀº ´Ù¾çÇÑ Å¸ÀÔÀ» Áö´Õ´Ï´Ù. ÀÌ·¯ÇÑ Å¸ÀÔµéÀº °¢°¢ÀÇ ÆÐŶÀÌ Á¤ÇÑ ¿©·¯°¡ÁöÀÇ flag ¿¡ ÀÇÇØ Á¤Àǵ˴ϴÙ. ¿ì¸®´Â ´ÙÀ½¿¡ º¸°Ô µÇ´Â ipfw(8) ¿É¼Çµé Áß Çϳª¸¦ ·êÀÇ ³¡¿¡ »ç¿ëÇÔÀ¸·Î½á ±×·¯ÇÑ Å¸ÀÔµé Áß Çϳª¸¦ ¸ÅÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù.

    4.3.1 icmptypes

    ¡°icmptypes [type]¡± – ÀÌ°ÍÀº ƯÁ¤ÇÑ ICMP ÆÐŶ [type] À» ¸ÅĪ½ÃÅ°¸ç, ¿ªÀ¸·Î ¡°!¡± °¡ [type] ¾Õ¿¡ ³õÀδٸé ÀÌ Å¸ÀÔ¿¡ ÇØ´çÇÏÁö ¾Ê´Â ¸ðµç ICMP ÆÐŶÀ» ¸ÅÄ¡ÇÒ °ÍÀÔ´Ï´Ù.
    ÇöÀç ¸ÅÄ¡ °¡´ÉÇÑ 15 °³ÀÇ ´Ù¸¥ ICMP ÆÐŶ ŸÀÔÀÌ Á¸ÀçÇϸç Á¤È®ÇÑ ¼ýÀÚ¿¡ ÀÇÇØ ±â¼úµË´Ï´Ù. ¹üÀ§¸¦ Á¤ÇÏ°íÀÚ ÇÑ´Ù¸é dash ³ª ÄÞ¸¶·Î ºÐ¸®µÈ ÇüÅ·Π¼­¼úµÉ ¼öµµ ÀÖ½À´Ï´Ù.
    15 °¡Áö ICMP ŸÀÔÀº ´ÙÀ½°ú °°½À´Ï´Ù.

    0-Echo Reply
    3-Destination Unreachable
    4-Source Quench
    5-Redirect
    8-Echo Request
    9-Router Advertisement
    10-Router Silicitation
    11-Time-to-Live Exceeded
    12-IP header bad
    13-Timestamp Request
    14-Timestamp Reply
    15-Information Request
    16-Information Reply
    17-Address Mask Request
    18-Address Mask Reply

    ÀÌ·¯ÇÑ ICMP ŸÀÔÀÌ, (Á¤È®È÷´Â type 3), ¡°unreach¡± action À¸·Î ¹ß»ýµÇ´Â Unreach code ¿Í ¾î¶»°Ô ´ëÀÀÇϴ°¡ ÇÏ¸é °£´ÜÈ÷ type 3ÀÌ ¸ðµç Unreach code ¿Í ¸ÅÄ¡ÇÕ´Ï´Ù. ICMP ÆÐŶÀ» ÇÊÅ͸µÇÏ´Â °ÍÀº ping À» ÄÁÆ®·ÑÇϴµ¥ ¸Å¿ì À¯¿ëÇϸç, ƯÈ÷ ³»ºÎ È£½ºÆ®µéÀÌ ¿ÜºÎ·Î ÇÎÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ¹Ý¸é ¿ÜºÎ È£½ºÆ®¿¡¼­ ³»ºÎÀÇ °ÔÀÌÆ®¿þÀ̳ª ȤÀº ¾î¶² ¶Ç ´Ù¸¥ ³»ºÎ È£½ºÆ®·Î ÇÎÀ» ºÒ°¡ÇÏ°Ô ÇÏ°íÀÚ ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù.

    1000 allow icmp from any to any out icmptypes 8
    1100 allow icmp from any to any in icmptypes 0
    1200 deny icmp from any to any in icmptypes 8

    óÀ½ ·êÀº type 8 (echo request) ÇüŸ¦ ÃëÇÏ´Â ¸ðµç icmp ÆÐŶÀÇ ¿ÜºÎ Àü¼ÛÀ» Çã¿ëÇÕ´Ï´Ù. µÎ¹ø° ·êÀº type 0 (echo reply) ÀÇ ¸ðµç icmp ÆÐŶÀÇ À¯ÀÔÀ» Çã¿ëÇÏ°í ¸¶Áö¸· ·êÀº type 8 ÀÇ ¸ðµç icmp ÆÐŶÀÇ À¯ÀÔÀ» ¸·½À´Ï´Ù. °£´ÜÈ÷ ¸»Çؼ­, ÀÌ°ÍÀº echo requests ÀÇ ¿ÜºÎ Àü¼ÛÀ» Çã¶ôÇÏÁö¸¸ µé¾î¿À´Â ¸ðµç echo requests ÀÇ À¯ÀÔÀ» ¸·°Ô µÇÁÒ. ±×·¸°Ô ÇÔÀ¸·Î½á ¹æÈ­º® ³»ºÎÀÇ È£½ºÆ®µéÀº ¿ÜºÎÀÇ ÀÓÀÇÀÇ È£½ºÆ®·Î ping À» »ç¿ëÇÒ ¼ö ÀÖ°í ¹Ý¸é¿¡ ¿ÜºÎÀÇ È£½ºÆ®µéÀº ¹æÈ­º® ³»ºÎÀÇ ¾î¶°ÇÑ °÷¿¡µµ pingÀ» »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. ´ç¿¬È÷ ÀÌ·¯ÇÑ ¿É¼ÇÀº ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀÌ ¡°icmp¡± À϶§¸¸ »ç¿ë°¡´ÉÇÕ´Ï´Ù.

    4.3.2 tcpflags, setup and established

    ¡°tcpflags [flag]¡± – ÀÌ°ÍÀº µÚµû¸£´Â flags Áß Çϳª¸¦ Çì´õ¿¡ Æ÷ÇÔÇÏ´Â ¸ðµç TCP ÆÐŶ°ú ¸ÅÄ¡µÇ¸ç ¿ªÀ¸·Î ¡°!¡± °¡ [flag] ¾Õ¿¡ ºÙÀ» °æ¿ì ±× [flag] ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â ¸ðµç TCP ÆÐŶ°ú ¸ÅÄ¡µË´Ï´Ù.

    fin - Request for connexion termination
    syn - Request for connexion initiation
    rst - Reset Connexion
    psh - Push Flag
    ack - Acknowledgement
    urg - Indicate Urgent OOB data

    SYN Ç÷¡±×´Â TCP ¿¬°á ÃʱâÈ­¸¦ À§ÇØ Àü¼ÛµÇ´Â °ÍÀ¸·Î ¸Å¿ì Áß¿äÇÑ ¿ªÇÒÀ» ÇÕ´Ï´Ù. »ó´çÈ÷ Áß¿äÇϱ⠶§¹®¿¡, Ưº°È÷ SYN Ç÷¡±× ¼Â(SYN flag set) À» °¡Áø TCP ÆÐŶÀ» ¸ÅÄ¡Çϱâ À§ÇÏ¿© º°µµÀÇ ipfw(8) ¿É¼ÇÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ°ÍÀÌ ¡°setup¡± À̶ó ºÒ¸®´Â °ÍÀÔ´Ï´Ù. ´ç¿¬È÷ ÀÌ ¿É¼ÇÀº ÇÁ·ÎÅäÄÝÀÌ ¡°tcp¡± ·Î ÁöÁ¤µÇ¾úÀ» ¶§ »ç¿ë°¡´ÉÇÕ´Ï´Ù.

    ¡°setup¡± – ÀÌ ¿É¼ÇÀ» Æ÷ÇÔÇÏ´Â ¾î¶°ÇÑ ·êµµ SYN flag set À» °¡Áø ¸ðµç TCP ÆÐŶ°ú ¸ÅÄ¡µË´Ï´Ù. ¿¹¸¦ µé¾î, ¸¸¾à ³»ºÎ·Î Àü¼ÛµÇ´Â ¸ðµç TCP SYN ÆÐŶÀ» °ÅºÎÇÏ°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°¡ °°ÀÌ ÇÏ¸é µË´Ï´Ù.

    Add deny tcp from any to any in tcpflags syn

    ȤÀº

    add deny tcp from any to any in setup

    ¾çÂÊ ¸ðµÎ, °°Àº ÀÛ¿ëÀÌ ÀϾ´Ï´Ù: ¡°¾î¶² °÷¡±¿¡¼­ ¿Àµç ¡°¾î¶² °÷¡±À¸·Î °¡µç(from ¡°any¡±destined to ¡°any¡±) ¸ðµç TCP SYN ÆÐŶÀÌ ¸ÅÄ¡µÇ¾î °ÅºÎµË´Ï´Ù. ¡°tcpflags¡± ¿¡ ´ëÇØ À§¿¡¼­ ¸»ÇÑ °Íó·³, ÀÌ ¿É¼ÇÀº ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀÌ ¡°tcp¡± ÀÎ ·ê¿¡ ´ëÇؼ­¸¸ »ç¿ë°¡´ÉÇÕ´Ï´Ù.

    ¡°established¡± – TCP ¿¬°á ÃʱâÈ­ (¡°setup¡±) (TCP connexion initiation)¿¡ ´ëÇÑ ¿äûÀ» °¡¸®Å°´Â Ưº°ÇÑ ¿É¼ÇÀÌ Á¸ÀçÇÏ´Â °Íó·³, ÀÌ¹Ì ¼­·Î °³¼³µÈ TCP ¿¬°á (already established TCP connexion)°ú ¸ÅÄ¡µÇ´Â Ưº°ÇÑ ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù. ±×°ÍÀº TCP ¿¬°áÀ» ÄÁÆ®·ÑÇϴµ¥ ÀÖ¾î °¡Àå Áß¿äÇÑ ºÎºÐÀ̱⿡, ¡°established¡± ¿Í ¡°setup¡± Àº ½Å¼ÓÇÑ ·ê ¼³Á¤(quick rule formation) ¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇµéÀ» °¡Áö°í (ȤÀº ±×µé°ú ´ëÀÀµÇ´Â ¡°tcpflags¡± ÇüÅÂ) ¿ì¸®´Â TCP ¿¬°á È°µ¿¿¡ ´ëÇÑ ¸î¸î ´Ü¼øÇÑ Á¦¾î¸¦ ÇÏ°Ô µË´Ï´Ù. ÀÌ°ÍÀº stateful firewall (°¡º¯Àû ¹æÈ­º®) ±â´É¿¡ °¡Àå ±âÃÊ°¡ µÇ´Â ºÎºÐÀÌ°í ÈÄ¿¡ Á»´õ ÀÚ¼¼ÇÏ°Ô ¾Ë¾Æº¼ °ÍÀÔ´Ï´Ù.

    4.3.3. ipoptions

    ¡° ipoptions [flag]¡± – ¸¶Áö¸·À¸·Î ¿ì¸®´Â SSSR (Strict Source Route), LSRR (Loose Source Route), RR (Record Packet Route), ±×¸®°í TS (Timestamp)¶ó ºÒ¸®´Â ƯÁ¤ÇÑ IP ÆÐŶ Ç÷¡±×µéÀ» ¸ÅÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ÀÌ·¯ÇÑ IP ¿É¼ÇµéÀÌ ¹«¾ùÀÎÁö ¾ËÁö ¸øÇÑ´Ù¸é Ưº°È÷ ±×µé¿¡ ´ëÇÑ ¸ÅÄ¡°¡ ÇÊ¿äÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

    4.4 Catching Fragmented Packets (Á¶°¢³­ ÆÐŶ Àâ¾Æ³»±â)

    Á¶°¢³­ ÆÐŶ(fragmented packets) Àº ipfw(8)ÀÇ ¡°frag¡± ¿É¼Ç°ú ¸ÅÄ¡µË´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì Á¶°¢³­ ÆÐŶÀº ¸·¾ÆÁ®¾ß (blocked) ÇÕ´Ï´Ù. ¸¹Àº ¼öÀÇ Á¶°¢³­ ÆÐŶÀ» ¹Þ¾Ò´Ù´Â °ÍÀº DoS (Denial of Service) °ø°ÝÀ» ÀǹÌÇÒ ¼öµµ ÀÖ½À´Ï´Ù. FreeBSD ¿Í ´ëºÎºÐÀÇ ´Ù¸¥ UNIX ±×¸®°í UNIX-like ½Ã½ºÅÛÀº ±×·¯ÇÑ °ø°Ý¿¡ ¾²·¯ÁöÁö´Â ¾Ê°ÚÁö¸¸ Windows ½Ã½ºÅÛÀº Á¾Á¾ ¸Å¿ì Ãë¾àÇÑ (vulnerable) ¸ð½ÀÀ» º¸ÀÔ´Ï´Ù. µû¶ó¼­ »ç¿ëÀÚ°¡ ¹æÈ­º® ³»ºÎ ³×Æ®¿÷»ó¿¡ Çϳª³ª ±× ÀÌ»óÀÇ Windows ½Ã½ºÅÛÀ» °¡Áö°í ÀÖÀ» °æ¿ì Á¶°¢³­ ÆÐŶÀ» ¸·À» °ÍÀ» Ãæ°íÇÕ´Ï´Ù.

    Á¶°¢³­ ÆÐŶÀ» ¸ÅÄ¡½ÃÅ°±â À§ÇØ ¡°frag¡± ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ì, µû¶ó¾ß ÇÒ µÎ ÁöħÀÌ ÀÖ½À´Ï´Ù. ¿ì¼±, ¡°tcpflags¡± ¿Í ÇÔ²² ¡°frag¡± ¿É¼ÇÀº °°ÀÌ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. µÑ°, ¸¸¾à ÀÓÀÇÀÇ TCP ȤÀº UDP Æ÷Æ®¸¦ ÁöÁ¤Çß´Ù¸é ¿ª½Ã ¡°frag¡± ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ °°Àº ±âÁØÀ» ÁöÄ×´Ù¸é ¿ì¸®´Â ½±°Ô ³»ºÎ·Î ÇâÇÏ´Â Á¶°¢³­ ÆÐŶÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù.

    4.5 UID and GID Based Filtering (UID ¿Í GID ±â¹Ý ÇÊÅ͸µ)

    Ipfilter °¡ °¡ÁöÁö ¸øÇÑ °­·ÂÇÑ ±â´ÉÁß Çϳª°¡ UID/GID ±â¹Ý ÇÊÅ͸µ(UID/GID-based filtering) ÀÔ´Ï´Ù. Ipfirewall(4) Àº ÆÐŶÀ» ±× ÀÚ½ÅÀÌ ¹ß»ýµÇ´Â (arriving from) ÇÁ·Î¼¼½ºÀÇ UID ³ª/ȤÀº GID ¿¡ µû¶ó¼­ ÇÊÅ͸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç¿¬È÷ ÀÌ°ÍÀº ·ÎÄà ȣ½ºÆ® (localhost) »óÀÇ ÇÁ·Î¼¼½º¿¡¼­ ±âÀÎÇÑ ÆÐŶµéÀ» ¸ÅĪ½ÃÅ°°íÀÚ ÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¿©ÀüÈ÷ °­·ÂÇÑ ±â´ÉÀ» ¹ßÈÖÇÕ´Ï´Ù. »ç¿ëµÇ´Â ¿É¼ÇÀº ¡°uid¡± ¿Í ¡°gid¡±ÀÌ¸ç ±× µÚ¿¡ ¿ì¸®°¡ ÇÊÅ͸µÇÏ°íÀÚ ÇÏ´Â UID/GID ȤÀº »ç¿ëÀÚ³ª ±×·ì¸íÀÌ µÚµû¸£°Ô µË´Ï´Ù.

    ÇÑ°¡Áö °¡´É¼º ÀÖ´Â »ç¿ë¹ýÀ̶ó¸é shell server »óÀÇ IP °¡»ó È£½ºÆ® ( IP vhosts  on a shell server) »ç¿ëÀ» Á¦ÇÑÇÏ´Â °ÍÀÔ´Ï´Ù. ¸¸¾à Çϳª³ª ±× ÀÌ»óÀÇ °¡»óÈ£½ºÆ®¸¦ ÀÚ½ÅÀ» Á¦¿ÜÇÑ ´Ù¸¥ ¾î¶² »ç¶÷µµ »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ È®½ÇÇÒ °æ¿ì ±× °¡»óÈ£½ºÆ®·ÎºÎÅÍ »ç¿ëÀÚ ÀÚ½ÅÀÇ Æ®·¡ÇÈÀ» Á¦¿ÜÇÑ ¸ðµç »ç¶÷ÀÇ Æ®·¡ÇÈÀ» ¸·±â À§ÇØ UID-±â¹Ý ÇÊÅ͸µÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

    add allow tcp from any to 172.168.0.10 in
    add allow tcp from 172.168.0.10 to any out uid george
    add deny tcp from 172.168.0.10 to any

    À§ ·êµé¿¡ µû¸£¸é ¿À·ÎÁö george ¶ó´Â À¯Àú¸¸ÀÌ ¿ÜºÎ¿Í TCP ¿¬°áÀ» °³¼³Çϱâ À§ÇØ (to establish TCP connecxions to the outside) aliased IP (IP vhost) 172.168.0.10 À» »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ´Ù¸¥ ¾î¶°ÇÑ »ç¶÷µµ ¹ÙÀÎµå º¿ (bind bots), IRC chat Ŭ¶óÀ̾ðÆ®¸¦ À§ÇØ È¤Àº TCP ¸¦ ÇÊ¿ä·Î ÇÏ´Â ¿¬°á(´ëºÎºÐ ±×·¸Áö¸¸)À» °³¼³Çϱâ À§ÇØ ±× ¾ÆÀÌÇǸ¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¶Âù°¡Áö·Î, UDP ÇÁ·ÎÅäÄݵµ UID/GID ±â¹Ý ÇÊÅ͸µ°ú ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±× ¿Ü ´Ù¸¥ ÇÁ·ÎÅäÄÝÀº ºÒ°¡ÇÕ´Ï´Ù.

    ¶Ç ´Ù¸¥ UID/GID ±â¹Ý ÇÊÅ͸µÀÇ ¿ëµµ¶ó¸é È£½ºÆ®³ª ³×Æ®¿÷ ±âÁØ (per-host or per-network basis)°ú´Â Á¤¹Ý´ë·Î »ç¿ëÀÚ ±âÁØ (per-user basis)À¸·Î ´ë¿ªÆø(bandwidth) À» Á¦ÇÑÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¸°Ô ÇÔÀ¸·Î½á ¿¹¸¦ µé¾î ºü¸¥ FTP °èÁ¤À» °¡Áø ÀÏ·ÃÀÇ »ç¿ëÀÚ ±×·ìÀ» ´Ü¼øÈ÷ Á¶Á¤ÇÏ¿© ±×µéÀÇ GID ¸¦ ÇÑÁ¤ÇÏ¿© °¡Áú ¼ö ÀÖ°í, ¶Ç ÀÌ¿Í´Â ¹Ý´ë·Î ¸¹Àº ´ë¿ªÆøÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ½© À¯ÀúµéÀÇ ±×·ìµµ ¼³Á¤ÇÔÀ¸·Î½á ±×µé ¸ðµÎ°¡ ¼ÓÇÑ GID ¿¡ µû¶ó ´ë¿ªÆøÀ» Á¶Àý (cap the bandwidth)ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯ÇÑ GID ±â¹Ý ´ë¿ªÆø Á¶Àý (GID-based bandwidth capping)Àº ipfirewall(8)ÀÇ Æ®·¡ÇÈ Á¶Àý ±â´É(traffic shaping facilities) À» ¾Ë¾Æº» µÚ ÈÄ¿¡ ¿¹½ÃÇغ¸±â·Î ÇÏ°Ú½À´Ï´Ù.

    º¸¾È»óÀÇ ÀÌÀ¯·Î, ƯÁ¤ »ç¿ëÀÚÀÇ Æ®·¡ÇÈÀ» ±â·ÏÇÏ°í ½ÍÀ» ¶§ ¸¶Âù°¡Áö·Î UID ±â¹Ý ÇÊÅ͸µÀÌ Æí¸®ÇÕ´Ï´Ù. °£´ÜÈ÷ ¸»Çؼ­, Çϳª³ª ±× ÀÌ»óÀÇ »ç¿ëÀڵ鿡 ´ëÇØ ¹æÈ­º® ÀÛ¿ëÀ» ´Þ¸® ÇÏ°íÀÚ ÇÑ´Ù¸é (conduct filrewall behaviour differently) UID/GID ±â¹Ý ÇÊÅ͸µ (UID/GID-based filtering) ÀÌ Æí¸®ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ¾î¶°ÇÑ ·êÀÌ ¸ÅÄ¡µÇ°Ô µÇ¸é ruleset Ž»öÀº ¸ØÃ߱⠶§¹®¿¡, UID/GID°¡ ¸ÅÄ¡µÇ´Â ·êÀº ´Ù¸¥ ¿¬ÀÌÀº ·ê (other sweeping rule)ÀÌ ±× Æ®·¡ÇÈ°ú ¸ÅÄ¡µÇ±â Àü¿¡ ÀÛ¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¡¼­ UID/GID ±â¹Ý ÇÊÅ͸µÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ÀڽŸ¸ÀÇ ruleset À» ÀÛ¼ºÇÏ°íÀÚ ÇÑ´Ù¸é ÀÌ°ÍÀ» Ç×»ó ¿°µÎ¿¡ µÎ¾î¾ß ÇÕ´Ï´Ù.
      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [04/19] Á¦ÁÖ&#5
    [04/18] ??? ?????
    [04/17] ???? onion ?????? -
    [04/11] ±¹°¡&#5
    [04/10] Stride Into Dream:
    [03/20] Re: ¿Â¶óÀΰÔÀÓÀÇ Á¾ÁÖ±¹ ´ëÇѹα¹
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~