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. |
user |
daemon ÀÇ UID¸¦ ¼³Á¤, xinetdÀÇ UID°¡ 0ÀÌ ¾Æ´Ï¸é Àǹ̰¡ ¾ø´Ù. |
group |
daemon ÀÇ GID¸¦ ¼³Á¤, xinetdÀÇ GID°¡ 0ÀÌ ¾Æ´Ï¸é Àǹ̰¡ ¾ø´Ù. |
nice |
daemon ÀÇ ¿ì¼±¼øÀ§ (nice)¸¦ ÁöÁ¤. |
access_times |
¼ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ½Ã°£ °£°ÝÀ» ¼³Á¤. |
À§ÀÇ Ç¥ ¿Ü¿¡µµ ¸î°¡ÁöÀÇ ¼Ó¼ºÀ» ´õ ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼ºñ½ºÀÇ ¿¹
¿Í¿ì¸®´ª½º 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 ¼³Á¤Çϱâ|ÀÛ¼ºÀÚ ¸®¹ä