xinetd ¶õ ¹«¾ùÀΰ¡?

xinetd ÀÇ ÀÌÀü ¹öÀüÀÎ inetd ´Â ³×Æ®¿÷ Á¢¼ÓÀ» Á¦¾îÇÕ´Ï´Ù. ¡°inetd°¡ °ü¸®ÇÏ´Â Æ÷Æ®¿¡ Á¢¼Ó¿äûÀÌ µé¾î¿À¸é inetd ´Â tcpd ÇÁ·Î±×·¥¿¡°Ô ¿äûÀ» ³Ñ±â°í tcpd ´Â hosts.{allow|deny} ÆÄÀÏÀÇ ±ÔÄ¢¿¡ µû¶ó Çã¶ô ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù. ¿©±â¼­ Çã¶ôµÈ ¿äû¿¡ ´ëÇØ ¼­¹ö ÇÁ·Î¼¼½º(¿¹¸¦ µé¸é, ftp)°¡ ½ÃÀ۵˴ϴÙ. ÀÌ·± ±¸Á¶¸¦ tcp wrapper¶ó ÇÑ´Ù.¡±¶ó´Â °ÍÀº ³×Æ®¿öÅ© ¼­ºñ½º µ¿ÀÛÀÇ ÀÌÇØ¿¡¼­ ¸»¾¸µå·È½À´Ï´Ù.

xinetdÀº tcp wrapper °¡ Á¦°øÇÏ´Â °Í°ú ºñ½ÁÇÑ Á¢±ÙÁ¦¾î¸¦ Á¦°øÇÏÁö¸¸, ÈξÀ ´õ ³ªÀº ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. (±×·¡¼­ tcpd¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.)

ƯÁ¤ÇÑ ÀÎÅÍÆäÀ̽º¿¡ ƯÁ¤ÇÑ ¼­ºñ½º¸¦ ÁöÁ¤Çϱâ(binding) (³»ºÎ³×Æ®¿÷°ú ¿ÜºÎ ¼¼°è¿¡ ¼­·Î ´Ù¸¥ ¼­ºñ½º¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.)

ip_masquerading (¶Ç´Â, Network Address Translation -NAT) °ú Á¶ÇÕÇÏ¿© »ç¿ëÇÏ¸é ´Ù¸¥ ½Ã½ºÅÛ¿¡ ´ëÇØ ¾ÆÁÖ ÈǸ¢ÇÑ ÇÁ·Ï½Ã·Î¼­ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ¹Ì ¸»ÇßÁö¸¸ ÁÖ¿äÇÑ °áÁ¡Àº RPC ÄÝ¿¡ ´ëÇØ ¿Ïº®ÇÑ Áö¿øÀÌ µÇÁö ¾Ê´Â´Ù´Â Á¡ÀÔ´Ï´Ù. ±×·¯³ª xinetd ¿Í portmap À» °°ÀÌ ÀÌ¿ëÇϸé ÇØ°áÇÒ ¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù. ¶Ç´Â, inetd¿Í °øÁ¸½ÃÄѼ­ ÇØ°áÇÒ ¼öµµ ÀÖ½À´Ï´Ù.( ÀϺΠ¹®¼­¿¡¼­´Â ±ÇÀåÇÏÁö ¾ÊÀº ¹æ¹ýÀ̹ǷΠºÒÆíÇÏÁö ¾Ê´Ù¸é °³ÀÇÄ¡ ¸»°í ³Ñ¾î °©½Ã´Ù. ;) )

 

ÄÄÆÄÀÏ°ú ¼³Ä¡

xinetd ±¸Çϱâ

±âº»ÀûÀ¸·Î ¿Í¿ì 7.0 ÀÌ»ó¿¡ ÇÔ²² ¼³Ä¡µÇ¸ç www.xinetd.org ¿¡¼­µµ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼³Ä¡ ÀüÅëÀûÀÎ ¹æ¹ýÀ¸·Î ¼³Ä¡ÇÕ´Ï´Ù. ¾Æ´Ï¸é rpmÀ¸·Î ...

# /configure; make; make install

 

