ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1절. ¼Ò°³¿ì¸®´Â Áö³¹ø¿¡ inetd ÇÁ·Î±×·¡¹Ö ¸¦ ÅëÇÏ¿³ inetd µ¥¸óÀÇ ÀÛµ¿¹æ½Ä°ú inetd ¸¦ ÀÌ¿ëÇÑ ¼¹öÇÁ·Î±×·¡¹Ö ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸¾Ò´Ù. À̹ø ±â»ç´Â inetd µ¥¸ó°ú ºñ½ÁÇÑ ÇÁ·Î±×·¥À» Á÷Á¢ ±¸ÇöÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¼Ò°³Çϰí ÀÖ´Ù. 2절. my_inetd Á¦ÀÛÀ̹ø¿¡ ¸¸µé ÇÁ·Î±×·¥ÀÇ À̸§Àº my_inetd ¶ó°í ¸í¸íÇϵµ·Ï ÇÒ°ÍÀÌ´Ù. ½î¾²ÆÄÀÏÀÇ À̸§Àº my_inetd.cpp °¡ µÉ°ÍÀÌ´Ù. 2.1절. ÀÛµ¿ ÇÁ·Î¼¼½ºmy_inetd ÀÇ ÀÛµ¿ ÇÁ·Î¼¼½º´Â ±âº»ÀûÀ¸·Î inetd ¿Í °°Àº ¹æ½ÄÀ» ÃëÇÏ°Ô µÉ°ÍÀÌ´Ù. Áï ¼³Á¤ÆÄÀÏÀ» Àоî¼, ÇØ´ç Æ÷Æ®¿¡¼ accept ´ë±â¸¦ ÇÏ´Ù°¡ Æ÷Æ®¿¡ ¿¬°áÀÌ µé¾î¿À¸é, Æ÷Æ®¿¡ ¿¬°áµÈ ÇÁ·Î±×·¥À» fork&exec ¹æ½ÄÀ¸·Î ½ÇÇà½ÃŰ°Ô µÉ°ÍÀÌ´Ù. fork ÇÏ¸é¼ accept ½Ã ¸¸µé¾îÁø ¼ÒÄÏÀ» stdin(0) À¸·Î º¹»ç(dup2) ÇÏ°Ô µÈ´Ù. ±×·¯¹Ç·Î ÀÚ½Ä ÇÁ·Î¼¼½º´Â stdin(0) À» ÀÌ¿ëÇØ¼ Ŭ¶óÀÌ¾ðÆ®¿Í Åë½ÅÀ» ÇÒ¼ö ÀÖ°Ô µÈ´Ù.
ÀÏ´Ü ¼³Á¤ÆÄÀÏÀ» ÅëÇØ¼ ÀоîµéÀÎ port ÀÇ ¼ö¸¸Å socket ¸¦ ¸¸µé¾î ÁØ´Ù. ±×ÈÄ °¢ socket ÁöÁ¤¹øÈ£¿¡ ´ëÇÑ ¿¬°áÀ» ±â´Ù¸®°Ô µÈ´Ù. À̶§ °¢ ¼ÒÄÏ ÁöÁ¤¹øÈ£ÀÇ accept ¿¡¼ block µÇ¸é ¾ÈµÇ¹Ç·Î polling À» ÀÌ¿ëÇØ¼ accept À̺¥Æ®¸¦ °Ë»çÇϵµ·Ï ÇÑ´Ù. ƯÁ¤ ¼ÒÄÏ ÁöÁ¤¹øÈ£¿¡ ¿¬°áÀÌ µé¾î¿À¸é fork ½ÃŲÈÄ port ¿¡ ÁöÁ¤µÈ ¼¹öÇÁ·Î±×·¥À» exec ½ÇÇà½ÃŲ´Ù. exec ½ÇÇàÇϱâ Àü¿¡, ¼¹öÇÁ·Î±×·¥¿¡ Ŭ¶óÀÌ¾ðÆ®¿Í Åë½ÅÇÒ ¼ÒÄÏ ÁöÁ¤¹øÈ£¸¦ Àü´Þ ½ÃÄÑÁà¾ß ÇϹǷΠdup2 ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ¼ÒÄÏÁöÁ¤¹øÈ£¸¦ 0¹øÀ¸·Î º¹»çÇϵµ·Ï ÇÑ´Ù. º¹»çÇÑÈÄ ±âÁ¸ÀÇ ¼ÒÄÏÁöÁ¤¹øÈ£´Â close ½Ã۵µ·Ï ÇÑ´Ù. 2.2절. ÀڷᱸÁ¶¼ÒÄÏÁöÁ¤¹øÈ£¿Í poll ±×¸®°í port ¿¡ ´ëÇÑ ½ÇÇ༹ö À̸§À» ÀúÀåÇÏ°Ô µÇ´Â ÀڷᱸÁ¶¿Í ¿¬°ü°ü°è´Â ¾Æ·¡¿Í °°´Ù.
3°³ÀÇ ÀڷᱸÁ¶µéÀº ÷ÀÚ¹øÈ£·Î ¼·Î¸¦ ÂüÁ¶ÇÒ¼ö ÀÖ´Ù. Áï sockfd 4 ¿¡ ´ëÇÑ ¿¬°á event(POLLIN) ´Â poll 0 À» ÀÌ¿ëÇØ¼ °Ë»çÇÒ¼ö ÀÖÀ¸¸ç, ¿¬°á event°¡ ¹ß»ýÇß´Ù¸é, vector<struct s_info> ÀÇ 0¹ø ¿ø¼Ò¸¦ ÂüÁ¶Çؼ ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ¾ß ÇÏ´ÂÁö(proc) °áÁ¤ÇÒ¼ö ÀÖ°Ô µÈ´Ù. À§¿¡¼´Â ÀڷᱸÁ¶¸¦ vector ·Î »ç¿ëÇßÁö¸¸ ¹è¿À» »ç¿ëÇØµµ ÀüÇô ¹®Á¦ ¾øÀ» °ÍÀÌ´Ù. 2.3절. ÄÚµùÀ§ÀÇ ÇÁ·Î¼¼½º¸¦ º¸¸é ¾Ë°ÙÁö¸¸, my_inetd ¸¦ ¸¸µé±â À§Çؼ ¾î¶² Ưº°ÇÑ ±â¼úÀ» ÇÊ¿ä·Î ÇÏ´Â°Ç ¾Æ´Ï´Ù. ±âÁ¸ÀÇ ¾Ë°í ÀÖ´Â Áö½ÄÀ» ÀÌ¿ëÇÑ ±¸ÇöÀÌ´Ù. ±×·¯¹Ç·Î ¾Æ·¡ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» ÀÌÇØÇϴµ¥ º° ¾î·Á¿òÀº ¾øÀ»°ÍÀÌ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î C++À» »ç¿ëÇÏ¿´´Ù. ÀÌÀ¯´Â vector¿Í string ¸¦ »ç¿ëÇϱâ À§ÇÔÀÌ´Ù. string ¸¦ »ç¿ëÇÑ ÀÌÀ¯´Â, ¹®ÀÚ¿À» Á»´õ ½±°Ô »ç¿ëÇϱâ À§ÇÔÀ̸ç, vector ¸¦ »ç¿ëÇÑ ÀÌÀ¯´Â ¼³Á¤ÆÄÀÏ¿¡¼ ÀоîµéÀÎ ³»¿ëÀ» ÀúÀåÇϱâ À§ÇÑ ÀڷᱸÁ¶¸¦ Á»´õ ½±°Ô ±¸ÇöÇϱâ À§ÇؼÀÌ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î ±¸ÇöÇØµµ ¹°·Ð »ó°üÀº ¾ø´Ù. ÇÊÀÚÀÇ °æ¿ì ÄÚµù½Ã°£À» ´ÜÃà½Ã۱â À§Çؼ vector¿Í string ¸¦ »ç¿ëÇßÀ» »ÓÀÌ´Ù. ±×·¸Áö¸¸ string ¿Í vector À» »ç¿ëÇÑ ¿Ü¿¡´Â C ½ºÅ¸ÀÏÀÇ ÄÚµù±â¹ýÀ» µû¸£°í ÀÖ´Ù. ¿¹Á¦: my_inetd.cpp
ÄÚµå´Â ÀüüÀûÀ¸·Î Á¤¸®µÇÁö ¾ÊÀº ¸ð½ÀÀ» º¸¿©ÁØ´Ù. ÀÌÀ¯´Â ¾îµð±îÁö³ª "ÀÌ·¸°Ô ±¸ÇöÀÌ °¡´ÉÇÏ´Ù" ¶ó´Â°É º¸¿©ÁÖ±â À§Çؼ Äڵ尡 ¸¸µé¾îÁ³±â ¶§¹®ÀÌ´Ù. ºÎÁ·ÇÑ ±â´ÉÀ» º¸ÃæÇϴ°Ͱú, ÄÚµå ÃÖÀûÈ¹× ¿¡·¯Ã³¸®´Â °¢ÀÚÀÇ ¸òÀ¸·Î ³²°Ü ³õµµ·Ï ÇϰڴÙ. 2.4절. Å×½ºÆ®¿ì¼± inetd ¹æ½ÄÀÇ ¼¹öÇÁ·Î±×·¥À» ÁغñÇØ¾ß ÇÑ´Ù. À̰ÍÀº inetd ÇÁ·Î±×·¡¹Ö¿¡ ÀÖ´Â zipcode_inetd.c ¸¦ ±×´ë·Î ÀÌ¿ë Çϵµ·Ï ÇÑ´Ù. À̰ÍÀ» /usr/local/bin/zipcode ·Î º¹»çÇϵµ·ÏÇÏÀÚ. ±×´ÙÀ½ my_inetd ¸¦ ½ÇÇà½ÃŰ°í ¼ÀÇ÷Π¾Ë¾Æº¸´Â ¼ÒÄÏÇÁ·Î±×·¡¹Ö(1)ÀÇ zipcode_cli.c ¸¦ ÀÌ¿ëÇØ¼ Å×½ºÆ® ÇÏ¸é µÈ´Ù.
º¸Åë telnet ¼ºñ½º´Â 23¹ø Æ÷Æ®·Î ÀÌ·ç¾îÁö¸ç ÅÚ³Ý ¼ºñ½º ¿äûÀÌ ÀÖÀ»°æ¿ì inetd °¡ /usr/sbin/in.telnetd ¸¦ fork&exec ·Î ½ÇÇà½ÃŲ´Ù. ÀÌÁ¦ ¿ì¸®°¡ ¸¸µç my_inetd °¡ °ú¿¬ telnet ¼ºñ½ºµµ °¡´ÉÇÑÁö¸¦ Å×½ºÆ® ÇØº¸µµ·Ï ÇÏÀÚ. Å×½ºÆ® Àü¿¡ ±âÁ¸¿¡ ¶°ÀÖ´Â telnet ¼ºñ½º¸¦ disable »óÅ·Π¸¸µéµµ·Ï ÇÏÀÚ. xinetd ¹æ½ÄÀ̶ó¸é /etc/xinetd.d ¹Ø¿¡ ÀÖ´Â telnet ÆÄÀÏÀ» ¿¾î¼ "disable = yes" ·Î ¹Ù²Ù¸é µÉ°ÍÀÌ´Ù. ¸¸¾à inetd ¹æ½ÄÀ̶ó¸é /etc/inetd.conf ÆÄÀÏÀ» ¿¾î¼ "telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd" ºÎºÐÀ» ÁÖ¼®Ã³¸® ÇÏ¸é µÈ´Ù. ÁÖ¼® ó¸®ÈÄ xinetd ¿Í inetd µ¥¸óÀ» Àç ½ÇÇà ½Ã۵µ·Ï ÇÑ´Ù.
ÀÌÁ¦ telnet ¼ºñ½º°¡ disable »óÅ·ΠµÇ¾î ÀÖÀ»°ÍÀÌ´Ù. Á¤¸»·Î disable »óŰ¡ µÇ¾îÀÖ´ÂÁö È®ÀÎÀ» ¿øÇÑ´Ù¸é nmap °ú °°Àº Æ÷Æ®½ºÄ³³Ê µµ±¸¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
ÀÌÁ¦ my_inetd.cfg ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» Ãß°¡½Ã۵µ·Ï ÇÏÀÚ.
±×·¯³ª À§ÀÇ my_inetd ÇÁ·Î±×·¥ÀÌ ¸ðµç ¼ºñ½º (smtp, pop3)¿Í °°Àº ¼ºñ½º¸¦ ½ÇÇà½Ãų¼ö´Â ¾øÀ»°ÍÀÌ´Ù. telnet °°Àº °æ¿ì¿¡´Â ¾Æ±Ô¸ÕÆ®°¡ ¾øÀÌ ½ÇÇàµÇ¹Ç·Î my_inetd.c ÀÇ ÄÚµå·Î ¹®Á¦¾øÀÌ exec ½Ãų¼ö ÀÖÀ¸³ª, pop3, smtp °°Àº °æ¿ì¿¡´Â ¾Æ±Ô¸ÕÆ®¸¦ ÇÊ¿ä·Î Çϴ°æ¿ì°¡ ÀÖ´Ù. ±×·±µ¥ ¿ì¸®ÀÇ ÄÚµå´Â ÀÌ·¯ÇÑ °Í±îÁö Áö¿øÇÏÁö´Â ¾Ê´Â´Ù. À̰ÍÀº ¾à°£¸¸ ¼öÁ¤Çϸé Áö¿øÇϵµ·Ï ÇÒ¼ö ÀÖÀ¸´Ï ½Ã°£ÀÌ ³²À¸¸é ¼öÁ¤ÇØ º¸µµ·Ï ÇÏÀÚ.
![]() |
|
|||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|