5Àå. ¼­¹ö º¸¾È

½Ã½ºÅÛÀÌ °øÁß ³×Æ®¿öÅ©¿¡¼­ ¼­¹ö·Î »ç¿ëµÉ °æ¿ì °ø°ÝÀÇ ´ë»óÀÌ µÇ±â ½±½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ½Ã½ºÅÛ º¸¾ÈÀ» º¸°­ÇÏ°í ¼­ºñ½º¸¦ Àá±×´Â °ÍÀº ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹«¾ùº¸´Ù Áß¿äÇÕ´Ï´Ù.

ƯÁ¤ »çÇ׿¡ ´ëÇÏ¿© ±íÀÌ ÆÄ°íµé±â ÀÌÀü¿¡ ¼­¹ö º¸¾ÈÀ» °­È­½Ãų ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ÈùÆ®¸¦ ´ÙÀ½¿¡¼­ °£·«È÷ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù:

5.1. TCP ·¡ÆÛ¿Í xinetd¸¦ »ç¿ëÇÏ¿© ¼­ºñ½º º¸¾È °­È­Çϱâ

TCP ·¡ÆÛ(wrappers)´Â ´Ù¾çÇÑ ¼­ºñ½º¿¡ Á¢±Ù Á¦¾î¸¦ Á¦°øÇÕ´Ï´Ù. SSH, Telnet, FTP¿Í °°Àº ´ëºÎºÐÀÇ Ãֽгׯ®¿öÅ© ¼­ºñ½º´Â µé¾î¿À´Â ¿äû°ú ¿äûµÈ ¼­ºñ½º »çÀÌ¿¡¼­ °¨½Ã ¿ªÇÒÀ» ÇÏ´Â TCP ·¡ÆÛ¸¦ »ç¿ëÇÕ´Ï´Ù.

Ãß°¡ ¾×¼¼½º, ±â·Ï, ¹ÙÀεù, ¹æÇâ Àüȯ ¹× ÀÚ¿ø Ȱ¿ë Á¦¾î¿Í °°Àº ±â´ÉÀ» Á¦°øÇÏ´Â ¼öÆÛ ¼­ºñ½ºÀÎ xinetd¸¦ ÇÔ²² »ç¿ëÇϸé TCP ·¡ÆÛ°¡ Á¦°øÇÏ´Â º¸¾È ±â´ÉÀÌ º¸´Ù °­È­µË´Ï´Ù.

ÈùÆ®ÈùÆ®
 

TCP ·¡ÆÛ¿Í xinetd¿Í ÇÔ²² IPTables ¹æÈ­º® ±ÔÄ¢À» »ç¿ëÇÏ¿© ¼­ºñ½º Á¢±Ù Á¦¾î¿¡ Áߺ¹¼ºÀ» °®´Â °ÍÀÌ ÁÁ½À´Ï´Ù. IPTables ¸í·ÉÀ» »ç¿ëÇÏ¿© ¹æÈ­º®À» ±¸ÇöÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â 7 ÀåÀ» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.

TCP ·¡ÆÛ¿Í xinetd¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Ãß°¡ Á¤º¸´Â Red Hat Enterprise Linux ÂüÁ¶ °¡À̵åÀÇ TCP ·¡ÆÛ¿Í xinetd Àå¿¡¼­ ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ ºÎºÐ¿¡¼­´Â ¿©·¯ºÐÀÌ °¢ ÁÖÁ¦¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» °®Ãß°í °è½Å´Ù°í °£ÁÖÇÏ°í Æ¯Á¤ º¸¾È ¿É¼Ç¿¡ ÁßÁ¡À» µÎ°í ¼³¸íÇØ º¸°Ú½À´Ï´Ù.

5.1.1. TCP ·¡ÆÛ¸¦ »ç¿ëÇÏ¿© º¸¾È °­È­Çϱâ

TCP ·¡ÆÛ´Â ¼­ºñ½º·ÎÀÇ ¾×¼¼½º¸¦ °ÅºÎÇÏ´Â °Í À̿ܿ¡µµ ´Ù¸¥ ¸¹Àº ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼­´Â TCP ·¡ÆÛ¸¦ »ç¿ëÇÏ¿© ¿¬°á ¹è³Ê¸¦ º¸³»°í, ƯÁ¤ È£½ºÆ®¿¡¼­ ħÀÔÀÚ¿¡°Ô °æ°í ¸Þ½ÃÁö¸¦ º¸³»¸ç, ±â·Ï ±â´ÉÀ» °­È­ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇϰí ÀÖ½À´Ï´Ù. TCP ·¡ÆÛÀÇ ±â´É°ú Á¦¾î ¾ð¾î¿¡ ´ëÇÑ ÀüüÀûÀÎ ¸ñ·ÏÀ» º¸½Ã·Á¸é hosts_options ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.

5.1.1.1. TCP ·¡ÆÛ¿Í ¿¬°á ¹è³Ê

¼­ºñ½º¿¡ Á¢¼ÓÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡ °æ°í¼º ¹è³Ê¸¦ º¸³»´Â °ÍÀÌ ¼­¹ö°¡ ¾î¶°ÇÑ ½Ã½ºÅÛÀ» ¿î¿µ ÁßÀÎÁö º¸¿©ÁÖÁö ¾ÊÀ¸¸é¼­ µ¿½Ã¿¡ ħÀÔÀÚ¿¡°Ô ½Ã½ºÅÛ °ü¸®ÀÚ°¡ °¨½Ã ÁßÀ̶ó°í ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ¼­ºñ½º¿¡ 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/