ÄÄÆÄÀÏÇÒ ¶§ ÁÙ ¼ö ÀÖ´Â ¿É¼Ç 3 °¡Áö

1. --with-libwrap : ÀÌ ¿É¼ÇÀº tcpd ¼³Á¤ÆÄÀÏ(/etc/hosts.{allow,deny}) À» °Ë»çÇϵµ·Ï ÇÕ´Ï´Ù. tcpd ¸¦ µû·Î ¼³Ä¡ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù.

2. --with-loadavg : ÀÌ ¿É¼ÇÀº max_load ¼³Á¤ (µÚ¿¡¼­ ¼³¸íÇÕ´Ï´Ù.) À» Âü°íÇϵµ·Ï ÇÕ´Ï´Ù. Áö³ªÄ£ ºÎÇϸ¦ ¹Þ¾ÒÀ» ¶§ ¸î¸î ¼­ºñ½º¸¦ ºñÈ°¼ºÈ­(deactivation) ½Ãų ¼ö À־  DoS °ø°ÝÀ» ¸·´Âµ¥ ÇÊ¿äÇÑ ¿É¼ÇÀÔ´Ï´Ù.

3. --with-inet6 : IPv6À» »ç¿ëÇÏ°í ½ÍÀ¸¸é ÀÌ ¿É¼ÇÀ» ÁÝ´Ï´Ù. IPv4¿Í IPv6 Ä¿³Ø¼ÇÀÌ ¸ðµÎ °ü¸®µÇÁö¸¸, IPv4 ÁÖ¼Ò°¡ IPv6 Æ÷¸ËÀ¸·Î º¯È¯µË´Ï´Ù.

xinetdÀ» ½ÃÀÛÇÒ ¶§ inetdÀ» ¸ØÃâ ÇÊ¿ä´Â ¾øÁö¸¸, ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é µÎ µ¥¸óÀÌ ¿¹ÃøÇÒ ¼ö ¾ø´Â ÇൿÀ» ÃÊ·¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

 

xinetd »ç¿ë ¹æ¹ý

ÁÖ ¼³Á¤ÆÄÀÏÀº /etc/xinetd.conf ÀÔ´Ï´Ù.

ȯ°æ¼³Á¤ ÆÄÀÏÀº default ¼½¼Ç°ú °¢ ¼­ºñ½º¸¦ Á¤ÀÇ ÇØ ³õÀº µð·ºÅ丮¸¦ ¾Ë·ÁÁÖ´Â includedir ¼½¼ÇÀÇ µÎ ºÎºÐÀ¸·Î ±¸¼º µÇ¾î ÀÖ½À´Ï´Ù.

default ¼½¼Ç¿¡¼­´Â xinetd ÀÌ °ü¸®ÇÏ´Â ¸ðµç ¼­ºñ½º¿¡¼­ »ç¿ëµÇ´Â ¼Ó¼ºÀ» Á¤ÀÇÇÕ´Ï´Ù.

¹°·Ð, ÀÌ ³»¿ëÀº °¢ ¼­ºñ½º¸¦ Á¤ÀÇÇÏ´Â ºÎºÐ¿¡¼­ ±× ¿É¼ÇÀ» ÀçÁ¤ÀÇÇÏ¿© ¾µ ¼ö ÀÖ½À´Ï´Ù.

includedir  /etc/xinetd.d  ºÎºÐÀº xinetdÀ» ÅëÇؼ­ Á¦°øÇÒ ¼­ºñ½ºµéÀ» ¸ð¾Æ µÎ´Â µð·ºÅ丮¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

°¡Àå º¸ÆíÀûÀÎ ¼­ºñ½ºÀÎ telnet À» ¿­¾î¼­ Çü½ÄÀ» È®ÀÎÇØ º¾½Ã´Ù.

°¢ ¼­ºñ½º´Â service ¶ó´Â ¿¹¾à¾î·Î ½ÃÀÛµÇ¾î ¼­ºñ½º¸íÀ» Àû¾îÁÖ¾î¾ß ÇÕ´Ï´Ù.
¿©±â¼­ ¼­ºñ½º¸íÀº /etc/services ÆÄÀϳ»¿¡ ÀÖ´Â service-name Çʵå¿Í ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.

