ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
2002³â¿¡ ¸¸µé¾îÁø ¹®¼ÀÔ´Ï´Ù. ´ç½Ã¿¡´Â inetd¸¦ »ç¿ëÇߴµ¥, ²Ï³ª ¿À·¡Àü¿¡ xinetd¹æ½ÄÀÌ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. Áö±Ý¿¡ ¸Â°Ô ¹®¼¸¦ ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. -- 2011/06/23 xinetd ±â¹Ý ³×Æ®¿öÅ© ÇÁ·Î±×·¡¹Öxinetd ¿Í stand alone ¹æ½Ä
ÀϹÝÀûÀ¸·Î ³×Æ®¿öÅ© ÇÁ·Î±×·¥À» ¸¸µç´Ù°í Çϸé, µ¶¸³µÈ ¼ÒÄÏ ¼¹ö ÇÁ·Î±×·¥À» »ý°¢ÇÒ °Ì´Ï´Ù. socket -> bind ->listen(:12) À¸·Î ¿¬°á ¼ÒÄÏ ´ë±â¿À» ¸¸µé°í acceptÇÔ¼ö·Î ¿¬°á ¼ÒÄÏÀ» °¡Á®¿Â´ÙÀ½ ¸ÖƼ ½º·¹µå ȤÀº ¸ÖƼ ÇÁ·Î¼¼½º¹æ½ÄÀ¸·Î Ŭ¶óÀÌ¾ðÆ®¸¦ ó¸®ÇÕ´Ï´Ù.
½º½º·Î ¸ðµç °ÍÀ» ó¸®ÇÏ´Â ÀÌ·±·ùÀÇ ¼ÒÄÏ ÇÁ·Î±×·¥À» stand alone¹æ½Ä ÇÁ·Î±×·¥À̶ó°í Çϴµ¥¿ä. ÀÌ ¹æ½ÄÀÇ ÇÁ·Î±×·¥¸¸ ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. xinetd¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¡¹Ö ¹æ½Äµµ ÀÖ½À´Ï´Ù.
¼ÒÄÏ ÇÁ·Î±×·¥Àº Å©°Ô µÎ °³ ºÎºÐÀ¸·Î ³ª´¶´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °Ì´Ï´Ù.
¸ÖƼ ½º·¹µå ȤÀº ¸ÖƼ ÇÁ·Î¼¼½º ¹æ½ÄÀÇ ÇÁ·Î±×·¥ÀÌ acceptÇÔ¼ö È£Ãâ ÈÄ¿¡ ºÐ±â¸¦ ÇÏÁÒ.
±×·¸´Ù¸é ÀÌ·± »ý°¢À» ÇØ º¼ ¼öµµ ÀÖÀ» °Ì´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ¿¬°á¸¸À» ó¸®ÇÏ´Â ÇÁ·Î¼¼½º¸¦ µû·Î µÎ´Â °ÅÁÒ. ÀÌ ÇÁ·Î±×·¥Àº ¿À·ÎÁö Ŭ¶óÀÌ¾ðÆ® ¿¬°á¸¸À» ó¸®ÇÕ´Ï´Ù. accept ÇÔ¼ö·Î Ŭ¶óÀÌ¾ðÆ® ¿¬°áÀ» °¡Á®¿À¸é, µ¥ÀÌÅ͸¦ ó¸®ÇÒ ÇÁ·Î±×·¥À» ½ÇÇà ÇÏ´Â °Ì´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ®¿Í Åë½ÅÇÒ ÇÁ·Î±×·¥Àº fork ÈÄ exec ÇÔ¼ö·Î ÇÁ·Î±×·¥À» ½ÇÇàÇÒ °Çµ¥¿ä. fork ÇÏ¸é¼ ¿¬°á ¼ÒÄÏÀ» ³Ñ°ÜÁÖ¸é µÇÁÒ. dup2 ÇÔ¼ö·Î ¸í½ÃÀûÀ¸·Î ¼ÒÄÏÀ» º¹»çÇÏ¸é µÇ°ÚÁÒ. Ç¥ÁØÀÔ·ÂÀ¸·Î º¹»çÇÏ´Â°Ô ¹«³ÇϰÚÁÒ. ÀÌ¿¡ ´ëÇÑ ±¸ÇöÀº inet µ¥¸ó ¹æ½ÄÀÇ ÇÁ·Î±×·¥ °³¹ß¿¡ ³ª¿Í ÀÖÀ¸´Ï Âü°í ¹Ù¶ø´Ï´Ù. xinetd
¸®´ª½º´Â ÀÌ·± ÅøÀ» Á¦°øÇÕ´Ï´Ù. ¸î °³ Æ÷Æ®¿¡ ´ë±âÇϰí ÀÖ´Ù°í, ¿¬°áÀÌ µé¾î¿À¸é ÇØ´ç Æ÷Æ®ÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¿ÜºÎ ÇÁ·Î±×·¥À» È£ÃâÇÏ´Â ¹æ½ÄÀÔ´Ï´Ù. ÀÌ µ¥¸ó ÇÁ·Î±×·¥À» xinetd ¶ó°í ÇÕ´Ï´Ù.
xinetd°¡ ÀÛµ¿ÇÏ·Á¸é µÎ °¡Áö ¼³Á¤ ¿ä¼Ò¸¦ °¡Á®¾ß µÊÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±â´Ù¸± Æ÷Æ® ¹øÈ£¿Í °¢ Æ÷Æ® ¹øÈ£¿¡ ¿¬°áµÈ Ŭ¶óÀÌ¾ðÆ® ¿äûÀ» ó¸®ÇÒ ÇÁ·Î±×·¥ÀÇ À§Ä¡ÁÒ.
xinetdÀÇ ¼³Á¤ÆÄÀÏÀº /etc/xinetd.dµð·ºÅ丮 ¹Ø¿¡ µÎ¸é µÈ´Ù. ÆÄÀÏÀÇ ³»¿ëÀº ´ë·« ´ÙÀ½°ú °°´Ù. ¼ºñ½ºÀÇ À̸§ÀÌ myecho ¶ó¸é # cat /etc/xinetd.d/myecho
service myecho
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
user = root
wait = no
server = /usr/local/bin/echo
port = 12345
}
xined ±â¹Ý ÇÁ·Î±×·¥ °³¹ß
ÀÌÁ¦ ÇÁ·Î±×·¥À» °³¹ßÇØ¾ß °ÚÁÒ. ÇÁ·Î±×·¥ÀÇ À̸§Àº myecho°¡ µÇ°Ú³×¿ä. #include <fcntl.h> #include <string.h> int main(int argc, char **argv) { char buf[1024]; memset(buf, 0x00, 1024); read(0, buf, 1024); write(0, buf, strlen(buf)); }³Ê¹« °£´ÜÇÕ´Ï´Ù. ¼ÒÄÏÀ» ¸¸µé°í ±â´Ù¸®´Â °úÁ¤ÀÌ »ý·«µÆ±â ¶§¹®ÀÌÁÒ. ±×³É µ¥ÀÌÅ͸¸ ó¸®ÇÏ¸é µË´Ï´Ù.
½© ½ºÅ©¸³Æ®·Î Çѹø ¸¸µé¾î º¼±î¿ä ? # cat myecho #!/bin/sh read input echo $input3ÁÙ·Î ³¡ÀÔ´Ï´Ù.!!! xined ±â¹Ý ÇÁ·Î±×·¥ Å×½ºÆ®
echo ¼ºñ½º¸¦ À§ÇÑ Äڵ带 ¸¸µé¾ú´Âµ¥¿ä. ³×Æ®¿öÅ© ÇÁ·Î±×·¥À̶ó°í »ý°¢Çϱ⿣ Äڵ尡 ³Ê¹« °£´ÜÇØ¼ Á¤¸» ½ÇÇàµÉÁö ¹ÏÀ½ÀÌ °¡Áö ¾Ê´Â±º¿ä. Å×½ºÆ®¸¦ ÇØºÁ¾ß °Ú½À´Ï´Ù.
À§¿¡¼ ¸¸µç myecho ¼³Á¤ÆÄÀÏÀ» /etc/xinetd.d/ ¿¡ º¹»ç¸¦ Çϰí. xinetd µ¥¸óÀ» Àç ½ÃÀÛÇÕ´Ï´Ù. # /etc/init.d/xinetd restart * Stopping internet superserver xinetd [ OK ]
³×.. ÀÌÁ¦ netstat·Î ¼ºñ½º Æ÷Æ®°¡ ¶° ÀÖ´ÂÁö È®ÀÎÇØ º¸ÁÒ. # netstat -nap | grep xine tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 16947/xinetd8888¹ø Æ÷Æ®·Î ¶°ÀÖ´Â°Ô º¸ÀÌ¸é ¼º°øÇѰ̴ϴÙ. ÀÌÁ¦ myecho ¼ºñ½º¸¦ ÀÌ¿ëÇØ º¸°Ú½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ °³¹ßÀº ±ÍÂúÀ¸´Ï ±×³É telnetÀ¸·Î Å×½ºÆ® Çϱâ·Î Çß½À´Ï´Ù. # telnet 127.0.0.1 8888 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. hello world hello world Connection closed by foreign host. #¾Æ ÀߵǴ ±º¿ä.
2.1.2Àý. Å×½ºÆ® Çϱâ
ÀÌÁ¦ Ŭ¶óÀÌ¾ðÆ®¸¦ ÀÌ¿ëÇØ¼ Å×½ºÆ® Çϱ⸸ ÇÏ¸é µÈ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¼ÀÇ÷Π¾Ë¾Æº¸´Â ¼ÒÄÏÇÁ·Î±×·¡¹Ö¿¡ ÀÖ´Â zipcode_cli.c ¸¦ ±×´ë·Î »ç¿ëÇÏ¸é µÈ´Ù.
2.2Àý. inetd ¹æ½Ä°ú stand alone ¹æ½ÄÁß ¾î´À°É ¼±ÅÃÇØ¾ß Çϳª
°á·Ð ºÎÅÍ ¸»ÇÏÀÚ¸é ¼ºñ½ºÇÒ ¼¹öÀÇ È¯°æ¿¡ µû¶ó¼ Àû´çÇÑ ¹æ½ÄÀ» äÅÃÇÏ¸é µÈ´Ù.(³Ê¹« »·ÇÑ ´äº¯ÀÎ°Í °°Áö¸¸ --;)
2.2.1Àý. inetd
°¢°¢ Àû´çÇÑ ¿ëµµ°¡ ÀÖ´Ù. ÀÏ´Ü inetd ¹æ½ÄÀÇ °æ¿ì À§¿¡¼ º¸¾Ò°ÚÁö¸¸ ÄÚµù·®ÀÌ ¸¹ÀÌ ÁÙ¾îµç´Ù. ¶ÇÇÑ ¿¡·¯¹ß»ýÈ®·üµµ ÁÙ¾îµç´Ù. inetd µ¥¸ó ÀÚü°¡ °ËÁõµÈ ÇÁ·Î±×·¥À̱⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ´ÙÁßÀÇ Å¬¶óÀÌ¾ðÆ®¸¦ ¹Þ¾ÆµéÀ̱â À§Çؼ »ç¿ëÇÏ´Â fork, select, poll µî¿¡ ´ëÇØ¼ ½Å°æ¾µÇʿ䰡 ¾ø´Ù. º¸Åë À̵é fork, select, poll Àº ²Ï ±î´Ù·Î¿î ÇÁ·Î±×·¡¹Ö ÀÛ¾÷À» ¿ä±¸Çϸç, ÀÌ´Â ¸¹Àº ¿À·ù¸¦ ¹ß»ý½Ã۱⵵ ÇÑ´Ù.
inetd ¹æ½ÄÀº telnet, ftp, pop ¼ºñ½º¿Í °°Àº ºó¹øÇÑ ¿ä±¸°¡ ¹ß»ýÇÏÁö ¾Ê°Å³ª, ÀÏ´Ü ¿äûÀ» ¹Þ¾ÆµéÀÌ¸é ²Ï ¿À·£½Ã°£ ÀÛ¾÷À» ¼öÇàÇÏ´Â ¼ºñ½º¿¡ Àû´çÇÏ´Ù. ¹Ý¸é http ¼ºñ½º¿Í °°ÀÌ Ãʱ⠹ÝÀÀ¼Óµµ°¡ Áß¿ä½ÃÇϰųª ¸Å¿ì ºó¹øÇÑ ¿äûÀÌ ÀϾ´Â ¼ºñ½º¿¡´Â Àû´çÇÑ ¹æ¹ýÀÌ ¾Æ´Ï´Ù.
±×¸®°í ¿¡·¯¸¦ Ç¥ÁØÃâ·Â½Ãų¼ö ¾øÀ¸¹Ç·Î ¾à°£ µð¹ö±ëÀÌ ±î´Ù·Î¿Í Áú¼ö ÀÖ´Ù´Â ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. µð¹ö±ëÀ» ¿øÇÑ´Ù¸é ¿¡·¯·Î±×¸¦ ÆÄÀÏ·Î ÀúÀåÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÒ°ÍÀÌ´Ù.
2.2.2Àý. inetd
stand alone ¹æ½ÄÀº http¿Í °°Àº ¹ÝÀÀ¼Óµµ°¡ Áß¿äÇϰųª, ¸Å¿ì ºó¹øÇÑ ¿äûÀÌ ÀϾ´Â ¼ºñ½º¿¡ Àû´çÇÏ´Ù.
¿¹¸¦µé¾î ¼¹ö°¡ oracle ¿¡ ¿¬°áÇØ¼ µ¥ÀÌŸ¸¦ °¡Á®¿À´Â ÀÏÀ»ÇÑ´Ù°í ÇßÀ»¶§ inetd ¹æ½ÄÀ» »ç¿ëÇϸé Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÀÌ µé¾î¿Ã¶§ ¸¶´Ù oracle DB·ÎÀÇ ¿¬°áÀ» ¼öÇàÇØ¾ß ÇÒ°ÍÀÌ´Ù. ÀÌ´Â ¾öû³ ÀÚ¿øÀÇ ºñÈ¿À²¼ºÀ» Áõ°¡ ½Ãų¼ö ÀÖ´Ù. ±×·¯³ª stand alone ¹æ½ÄÀ¸·Î ÇßÀ»¶§´Â ÃÖÃÊ¿¡ Çѹø¸¸ oracle DB·Î ¿¬°áÇϰí, »õ·Î¿î Ŭ¶óÀÌ¾ðÆ®°¡ ¿¬°áµÇ´õ¶óµµ ÀÌ¹Ì ¿¬°áµÈ oracle DB·Î ÀÛ¾÷À» ÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù.
±×·¯³ª Äڵ差ÀÌ ¸¹¾ÆÁö°í, ½Å°æ½á¾ßÇÒ ºÎºÐµéÀÌ ¸Å¿ì ¸¹¾ÆÁø´Ù´Â ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù.
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|