5.1.1.2. TCP ·¡ÆÛ¿Í ħÀÔ °æ°í

¸¸ÀÏ Æ¯Á¤ È£½ºÆ®³ª ³×Æ®¿öÅ©°¡ ¼­¹ö¸¦ ħÀÔÇÏ´Â °ÍÀÌ ¹ß°ßµÇ¾ú´Ù¸é 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 Áö½ÃÀÚ´Â ¸ðµç ½© ¸í·ÉÀ» ½ÇÇàÇϹǷÎ, ƯÁ¤ Ŭ¶óÀÌ¾ðÆ®°¡ ¼­¹ö¿¡ Á¢¼ÓÀ» ½ÃµµÇÒ °æ¿ì °ü¸®ÀÚ¿¡°Ô ¾Ë¸®°Å³ª ¿©·¯ ¸í·ÉÀ» ¼öÇàÇÒ Æ¯¼ö ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϽʽÿÀ.

5.1.1.3. TCP ·¡ÆÛ¿Í Çâ»óµÈ ±â·Ï ±â´É

¸¸ÀÏ Æ¯Á¤ À¯ÇüÀÇ Á¢¼ÓÀÌ ´Ù¸¥ À¯Çü º¸´Ù Áß¿äÇÏ´Ù¸é severity ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÇØ´ç ¼­ºñ½º¿¡ ´ëÇÑ ¿©·¯ ´Ù¸¥ ±â·Ï ¼öÁØÀ» ¼³Á¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ¿¹½Ã¿¡¼­´Â FTP ¼­¹ö Æ÷Æ® 23 (Telnet Æ÷Æ®)·Î Á¢¼ÓÀ» ½ÃµµÇÏ´Â »ç¿ëÀÚ¸¦ Å©·¡Ä¿¶ó°í °¡Á¤ÇÕ´Ï´Ù. Å©·¡Ä¿°¡ ħÀÔÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÏ¿© ·Î±× ÆÄÀÏ¿¡¼­ ±âº» Ç÷¡±×(flag)ÀÎ info ´ë½Å emerg Ç÷¡±×¸¦ ÁöÁ¤ÇϽðí ÀÌ Æ÷Æ®·Î µé¾î¿À´Â ¿¬°áÀ» °ÅºÎÇÕ´Ï´Ù.

¿¬°áÀ» °ÅºÎÇϱâ À§Çؼ­´Â /etc/hosts.deny ÆÄÀÏ¿¡ ´ÙÀ½ ÁÙÀ» Ãß°¡ÇÏ½Ã¸é µË´Ï´Ù:

in.telnetd : ALL : severity emerg

ÀÌ·¯ÇÑ ¼³Á¤Àº ±âº» authpriv ±â·Ï ±â´ÉÀ» »ç¿ëÇÏÁö¸¸ ±â·Ï ½É°¢¼º ¼öÁØÀ» ±âº» °ªÀÎ info¿¡¼­ emerg ¼öÁØÀ¸·Î ³ô¿©¼­ ·Î±× ¸Þ½ÃÁö¸¦ Äֿܼ¡ ¹Ù·Î º¸¿©ÁÝ´Ï´Ù.

5.1.2. xinetd¸¦ »ç¿ëÇÏ¿© º¸¾È °­È­Çϱâ

xinetd ¼öÆÛ ¼­¹ö´Â Á¾¼Ó ¼­ºñ½º·ÎÀÇ Á¢±ÙÀ» Á¦¾îÇϴµ¥ À¯¿ëÇÏ°Ô »ç¿ëµÇ´Â ¶Ç ´Ù¸¥ µµ±¸ÀÔ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼­´Â xinetd¸¦ »ç¿ëÇÏ¿© Æ®·¦(trap) ¼­ºñ½º¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý°ú ¼­ºñ½º °ÅºÎ °ø°ÝÀ» ÁÂÀý½Ã۱â À§ÇÏ¿© xinetd ¼­ºñ½º°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÚ¿øÀÇ ¾çÀ» Á¦¾îÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ÁßÁ¡ÀûÀ¸·Î ¼³¸íÇØ º¸°Ú½À´Ï´Ù. ¸ðµç »ç¿ë °¡´ÉÇÑ ¿É¼ÇÀÇ ¸ñ·ÏÀ» º¸½Ã·Á¸é xinetd ¹× xinetd.confÀÇ ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.

5.1.2.1. Æ®·¦(Trap) ¼³Á¤Çϱâ

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 ÁÖ¼Ò¸¦ À§ÀåÇÏ¿© ƯÁ¤ È£½ºÆ®¿¡ ¼­ºñ½º °ÅºÎ °ø°ÝÀ» ¸¶¿îÆ®ÇÑ ÈÄ ±ÝÁöµÈ Æ÷Æ®¿¡ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

5.1.2.2. ¼­¹ö ÀÚ¿øÀ» Á¦¾îÇϱâ

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 ¼­ºñ½º°¡ ½Ã½ºÅÛÀ» ¸¶ºñ½ÃŰ´Â »óȲÀ» ¹æÁöÇϴµ¥ µµ¿òÀÌ µË´Ï´Ù.