±× ´ÙÀ½, ¼­ºñ½º°¡ °¡Áú °¢ ¼Ó¼º°ú °ªÀ» ´ëÀÔ ÇÕ´Ï´Ù. ƯÀÌÇÑ °ÍÀº += , -= ¿Í °°Àº ¿¬»êÀ» Áö¿øÇÏ´Â Á¡ÀÔ´Ï´Ù. ÀÌ ¿¬»êÀÚ´Â ±âÁ¸ °ªÀÇ ¸ñ·Ï¿¡ »õ·Î¿î °ªÀ» Ãß°¡/Á¦°Å ÇÏ´Â ¿¬»êÀÔ´Ï´Ù. ´ÙÀ½ Ç¥´Â ¼­ºñ½º°¡ °¡Áú ¼ö ÀÖ´Â ¼Ó¼ºÀÇ ¸ñ·Ï°ú ¼³¸íÀÔ´Ï´Ù.

¼Ó  ¼º

ÀÇ¹Ì / °ª

socket_type

»ç¿ëÇÏ´Â TCP/IP ¼ÒÄÏ, stream(TCP), dgram(UDP), raw, seqpacketÀÌ ¿Ã ¼ö ÀÖ´Ù.

protocol

¼­ºñ½º°¡ ÀÌ¿ëÇÏ´Â protocol ÁöÁ¤.  /etc/protocols ¿¡ ÀÖ´Ù.  ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ¼­ºñ½º°¡ ÀÌ¿ëÇÏ´Â protocol ÀÌ µðÆúÆ®·Î ÁöÁ¤µÈ´Ù.

server

½ÇÇàµÉ Daemon , ¹Ýµå½Ã ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.

server_args

Daemon ¿¡ ³Ñ°ÜÁú Àμö ÁöÁ¤ÇÑ´Ù.

port

¼­ºñ½ºÇÏ´Â Æ÷Æ®¹øÈ£  /etc/services ¿¡ ÀÖ´Â ³»¿ë°ú ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.

wait

yes³ª no.
yes
À̸é xinetd °¡ ¿äûµÈ ÇÑ daemon ÀÌ ³¡³¯ ¶§±îÁö ´Ù¸¥ ¿äûÀ» ¹ÞÁö ¾Ê´Â´Ù. Áï, single-thread service ÀÌ´Ù.  
no
ÀÌ¸é °¢ ¿äû¿¡ ´ëÇØ  daemon ÀÌ ÀÛµ¿ÇÑ´Ù. Áï multi-thread service ÀÌ´Ù.

user

daemon ÀÇ UID¸¦ ¼³Á¤, xinetdÀÇ UID°¡ 0ÀÌ ¾Æ´Ï¸é Àǹ̰¡ ¾ø´Ù.

group

daemon ÀÇ GID¸¦ ¼³Á¤, xinetdÀÇ GID°¡ 0ÀÌ ¾Æ´Ï¸é Àǹ̰¡ ¾ø´Ù.

nice

daemon ÀÇ ¿ì¼±¼øÀ§ (nice)¸¦ ÁöÁ¤.

access_times

¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ½Ã°£ °£°ÝÀ» ¼³Á¤.  
hh:mm-hh:mm
Çü½Ä. ¿¹) 08:00-18:00

À§ÀÇ Ç¥ ¿Ü¿¡µµ ¸î°¡ÁöÀÇ ¼Ó¼ºÀ» ´õ ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

¼­ºñ½ºÀÇ ¿¹

¿Í¿ì¸®´ª½º 7.1 ÆĶõ¿¡¼­ proftpd¸¦ xinetd ¸¦ ÀÌ¿ëÇÏ¿© ¼­ºñ½º ÇÏ´Â ¿¹¸¦ µé¾î º¸°Ú½À´Ï´Ù.

proftpd ´Â standalone ¸ðµå¿Í inetd ¸ðµå µÎ°¡Áö·Î ÀÛµ¿ÇÒ ¼ö Àִµ¥, /etc/xinetd.d ¿¡´Â proftpd ¼­ºñ½º°¡ µé¾îÀÖÁö ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¾î¾ß Çϴµ¥ Ç¥ÁØÀûÀÎ ¼­ºñ½ºÀÎ telnet À» º¹»çÇؼ­ ¼öÁ¤ÇÏ¿© »ç¿ëÇÏ¿©µµ µË´Ï´Ù.

