ÇÊÀÚ : ¼Á¤·æ(dreamsoh@orgio.net)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
xinetd(eXtended InterNET services daemon)Àº ħÀÔ¿¡ ´ëÇØ ¿ì¼öÇÑ º¸¾ÈÀ» Á¦°øÇÏ¸ç ¼ºñ½º ºÎÀÎ(Denial of Services)°ø°ÝÀÇ À§ÇèÀ» °¨¼Ò½ÃŲ´Ù. ÀÌ´Â Àß ¾Ë·ÁÁø inetd ¿Í tcpd ¸¦ ÇÔ²² »ç¿ëÇÏ´Â °Í°ú °°ÀÌ ÁÖ¾îÁø ¸Ó½Å¿¡ ´ëÇÑ Á¢±Ù ±ÇÇÑ ¼³Á¤À» °¡´ÉÄÉ ÇÏÁö¸¸ ´õ¿í ¸¹Àº ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â»ç¿¡¼´Â xinetd ÀÇ ¸¹Àº Ư¡À» ´Ù·ê °ÍÀÌ´Ù.
xinetd ¶õ ¹«¾ùÀΰ¡? inetd ´Â ÄÄÇ»ÅÍ·ÎÀÇ ³×Æ®¿öÅ© Á¢¼Ó Á¦¾î¸¦ µ½´Âµ¥
inetd °¡ °ü¸®ÇÏ´Â Æ÷Æ®·Î ¿äûÀÌ µé¾î¿À¸é inetd ´Â °ð À̸¦ tcpd
ÇÁ·Î±×·¥À¸·Î Àü¼ÛÇÑ´Ù. xinetd ´Â tcp_wrapper ¿Í À¯»çÇÑ Á¢±Ù Á¦¾î ´É·Â»Ó¸¸ ¾Æ´Ï¶ó ´ÙÀ½°ú °°ÀÌ ´õ¿í È®ÀåµÈ ´É·ÂÀ» Á¦°øÇÑ´Ù: - TCP, UDP¿Í RPC ¼ºñ½ºµé¿¡ ´ëÇÑ Á¢±Ù Á¦¾î
ÁÖ¿ä ´ÜÁ¡Àº ¾Õ¿¡¼ ¾ð±ÞÇßµíÀÌ RPC ¿äû¿¡ Áö¿øÀÌ ¹ÌºñÇÏ´Ù´Â °ÍÀÌ´Ù. ±×·¯³ª xinetd ¸¦ portmap °ú ÇÔ²² »ç¿ëÇÑ´Ù¸é ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â»çÀÇ Ã¹ ºÎºÐ¿¡¼´Â xinetd ÀÛµ¿ ¹æ¹ýÀ» ¼³¸íÇϴµ¥, ¼ºñ½º ¼³Á¤ ¹× ƯÁ¤ ¿É¼Ç(ÀÎÅÍÆäÀ̽º·ÎÀÇ ¹ÙÀεù, ¸®µð·º¼Ç) ¿¡ ´ëÇØ ¾à°£ÀÇ ¿¹¿Í ÇÔ²² ¼³¸íÇÒ °ÍÀÌ´Ù. µÎ ¹ø° ºÎºÐÀº ÀÛµ¿ÁßÀÎ xinetd ¹× »ý¼ºµÈ ·Î±×¸¦ º¸À̸ç À¯¿ëÇÑ ÆÁÀ¸·Î ¸¶¹«¸®ÇÑ´Ù.
ÄÄÆÄÀÏ ¹× ¼³Ä¡ xinetd ´Â www.xinetd.org ¿¡¼ ¾òÀ» ¼ö Àִµ¥,
ÀÌ ±â»ç¿¡¼´Â 2.1.8.9pre10 ¹öÀüÀ» »ç¿ëÇÒ °ÍÀÌ´Ù. 1. --with-libwrap
: ÀÌ ¿É¼ÇÀ» ÅëÇØ xinetd ´Â tcpd ¼³Á¤ ÆÄÀÏÀÎ /etc/hosts.allow
¿Í 2. --with-loadavg
: ÀÌ ¿É¼ÇÀº xinetd °¡ max_load ¼³Á¤ ¿É¼ÇÀ» ´Ù·ê ¼ö ÀÖ°Ô Çϴµ¥,
ÀÌ´Â 3. --with-inet6
: ÀÌ ¿É¼ÇÀº IPv6 »ç¿ëÀ» Áö¿øÇϴµ¥ IPv4 ¿Í IPv6 Á¢¼ÓÀ» °ü¸®ÇÒ
¼ö ÀÖÀ¸¸ç xinetd ¸¦ ±¸µ¿Çϱâ Àü¿¡ inetd ¸¦ ÁßÁöÇÒ ÇÊ¿ä´Â ¾ø´Â ¹Ý¸é inetd ¸¦ ÁßÁö½ÃÅ°Áö ¾ÊÀ½À¸·Î½á µÎ µ¥¸óÀÌ ¿¹±âÄ¡ ¾Ê°Ô µ¿ÀÛÇÒ ¼ö ÀÖÀ½À» À¯³äÇϱ⠹ٶõ´Ù. ´ÙÀ½ÀÇ ½Ã±×³ÎµéÀ» »ç¿ëÇÏ¿© xinetd µ¿ÀÛÀ» º¯°æÇÒ ¼ö ÀÖ´Ù: SIGUSR1 : ¼ÒÇÁÆ®¿þ¾î Àç¼³Á¤ : ¼³Á¤ ÆÄÀÏÀÌ
´Ù½Ã ÀÐÇôÁö°í ÀÌ¿¡ µû¶ó ¼ºñ½º ¸Å°³º¯¼ö°¡ ¾à°£ÀÇ ´Ù¸¥ ½Ã±×³ÎµéÀÌ Àִµ¥, 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
ÀÌ Àý¿¡ Á¤ÀÇµÈ °¢ ¼Ó¼ºÀº ÀÌÈÄ¿¡ ±â¼úµÇ´Â ¸ðµç ¼ºñ½º¿¡ ´ëÇØ Á¦°øµÈ °ªÀ» À¯ÁöÇϴµ¥ µû¶ó¼ 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 ¡®=¡¯, ¡®+=¡±°ú ¡°-=¡± ¼¼ ¿¬»êÀÚ°¡ Çã¿ë°¡´ÉÇѵ¥ ´ëºÎºÐÀÇ ¼Ó¼ºµéÀº ÀÌ¿¡ °íÁ¤µÈ °ªÀ» ÇÒ´çÇϴµ¥ »ç¿ëµÇ´Â ¡°=¡± ¿¬»êÀÚ¸¸ Áö¿øÇÑ´Ù. ¡°+=¡± ¿¬»êÀÚ´Â °ªµéÀÇ ¸ñ·Ï¿¡ Á¶Ç×À» Ãß°¡ÇÏ´Â ¹Ý¸é ¡°-=¡± ¿¬»êÀÚ´Â ÀÌ Á¶Ç×À» Á¦°ÅÇÑ´Ù. <Ç¥ 1>Àº ÀÌ·¯ÇÑ ¼Ó¼ºµéÀ» °£·«È÷ ±â¼úÇϴµ¥ ÃßÈÄ ¸î °¡Áö ¿¹¸¦ ÅëÇØ À̵éÀÇ »ç¿ë¹ýÀ» ¾Ë¾Æº¼ °ÍÀÌ´Ù. ´õ¿í ¸¹Àº Á¤º¸¸¦ ¾ò±â À§Çؼ´Â xinetd.conf ¸Å´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. < Ç¥ 1. xinetd ¼Ó¼º >
ÀÌ Àý¿¡¼´Â ¾à°£ÀÇ xinetd Ư¡À» ³ªÅ¸³»¾ú´Âµ¥ ´ÙÀ½ Àý¿¡¼´Â xinetd »ç¿ë ¹æ¹ýÀ» ¼³¸íÇÏ°í ÀÌ°ÍÀÌ ÀûÀýÈ÷ ÀÛµ¿ÇÏ°Ô ÇÏ´Â ¾à°£ÀÇ ±ÔÄ¢À» ¼³¸íÇÑ´Ù.
Á¢±Ù Á¦¾î ¾Õ Àý¿¡¼ º¸¾ÒµíÀÌ IP ÁÖ¼Ò¸¦ ÀÌ¿ëÇÏ¿© ¸®´ª½º ¹Ú½º¿¡ ´ëÇÑ Á¢±ÙÀ» ½Â³«Çϰųª ±ÝÁöÇÒ ¼ö Àִµ¥ xinetd ´Â ´õ¿í ¸¹Àº Ư¡À» Çã¿ëÇÑ´Ù: ¡¤È£½ºÆ® ³×ÀÓ ºÐ¼®À» ÅëÇØ Á¢±Ù Á¦¾î¸¦ ÇÒ ¼ö
Àִµ¥, xinetd ´Â _for_every connection_ ¿¡ ¡¤.domain.com ¿¡ ÀÇÇØ Á¢±Ù Á¦¾î¸¦ ÇÒ ¼ö Àִµ¥,
Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÇÒ ¶§ xinetd ´Â ¼ºñ½º¸¦ ÃÖÀûÈÇϱâ À§Çؼ´Â ¸í¹éÈ÷ IP ÁÖ¼Ò¸¦
ÀÌ¿ëÇÏ´Â °ÍÀÌ ´õ¿í ÁÁÀ¸¸ç ÀÌ·³À¸·Î½á ±× ¼ºñ½º·Î µé¾î¿À´Â Á¢¼Ó¿¡
´ëÇÑ ³×ÀÓ °Ë»öÀ» ÇÇÇÑ´Ù.
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- ¸íÈ®ÇÏ°Ô Á¢±Ù Á¦¾î°¡ µÎ ¼Ó¼º¿¡ Æ÷ÇÔµÈ ÁÖ¼Ò ¸ñ·ÏÀ» ºñ±³ÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù. Ŭ¶óÀ̾ðÆ® ÁÖ¼Ò°¡ µÎ ¸ñ·Ï ¸ðµÎ¿¡ ÀÏÄ¡ÇÒ ¶§´Â ´ú ÀϹÝÀûÀÎ ¼Ó¼º °ª¿¡ ÀÇÇØ Á¢±Ù Á¦¾î°¡ ÀÌ·ç¾îÁø´Ù. À§¿Í °°ÀÌ ¼Ó¼º °ªÀÌ µ¿ÀÏÇÑ °æ¿ì xinetd ´Â Á¢¼Ó ¼±Åà ¹× °ÅÀýÀ» ÇÒ ¼ö ¾øÀ¸¸ç, ÀÌ·¯ÇÑ ¸ðÈ£ÇÔÀ» ÇÇÇϱâ À§Çؼ´Â ´ÙÀ½°ú ¼Ó¼ºÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù: only_from = 192.0.0.0/8 ´õ¿í ¼Õ½¬¿î ÇØ°á¹æ¹ýÀº ´ÙÀ½°ú °°Àº ¼Ó¼º ¼³Á¤À» ÅëÇØ Á¢±Ù Á¦¾î¸¦ ÇÏ´Â °ÍÀÌ´Ù: only_from = ¼Ó¼º °ªÀ» ÁÖÁö ¾Ê¾Ò´Ù°í Çؼ ¸ðµç Á¢¼ÓÀÌ ½ÇÆÐÇÏ´Â °ÍÀº ¾Æ´Ï¸ç, µû¶ó¼ ¸ðµç ¼ºñ½º´Â ÀÌ¿Í µ¿ÀÏÇÑ ¼Ó¼º¿¡ ÀÇÇØ Á¢±ÙÀ» Çã¿ëÇÑ´Ù. ÇʼöÀûÀÌÁö´Â ¾ÊÁö¸¸ Áß¿äÇÑ »çÇ× : ÁÖ¾îÁø ¼ºñ½º Àý¿¡ only_from ¶Ç´Â no_access ¿Í °°Àº Á¢±Ù ±ÔÄ¢ÀÌ ¾ø´Â °æ¿ì ¼ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀº Çã¿ëµÈ´Ù. ´ÙÀ½Àº µðÆúÆ® ÀýÀÇ ¿¹ÀÌ´Ù: defaults #INTERNAL #RPC ³»ºÎ ¼ºñ½º(ÁÖ¼® ó¸®µÈ INTERNAL ¶óÀÎ) Áß¿¡¼ servers, services ¿Í xadmin Àº xinetd °ü¸®¸¦ Çã¿ëÇϴµ¥, ÀÌ´Â ÈÄ¿¡ ´õ¿í ÀÚ¼¼È÷ ´Ù·é´Ù.
¼ºñ½º ¼³Á¤Çϱ⠼ºñ½º ¼³Á¤À» À§ÇØ Æ¯º°È÷ ´õ¿í ÇÒ °ÍÀº ¾ø´Âµ¥
»ç½Ç ¸ðµç °ÍÀº µðÆúÆ® ÀýÀÇ °ªµé¿¡ ÀÇÇØ ÀÛµ¿ÇÑ´Ù. ´ÜÁö ¼ºñ½º¸¦
´Ù·ç±â À§ÇØ ¼Ó¼º°ú °ªÀ» Á¤È®È÷ ÇØ¾ß Çϴµ¥ ÀÌ´Â °¢ ¼ºñ½º¿¡
´ëÇØ µðÆúÆ® °ª º¯°æ, ¶Ç´Â ´Ù¸¥ ¼Ó¼ºÀ» ÀǹÌÇÑ´Ù. < Ç¥ 2. ÇÊ¿ä ¼Ó¼ºµé >
service ntalk ntalk ¹× ftp ¼ºñ½º°¡ ´ÜÁö ·ÎÄà ³×Æ®¿öÅ©»ó(192.168.1.0/24) ¿¡¼¸¸ Çã¿ëµÊÀ» ÁÖ¸ñÇÏÀÚ. FTP ¼ºñ½º¿Í °ü·ÃÇؼ´Â ´ÜÁö 4 °³ÀÇ ÀνºÅϽº »ý¼ºÀÌ Çã¿ëµÇ¸ç ÀÏÁ¤ ½Ã°£µ¿¾È¸¸ ¼ºñ½º°¡ Çã¿ë °¡´ÉÇÏ¿© µû¶ó¼ ¼ºñ½º¿¡ ´ëÇØ º¸´Ù ¸¹Àº Á¦ÇÑÀ» ÇÑ´Ù. Æ÷Æ® ¹ÙÀεù: bind ¼Ó¼º ÀÌ ¼Ó¼ºÀº ƯÁ¤ IP ÁÖ¼Ò·ÎÀÇ ¼ºñ½º ¹ÙÀεùÀ» Çã¿ëÇϴµ¥ ÄÄÇ»ÅÍ°¡ Àû¾îµµ µÎ°³ÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ °®°í ÀÖÀ» ¶§¸¸ À¯¿ëÇÏ´Ù. ¿¹¸¦ µé¸é ·ÎÄà ³×Æ®¿öÅ©ÀÇ ÀϺκÐÀ¸·Î º°°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ÀÎÅͳݿ¡ Á¢¼ÓµÈ ÄÄÇ»ÅÍÀÇ °æ¿ìÀÌ´Ù. ¿¹¸¦ µé¾î ÇÑ È¸»ç°¡ Á÷¿øµéÀÌ ³»ºÎ ¹®¼¿¡ Á¢±ÙÇؼ À̸¦ ÀÐÀ» ¼ö ÀÖµµ·Ï FTP ¼¹ö¸¦ ¼³Ä¡ÇÏ·Á°í ÇÏ¸ç ¶ÇÇÑ ¿ÜºÎ Ŭ¶óÀ̾ðÆ®¿¡°Ô´Â ȸ»ç Á¦Ç°¿¡ ´ëÇÑ FTP Á¢±ÙÀ» Á¦°øÇÑ´Ù°í ÇÒ ¶§ bind ¼Ó¼ºÀÌ »ç¿ëµÈ´Ù. ÀÌ¿¡ ´ëÇÑ ÇØ°á¹æ¹ýÀº °ø°³ Á¢±Ù ¹× ³»ºÎ ȸ»ç Á¢±Ù¸¸À» À§ÇÑ µÎ º°°³ÀÇ FTP ¼ºñ½º¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª xinetd °¡ À̵éÀ» ±¸º°ÇÒ ¼ö ÀÖ¾î¾ß Çϴµ¥, ÀÌ´Â id ¼Ó¼ºÀ» »ç¿ëÇÔÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â ¼ºñ½º¸¦ À¯ÀÏÇÑ ¹æ½ÄÀ¸·Î Á¤ÀÇÇÑ´Ù(¼ºñ½º³»¿¡¼ id ¼Ó¼ºÀÌ Á¤ÀǵÇÁö ¾ÊÀ» ¶§ µðÆúÆ® °ªÀº ¼ºñ½º À̸§ÀÌ´Ù). service ftp bind ¼Ó¼ºÀÇ »ç¿ëÀº ÆÐŶÀÇ ¸ñÀûÁö¿¡ µû¶ó ÇØ´ç µ¥¸óÀ» ¿äûÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. µû¶ó¼ ÀÌ ¼³Á¤¿¡ ´ëÇØ ·ÎÄà ³×Æ®¿öÅ©»óÀÇ Å¬¶óÀ̾ðÆ®´Â ³»ºÎ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱâ À§ÇØ ·ÎÄà ÁÖ¼Ò(¶Ç´Â °ü·Ã À̸§) ¸¦ ÁÖ¾î¾ß ÇÑ´Ù. ·Î±× ÆÄÀÏÀº ´ÙÀ½°ú °°À» °ÍÀÌ´Ù: 00/9/17@16:47:46: START: ftp-public pid=26861
from=212.198.253.142 ù ¹ø° ºÎºÐÀº ftp 212.198.253.142 ¸í·É, µÎ
¹ø° ºÎºÐÀº charly ¶ó´Â ·ÎÄà ³×Æ®¿öÅ©»ó¿¡¼ ftp 192.168.1.1.
¸í·É¿¡ ´ëÇÑ °ÍÀÌ´Ù. #!/bin/sh ÀÌ ½ºÅ©¸³Æ®´Â µ¿Àû ÁÖ¼Ò¸¦ ´ë½ÅÇÏ´Â PUBLIC_ADDRESS ·Î ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ /etc/xinetd.base ÆÄÀÏ¿¡¼ PUBLIC_ADDRESS ¹®ÀÚ¿À» ½ºÅ©¸³Æ®¿¡ Àμö·Î ³Ñ°ÜÁö´Â ÀÎÅÍÆäÀ̽º¿Í °ü·ÃµÈ ÁÖ¼Ò·Î ¼öÁ¤ÇÏ¿© /etc/xinetd.conf ÆÄÀÏ¿¡ À̸¦ º¯°æÇÑ´Ù. ´ÙÀ½ÀÌ ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¿äûÀº Á¢¼Ó À¯Çü¿¡ ÀÇÁ¸Çϴµ¥ °¡Àå °£´ÜÇÑ °ÍÀº Á¤È®ÇÑ ifup-* ÆÄÀÏ¿¡ ´ëÇÑ È£ÃâÀ» Ãß°¡ÇÏ¿© xinetd¸¦ Àç½Ãµ¿ÇÏ´Â °ÍÀÌ´Ù. ´Ù¸¥ ¸Ó½Å¿¡ ´ëÇÑ ¼ºñ½º ¸®µð·º¼Ç: redirect ¼Ó¼º xinetd´Â redirect ¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© ÀÏÁ¾ÀÇ Åõ¸í ÇÁ¶ô½Ã·Î »ç¿ëµÉ ¼ö Àִµ¥, ´Ù¸¥ ¸Ó½Å¿¡ ´ëÇÑ ¼ºñ½º ¿äûÀ» ¿øÇÏ´Â Æ÷Æ®·Î º¸³¾ ¼ö ÀÖ°Ô ÇÑ´Ù. service
telnet ¾î¶»°Ô ÀÛµ¿µÇ´ÂÁö ÁöÄѺ¸ÀÚ: >>telnet
charly ¿ì¼± Á¢¼ÓÀÌ charly »ó¿¡¼ ÀÌ·ç¾îÁø µí ÇÏÁö¸¸ sabrina(¾ËÆÄ ¸Ó½Å, ¡°Digital UNIX¡±) ¿¡¼ ÀÌ Á¢¼ÓÀÌ ÀÌ·ç¾îÁ³À½À» º¸ÀδÙ. ÀÌ ¸ÞÄ«´ÏÁòÀº À¯¿ëÇÑ ¹Ý¸é À§ÇèÇÏ´Ù. redirect ¼Ó¼ºÀ» °®°í ¼³Á¤ÇÒ ¶§ Á¢¼Ó ¾ç´Ü ¸ðµÎ¿¡ ´ëÇØ ·Î±ëÀÌ ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù. ´õ±¸³ª ÀÌ·¯ÇÑ À¯ÇüÀÇ ¼ºñ½º¿¡ ´ëÇؼ´Â DMZ °ú ¹æȺ® »ç¿ëÀ» °·ÂÈ÷ ÃßõÇÑ´Ù.
Ưº° ¼ºñ½º ¼¼°¡Áö ¼ºñ½º´Â xinetd ¸¸ÀÌ ¼öÇàÇϴµ¥ À̵éÀº /etc/rpc ¶Ç´Â /etc/services ÆÄÀÏ¿¡¼ ãÀ» ¼ö ¾ø±â ¶§¹®¿¡ UNLISTED flag ¸¦ °¡Á®¾ß ÇÑ´Ù(¹°·Ð xinetd ¼ºñ½ºÀÓÀ» ¾Ë¸®´Â INTERNAL flag µµ ¶ÇÇÑ °¡Á®¾ß ÇÑ´Ù). 1. servers: »ç¿ë ÁßÀÎ ¼¹ö¿¡
´ëÇØ ¾Ë·ÁÁØ´Ù; ÀÌµé ¼ºñ½º´Â Áß¿äÇÑ Á¤º¸¸¦ Á¦°øÇϱ⠶§¹®¿¡
ÄÄÇ»Å͸¦ ´õ¿í °ø°Ý´çÇϱ⠽±°Ô ÇÏ´Â °ÍÀº ¸í¹éÇÏ´Ù. ÇöÀç À̵éÀÇ
Á¢±ÙÀº º¸È£¹ÞÁö ¸øÇϴµ¥(¿¹¸¦ µé¸é Æнº¿öµå¿¡ ÀÇÇÑ º¸È£), À̵éÀº
¼³Á¤½Ã¿¡¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù. defaults { À̵éÀ» È°¼ºÈÇϱâ Àü¿¡ ¹Ì¸® ¿¹¹æÁ¶Ä¡¸¦ ÃëÇØ¾ß ÇÑ´Ù: 1. xinetd ¸¦ ¿î¿µÇÏ´Â ¸Ó½Å¸¸ÀÌ
ÀÌ·¯ÇÑ ¼ºñ½º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. xadmin ¼ºñ½º¸¦ ¿¹¸¦ µé¾îº¸ÀÚ. service xadmin xadmin ¼ºñ½º´Â ´Ù¼¸ °³ÀÇ ¸í·ÉÀ» °®°í ÀÖ´Ù: 1. help ... ÀÌ·¯ÇÑ ¼ºñ½º°¡ Á¸ÀçÇÏÁö¸¸ À̵éÀ» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ÀÌ·¯ÇÑ ¼ºñ½º°¡ ¾ø´õ¶óµµ netstat, fuser, lsof µîµîÀÇ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÄÄÇ»ÅÍ¿¡¼ ¹«¾ùÀÌ ÁøÇàµÇ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ·¯ÇÑ ¼ºñ½º¸¦ »ç¿ëÇÒ ¶§ °ø°Ý´çÇϱâ´Â ½±Áö ¾Ê´Ù. Starting with a riddle Áö±Ý±îÁö Àß µû¶ó¿Â µ¶ÀÚ¸¦ À§ÇØ ÀÛÀº ¿¬½À ¹®Á¦°¡ Àִµ¥, ¿ì¼± ÀÌ¿¡ »ç¿ëµÈ ¼³Á¤À» ¼³¸íÇÒ °ÍÀÌ°í, ´ÙÀ½ ¹«¾ùÀÌ ¹ß»ýÇß´ÂÁö, ¿Ö Àß ÀÛµ¿ÇÏÁö ¾Ê´ÂÁö¸¦ ÀÌÇØÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ´ÜÁö finger ¼ºñ½º¸¸À» ´Ù·é´Ù: service
finger xinetd ´Â --with-libwrap ¿É¼Ç¾øÀÌ ÄÄÆÄÀϵǾú´Ù.(server
¼Ó¼ºÀ» Á¶»çÇضó). pappy@charly
>> finger pappy@charly pappy@bosley >> Àΰ¡µÈ ¸Ó½ÅÀÎ charly(192.168.1.1) »Ó¸¸ ¾Æ´Ï¶ó bosley(192.168.1.10) ·ÎºÎÅÍÀÇ ¿äûµµ Àß ÀÛµ¿ÇÑ °Íó·³ º¸ÀδÙ. ·Î±× ÆÄÀÏÀ» Çѹø º¸ÀÚ: /var/log/servicelog
: óÀ½ µÎ ¶óÀÎÀÎ charly ·ÎºÎÅÍÀÇ ¿äûÀº xinetd
¿¡ µû¶ó ÀûÀýÈ÷ ÀÛµ¿µÇ¾î, Áï Á¢±ÙÀÌ Çã¿ëµÇ¾î ¿äû¿¡ °É¸° ½Ã°£Àº
5ÃÊÀÌ´Ù. ¹Ý¸é¿¡ bosley ·ÎºÎÅÍÀÇ ¿äûÀº °ÅÀýµÈ´Ù(FAIL). /var/log/services
: À§ÀÇ µÎ ¿äû°ú ÀÏÄ¡ÇÏ´Â ·Î±×´Â ´ÜÁö ÇÑ ¶óÀÎÀ¸·Î bosley ·ÎºÎÅÍÀÇ µÎ ¹ø° ¿äûÀº xinetd ¿¡ ÀÇÇØ Â÷´ÜµÇ¾î ·Î±×¿¡¼ ãÀ» ¼ö ¾ø´Â °ÍÀÌ Á¤»óÀÌ´Ù. ½ÇÁ¦ À§ÀÇ wrapper ·Î±×´Â xinetd °¡ Çã¿ëÇÑ charly ·ÎÄà ³×Æ®¿öÅ©»ó¿¡¼ÀÇ ¿äûÀ¸·Î ½Ã°£°ú pid °ú µ¿ÀÏÇÔÀ» ¾Ë ¼ö ÀÖ´Ù: ¿ä¾àÇÏ¸é ´ÙÀ½°ú °°´Ù: 1. xinetd´Â ¿äûÀ» Çã¿ëÇß´Ù; ¾î¶»°Ô ÁøÇàµÇ¾ú´Â°¡? xinetd °¡ Çã¿ëÇÑ ¿äûÀÌ
ƯÁ¤ ¼¹ö(¿©±â¼´Â tcpd) ¿¡ º¸³»Á³Áö¸¸ tcpd ´Â ÀÌ Á¢¼ÓÀ» °ÅÀýÇÏ¿´´Ù.
µû¶ó¼ hosts.allow ¿Í hosts.deny ÆÄÀÏÀ» »ìÆ캸¾Æ¾ß ÇÑ´Ù. 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 µû¶ó¼ ÀÌ ¼ºñ½º·Î ¿äûÀÌ ¿Ã ¶§ »ç¿ëµÇ´Â ù ¸í·ÉÀº chroot ÀÌ´Ù. ´ÙÀ½¿¡ ÀÌ ¼ºñ½º¿¡ Àü´ÞµÇ´Â Àμö´Â server_args ¶óÀÎÀÇ ¾Õ ºÎºÐÀ¸·Î »õ·Î¿î ·çÆ®ÀÌ´Ù. ¸¶Áö¸·À¸·Î µÞ ºÎºÐÀÇ ¼¹ö°¡ ±¸µ¿µÈ´Ù.
°á·Ð xinetd ¶Ç´Â inetd ¸¦ ÀÌ¿ëÇؼ ¼ºñ½º¿¡ ÇÊ¿äÇÑ µ¥¸óÀ» ¼±ÅÃÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. xinetd ´Â ´õ¿í ¸¹Àº Ư¡À» Á¦°øÇÏ´Â ¹Ý¸é °¢ ¹èÆ÷ÆÇ¿¡ µðÆúÆ®·Î Æ÷ÇÔ(ÇöÀç ´ëºÎºÐÀÇ ¹èÆ÷ÆÇÀº À̸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù) µÉ ¶§±îÁö´Â ´õ¿í ½ÅÁßÇÑ °ü¸®¸¦ ÇÊ¿ä·Î ÇÑ´Ù. °¡Àå ¾ÈÀüÇÑ ÇØ°á¹æ¹ýÀº °ø°³ Á¢±ÙÀ» Çã¿ëÇÏ´Â ¸Ó½Å¿¡¼ xinetd ¸¦ »ç¿ëÇÏ´Â °ÍÀε¥ xinetd ´Â ´õ¿í ´õ °ß°íÇÑ ¹æ¾î ¼ö´ÜÀÌ µÉ ¼ö ÀÖ´Ù. ·ÎÄà ³×Æ®¿öÅ©¿¡ ´ëÇؼ´Â inetd ¸¦ »ç¿ëÇÏ´Â °Í¸¸À¸·Îµµ ÃæºÐÇÏ´Ù. pop3 server xinetd¸¦ »ç¿ëÇÑ pop3 ¼¹öÀÇ ¼³Á¤Àº ´ÙÀ½°ú °°´Ù. service
pop3 ¹°·Ð server ¼Ó¼º¿¡´Â °¢ÀÚ µ¥¸óÀÇ °æ·Î¸¦ ³Ö¾îÁÖ¾î¾ß ÇÑ´Ù. xinetd ¸¦ ÅëÇØ pop3 ¼ºñ½º¸¦ Á¦°øÇÑ´Ù¸é »ç¿ëÇÏ´Â ·Î±ë ¿É¼Ç °ª¿¡ µû¶ó ¸Å¿ì °ï¶õ½º·¯¿ï °ÍÀÌ´Ù. ¿¹¸¦ µé¾î USERID ¸¦ »ç¿ëÇϸé xinetd ·ÎºÎÅÍÀÇ ¿äûÀº pop Ŭ¶óÀ̾ðÆ®¿¡¼ È£½ºÆ®µÇ´Â identd ¼¹ö·Î º¸³»Áö´Âµ¥ ±×·¯ÇÑ ¼¹ö°¡ ¾ø´Ù¸é ŸÀӾƿôµÇ´Âµ¥ 30ÃÊ Á¤µµÀÇ ½Ã°£ÀÌ °É¸°´Ù. µû¶ó¼ ´©±º°¡°¡ ¸ÞÀÏÀ» ¹Þ¾Æ ¿Ã ¶§ identd ¼¹ö°¡ ÀÀ´äÇÏÁö ¾Ê´Â´Ù¸é Àû¾îµµ 30ÃÊ Á¤µµ¸¦ ±â´Ù·Á¾ß ÇÑ´Ù. ¿©·¯ºÐÀº ´ÙÀ½ Áß¿¡¼ ¼±ÅÃÇØ¾ß ÇÑ´Ù: 1. ¸ðµç Ŭ¶óÀ̾ðÆ®¿¡ identd
¼¹ö¸¦ ¼³Ä¡Çؼ ·Î±× °úÁ¤À» ¸Å¿ì ºü¸£°Ô ÇÑ´Ù 2. »ç¿ëÀÚ°¡ ±×µéÀÇ ¸ÞÀÏÀ»
ºü¸£°Ô ¾òÀ» ¼ö ÀÖµµ·Ï ÀÌ ¼ºñ½º¿¡ ´ëÇÑ ·Î±ë ¼Ó¼ºÀ» ·¹µåÇÞ 7.0, ¸Çµå·¹ÀÌÅ© 7.2 ¹× ¿©Å¸ ´Ù¸§ ¹èÆ÷ÆÇ¿¡¼ÀÇ ÁÁÁö ¾ÊÀº ¼³Á¤ bug 24279 send to bugzilla. /etc/xinetd.d ¿¡ ¼³Á¤µÇ¾î ÀÖ´Â ´ÙÀ½ÀÇ ¼ºñ½ºµéÀº /etc/services ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. [pappy@rootdurum
xinetd.d]# grep service *udp ·¹µå ÇÞ »ç¿¡¼´Â ÀÌ°ÍÀÌ chkconfig ¹× ntsysv ¿Í °°Àº µµ±¸¿Í ÇÔ²² »ç¿ëÇÒ ¶§ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù°í ÇÏÁö¸¸, ÇÊÀÚ´Â ÀÌ·¯ÇÑ µµ±¸¿Í xinetd »çÀÌ¿¡ ¼±ÅÃÀ» ÇÑ´Ù¸é ÁÖÀú ¾Ê°í xinetd¸¦ ¼±ÅÃÇÒ °ÍÀÌ´Ù. |