ÀÎÅÍ³Ý ½´ÆÛ ¼­¹ö : XINETD

ÇÊÀÚ : ¼­Á¤·æ(dreamsoh@orgio.net)
¿ø¹® : http://linuxfocus.org/English/November2000

 

     

    xinetd(eXtended InterNET services daemon)Àº ħÀÔ¿¡ ´ëÇØ ¿ì¼öÇÑ º¸¾ÈÀ» Á¦°øÇÏ¸ç ¼­ºñ½º ºÎÀÎ(Denial of Services)°ø°ÝÀÇ À§ÇèÀ» °¨¼Ò½ÃŲ´Ù. ÀÌ´Â Àß ¾Ë·ÁÁø inetd ¿Í tcpd ¸¦ ÇÔ²² »ç¿ëÇÏ´Â °Í°ú °°ÀÌ ÁÖ¾îÁø ¸Ó½Å¿¡ ´ëÇÑ Á¢±Ù ±ÇÇÑ ¼³Á¤À» °¡´ÉÄÉ ÇÏÁö¸¸ ´õ¿í ¸¹Àº ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.

    ÀÌ ±â»ç¿¡¼­´Â xinetd ÀÇ ¸¹Àº Ư¡À» ´Ù·ê °ÍÀÌ´Ù.

 

xinetd ¶õ ¹«¾ùÀΰ¡?

    inetd ´Â ÄÄÇ»ÅÍ·ÎÀÇ ³×Æ®¿öÅ© Á¢¼Ó Á¦¾î¸¦ µ½´Âµ¥ inetd °¡ °ü¸®ÇÏ´Â Æ÷Æ®·Î ¿äûÀÌ µé¾î¿À¸é inetd ´Â °ð À̸¦ tcpd ÇÁ·Î±×·¥À¸·Î Àü¼ÛÇÑ´Ù.
    tcpd ´Â ¿äûÀÇ ½Â³« ¿©ºÎ¸¦ hosts.allow ¶Ç´Â hosts.deny ÆÄÀÏ¿¡ Æ÷ÇÔµÈ ±ÔÄ¢¿¡ µû¶ó °áÁ¤Çϸç, ¿äûÀÌ Çã¿ëµÇ¸é ÇØ´ç ¼­¹ö ÇÁ·Î¼¼½º(¿¹¸¦ µé¾î ftp)°¡ ½ÃÀÛµÉ ¼ö ÀÖ´Ù.
    ÀÌ·¯ÇÑ ¸ÞÄ«´ÏÁòÀº tcp_wrapper ¶ó°íµµ ºÎ¸¥´Ù.

    xinetd ´Â tcp_wrapper ¿Í À¯»çÇÑ Á¢±Ù Á¦¾î ´É·Â»Ó¸¸ ¾Æ´Ï¶ó ´ÙÀ½°ú °°ÀÌ ´õ¿í È®ÀåµÈ ´É·ÂÀ» Á¦°øÇÑ´Ù:

    - TCP, UDP¿Í RPC ¼­ºñ½ºµé¿¡ ´ëÇÑ Á¢±Ù Á¦¾î
      (RPC ¼­ºñ½º¿¡ ´ëÇؼ­´Â Áö¿øÀÌ ¹ÌºñÇÑ ½ÇÁ¤ÀÌ´Ù.)
    - ŸÀÓ ¼¼±×¸ÕÆ®¿¡ ±âÃÊÇÑ Á¢±Ù Á¦¾î
    - Á¢¼Ó ¼º°ø ¶Ç´Â ½ÇÆп¡ ´ëÇÑ ¿ÏÀüÇÑ ·Î±ë
    - ¼­ºñ½º ºÎÀÎ °ø°Ý¿¡ ´ëÇÑ È¿°úÀûÀÎ ¾ïÁ¦
    - µ¿½Ã¿¡ ÀÛµ¿ÇÏ´Â µ¿ÀÏ À¯Çü ¼­¹ö ¼ö¿¡ ´ëÇÑ Á¦ÇÑ
    - ÃÑ ¼­¹ö ¼ö¿¡ ´ëÇÑ Á¦ÇÑ
    - ·Î±× ÆÄÀÏ Å©±â¿¡ ´ëÇÑ Á¦ÇÑ
    - ƯÁ¤ ÀÎÅÍÆäÀ̽º·ÎÀÇ ¼­ºñ½º ¹ÙÀεù; ¿¹¸¦ µé¸é ÀÓÀÇÀÇ ¼­ºñ½º¸¦ »ç¼³ ³×Æ®¿öÅ©¿¡´Â
       Çã¿ëÇÏÁö¸¸ ¿ÜºÎ ¼¼°è¿¡´Â Çã¿ëÇÏÁö ¾ÊÀ» ¼ö Àִµ¥, ´Ù¸¥ ½Ã½ºÅÛ¿¡ ´ëÇÑ ´ë¸®ÀÎ(ÇÁ¶ô½Ã,
       proxy)À¸·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ³»ºÎ ³×Æ®¿öÅ©¿¡ µµ´ÞÇϱâ À§ÇØ IP ¸Å½ºÄ¿·¹À̵ù
       (ip_masquerading, ¶Ç´Â Network Address Translation-NAT)°ú °áÇÕÇÏ¿© »ç¿ëÇϸé
       ¸Å¿ì À¯¿ëÇÏ´Ù.

    ÁÖ¿ä ´ÜÁ¡Àº ¾Õ¿¡¼­ ¾ð±ÞÇßµíÀÌ RPC ¿äû¿¡ Áö¿øÀÌ ¹ÌºñÇÏ´Ù´Â °ÍÀÌ´Ù. ±×·¯³ª xinetd ¸¦ portmap °ú ÇÔ²² »ç¿ëÇÑ´Ù¸é ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇÒ ¼ö ÀÖ´Ù.

    ÀÌ ±â»çÀÇ Ã¹ ºÎºÐ¿¡¼­´Â xinetd ÀÛµ¿ ¹æ¹ýÀ» ¼³¸íÇϴµ¥, ¼­ºñ½º ¼³Á¤ ¹× ƯÁ¤ ¿É¼Ç(ÀÎÅÍÆäÀ̽º·ÎÀÇ ¹ÙÀεù, ¸®µð·º¼Ç) ¿¡ ´ëÇØ ¾à°£ÀÇ ¿¹¿Í ÇÔ²² ¼³¸íÇÒ °ÍÀÌ´Ù. µÎ ¹ø° ºÎºÐÀº ÀÛµ¿ÁßÀÎ xinetd ¹× »ý¼ºµÈ ·Î±×¸¦ º¸À̸ç À¯¿ëÇÑ ÆÁÀ¸·Î ¸¶¹«¸®ÇÑ´Ù.

 

