½Ã½ºÅÛÀÌ °øÁß ³×Æ®¿öÅ©¿¡¼ ¼¹ö·Î »ç¿ëµÉ °æ¿ì °ø°ÝÀÇ ´ë»óÀÌ µÇ±â ½±½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ½Ã½ºÅÛ º¸¾ÈÀ» º¸°ÇÏ°í ¼ºñ½º¸¦ Àá±×´Â °ÍÀº ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹«¾ùº¸´Ù Áß¿äÇÕ´Ï´Ù.
ƯÁ¤ »çÇ׿¡ ´ëÇÏ¿© ±íÀÌ ÆÄ°íµé±â ÀÌÀü¿¡ ¼¹ö º¸¾ÈÀ» °È½Ãų ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ÈùÆ®¸¦ ´ÙÀ½¿¡¼ °£·«È÷ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù:
ÃֽŠħÀÔ À¯Çü¿¡ ´ëºñÇÏ¿© ¸ðµç ¼ºñ½º¸¦ Ç×»ó ¾÷µ¥ÀÌÆ® ½ÃŰ½Ê½Ã¿À.
°¡´ÉÇÑ º¸¾È ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϽʽÿÀ.
°¡´ÉÇÑ ÇÑ ±â°è´ç ÇѰ¡Áö À¯ÇüÀÇ ³×Æ®¿öÅ© ¼ºñ½º¸¦ »ç¿ëÇϽʽÿÀ.
¸ðµç ¼¹ö¿¡¼ ¼ö»óÇÑ ÇൿÀÌ ¹ß°ßµÇ´ÂÁö ÁÖÀDZí°Ô °¨½ÃÇϽʽÿÀ.
TCP ·¡ÆÛ(wrappers)´Â ´Ù¾çÇÑ ¼ºñ½º¿¡ Á¢±Ù Á¦¾î¸¦ Á¦°øÇÕ´Ï´Ù. SSH, Telnet, FTP¿Í °°Àº ´ëºÎºÐÀÇ Ãֽгׯ®¿öÅ© ¼ºñ½º´Â µé¾î¿À´Â ¿äû°ú ¿äûµÈ ¼ºñ½º »çÀÌ¿¡¼ °¨½Ã ¿ªÇÒÀ» ÇÏ´Â TCP ·¡ÆÛ¸¦ »ç¿ëÇÕ´Ï´Ù.
Ãß°¡ ¾×¼¼½º, ±â·Ï, ¹ÙÀεù, ¹æÇâ Àüȯ ¹× ÀÚ¿ø Ȱ¿ë Á¦¾î¿Í °°Àº ±â´ÉÀ» Á¦°øÇÏ´Â ¼öÆÛ ¼ºñ½ºÀÎ xinetd¸¦ ÇÔ²² »ç¿ëÇϸé TCP ·¡ÆÛ°¡ Á¦°øÇÏ´Â º¸¾È ±â´ÉÀÌ º¸´Ù °ÈµË´Ï´Ù.
![]() | ÈùÆ® |
---|---|
TCP ·¡ÆÛ¿Í xinetd¿Í ÇÔ²² IPTables ¹æÈº® ±ÔÄ¢À» »ç¿ëÇÏ¿© ¼ºñ½º Á¢±Ù Á¦¾î¿¡ Áߺ¹¼ºÀ» °®´Â °ÍÀÌ ÁÁ½À´Ï´Ù. IPTables ¸í·ÉÀ» »ç¿ëÇÏ¿© ¹æÈº®À» ±¸ÇöÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â 7 ÀåÀ» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù. |
TCP ·¡ÆÛ¿Í xinetd¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Ãß°¡ Á¤º¸´Â Red Hat Enterprise Linux ÂüÁ¶ °¡À̵åÀÇ TCP ·¡ÆÛ¿Í xinetd Àå¿¡¼ ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ºÎºÐ¿¡¼´Â ¿©·¯ºÐÀÌ °¢ ÁÖÁ¦¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» °®Ãß°í °è½Å´Ù°í °£ÁÖÇÏ°í Æ¯Á¤ º¸¾È ¿É¼Ç¿¡ ÁßÁ¡À» µÎ°í ¼³¸íÇØ º¸°Ú½À´Ï´Ù.
TCP ·¡ÆÛ´Â ¼ºñ½º·ÎÀÇ ¾×¼¼½º¸¦ °ÅºÎÇÏ´Â °Í À̿ܿ¡µµ ´Ù¸¥ ¸¹Àº ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼´Â TCP ·¡ÆÛ¸¦ »ç¿ëÇÏ¿© ¿¬°á ¹è³Ê¸¦ º¸³»°í, ƯÁ¤ È£½ºÆ®¿¡¼ ħÀÔÀÚ¿¡°Ô °æ°í ¸Þ½ÃÁö¸¦ º¸³»¸ç, ±â·Ï ±â´ÉÀ» °ÈÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇϰí ÀÖ½À´Ï´Ù. TCP ·¡ÆÛÀÇ ±â´É°ú Á¦¾î ¾ð¾î¿¡ ´ëÇÑ ÀüüÀûÀÎ ¸ñ·ÏÀ» º¸½Ã·Á¸é hosts_options ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
¼ºñ½º¿¡ Á¢¼ÓÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡ °æ°í¼º ¹è³Ê¸¦ º¸³»´Â °ÍÀÌ ¼¹ö°¡ ¾î¶°ÇÑ ½Ã½ºÅÛÀ» ¿î¿µ ÁßÀÎÁö º¸¿©ÁÖÁö ¾ÊÀ¸¸é¼ µ¿½Ã¿¡ ħÀÔÀÚ¿¡°Ô ½Ã½ºÅÛ °ü¸®ÀÚ°¡ °¨½Ã ÁßÀ̶ó°í ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ¼ºñ½º¿¡ TCP ·¡ÆÛ ¹è³Ê¸¦ ±¸ÇöÇϽ÷Á¸é banner ¿É¼ÇÀ» »ç¿ëÇϽʽÿÀ.
ÀÌ ¿¹½Ã´Â vsftpd¿¡ ¹è³Ê¸¦ »ç¿ëÇÕ´Ï´Ù. ¸ÕÀú ¹è³Ê ÆÄÀÏÀ» »ý¼ºÇÏ¼Å¾ß ÇÕ´Ï´Ù. ½Ã½ºÅÛ »ó ¾îµð¿¡¼µç »ý¼ºÇÏ½Ç ¼ö ÀÖÁö¸¸ ÀÌ ÆÄÀÏÀ» »ç¿ëµÉ µ¥¸ó°ú µ¿ÀÏÇÑ À̸§À» °¡Á®¾ß ÇÕ´Ï´Ù. ÀÌ ¿¹½Ã¿¡¼ ÆÄÀÏ À̸§Àº /etc/banners/vsftpd ÀÔ´Ï´Ù.
ÆÄÀÏÀÇ ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Act up and you will be banned. |
%c ÅäÅ«Àº »ç¿ëÀÚ¸í, È£½ºÆ®¸í ¶Ç´Â ¿¬°á ¸Þ½ÃÁö¿¡ º¸´Ù È¿°ú°¡ ÀÖµµ·Ï »ç¿ëÀÚ¸í°ú IP ÁÖ¼Ò¿Í °°Àº ´Ù¾çÇÑ Å¬¶óÀÌ¾ðÆ® Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. Red Hat Enterprise Linux ÂüÁ¶ °¡À̵忡¼´Â TCP ·¡ÆÛ¿¡ »ç¿ë °¡´ÉÇÑ ´Ù¸¥ ÅäÅ« ¸ñ·ÏÀ» ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¹è³Ê°¡ µé¾î¿À´Â Á¢¼Ó¿¡ º¸¿©Áöµµ·Ï ÇϽ÷Á¸é /etc/hosts.allow ÆÄÀÏ¿¡¼ ´ÙÀ½ ÁÙÀ» Ãß°¡ÇÏ½Ã¸é µË´Ï´Ù:
vsftpd : ALL : banners /etc/banners/ |
¸¸ÀÏ Æ¯Á¤ È£½ºÆ®³ª ³×Æ®¿öÅ©°¡ ¼¹ö¸¦ ħÀÔÇÏ´Â °ÍÀÌ ¹ß°ßµÇ¾ú´Ù¸é TCP ·¡ÆÛ¿¡ spawn Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© ħÀÔÀÌ ½ÃµµµÈ È£½ºÆ®³ª ³×Æ®¿öÅ©ÀÇ °ü¸®ÀÚ¿¡°Ô °æ°í ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î 206.182.68.0/24 ³×Æ®¿öÅ©¿¡¼ Å©·¡Ä¿°¡ ¼¹ö¿¡ ħÀÔ ½ÃµµÇÏ·Á´Â °ÍÀÌ ¹ß°ßµÇ¾ú´Ù°í °¡Á¤Çغ¾´Ï´Ù. /etc/hosts.deny ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº ÁÙÀ» Ãß°¡ÇϽøé, ¿¬°á ½Ãµµ°¡ °ÅºÎµÇ¸ç Ưº° ÆÄÀÏ¿¡ ±â·ÏµÉ °ÍÀÔ´Ï´Ù:
ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert |
%d ÅäÅ«Àº ħÀÔÀÚ°¡ Á¢±ÙÇÏ·Á°í ½ÃµµÇÑ ¼ºñ½ºÀÇ À̸§À» º¸¿©ÁÝ´Ï´Ù.
¿¬°áÀ» Çã¿ë ÈÄ ±â·ÏÇϱâ À§Çؼ´Â /etc/hosts.allow ÆÄÀÏ¿¡ spawn Áö½ÃÀÚ¸¦ Ãß°¡ÇϽñ⠹ٶø´Ï´Ù.
![]() | ¾Ë¸² |
---|---|
spawn Áö½ÃÀÚ´Â ¸ðµç ½© ¸í·ÉÀ» ½ÇÇàÇϹǷÎ, ƯÁ¤ Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡ Á¢¼ÓÀ» ½ÃµµÇÒ °æ¿ì °ü¸®ÀÚ¿¡°Ô ¾Ë¸®°Å³ª ¿©·¯ ¸í·ÉÀ» ¼öÇàÇÒ Æ¯¼ö ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϽʽÿÀ. |
¸¸ÀÏ Æ¯Á¤ À¯ÇüÀÇ Á¢¼ÓÀÌ ´Ù¸¥ À¯Çü º¸´Ù Áß¿äÇÏ´Ù¸é severity ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÇØ´ç ¼ºñ½º¿¡ ´ëÇÑ ¿©·¯ ´Ù¸¥ ±â·Ï ¼öÁØÀ» ¼³Á¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¿¹½Ã¿¡¼´Â FTP ¼¹ö Æ÷Æ® 23 (Telnet Æ÷Æ®)·Î Á¢¼ÓÀ» ½ÃµµÇÏ´Â »ç¿ëÀÚ¸¦ Å©·¡Ä¿¶ó°í °¡Á¤ÇÕ´Ï´Ù. Å©·¡Ä¿°¡ ħÀÔÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÏ¿© ·Î±× ÆÄÀÏ¿¡¼ ±âº» Ç÷¡±×(flag)ÀÎ info ´ë½Å emerg Ç÷¡±×¸¦ ÁöÁ¤ÇϽðí ÀÌ Æ÷Æ®·Î µé¾î¿À´Â ¿¬°áÀ» °ÅºÎÇÕ´Ï´Ù.
¿¬°áÀ» °ÅºÎÇϱâ À§Çؼ´Â /etc/hosts.deny ÆÄÀÏ¿¡ ´ÙÀ½ ÁÙÀ» Ãß°¡ÇÏ½Ã¸é µË´Ï´Ù:
in.telnetd : ALL : severity emerg |
ÀÌ·¯ÇÑ ¼³Á¤Àº ±âº» authpriv ±â·Ï ±â´ÉÀ» »ç¿ëÇÏÁö¸¸ ±â·Ï ½É°¢¼º ¼öÁØÀ» ±âº» °ªÀÎ info¿¡¼ emerg ¼öÁØÀ¸·Î ³ô¿©¼ ·Î±× ¸Þ½ÃÁö¸¦ Äֿܼ¡ ¹Ù·Î º¸¿©ÁÝ´Ï´Ù.
xinetd ¼öÆÛ ¼¹ö´Â Á¾¼Ó ¼ºñ½º·ÎÀÇ Á¢±ÙÀ» Á¦¾îÇϴµ¥ À¯¿ëÇÏ°Ô »ç¿ëµÇ´Â ¶Ç ´Ù¸¥ µµ±¸ÀÔ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼´Â xinetd¸¦ »ç¿ëÇÏ¿© Æ®·¦(trap) ¼ºñ½º¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý°ú ¼ºñ½º °ÅºÎ °ø°ÝÀ» ÁÂÀý½Ã۱â À§ÇÏ¿© xinetd ¼ºñ½º°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÚ¿øÀÇ ¾çÀ» Á¦¾îÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ÁßÁ¡ÀûÀ¸·Î ¼³¸íÇØ º¸°Ú½À´Ï´Ù. ¸ðµç »ç¿ë °¡´ÉÇÑ ¿É¼ÇÀÇ ¸ñ·ÏÀ» º¸½Ã·Á¸é xinetd ¹× xinetd.confÀÇ ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
xinetdÀÇ Áß¿äÇÑ ±â´É Áß Çϳª´Â Àü¿ª no_access ¸ñ·Ï¿¡ È£½ºÆ®¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù. ÀÌ ¸ñ·Ï¿¡ Æ÷ÇÔµÈ È£½ºÆ®´Â xinetd°¡ °ü¸®ÇÏ´Â ¼ºñ½º¿¡ Á¤ÇØÁø ±â°£ µ¿¾È ¶Ç´Â xinetd°¡ Àç½ÃÀÛµÉ ¶§±îÁö ¿¬°áÀ» °ÅºÎ´çÇÕ´Ï´Ù. ÀÌ ±â´ÉÀº SENSOR ¼Ó¼ºÀ» ÅëÇØ ½ÇÇà °¡´ÉÇϸç, ¼¹ö¿¡¼ Æ÷Æ®¸¦ ½ºÄµÇÏ·Á°í ½ÃµµÇϴ ȣ½ºÆ®¸¦ ¼Õ½±°Ô ¸·À» ¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.
SENSOR¸¦ ¼³Á¤Çϱâ À§ÇÑ Ã¹¹øÂ° ´Ü°è´Â »ç¿ëÇÒ °èȹÀÌ ¾ø´Â ¼ºñ½º¸¦ ¼±ÅÃÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¿¹¿¡¼´Â TelnetÀÌ »ç¿ëµË´Ï´Ù.
/etc/xinetd.d/telnet ÆÄÀÏ¿¡¼ flags ÁÙÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇϽñ⠹ٶø´Ï´Ù:
flags = SENSOR |
°ýÈ£ ³»¿¡ ´ÙÀ½ ÁÙÀ» Ãß°¡ÇϽʽÿÀ:
deny_time = 30 |
ÀÌ ¼³Á¤Àº Æ÷Æ®·Î ¿¬°áÀ» ½ÃµµÇϴ ȣ½ºÆ®¸¦ 30 ºÐ µ¿¾È °ÅºÎÇÒ °ÍÀÔ´Ï´Ù. deny_time ¼Ó¼º¿¡ »ç¿ë °¡´ÉÇÑ ´Ù¸¥ °ª¿¡´Â FOREVER¿Í NEVER°¡ ÀÖ½À´Ï´Ù. FORVER´Â xinetd°¡ Àç½ÃÀÛµÉ ¶§±îÁö ¿¬°áÀ» °ÅºÎÇϸç, NEVER´Â ¿¬°áÀ» Çã¿ëÇÑ ÈÄ ±â·ÏÇÕ´Ï´Ù.
¸¶Áö¸· ÁÙÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇϽʽÿÀ:
disable = no |
SENSOR¸¦ »ç¿ëÇÏ¿© º¸¾ÈÀ» À§ÇùÇϴ ȣ½ºÆ®·ÎºÎÅÍ ¿¬°áÀ» °Ë»öÇÏ¿© Á¤Áö½ÃŰ´Â °ÍÀÌ ÁÁÀº ¹æ¹ýÀ̱â´Â ÇÏÁö¸¸, ´ÙÀ½°ú °°Àº µÎ°¡Áö °áÁ¡ÀÌ ÀÖ½À´Ï´Ù:
½ºÅÚ½º ½ºÄµ (½±°Ô ¹ß°ßµÇÁö ¾Êµµ·Ï ÇÑ ½ºÄµ)À» ã¾Æ³»Áö ¸øÇÕ´Ï´Ù.
¸¸ÀÏ Ä§ÀÔÀÚ°¡ SENSOR°¡ ½ÇÇà ÁßÀÎ »ç½ÇÀ» ÀÌ¹Ì ¾Ë°í ÀÖ´Ù¸é ÀÚ½ÅÀÇ IP ÁÖ¼Ò¸¦ À§ÀåÇÏ¿© ƯÁ¤ È£½ºÆ®¿¡ ¼ºñ½º °ÅºÎ °ø°ÝÀ» ¸¶¿îÆ®ÇÑ ÈÄ ±ÝÁöµÈ Æ÷Æ®¿¡ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù.
xinetdÀÇ ¶Ç ´Ù¸¥ Áß¿äÇÑ ±â´ÉÀº ¼ºñ½º°¡ Ȱ¿ë °¡´ÉÇÑ ÀÚ¿øÀÇ ¾çÀ» Á¦¾îÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù.
´ÙÀ½ Áö½ÃÀÚ¸¦ ÅëÇÏ¿© ÀÌ ±â´ÉÀ» »ç¿ë °¡´ÉÇÕ´Ï´Ù:
cps = <number_of_connections> <wait_period> — 1ÃÊ´ç ¼ºñ½º¿¡ Çã¿ëµÇ´Â ¿¬°á ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Áö½ÃÀÚ´Â ¹Ýµå½Ã Á¤¼ö°ªÀ¸·Î ¼³Á¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.
instances = <number_of_connections> — ÇÑ ¼ºñ½º¿¡ Çã¿ëµÇ´Â ÃÑ ¿¬°á ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.ÀÌ Áö½ÃÀÚ´Â Á¤¼ö°ªÀ̳ª UNLIMITED °ªÀ» ¼ö¿ëÇÕ´Ï´Ù.
per_source = <number_of_connections> — °¢ È£½ºÆ®¸¶´Ù ¼ºñ½º¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Â ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Áö½ÃÀÚ´Â Á¤¼ö°ªÀ̳ª UNLIMITEDÀ¸·Î ÁöÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.
rlimit_as = <number[K|M]> — ¼ºñ½º°¡ Â÷ÁöÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸® ÁÖ¼Ò °ø°£ÀÇ ¿ë·®À» ų·Î¹ÙÀÌÆ® ¶Ç´Â ¸Þ°¡¹ÙÀÌÆ® ´ÜÀ§·Î ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Áö½ÃÀÚ´Â Á¤¼ö°ªÀ̳ª UNLIMITED·Î ¼³Á¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.
rlimit_cpu = <number_of_seconds> — ¼ºñ½º°¡ CPU¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ½Ã°£À» ÃÊ ´ÜÀ§·Î ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Áö½ÃÀÚ´Â Á¤¼ö°ªÀ̳ª UNLIMITEDÀ¸·Î ¼³Á¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ Áö½ÃÀÚ¸¦ »ç¿ëÇϽøé, ¼ºñ½º °ÅºÎ °ø°ÝÀ» ÅëÇØ xinetd ¼ºñ½º°¡ ½Ã½ºÅÛÀ» ¸¶ºñ½ÃŰ´Â »óȲÀ» ¹æÁöÇϴµ¥ µµ¿òÀÌ µË´Ï´Ù.