±×·¯³ª, proftp°¡ ¼³Ä¡µÈ °æ¿ì¶ó¸é, /etc/proftpd/conf/ µð·ºÅ丮·ÎºÎÅÍ proftpd.xinetd ÆÄÀÏÀ» º¹»çÇÏ¿© »ç¿ëÇÏ¸é µË´Ï´Ù.

# cp /etc/proftpd/conf/proftpd.xinetd   /etc/xinetd.d/proftpd

¿©±â¼­´Â º¹»çÇϸ鼭 À̸§À» ¹Ù²Ù¾úÁö¸¸, Çʼö »çÇ×Àº ¾Æ´Õ´Ï´Ù.

º¹»çÇÑ ÆÄÀÏÀ» ¿­¾î ¾Æ·¡ Ç׸ñÀ» º¯°æÇÕ´Ï´Ù.

# vi  /etc/xinetd.d/proftpd

     disable = no    # <--  yes¸¦ no·Î º¯°æ

ÀÌÁ¦ localhost ·Î Á¢¼ÓÀ» ½ÃµµÇØ º¼ Â÷·ÊÀÔ´Ï´Ù. ±×·¯³ª ¸ÕÀú È®ÀÎÀ» ÇØ¾ß ÇÒ »çÇ×ÀÌ ÀÖ½À´Ï´Ù. ÇÑ ¼­ºñ½º¸¦ standalone ¸ðµå¿Í inetd ¸ðµå·Î µ¿½Ã¿¡ ¼³Á¤ÇÏ¸é ¿¡·¯°¡ ³ª¹Ç·Î,

# vi /etc/proftpd/conf/proftpd.conf

     ServerType = inetd

¿Í °°ÀÌ ¹Ù²Ù¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. (¡Ø xinetd °¡ ¾Æ´Ï¶ó inetd ÀÔ´Ï´Ù.)

±×¸®°í, proftpd °¡ ¶° ÀÖ´Ù¸é Á¾·á½Ãŵ´Ï´Ù.

# /etc/rc.d/initd.d/proftpd  stop

xinetd ¸¦ Àç½ÇÇà ÇÕ´Ï´Ù.

# /etc/rc.d/initd.d/xinetd restart

ÀÌÁ¦ ½ÇÁ¦·Î ftp ¼­ºñ½º°¡ Á¤»óÀûÀ¸·Î ÀÌ·ç¾î Áö°í ÀÖ´ÂÁö¸¦ Å×½ºÆ®ÇØ º¾´Ï´Ù.

 

xinetd ¿Í °ü·ÃµÈ ¶Ç ÇϳªÀÇ ¿¹¸¦ µé¾î º¸°Ú½À´Ï´Ù. (¼­ºñ½º À̸§Ã³·³ ÇԺηΠ»ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. :)  )

1.     /etc/services ÆÄÀÏ¿¡ ´ÙÀ½ ÁÙÀ» Ãß°¡ÇÕ´Ï´Ù.

donotuse 555/tcp

2.     /etc/xinetd.d/ µð·ºÅ丮¿¡ ´ÙÀ½°ú °°Àº ¼­ºñ½º¸¦ ¸¸µì´Ï´Ù.

# vi  donotuse

service donotuse

{

        disable         = no

        flags           = REUSE

        socket_type     = stream        

        wait            = no

        user            = root

        server          = /sbin/shutdown

        server_args     = -r now

        only_from       = 127.0.0.1

        log_on_failure  += USERID

}

3. telnet  donotuse ¸¦ ½ÇÇàÇÏ¿©   ½ÇÁ¦·Î shutdown ¸í·ÉÀÌ ½ÇÇà µÇ´ÂÁö È®ÀÎÇÕ´Ï´Ù

[Ãâó] xinetd ¼³Á¤Çϱâ|ÀÛ¼ºÀÚ ¸®¹ä