ÄÄÆÄÀÏ ¹× ¼³Ä¡

    xinetd ´Â www.xinetd.org ¿¡¼­ ¾òÀ» ¼ö Àִµ¥, ÀÌ ±â»ç¿¡¼­´Â 2.1.8.9pre10 ¹öÀüÀ» »ç¿ëÇÒ °ÍÀÌ´Ù.
    ÄÄÆÄÀÏ°ú ¼³Ä¡´Â ÀϹÝÀûÀÎ ¹æ½Ä´ë·Î ./configure; make; make install °ú °°ÀÌ ÀÏ·ÃÀÇ ¸í·ÉÀ» ÅëÇØ ÀÌ·ç¾îÁö´Âµ¥ ÄÄÆÄÀϽà ´ÙÀ½ ¼¼°¡Áö ¿É¼ÇÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

    1. --with-libwrap : ÀÌ ¿É¼ÇÀ» ÅëÇØ xinetd ´Â tcpd ¼³Á¤ ÆÄÀÏÀÎ /etc/hosts.allow ¿Í
                                /etc/hosts,deny ¸¦ Á¶»çÇÏ¿© Á¢±ÙÀÌ Çã¿ëµÇ¸é ÀÚ½ÅÀÇ °íÀ¯ Á¢±Ù ·çƾÀ»
                                »ç¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀÌ ÀÛµ¿Çϱâ À§Çؼ­´Â tcp_wrapper ¿Í ±× ¶óÀ̺귯¸®°¡
                                ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù(Author¡¯s note: wrapper ·Î ÇÒ ¼ö ÀÖ´Â °ÍÀº ¸ðµÎ
                                xinetd ·Î ÇÒ ¼ö Àִµ¥, ÀÌ·¯ÇÑ È£È¯¼ºÀ» Çã¿ëÇÏ´Â °ÍÀº config ÆÄÀÏÀ»
                                º¹ÀâÇÏ°Ô ¸¸µé¾î °ü¸®¸¦ ¾î·Æ°Ô ¸¸µç´Ù. µû¶ó¼­ ÀúÀÚ´Â À̸¦ ÃßõÇÏÁö
                                ¾Ê´Â´Ù.);

    2. --with-loadavg : ÀÌ ¿É¼ÇÀº xinetd °¡ max_load ¼³Á¤ ¿É¼ÇÀ» ´Ù·ê ¼ö ÀÖ°Ô Çϴµ¥, ÀÌ´Â
                                 ÄÄÇ»ÅÍ°¡ °úºÎÇÏ »óÅÂÀÏ ¶§ ¾î¶² ¼­ºñ½º°¡ ºñÈ°¼ºÈ­µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
                                 µû¶ó¼­ ¼­ºñ½º ºÎÀÎ °ø°ÝÀ» ¿¹¹æÇϴµ¥ ÀÖ¾î ÇʼöÀûÀÎ ¿É¼ÇÀ̸ç Ç¥ 1ÀÇ
                                 max_load ¼Ó¼ºÀ» º¸±æ ¹Ù¶õ´Ù;

    3. --with-inet6 : ÀÌ ¿É¼ÇÀº IPv6 »ç¿ëÀ» Áö¿øÇϴµ¥ IPv4 ¿Í IPv6 Á¢¼ÓÀ» °ü¸®ÇÒ ¼ö ÀÖÀ¸¸ç
                             IPv4 ÁÖ¼Ò°¡ IPv6 Æ÷¸ËÀ¸·Î º¯°æµÈ´Ù.

    xinetd ¸¦ ±¸µ¿Çϱâ Àü¿¡ inetd ¸¦ ÁßÁöÇÒ ÇÊ¿ä´Â ¾ø´Â ¹Ý¸é inetd ¸¦ ÁßÁö½ÃÅ°Áö ¾ÊÀ½À¸·Î½á µÎ µ¥¸óÀÌ ¿¹±âÄ¡ ¾Ê°Ô µ¿ÀÛÇÒ ¼ö ÀÖÀ½À» À¯³äÇϱ⠹ٶõ´Ù.

    ´ÙÀ½ÀÇ ½Ã±×³ÎµéÀ» »ç¿ëÇÏ¿© xinetd µ¿ÀÛÀ» º¯°æÇÒ ¼ö ÀÖ´Ù:

    SIGUSR1 : ¼ÒÇÁÆ®¿þ¾î Àç¼³Á¤ : ¼³Á¤ ÆÄÀÏÀÌ ´Ù½Ã ÀÐÇôÁö°í ÀÌ¿¡ µû¶ó ¼­ºñ½º ¸Å°³º¯¼ö°¡
                    º¯°æµÈ´Ù.
    SIGUSR2 : Çϵå¿þ¾î Àç¼³Á¤ : À§¿Í µ¿ÀÏÇϳª ¿À·¡µÈ (outdated) µ¥¸óÀÌ Á¾·áµÈ´Ù.
    SIGTERM : xinetd ¿Í ÀÌ µ¥¸óÀÌ »ý¼ºÇÑ µ¥¸óÀ» Á¾·á½ÃŲ´Ù.

    ¾à°£ÀÇ ´Ù¸¥ ½Ã±×³ÎµéÀÌ Àִµ¥, SIGHUP Àº /tmp/xinetd.dump °¡ ¾Æ´Ñ /var/run/xinetd.dump ÆÄÀÏ¿¡ ±× ´ýÇÁ¸¦ ÀÛ¼ºÇÑ´Ù.

    À§¿¡ ¾ð±ÞÇÑ ¼¼°¡Áö ½Ã±×³ÎµéÀº start, stop, restart, soft, hard ¿É¼ÇÀ» Æ÷ÇÔÇÏ´Â ÀÛÀº ½ºÅ©¸³Æ®¸¦ ÅëÇØ ½±°Ô °ü¸®µÉ ¼ö ÀÖ´Ù(soft ¿Í hard ¿É¼ÇÀº °¢°¢ SIGUSR1 °ú SIGUSR2 ¿¡ ÇØ´çÇÑ´Ù).

 

¼³Á¤

    xinetd µ¥¸ó¿¡ ´ëÇÑ µðÆúÆ® ¼³Á¤ ÆÄÀÏÀº /etc/xinetd.conf ÆÄÀÏ·Î Ä¿¸Çµå ¶óÀÎ ¿É¼ÇÀº ´Ù¸¥ ¼³Á¤ ÆÄÀÏ °æ·Î¸¦ Çã¿ëÇÑ´Ù. xinetd ¼³Á¤Àº ±×´ÙÁö º¹ÀâÇÏÁö ¾ÊÁö¸¸ Áö·çÇÑ ÀÛ¾÷ÀÏ ¼ö ÀÖÀ¸¸ç ºÒÇàÈ÷µµ ¼³Á¤ ÆÄÀÏ ±¸¹®ÀÌ ÀÌÀü inetd ÀÇ °Í°ú ¸Å¿ì ´Ù¸£´Ù.

    itox ¿Í xconv.pl µÎ À¯Æ¿¸®Æ¼°¡ xinetd ¿Í ÇÔ²² Á¦°øµÇ´Âµ¥ À̵éÀ» ÀÌ¿ëÇØ /etc/inetd.conf ÆÄÀÏÀ» xinetd ¼³Á¤ ÆÄÀÏ·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª wrapper ¼³Á¤¿¡ ÁöÁ¤µÈ ±ÔÄ¢µéÀÌ ¹«½ÃµÇ±â ¶§¹®¿¡ ÀÌ·¯ÇÑ º¯È¯ÀÌ ÃæºÐÇÏÁö ¾ÊÀ½Àº ¸í¹éÇÏ´Ù. ¶ÇÇÑ itox ÇÁ·Î±×·¥Àº ¾ÆÁ÷µµ À¯ÁöµÇ°í ÀÖÁö¸¸ ´õ ÀÌ»ó °³¹ßµÇÁö ¾Ê°í ÀÖ¾î xconv.pl ÇÁ·Î±×·¥ÀÌ ´õ¿í ³ªÀº ÇØ°áÃ¥À» Á¦½ÃÇÒ ¼ö ÀÖ´Ù. ¹°·Ð inetd °¡ Á¦°øÇϴ Ư¡ ¿Ü¿¡ xinetd ¸¸ÀÌ Á¦°øÇϴ Ư¡µé ¶§¹®¿¡ º¯È¯ °á°ú´Â ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù:

            >> /usr/local/sbin/xconv.pl < /etc/inetd.conf > /etc/xinetd.conf

    ¼³Á¤ ÆÄÀÏÀº µðÆúÆ® Àý·Î ½ÃÀÛÇϴµ¥ ÀÌ ¼Ó¼ºµéÀº xinetd °¡ ´Ù·ç´Â ¸ðµç ¼­ºñ½ºµé¿¡ »ç¿ëµÈ´Ù. µðÆúÆ® Àý ´ÙÀ½¿¡ °¢°¢ÀÇ ¼­ºñ½º¿¡ ÇØ´çÇÏ´Â ÀýµéÀÌ Àִµ¥ °¢°¢ÀÇ Àýµé¿¡¼­ µðÆúÆ® ¿É¼Ç Áß Æ¯Á¤ ¿É¼ÇÀ» ÀçÁ¤ÀÇ ÇÒ ¼ö ÀÖ´Ù.

    µðÆúÆ® ÀýÀº ´ÙÀ½°ú °°´Ù:

            defaults
            {
                attribute operator value(s)
                ...
            }

    ÀÌ Àý¿¡ Á¤ÀÇµÈ °¢ ¼Ó¼ºÀº ÀÌÈÄ¿¡ ±â¼úµÇ´Â ¸ðµç ¼­ºñ½º¿¡ ´ëÇØ Á¦°øµÈ °ªÀ» À¯ÁöÇϴµ¥ µû¶ó¼­ only_from ¼Ó¼º¿¡ ¼­¹ö¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Â Àΰ¡µÈ ÁÖ¼ÒµéÀ» ¿­°ÅÇÒ ¼ö ÀÖ´Ù:

            only_from = 192.168.1.0/24 192.168.5.0/24 192.168.10.17

    ÀÌÈÄ¿¡ ¼±¾ðµÈ ¸ðµç ¼­ºñ½º´Â ¸ñ·Ï¿¡ Æ÷ÇÔµÈ ÁÖ¼ÒÀÇ ¸Ó½ÅÀ¸·ÎºÎÅÍÀÇ Á¢±Ù¸¸À» Çã¿ëÇÒ °ÍÀÌ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ µðÆúÆ® °ªÀº °¢ ¼­ºñ½º¿¡ ´ëÇØ ¼öÁ¤µÉ ¼ö ÀÖ´Â ¹Ý¸é(¹ØºÎºÐ¿¡ ¼³¸íµÈ ¿¬»êÀÚ¸¦ üũÇضó) ¸Å¿ì À§ÇèÇÏ´Ù. »ç½Ç °£´ÜÇÏ°í ¾ÈÀüÇÏ°Ô ¼­ºñ½º¸¦ Á¦°øÇϱâ À§Çؼ­´Â µðÆúÆ® °ªÀ» Á¤ÀÇÇÏÁö ¾Ê°í °¢ ¼­ºñ½º ³»¿¡¼­ ÃßÈÄ À̵éÀ» º¯°æÇÏ´Â °ÍÀÌ ´õ¿í ÁÁ´Ù. ¿¹¸¦ µé¸é Á¢±Ù ±ÇÇÑÀÇ °æ¿ì °¡Àå °£´ÜÇÑ Á¤Ã¥Àº ¸ðµç ¼­ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀ» °ÅÀýÇÏ°í ´ÙÀ½¿¡ ¼­ºñ½º¸¦ ¿øÇÏ´Â À̵鿡°Ô¸¸ °¢ ¼­ºñ½º¿¡ ´ëÇØ Á¢±ÙÀ» Çã¿ëÇÏ´Â °ÍÀÌ´Ù(tcp_wrapper¸¦ ÀÌ¿ëÇÒ ¶§ ÀÌ´Â ALL:ALL@ALLÀ» Æ÷ÇÔÇÏ´Â hosts.deny ÆÄÀÏ°ú ´ÜÁö Àΰ¡µÈ ¼­ºñ½º ¹× ÁÖ¼Ò¸¦ Á¦°øÇÏ´Â hosts.allow ÆÄÀÏÀ» »ç¿ëÇؼ­ ÀÌ·ç¾îÁø´Ù).

    ¼³Á¤ ÆÄÀÏÀÇ ¼­ºñ½º¸¦ ±â¼úÇÏ´Â °¢ ÀýÀº ´ÙÀ½°ú °°´Ù:

            service service_name
            {
                attribute operator value(s)
                ...
            }

    ¡®=¡¯, ¡®+=¡±°ú ¡°-=¡± ¼¼ ¿¬»êÀÚ°¡ Çã¿ë°¡´ÉÇѵ¥ ´ëºÎºÐÀÇ ¼Ó¼ºµéÀº ÀÌ¿¡ °íÁ¤µÈ °ªÀ» ÇÒ´çÇϴµ¥ »ç¿ëµÇ´Â ¡°=¡± ¿¬»êÀÚ¸¸ Áö¿øÇÑ´Ù. ¡°+=¡± ¿¬»êÀÚ´Â °ªµéÀÇ ¸ñ·Ï¿¡ Á¶Ç×À» Ãß°¡ÇÏ´Â ¹Ý¸é ¡°-=¡± ¿¬»êÀÚ´Â ÀÌ Á¶Ç×À» Á¦°ÅÇÑ´Ù.

    <Ç¥ 1>Àº ÀÌ·¯ÇÑ ¼Ó¼ºµéÀ» °£·«È÷ ±â¼úÇϴµ¥ ÃßÈÄ ¸î °¡Áö ¿¹¸¦ ÅëÇØ À̵éÀÇ »ç¿ë¹ýÀ» ¾Ë¾Æº¼ °ÍÀÌ´Ù. ´õ¿í ¸¹Àº Á¤º¸¸¦ ¾ò±â À§Çؼ­´Â xinetd.conf ¸Å´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

    < Ç¥ 1. xinetd ¼Ó¼º >

    ¼Ó ¼º

    °ª ¹× ¼³¸í

    flags

    ´ëºÎºÐÀÇ ÇöÀç °ªµé¸¸ÀÌ ¿©±â ¾ð±ÞµÇ´Âµ¥ »õ·Î¿î °ªµéÀº Âü°í¹®¼­¸¦ º¸±â ¹Ù¶õ´Ù.
    ¡ÆIDONLY : ½Äº° ¼­¹ö¸¦ °®´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍÀÇ Á¢¼Ó¸¸À» Çã¿ëÇÑ´Ù;
    ¡ÆNORETRY : ½ÇÆÐÇÑ °æ¿ì »õ·Î¿î ÇÁ·Î¼¼½ºÀÇ ºÐ±â¸¦ ÇÇÇÑ´Ù;
    ¡ÆNAMEINARGS : server_args ¼Ó¼ºÀÇ Ã¹ ¹ø° Àμö¸¦ server ¿¡ ´ëÇÑ
                            argv[0] ·Î »ç¿ëÇϴµ¥, ÀÌ´Â inetd ¿¡¼­¿Í °°ÀÌ
                            server ¼Ó¼ºÀ» tcpd ·Î ÇÏ°í ´ÙÀ½¿¡ ¼­¹ö À̸§ ¹×
                            ±× Àμö·Î server_args¸¦ ½á³õÀ½À¸·Î½á tspd»ç¿ëÀ»
                            Çã¿ëÇÑ´Ù.

    log_type

    xinetd ´Â µðÆúÆ®·Î syslogd ¿Í daemon.info ¼±ÅÃÀÚ¸¦ »ç¿ëÇÑ´Ù.
    ¡ÆSYSLOG selector [level] : syslogd °¡ daemon, auth, user ¶Ç´Â
                                           local0-7 Áß¿¡¼­ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù;
    ¡ÆFILE[max_size[absolute_max_size]] : ÁöÁ¤µÈ ÆÄÀÏÀÌ ·Î±ë Á¤º¸¸¦ ¹Þ´Âµ¥, µÎ ¿É¼ÇÀº ÆÄÀÏ Å©±â ÇѰ踦 ¼³Á¤ÇÑ´Ù. ÆÄÀÏ Å©±â°¡ ÇÑ°è°ª¿¡ µµ´ÞÇÏ¸é ¿ì¼± ¸Þ½ÃÁö¸¦ syslogd¿¡ º¸³»°í ´ÙÀ½¿¡ ÀÌ ¼­ºñ½º¿¡ ´ëÇÑ ·Î±ëÀ» ÁßÁöÇÑ´Ù(ÀϹÝÀûÀÎ ÆÄÀÏ ¶Ç´Â µðÆúÆ®·Î °íÁ¤µÇ¾î ÀÖ´Ù¸é ´Ù¾çÇÑ ¼­ºñ½ºµéÀÌ °ü·ÃµÉ ¼ö ÀÖ´Ù.)

    log_on_success

    ¼­¹ö°¡ ±¸µ¿ÇÒ ¶§ ¿©·¯ °¡Áö Á¤º¸°¡ ±â·ÏµÉ ¼ö ÀÖ´Ù:
    ¡ÆPID : ¼­¹öÀÇ PID(³»ºÎ xinetd ¼­ºñ½º¶ó¸é PID ´Â 0ÀÇ °ªÀ» °®´Â´Ù) ;
    ¡ÆHOST : Ŭ¶óÀ̾ðÆ® ÁÖ¼Ò ;
    ¡ÆUSERID : ½Äº° ÇÁ·ÎÅäÄÝÀ» Á¤ÀÇÇÏ´Â RFC1413 ¿¡ µû¸¥
                   ¿ø°Ý »ç¿ëÀÚÀÇ ¾ÆÀ̵§Æ¼Æ¼ ;
    ¡ÆEXIT : ÇÁ·Î¼¼½º Á¾·á »óÅ ;
    ¡ÆDURATION : ¼¼¼Ç Áö¼Ó ±â°£

    log_on_failure

    xinetd ´Â ¼­¹ö°¡ ÀÚ¿ø ºÎÁ· ¶Ç´Â Á¢±Ù ±ÔÄ¢ ¶§¹®¿¡ ±¸µ¿ÇÒ ¼ö ¾øÀ» ¶§ ´Ù¾çÇÑ Á¤º¸¸¦ ±â·ÏÇÒ ¼ö ÀÖ´Ù.
    ¡ÆHOSTID, USERID : À§¿Í µ¿ÀÏ ;
    ¡ÆATTEMPT : Á¢±Ù ½Ãµµ¸¦ ±â·ÏÇÏ¸ç ´Ù¸¥ °ªÀÌ Àú°øµÇÀÚ¸¶ÀÚ ½ÇÇàµÇ´Â
                      ÀÚµ¿ ¿É¼Ç ;
    ¡ÆRECORD : Å¬¶óÀ̾ðÆ®¿¡ ´ëÇÑ ¾òÀ» ¼ö ÀÖ´Â ¸ðµç Á¤º¸¸¦ ±â·ÏÇÑ´Ù ;

    nice

    nice ¸í·É¾î¿Í °°ÀÌ ¼­¹ö ¿ì¼±±ÇÀ» º¯°æÇÑ´Ù.

    no_access

    ÀÌ ¼­ºñ½º¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Â Ŭ¶óÀ̾ðÆ® ¸ñ·Ï

    only_from

    Àΰ¡µÈ Ŭ¶óÀ̾ðÆ® ¸ñ·Ï. ÀÌ ¼Ó¼º¿¡ °ªÀÌ ºÎ¿©µÇÁö ¾Ê´Â´Ù¸é ¼­ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀÌ °ÅÀýµÈ´Ù.

    port

    ¼­ºñ½º¿Í °ü·ÃµÈ Æ÷Æ®. /etc/service ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù¸é À̵é Æ÷Æ® ³Ñ¹ö´Â ¼­·Î ÀÏÄ¡µÇ¾î¾ß ÇÑ´Ù.

    protocol

    ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀº /etc/protocol ÆÄÀÏ¿¡ Á¸ÀçÇØ¾ß Çϴµ¥ ÇÁ·ÎÅäÄÝÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é µðÆúÆ® ÇÁ·ÎÅäÄÝÀÌ »ç¿ëµÈ´Ù.

    server

    ¼­¹ö °æ·Î.

    server_args

    ¼­¹ö¿¡ ÁÖ¾îÁö´Â Àμö.

    socket_type

    stream(TCP), dgram(UDP), raw(IP direct access) ¶Ç´Â seqpacket()

    type

    xinetd ´Â ¼¼°¡Áö À¯ÇüÀÇ ¼­ºñ½º¸¦ ´Ù·ê ¼ö ÀÖ´Ù :
    1. RPC : /etc/rpc ÆÄÀÏ¿¡ Á¤ÀǵǾî Àִµ¥ ±×´ÙÁö Àß
                 ÀÛµ¿µÇÁö ¾Ê´Â´Ù :
    2. INTERNAL : echo, time, daytime, chargen ¹× discard ¿Í °°Àº
                          xinetd °¡ Á÷Á¢ÀûÀ¸·Î ´Ù·ç´Â ¼­ºñ½º
    3. UNLISTED : /etc/rpc ¶Ç´Â /etc/serviceÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº
                         ¼­ºñ½º ; servers, servicce ¿Í xadmin ³»ºÎ ¼­ºñ½ºµéÀ»
                         ´Ù·ê °ÍÀε¥ ´Ù¾çÇÑ °ªµéÀ» °áÇÕÇÏ´Â °ÍÀÌ °¡´ÉÇÔÀ»
                         ÁÖ¸ñÇϱ⠹ٶõ´Ù.

    wait

    ¾²·¹µå¿¡ ´ëÇÑ ¼­ºñ½º µ¿ÀÛÀ» Á¤ÀÇÇϴµ¥ µÎ °¡Áö °ªÀÌ Çã¿ëµÉ ¼ö ÀÖ´Ù :
    ¡Æyes : ´ÜÀÏ ¾²·¹µå ¼­ºñ½º·Î ÀÌ À¯ÇüÀÇ Á¢¼ÓÀº ´Ü Çϳª¸¸ÀÌ ¼­ºñ½ºµÉ
             ¼ö ÀÖ´Ù ;
    ¡Æno : Á¤ÀÇµÈ ÃÖ´ë ÇÑ°è¿¡ µû¶ó °¢°¢ÀÇ »õ·Î¿î ¼­ºñ½º ¿äû¿¡ ´ëÇØ
            xinetd´Â »õ·Î¿î ¼­¹ö¸¦ ±¸µ¿ÇÑ´Ù(µðÆúÆ®·Î ÀÌ ÇÑ°è´Â ¹«Á¦ÇÑÀÓ
            À» À¯ÀÇÇϱ⠹ٶõ´Ù.)

    cps

    µé¾î¿À´Â Á¢¼Ó ¼ö¸¦ Á¦ÇÑÇϴµ¥, ù ¹ø° Àμö´Â ¼ýÀÚ ÀÚüÀÌ´Ù. ÇÑ°è¼ýÀÚ¸¦ ³ÑÀ» ¶§ µÎ ¹ø° Àμö·Î Á¦°øµÇ´Â ÁÖ¾îÁø ½Ã°£(ÃÊ) µ¿¾È ¼­ºñ½º°¡ ºñÈ°¼ºÈ­µÈ´Ù.

    instances

    µ¿½Ã¿¡ ÀÛµ¿ÇÒ ¼ö ÀÖ´Â µ¿ÀÏ À¯Çü ¼­¹öÀÇ ÃÖ´ë¼ö¸¦ Á¤ÀÇÇÑ´Ù.

    max_load

    ¼­¹ö¿¡ ´ëÇÑ ÃÖ´ë ºÎÇÏ(¿¹¸¦ µé¾î 2 ¶Ç´Â 2.5)¸¦ ³ªÅ¸³»´Âµ¥, ÀÌ ÇѰ踦 ³Ñ´Â °æ¿ì ÀÌ ¼­¹ö¿¡ ´ëÇÑ ¿äûÀº °ÅÀýµÈ´Ù.

    per_source

    µ¿ÀÏ È£½ºÆ®·ÎºÎÅÍÀÇ ¼­¹ö Á¢¼Ó¼ö¸¦ Á¦ÇÑÇÏ´Â Á¤¼ö ¶Ç´Â UNLIMITED


    Ç¥ 1ÀÇ ¸¶Áö¸· 4°¡Áö ¼Ó¼ºµéÀº ¼­¹ö¿¡ µû¸¥ ÀÚ¿øµéÀÇ Á¦¾î¸¦ Çã¿ëÇÑ´Ù. ÀÌ´Â ¼­ºñ½º ºÎÀΰø°ÝÀ¸·ÎºÎÅÍ ¼­¹ö¸¦ º¸È£Çϴµ¥ È¿°úÀûÀÌ´Ù.

    ÀÌ Àý¿¡¼­´Â ¾à°£ÀÇ xinetd Ư¡À» ³ªÅ¸³»¾ú´Âµ¥ ´ÙÀ½ Àý¿¡¼­´Â xinetd »ç¿ë ¹æ¹ýÀ» ¼³¸íÇÏ°í ÀÌ°ÍÀÌ ÀûÀýÈ÷ ÀÛµ¿ÇÏ°Ô ÇÏ´Â ¾à°£ÀÇ ±ÔÄ¢À» ¼³¸íÇÑ´Ù.

 

Á¢±Ù Á¦¾î

    ¾Õ Àý¿¡¼­ º¸¾ÒµíÀÌ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ¿© ¸®´ª½º ¹Ú½º¿¡ ´ëÇÑ Á¢±ÙÀ» ½Â³«Çϰųª ±ÝÁöÇÒ ¼ö Àִµ¥ xinetd ´Â ´õ¿í ¸¹Àº Ư¡À» Çã¿ëÇÑ´Ù:

    ¡¤È£½ºÆ® ³×ÀÓ ºÐ¼®À» ÅëÇØ Á¢±Ù Á¦¾î¸¦ ÇÒ ¼ö Àִµ¥, xinetd ´Â _for_every connection_ ¿¡
      ¸í½ÃµÈ È£½ºÆ® ³×ÀÓÀ» °Ë»öÇÏ¿© Á¢¼Ó ÁÖ¼Ò¸¦ È£½ºÆ® ³×ÀÓ¿¡ ´ëÇØ ¹ÝȯµÈ ÁÖ¼Ò¿Í ºñ±³¸¦ ÇÑ´Ù;

    ¡¤.domain.com ¿¡ ÀÇÇØ Á¢±Ù Á¦¾î¸¦ ÇÒ ¼ö Àִµ¥, Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÇÒ ¶§ xinetd ´Â
       ¿¬°á ÁÖ¼Ò¸¦ ¿ª °Ë»öÇÏ¿© ÁöÁ¤µÈ µµ¸ÞÀγ»¿¡ Á¸ÀçÇÏ´Â Áö¸¦ °Ë»çÇÑ´Ù.

    ¼­ºñ½º¸¦ ÃÖÀûÈ­Çϱâ À§Çؼ­´Â ¸í¹éÈ÷ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ´õ¿í ÁÁÀ¸¸ç ÀÌ·³À¸·Î½á ±× ¼­ºñ½º·Î µé¾î¿À´Â Á¢¼Ó¿¡ ´ëÇÑ ³×ÀÓ °Ë»öÀ» ÇÇÇÑ´Ù.
    È£½ºÆ® ³×ÀÓÀ» ÀÌ¿ëÇØ Á¢±Ù Á¦¾î¸¦ ÇØ¾ß ÇÑ´Ù¸é, ·ÎÄà ³×ÀÓ ¼­¹ö(Àû¾îµµ ij½Ì ¼­¹ö) ¸¦ ¿î¿µÇÏ´Â °æ¿ì »ó´çÇÑ ¼Óµµ Çâ»óÀ» ÀÌ·ê ¼ö ÀÖ´Ù. ÁÖ¼Ò °Ë»öÀ» ¼öÇàÇϱâ À§ÇØ µµ¸ÞÀÎ ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °ÍÀÌ ´õ¿í ´õ ÁÁ´Ù(/etc/resolv.conf ÆÄÀÏ¿¡ nameserver ¿£Æ®¸®¸¦ ³ÖÁö ¸»±â ¹Ù¶õ´Ù).

 

Service defaults

    µðÆúÆ® Àý¿¡¼­ ¸¹Àº ¼Ó¼ºµéÀÇ °ªÀ» ¼³Á¤ÇÒ ¼ö Àִµ¥ Àüü ¸ñ·ÏÀº °ü·Ã ¹®¼­¸¦ È®ÀÎÇϱ⠹ٶõ´Ù. only_from, no_access, log_on_success, log_on_failure µî ¾î¶² ¼Ó¼ºµéÀº ÀÌ Àý ¹× °¢ ¼­ºñ½º Àý¿¡ Á¦°øµÈ °ªµéÀ» µ¿½Ã¿¡ º¸À¯ÇÑ´Ù.

    µðÆúÆ®·Î ¸Ó½Å¿¡ ´ëÇÑ Á¢±ÙÀ» °ÅÀýÇÏ´Â °ÍÀÌ °¡Àå ½Å·ÚÇÒ¸¸ÇÑ º¸¾È Á¤Ã¥ÀÇ Ã¹ ´Ü°èÀε¥ ÀÌ ´ÙÀ½¿¡ °¢ ¼­ºñ½º¿¡ ±âÃÊÇÏ¿© Á¢±Ù Çã¿ëÀ» ¼³Á¤ÇÑ´Ù. IP ÁÖ¼Ò¿¡ ±âÃÊÇÏ¿© ¸Ó½Å¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦¾îÇÏ´Â only_from °ú no_access µÎ ¼Ó¼ºÀÌ Àִµ¥ ¿ì¼± ÈÄÀÚ¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú ¼³Á¤ÇÑ´Ù:

            no_access = 0.0.0.0/0

    ÀÌ´Â ¼­ºñ½º Á¢±ÙÀ» ¿ÏÀüÈ÷ ¸·´Â´Ù. ±×·¯³ª ¸ðµç »ç¶÷¿¡°Ô ¿¹¸¦ µé¾î echo(ping) Á¢±ÙÀ» Çã¿ëÇÏ·Á¸é echo ¼­ºñ½º¸¦ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù:

            only_from = 0.0.0.0/0

    ´ÙÀ½Àº ÀÌ ¼³Á¤À» ÅëÇØ ¾ò´Â ·Î±ë ¸Þ½ÃÁöÀÌ´Ù:

            Sep 17 15:11:12 charly xinetd[26686] : Service=echo-
            stream: only_from list and no_access list match equally
            the address 192.168.1.1.

    ¸íÈ®ÇÏ°Ô Á¢±Ù Á¦¾î°¡ µÎ ¼Ó¼º¿¡ Æ÷ÇÔµÈ ÁÖ¼Ò ¸ñ·ÏÀ» ºñ±³ÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù. Ŭ¶óÀ̾ðÆ® ÁÖ¼Ò°¡ µÎ ¸ñ·Ï ¸ðµÎ¿¡ ÀÏÄ¡ÇÒ ¶§´Â ´ú ÀϹÝÀûÀÎ ¼Ó¼º °ª¿¡ ÀÇÇØ Á¢±Ù Á¦¾î°¡ ÀÌ·ç¾îÁø´Ù. À§¿Í °°ÀÌ ¼Ó¼º °ªÀÌ µ¿ÀÏÇÑ °æ¿ì xinetd ´Â Á¢¼Ó ¼±Åà ¹× °ÅÀýÀ» ÇÒ ¼ö ¾øÀ¸¸ç, ÀÌ·¯ÇÑ ¸ðÈ£ÇÔÀ» ÇÇÇϱâ À§Çؼ­´Â ´ÙÀ½°ú ¼Ó¼ºÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù:

            only_from = 192.0.0.0/8

    ´õ¿í ¼Õ½¬¿î ÇØ°á¹æ¹ýÀº ´ÙÀ½°ú °°Àº ¼Ó¼º ¼³Á¤À» ÅëÇØ Á¢±Ù Á¦¾î¸¦ ÇÏ´Â °ÍÀÌ´Ù:

            only_from =

    ¼Ó¼º °ªÀ» ÁÖÁö ¾Ê¾Ò´Ù°í Çؼ­ ¸ðµç Á¢¼ÓÀÌ ½ÇÆÐÇÏ´Â °ÍÀº ¾Æ´Ï¸ç, µû¶ó¼­ ¸ðµç ¼­ºñ½º´Â ÀÌ¿Í µ¿ÀÏÇÑ ¼Ó¼º¿¡ ÀÇÇØ Á¢±ÙÀ» Çã¿ëÇÑ´Ù.

    ÇʼöÀûÀÌÁö´Â ¾ÊÁö¸¸ Áß¿äÇÑ »çÇ× : ÁÖ¾îÁø ¼­ºñ½º Àý¿¡ only_from ¶Ç´Â no_access ¿Í °°Àº Á¢±Ù ±ÔÄ¢ÀÌ ¾ø´Â °æ¿ì ¼­ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀº Çã¿ëµÈ´Ù.

    ´ÙÀ½Àº µðÆúÆ® ÀýÀÇ ¿¹ÀÌ´Ù:

    defaults
    {
      instances       = 15
      log_type        = FILE /var/log/servicelog
      log_on_success  = HOST PID USERID DURATION EXIT
      log_on_failure  = HOST USERID RECORD
      only_from       =
      per_source      = 5
      disabled = shell login exec comsat
      disabled = telnet ftp
      disabled = name uucp tftp
      disabled = finger systat netstat

      #INTERNAL
      disabled = time daytime chargen servers services xadmin

      #RPC
      disabled = rstatd rquotad rusersd sprayd walld
    }

    ³»ºÎ ¼­ºñ½º(ÁÖ¼® ó¸®µÈ INTERNAL ¶óÀÎ) Áß¿¡¼­ servers, services ¿Í xadmin Àº xinetd °ü¸®¸¦ Çã¿ëÇϴµ¥, ÀÌ´Â ÈÄ¿¡ ´õ¿í ÀÚ¼¼È÷ ´Ù·é´Ù.

 

¼­ºñ½º ¼³Á¤Çϱâ

    ¼­ºñ½º ¼³Á¤À» À§ÇØ Æ¯º°È÷ ´õ¿í ÇÒ °ÍÀº ¾ø´Âµ¥ »ç½Ç ¸ðµç °ÍÀº µðÆúÆ® ÀýÀÇ °ªµé¿¡ ÀÇÇØ ÀÛµ¿ÇÑ´Ù. ´ÜÁö ¼­ºñ½º¸¦ ´Ù·ç±â À§ÇØ ¼Ó¼º°ú °ªÀ» Á¤È®È÷ ÇØ¾ß Çϴµ¥ ÀÌ´Â °¢ ¼­ºñ½º¿¡ ´ëÇØ µðÆúÆ® °ª º¯°æ, ¶Ç´Â ´Ù¸¥ ¼Ó¼ºÀ» ÀǹÌÇÑ´Ù.
    ¾î¶² ¼Ó¼ºµéÀº INTERNAL, UNLISTED, ¶Ç´Â RPC µî ¼­ºñ½º À¯Çü¿¡ µû¶ó Á¸ÀçÇØ¾ß ÇÑ´Ù:

    < Ç¥ 2. ÇÊ¿ä ¼Ó¼ºµé >

    ¼Ó ¼º

    ÇØ ¼³

    socket-type

     ¸ðµç ¼­ºñ½º

    user

     ºñ ¼­ºñ½º¿¡ ´ëÇؼ­¸¸

    server

     ºñ ¼­ºñ½º¿¡ ´ëÇؼ­¸¸

    wait

     ¸ðµç ¼­ºñ½º

    protocol

     ¸ðµç ¼­ºñ½º ¹× ¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ¼­ºñ½º

    rpc_version

     ¸ðµç ¼­ºñ½º

    rpc_number

     ¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ¸ðµç ¼­ºñ½º

    port

     ¸ðµç ¼­ºñ½º ¹× ¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ¼­ºñ½º


    ´ÙÀ½ ¿¹´Â ¼­ºñ½º Á¤ÀÇ ¹æ¹ýÀ» º¸¿©ÁØ´Ù:

    service ntalk
    {
      socket_type   = dgram
      wait          = yes
      user          = nobody
      server        = /usr/sbin/in.ntalkd
      only_from     = 192.168.1.0/24
    }
    service ftp
    {
      socket_type  = stream
      wait         = no
      user         = root
      server       = /usr/sbin/in.ftpd
      server_args  = -l
      instances    = 4
      access_times = 7:00-12:30 13:30-21:00
      nice         = 10
      only_from    = 192.168.1.0/24
    }

    ntalk ¹× ftp ¼­ºñ½º°¡ ´ÜÁö ·ÎÄà ³×Æ®¿öÅ©»ó(192.168.1.0/24) ¿¡¼­¸¸ Çã¿ëµÊÀ» ÁÖ¸ñÇÏÀÚ. FTP ¼­ºñ½º¿Í °ü·ÃÇؼ­´Â ´ÜÁö 4 °³ÀÇ ÀνºÅϽº »ý¼ºÀÌ Çã¿ëµÇ¸ç ÀÏÁ¤ ½Ã°£µ¿¾È¸¸ ¼­ºñ½º°¡ Çã¿ë °¡´ÉÇÏ¿© µû¶ó¼­ ¼­ºñ½º¿¡ ´ëÇØ º¸´Ù ¸¹Àº Á¦ÇÑÀ» ÇÑ´Ù.

    Æ÷Æ® ¹ÙÀεù: bind ¼Ó¼º

    ÀÌ ¼Ó¼ºÀº ƯÁ¤ IP ÁÖ¼Ò·ÎÀÇ ¼­ºñ½º ¹ÙÀεùÀ» Çã¿ëÇϴµ¥ ÄÄÇ»ÅÍ°¡ Àû¾îµµ µÎ°³ÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ °®°í ÀÖÀ» ¶§¸¸ À¯¿ëÇÏ´Ù. ¿¹¸¦ µé¸é ·ÎÄà ³×Æ®¿öÅ©ÀÇ ÀϺκÐÀ¸·Î º°°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ÀÎÅͳݿ¡ Á¢¼ÓµÈ ÄÄÇ»ÅÍÀÇ °æ¿ìÀÌ´Ù.

    ¿¹¸¦ µé¾î ÇÑ È¸»ç°¡ Á÷¿øµéÀÌ ³»ºÎ ¹®¼­¿¡ Á¢±ÙÇؼ­ À̸¦ ÀÐÀ» ¼ö ÀÖµµ·Ï FTP ¼­¹ö¸¦ ¼³Ä¡ÇÏ·Á°í ÇÏ¸ç ¶ÇÇÑ ¿ÜºÎ Ŭ¶óÀ̾ðÆ®¿¡°Ô´Â ȸ»ç Á¦Ç°¿¡ ´ëÇÑ FTP Á¢±ÙÀ» Á¦°øÇÑ´Ù°í ÇÒ ¶§ bind ¼Ó¼ºÀÌ »ç¿ëµÈ´Ù. ÀÌ¿¡ ´ëÇÑ ÇØ°á¹æ¹ýÀº °ø°³ Á¢±Ù ¹× ³»ºÎ ȸ»ç Á¢±Ù¸¸À» À§ÇÑ µÎ º°°³ÀÇ FTP ¼­ºñ½º¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª xinetd °¡ À̵éÀ» ±¸º°ÇÒ ¼ö ÀÖ¾î¾ß Çϴµ¥, ÀÌ´Â id ¼Ó¼ºÀ» »ç¿ëÇÔÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â ¼­ºñ½º¸¦ À¯ÀÏÇÑ ¹æ½ÄÀ¸·Î Á¤ÀÇÇÑ´Ù(¼­ºñ½º³»¿¡¼­ id ¼Ó¼ºÀÌ Á¤ÀǵÇÁö ¾ÊÀ» ¶§ µðÆúÆ® °ªÀº ¼­ºñ½º À̸§ÀÌ´Ù).

    service ftp
    {
      id           = ftp-public
      wait         = no
      user         = root
      server       = /usr/sbin/in.ftpd
      server_args  = -l
      instances    = 4
      nice         = 10
      only_from    = 0.0.0.0/0 #allows every client
      bind         = 212.198.253.142 #public IP address for this server
    }
    service ftp
    {
      id           = ftp-internal
      socket_type  = stream
      wait         = no
      user         = root
      server       = /usr/sbin/in.ftpd
      server_args  = -l
      only_from    = 192.168.1.0/24 #only for internal use
      bind         = 192.168.1.1  #local IP address for this server (charly)
    }

    bind ¼Ó¼ºÀÇ »ç¿ëÀº ÆÐŶÀÇ ¸ñÀûÁö¿¡ µû¶ó ÇØ´ç µ¥¸óÀ» ¿äûÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. µû¶ó¼­ ÀÌ ¼³Á¤¿¡ ´ëÇØ ·ÎÄà ³×Æ®¿öÅ©»óÀÇ Å¬¶óÀ̾ðÆ®´Â ³»ºÎ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱâ À§ÇØ ·ÎÄà ÁÖ¼Ò(¶Ç´Â °ü·Ã À̸§) ¸¦ ÁÖ¾î¾ß ÇÑ´Ù.

    ·Î±× ÆÄÀÏÀº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù:

    00/9/17@16:47:46: START: ftp-public pid=26861 from=212.198.253.142
    00/9/17@16:47:46: EXIT   : ftp-public status=0 pid=26861 duration=30(sec)
    00/9/17@16:48:19: START: ftp-internal pid=26864 from=192.168.1.1
    00/9/17@16:48:19: EXIT   : ftp-internal status=0 pid=26864 duration=15(sec)

    ù ¹ø° ºÎºÐÀº ftp 212.198.253.142 ¸í·É, µÎ ¹ø° ºÎºÐÀº charly ¶ó´Â ·ÎÄà ³×Æ®¿öÅ©»ó¿¡¼­ ftp 192.168.1.1. ¸í·É¿¡ ´ëÇÑ °ÍÀÌ´Ù.
    ¸Ó½ÅÀÌ µÎ°³ÀÇ Á¤Àû IP ÁÖ¼Ò°¡ ¾ø´Â °æ¿ì ¹®Á¦°¡ »ý±æ °ÍÀº ¸í¹éÇÏ´Ù. ÀÌ´Â ppp Á¢¼Ó, ¶Ç´Â dhcp ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¶§ ¹ß»ýÇÒ ¼ö Àִµ¥, ÁÖ¼Òº¸´Ù´Â ÀÎÅÍÆäÀ̽º¿¡ ¼­ºñ½º¸¦ ¹ÙÀεùÇÏ´Â °ÍÀÌ ´õ¿í ÁÁÀ» µí ÇÏ´Ù. ±×·¯³ª ÀÌ´Â ¾ÆÁ÷±îÁö xinetd¿¡¼­ Áö¿øµÇÁö ¾ÊÀ¸¸ç ½ÇÁ¦ ¹®Á¦°¡ µÈ´Ù(¿¹¸¦ µé¾î ÀÎÅÍÆäÀ̽º ¶Ç´Â ÁÖ¼Ò¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â C ¸ðµâÀ» ÀÛ¼ºÇÏ´Â °ÍÀº OS ¿¡ ÀÇÁ¸Çϸç xinetd ´Â ¸¹Àº OS ¿¡¼­ Áö¿øµÇ±â ¶§¹®). ½ºÅ©¸³Æ® »ç¿ëÀÌ ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù:

            #!/bin/sh
            PUBLIC_ADDRESS=`/sbin/ifconfig $1 | grep ¡°inet addr¡± |
            awk ¡®{print $2}¡¯| awk -F: ¡®{print $2}¡¯`     sed s/PUBLIC_ADDRESS/¡±$PUBLIC_ADDRESS¡±/g /etc/xinetd.base
            > /etc/xinetd.conf

    ÀÌ ½ºÅ©¸³Æ®´Â µ¿Àû ÁÖ¼Ò¸¦ ´ë½ÅÇÏ´Â PUBLIC_ADDRESS ·Î ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ /etc/xinetd.base ÆÄÀÏ¿¡¼­ PUBLIC_ADDRESS ¹®ÀÚ¿­À» ½ºÅ©¸³Æ®¿¡ Àμö·Î ³Ñ°ÜÁö´Â ÀÎÅÍÆäÀ̽º¿Í °ü·ÃµÈ ÁÖ¼Ò·Î ¼öÁ¤ÇÏ¿© /etc/xinetd.conf ÆÄÀÏ¿¡ À̸¦ º¯°æÇÑ´Ù. ´ÙÀ½ÀÌ ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¿äûÀº Á¢¼Ó À¯Çü¿¡ ÀÇÁ¸Çϴµ¥ °¡Àå °£´ÜÇÑ °ÍÀº Á¤È®ÇÑ ifup-* ÆÄÀÏ¿¡ ´ëÇÑ È£ÃâÀ» Ãß°¡ÇÏ¿© xinetd¸¦ Àç½Ãµ¿ÇÏ´Â °ÍÀÌ´Ù.

    ´Ù¸¥ ¸Ó½Å¿¡ ´ëÇÑ ¼­ºñ½º ¸®µð·º¼Ç: redirect ¼Ó¼º

    xinetd´Â redirect ¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© ÀÏÁ¾ÀÇ Åõ¸í ÇÁ¶ô½Ã·Î »ç¿ëµÉ ¼ö Àִµ¥, ´Ù¸¥ ¸Ó½Å¿¡ ´ëÇÑ ¼­ºñ½º ¿äûÀ» ¿øÇÏ´Â Æ÷Æ®·Î º¸³¾ ¼ö ÀÖ°Ô ÇÑ´Ù.

            service telnet
            {
              flags  = REUSE
              socket_type = stream
              wait  = no
              user  = root
              server = /usr/sbin/in.telnetd
              only_from = 192.168.1.0/24
              redirect = 192.168.1.15 23
            }

    ¾î¶»°Ô ÀÛµ¿µÇ´ÂÁö ÁöÄѺ¸ÀÚ:

            >>telnet charly
            Trying 192.168.1.1...
            Connected to charly.
            Escape character is ¡®^]¡¯.
            
            Digital UNIX (sabrina) (ttyp1)
            
            login:

    ¿ì¼± Á¢¼ÓÀÌ charly »ó¿¡¼­ ÀÌ·ç¾îÁø µí ÇÏÁö¸¸ sabrina(¾ËÆÄ ¸Ó½Å, ¡°Digital UNIX¡±) ¿¡¼­ ÀÌ Á¢¼ÓÀÌ ÀÌ·ç¾îÁ³À½À» º¸ÀδÙ. ÀÌ ¸ÞÄ«´ÏÁòÀº À¯¿ëÇÑ ¹Ý¸é À§ÇèÇÏ´Ù. redirect ¼Ó¼ºÀ» °®°í ¼³Á¤ÇÒ ¶§ Á¢¼Ó ¾ç´Ü ¸ðµÎ¿¡ ´ëÇØ ·Î±ëÀÌ ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù. ´õ±¸³ª ÀÌ·¯ÇÑ À¯ÇüÀÇ ¼­ºñ½º¿¡ ´ëÇؼ­´Â DMZ °ú ¹æÈ­º® »ç¿ëÀ» °­·ÂÈ÷ ÃßõÇÑ´Ù.

 

Ưº° ¼­ºñ½º

    ¼¼°¡Áö ¼­ºñ½º´Â xinetd ¸¸ÀÌ ¼öÇàÇϴµ¥ À̵éÀº /etc/rpc ¶Ç´Â /etc/services ÆÄÀÏ¿¡¼­ ãÀ» ¼ö ¾ø±â ¶§¹®¿¡ UNLISTED flag ¸¦ °¡Á®¾ß ÇÑ´Ù(¹°·Ð xinetd ¼­ºñ½ºÀÓÀ» ¾Ë¸®´Â INTERNAL flag µµ ¶ÇÇÑ °¡Á®¾ß ÇÑ´Ù).

       1. servers: »ç¿ë ÁßÀÎ ¼­¹ö¿¡ ´ëÇØ ¾Ë·ÁÁØ´Ù;
       2. services: Çã¿ë°¡´ÉÇÑ ¼­ºñ½º, À̵éÀÇ ÇÁ·ÎÅäÄÝ ¹× Æ÷Æ®¿¡ ´ëÇØ ¾Ë·ÁÁØ´Ù.
       3. xadmin: 1 °ú 2 ¼­ºñ½ºÀÇ ±â´ÉÀ» °áÇÕÇÑ´Ù.

    ÀÌµé ¼­ºñ½º´Â Áß¿äÇÑ Á¤º¸¸¦ Á¦°øÇϱ⠶§¹®¿¡ ÄÄÇ»Å͸¦ ´õ¿í °ø°Ý´çÇϱ⠽±°Ô ÇÏ´Â °ÍÀº ¸í¹éÇÏ´Ù. ÇöÀç À̵éÀÇ Á¢±ÙÀº º¸È£¹ÞÁö ¸øÇϴµ¥(¿¹¸¦ µé¸é Æнº¿öµå¿¡ ÀÇÇÑ º¸È£), À̵éÀº ¼³Á¤½Ã¿¡¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.
    ´ÙÀ½ µðÆúÆ® Àý¿¡¼­ ´ÙÀ½°ú °°ÀÌ À̵éÀÇ »ç¿ëÀ» °ÅÀýÇØ¾ß ÇÑ´Ù:

    defaults {
      ...
      disabled = servers services xadmin
      ...
    }

    À̵éÀ» È°¼ºÈ­Çϱâ Àü¿¡ ¹Ì¸® ¿¹¹æÁ¶Ä¡¸¦ ÃëÇØ¾ß ÇÑ´Ù:

       1. xinetd ¸¦ ¿î¿µÇÏ´Â ¸Ó½Å¸¸ÀÌ ÀÌ·¯ÇÑ ¼­ºñ½º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
       2. ÀνºÅϽºÀÇ ¼ö¸¦ Çϳª·Î Á¦ÇÑÇÑ´Ù.
       3. ¼­¹ö¸¦ ¿î¿µÇÏ´Â ¸Ó½ÅÀ¸·ÎºÎÅÍÀÇ Á¢±Ù¸¸À» Çã¿ëÇÑ´Ù.

    xadmin ¼­ºñ½º¸¦ ¿¹¸¦ µé¾îº¸ÀÚ.
    (³ª¸ÓÁö µÎ ¼­ºñ½ºµµ Æ÷Æ® ³Ñ¹ö¸¦ Á¦¿ÜÇÏ°í´Â ÀÌ¿Í µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î ¼³Á¤µÉ ¼ö ÀÖ´Ù)

    service xadmin
    {
      type  = INTERNAL UNLISTED
      port  = 9100
      protocol = tcp
      socket_type = stream
      wait  = no
      instances = 1
      only_from = 192.168.1.1  #charly
    }

    xadmin ¼­ºñ½º´Â ´Ù¼¸ °³ÀÇ ¸í·ÉÀ» °®°í ÀÖ´Ù:

       1. help ...
       2. show run: servers ¼­ºñ½º¿Í °°ÀÌ ÇöÀç ÀÛµ¿ÇÏ´Â ¼­¹ö¿¡ ´ëÇØ ¾Ë·ÁÁØ´Ù.
       3. show avail: servers ¼­ºñ½º¿Í °°ÀÌ Çã¿ë°¡´ÉÇÑ ¼­ºñ½º¿¡ ´ëÇØ ¾Ë·ÁÁØ´Ù
           (¾à°£ ´õ ¸¹Àº Á¤º¸).
       4. bye or exit ...

    ÀÌ·¯ÇÑ ¼­ºñ½º°¡ Á¸ÀçÇÏÁö¸¸ À̵éÀ» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ÀÌ·¯ÇÑ ¼­ºñ½º°¡ ¾ø´õ¶óµµ netstat, fuser, lsof µîµîÀÇ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÄÄÇ»ÅÍ¿¡¼­ ¹«¾ùÀÌ ÁøÇàµÇ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ·¯ÇÑ ¼­ºñ½º¸¦ »ç¿ëÇÒ ¶§ °ø°Ý´çÇϱâ´Â ½±Áö ¾Ê´Ù.

    Starting with a riddle

    Áö±Ý±îÁö Àß µû¶ó¿Â µ¶ÀÚ¸¦ À§ÇØ ÀÛÀº ¿¬½À ¹®Á¦°¡ Àִµ¥, ¿ì¼± ÀÌ¿¡ »ç¿ëµÈ ¼³Á¤À» ¼³¸íÇÒ °ÍÀÌ°í, ´ÙÀ½ ¹«¾ùÀÌ ¹ß»ýÇß´ÂÁö, ¿Ö Àß ÀÛµ¿ÇÏÁö ¾Ê´ÂÁö¸¦ ÀÌÇØÇÏ·Á°í ÇÒ °ÍÀÌ´Ù.

    ´ÜÁö finger ¼­ºñ½º¸¸À» ´Ù·é´Ù:

            service finger
            {
              flags  = REUSE NAMEINARGS
              server = /usr/sbin/tcpd
              server_args = in.fingerd
              socket_type = stream
              wait  = no
              user  = nobody
              only_from = 192.168.1.1  #charly
            }

    xinetd ´Â --with-libwrap ¿É¼Ç¾øÀÌ ÄÄÆÄÀϵǾú´Ù.(server ¼Ó¼ºÀ» Á¶»çÇضó).
    µðÆúÆ® ÀýÀº ¾Õ¼­ Á¦°øÇÑ °Í°ú µ¿ÀÏÇѵ¥, charly ¿¡ÀÇ ¸ðµç Á¢±ÙÀº Á¢¼ÓÀÌ ¾îµð¼­ ¿Àµç ¸ðµÎ °ÅÀýµÈ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í finger ¼­ºñ½º´Â È°¼ºÈ­µÇ¾î ÀÖ´Ù.:

            pappy@charly >> finger pappy@charly
            [charly]
            pappy@charly >>
            pappy@bosley >>  finger pappy@charly
            [charly]

            pappy@bosley >>

    Àΰ¡µÈ ¸Ó½ÅÀÎ charly(192.168.1.1) »Ó¸¸ ¾Æ´Ï¶ó bosley(192.168.1.10) ·ÎºÎÅÍÀÇ ¿äûµµ Àß ÀÛµ¿ÇÑ °Íó·³ º¸ÀδÙ. ·Î±× ÆÄÀÏÀ» Çѹø º¸ÀÚ:

            /var/log/servicelog :
            00/9/18@17:15:42: START: finger pid=28857 from=192.168.1.1
            00/9/18@17:15:47: EXIT: finger status=0 pid=28857 duration=5(sec)
            00/9/18@17:15:55: FAIL: finger address from=192.168.1.10

    óÀ½ µÎ ¶óÀÎÀÎ charly ·ÎºÎÅÍÀÇ ¿äûÀº xinetd ¿¡ µû¶ó ÀûÀýÈ÷ ÀÛµ¿µÇ¾î, Áï Á¢±ÙÀÌ Çã¿ëµÇ¾î ¿äû¿¡ °É¸° ½Ã°£Àº 5ÃÊÀÌ´Ù. ¹Ý¸é¿¡ bosley ·ÎºÎÅÍÀÇ ¿äûÀº °ÅÀýµÈ´Ù(FAIL).
    finger ¼­ºñ½ºÀÇ ¼³Á¤À» º»´Ù¸é »ç¿ëµÈ ¼­¹ö°¡ ½ÇÁ¦·Î´Â in.fingerd°¡ ¾Æ´Ï¶ó tcp_wrapper tcpd ¼­ºñ½ºÀÓÀ» ¾Ë ¼ö Àִµ¥, wrapper ·Î±×´Â ´ÙÀ½°ú °°´Ù:

            /var/log/services :
            Sep 18 17:15:42 charly in.fingerd[28857]: refused connect from 192.168.1.1

    À§ÀÇ µÎ ¿äû°ú ÀÏÄ¡ÇÏ´Â ·Î±×´Â ´ÜÁö ÇÑ ¶óÀÎÀ¸·Î bosley ·ÎºÎÅÍÀÇ µÎ ¹ø° ¿äûÀº xinetd ¿¡ ÀÇÇØ Â÷´ÜµÇ¾î ·Î±×¿¡¼­ ãÀ» ¼ö ¾ø´Â °ÍÀÌ Á¤»óÀÌ´Ù. ½ÇÁ¦ À§ÀÇ wrapper ·Î±×´Â xinetd °¡ Çã¿ëÇÑ charly ·ÎÄà ³×Æ®¿öÅ©»ó¿¡¼­ÀÇ ¿äûÀ¸·Î ½Ã°£°ú pid °ú µ¿ÀÏÇÔÀ» ¾Ë ¼ö ÀÖ´Ù:

    ¿ä¾àÇÏ¸é ´ÙÀ½°ú °°´Ù:

       1. xinetd´Â ¿äûÀ» Çã¿ëÇß´Ù;
       2. finger ¿äûÀÌ tcpd ¸¦ ÅëÇØ ÀÌ·ç¾îÁø´Ù;
       3. in.fingerd °¡ ÀÌ ¿äûÀ» °ÅÀýÇß´Ù.

    ¾î¶»°Ô ÁøÇàµÇ¾ú´Â°¡? xinetd °¡ Çã¿ëÇÑ ¿äûÀÌ Æ¯Á¤ ¼­¹ö(¿©±â¼­´Â tcpd) ¿¡ º¸³»Á³Áö¸¸ tcpd ´Â ÀÌ Á¢¼ÓÀ» °ÅÀýÇÏ¿´´Ù. µû¶ó¼­ hosts.allow ¿Í hosts.deny ÆÄÀÏÀ» »ìÆ캸¾Æ¾ß ÇÑ´Ù.
    /etc/hosts.deny ÆÄÀÏ¿¡´Â ALL:ALL@ALL ¸¸ Æ÷ÇÔÇÏ°í Àִµ¥ ÀÌ°ÍÀÌ wrapper ¿¡ ÀÇÇØ ¿äûÀÌ °ÅÀýµÈ °ÍÀ» ¼³¸íÇÑ´Ù.

    server ¹× server_args ¼­ºñ½º ¶óÀÎÀÌ Á¤ÀÇµÈ ¹æ½Ä¿¡ µû¶ó wrapper Ư¡Àº ¾ÆÁ÷µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù(xinetd ÀÇ banner, spawn, twist µî). --with-libwrab ÄÄÆÄÀÏ ¿É¼ÇÀº hosts.allow ¿Í hosts.deny ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© xinetd ÇÁ·Î¼¼½º°¡ ½ÃÀÛÇϱâ Àü¿¡ Á¢±Ù ±ÇÇÑ¿¡ ´ëÇÑ Á¦¾î¸¸ Ãß°¡ÇÔÀ» ±â¾ïÇϱ⠹ٶõ´Ù. À§ ¿¹¿¡¼­ ÀÌ·¯ÇÑ ¼³Á¤À» ÅëÇØ tcp wrapper Ư¡À» °è¼ÓÇؼ­ »ç¿ëÇÒ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.

    ÀÌ·¯ÇÑ Æ¯Â¡ Áߺ¹ (overlapping of features) Àº ÀÛµ¿µÈ´Ù°í ÇÏ´õ¶óµµ ÀÌ»óÇÑ µ¿ÀÛÀ¸·Î À̲ô´Â °ÍÀº ´ç¿¬Çѵ¥, inetd ¹× portmap °ú ÇÔ²² xinetd ¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ÀÌ·¯ÇÑ ½´ÆÛ µ¥¸ó Áß ´Ü Çϳª¸¦ ÀÌ¿ëÇØ ¼­ºñ½º¸¦ ´Ù·ç´Â °ÍÀÌ ´õ¿í ÁÁ´Ù.

    chroot a service

    ¾î¶² ¼­ºñ½ºÀÇ Çʵå Á¦ÇÑ ¶Ç´Â »õ·Î¿î ȯ°æÀÇ »ý¼ºÀÌ Á¾Á¾ Á¦½ÃµÇ´Âµ¥ chroot ¸í·ÉÀº ¸í·É (¶Ç´Â ½ºÅ©¸³Æ®) ¿¡ ´ëÇÑ ·çÆ® µð·ºÅ丮 º¯°æÀ» Çã¿ëÇÑ´Ù:

            chroot [options] new_root

    ÀÌ´Â bind/DNS ¶Ç´Â ftp ¿Í °°Àº ¼­ºñ½º¸¦ º¸È£Çϴµ¥ Á¾Á¾ »ç¿ëµÈ´Ù. xinetd Ư¡À» ÅëÇØ µæÀ» º¸´Â µ¿½Ã¿¡ ÀÌ µ¿ÀÛÀ» ÀçÇöÇϱâ À§Çؼ­´Â chroot ¸¦ server ·Î¼­ ¼±¾ðÇØ¾ß ÇÑ´Ù. ±× µÚ¿¡ server_args ¼Ó¼ºÀ» ÅëÇØ ´Ù¸¥ ÀμöµéÀ» Àü´ÞÇØ¾ß ÇÑ´Ù.

            service ftp
            {
              id           = ftp
              socket_type  = stream
              wait         = no
              user         = root
              server       = /usr/sbin/chroot
              server_args  = /var/servers/ftp /usr/sbin/in.ftpd -l
            }

    µû¶ó¼­ ÀÌ ¼­ºñ½º·Î ¿äûÀÌ ¿Ã ¶§ »ç¿ëµÇ´Â ù ¸í·ÉÀº chroot ÀÌ´Ù. ´ÙÀ½¿¡ ÀÌ ¼­ºñ½º¿¡ Àü´ÞµÇ´Â Àμö´Â server_args ¶óÀÎÀÇ ¾Õ ºÎºÐÀ¸·Î »õ·Î¿î ·çÆ®ÀÌ´Ù. ¸¶Áö¸·À¸·Î µÞ ºÎºÐÀÇ ¼­¹ö°¡ ±¸µ¿µÈ´Ù.

     

°á·Ð

    xinetd ¶Ç´Â inetd ¸¦ ÀÌ¿ëÇؼ­ ¼­ºñ½º¿¡ ÇÊ¿äÇÑ µ¥¸óÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. xinetd ´Â ´õ¿í ¸¹Àº Ư¡À» Á¦°øÇÏ´Â ¹Ý¸é °¢ ¹èÆ÷ÆÇ¿¡ µðÆúÆ®·Î Æ÷ÇÔ(ÇöÀç ´ëºÎºÐÀÇ ¹èÆ÷ÆÇÀº À̸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù) µÉ ¶§±îÁö´Â ´õ¿í ½ÅÁßÇÑ °ü¸®¸¦ ÇÊ¿ä·Î ÇÑ´Ù.

    °¡Àå ¾ÈÀüÇÑ ÇØ°á¹æ¹ýÀº °ø°³ Á¢±ÙÀ» Çã¿ëÇÏ´Â ¸Ó½Å¿¡¼­ xinetd ¸¦ »ç¿ëÇÏ´Â °ÍÀε¥ xinetd ´Â ´õ¿í ´õ °ß°íÇÑ ¹æ¾î ¼ö´ÜÀÌ µÉ ¼ö ÀÖ´Ù. ·ÎÄà ³×Æ®¿öÅ©¿¡ ´ëÇؼ­´Â inetd ¸¦ »ç¿ëÇÏ´Â °Í¸¸À¸·Îµµ ÃæºÐÇÏ´Ù.

    pop3 server

    xinetd¸¦ »ç¿ëÇÑ pop3 ¼­¹öÀÇ ¼³Á¤Àº ´ÙÀ½°ú °°´Ù.

            service pop3
            {
                 disable = no
                 socket_type             = stream
                 wait                    = no
                 user                    = root
                 server                  = /usr/sbin/ipop3d
            #    log_on_success          += USERID
            #    log_on_failure           += USERID
            }

    ¹°·Ð server ¼Ó¼º¿¡´Â °¢ÀÚ µ¥¸óÀÇ °æ·Î¸¦ ³Ö¾îÁÖ¾î¾ß ÇÑ´Ù.

    xinetd ¸¦ ÅëÇØ pop3 ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù¸é »ç¿ëÇÏ´Â ·Î±ë ¿É¼Ç °ª¿¡ µû¶ó ¸Å¿ì °ï¶õ½º·¯¿ï °ÍÀÌ´Ù. ¿¹¸¦ µé¾î USERID ¸¦ »ç¿ëÇϸé xinetd ·ÎºÎÅÍÀÇ ¿äûÀº pop Ŭ¶óÀ̾ðÆ®¿¡¼­ È£½ºÆ®µÇ´Â identd ¼­¹ö·Î º¸³»Áö´Âµ¥ ±×·¯ÇÑ ¼­¹ö°¡ ¾ø´Ù¸é ŸÀӾƿôµÇ´Âµ¥ 30ÃÊ Á¤µµÀÇ ½Ã°£ÀÌ °É¸°´Ù.

    µû¶ó¼­ ´©±º°¡°¡ ¸ÞÀÏÀ» ¹Þ¾Æ ¿Ã ¶§ identd ¼­¹ö°¡ ÀÀ´äÇÏÁö ¾Ê´Â´Ù¸é Àû¾îµµ 30ÃÊ Á¤µµ¸¦ ±â´Ù·Á¾ß ÇÑ´Ù. ¿©·¯ºÐÀº ´ÙÀ½ Áß¿¡¼­ ¼±ÅÃÇØ¾ß ÇÑ´Ù:

       1. ¸ðµç Ŭ¶óÀ̾ðÆ®¿¡ identd ¼­¹ö¸¦ ¼³Ä¡Çؼ­ ·Î±× °úÁ¤À» ¸Å¿ì ºü¸£°Ô ÇÑ´Ù
           (identd °¡ Á¦°øÇÏ´Â Á¤º¸°¡ º¯°æµÉ ¼ö ÀÖÀ½¿¡ ÁÖÀÇÇÏÀÚ).

       2. »ç¿ëÀÚ°¡ ±×µéÀÇ ¸ÞÀÏÀ» ºü¸£°Ô ¾òÀ» ¼ö ÀÖµµ·Ï ÀÌ ¼­ºñ½º¿¡ ´ëÇÑ ·Î±ë ¼Ó¼ºÀ»
           °¨¼Ò½ÃŲ´Ù.

    ·¹µåÇÞ 7.0, ¸Çµå·¹ÀÌÅ© 7.2 ¹× ¿©Å¸ ´Ù¸§ ¹èÆ÷ÆÇ¿¡¼­ÀÇ ÁÁÁö ¾ÊÀº ¼³Á¤

    bug 24279 send to bugzilla.

    /etc/xinetd.d ¿¡ ¼³Á¤µÇ¾î ÀÖ´Â ´ÙÀ½ÀÇ ¼­ºñ½ºµéÀº /etc/services ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù.

            [pappy@rootdurum xinetd.d]# grep service *udp
            chargen-udp:service chargen-udp
            daytime-udp:service daytime-udp
            echo-udp:service echo-udp
            time-udp:service time

    ·¹µå ÇÞ »ç¿¡¼­´Â ÀÌ°ÍÀÌ chkconfig ¹× ntsysv ¿Í °°Àº µµ±¸¿Í ÇÔ²² »ç¿ëÇÒ ¶§ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù°í ÇÏÁö¸¸, ÇÊÀÚ´Â ÀÌ·¯ÇÑ µµ±¸¿Í xinetd »çÀÌ¿¡ ¼±ÅÃÀ» ÇÑ´Ù¸é ÁÖÀú ¾Ê°í xinetd¸¦ ¼±ÅÃÇÒ °ÍÀÌ´Ù.




¡ã top

homeÀ¸·Î...