1581, 10/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   Chris Ruiel
   [Æß]TCP SYN_Flooding °ø°ÝÀÇ ¿øÀΰú ÇØ°áÃ¥

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=7917 [º¹»ç]


¾îÁ¦ FLOODING ATTACK ¿¡ ´ëÇؼ­ ´äº¯À» ´Þ´Ù°¡..»ý°¢³ª¼­ µÚÀû°Å·È´ø ¹®¼­ÀÔ´Ï´Ù.^^
Á» µÇ±äÇ߾ ¸¹Àº µµ¿òÀÌ µÇ¸®¶ó º¾´Ï´Ù.^^


--------------------------------------------------------------------------------


TCP SYN_Flooding °ø°ÝÀÇ ¿øÀΰú ÇØ°áÃ¥

SYN Flooding °ø°ÝÀÇ °³³äÀÌ ¼Ò°³µÈÁö´Â ²Ï µÇ¾úÁö¸¸ ÃÖ±Ù µé¾î ¸®´ª½º°¡ È®»êµÇ°í,
°£´ÜÇÏ°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Â °ø°Ý ¼Ò½º°¡ ±¤¹üÀ§ÇÏ°Ô ¹èÆ÷µÇ¸é¼­ ÀÌ °ø°ÝÀÌ ÀÚÁÖ È®ÀÎ µÇ°í ÀÖ°í,
ÀÌ·Î ÀÎÇØ ±× ÇÇÇØ°¡ ±Þ¼ÓÈ÷ È®»êµÇ°í ÀÖ´Ù. ½ÇÁ¦·Î ÇöÀç °¡Àå ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â ¹èÆ÷º»ÀÎ
·¹µåÇò 6.x °è¿­¿¡ ÀÌ °ø°ÝÀ» ½ÇÇàÇϱ⸸ ÇÏ¸é ´Ü ¸î Ãʸ¸¿¡ ¼­ºñ½º°¡ Á¤ÁöÇØ ¹ö¸®°Ô µÈ´Ù.
µû¶ó¼­ À̹ø È£¿¡¼­´Â ÇÇÇØ°¡ È®»êµÇ°í ÀÖ´Â ÀÌ °ø°ÝÀÇ ¿ø¸®¿Í ´ëó¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

±Û/È«¼®¹ü ¿À´Ã°ú ³»ÀÏ ³Ý¼¾ÅÍ(antihong@tt.co.kr)



--------------------------------------------------------------------------------


ÃÖ±Ù ÀÚ½ÅÀÌ ¿î¿µÇÏ´Â ¼­¹ö¿¡ Ưº°È÷ ºÎÇÏ°¡ °É¸®°Å³ª ÀÌ»óÀÌ ÀÖ´Â °Íµµ ¾Æ´Ï°í ¶Ç µ¥¸óµµ Á¤»óÀûÀ¸·Î
¶° Àִµ¥, Á¤ÀÛ ¼­ºñ½º°¡ ÀÛµ¿ÇÏÁö ¾Ê´Â °æ¿ì°¡ Á¾Á¾ ÀÖ´Ù.
ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ÇØ´ç µ¥¸óÀ» ¿ÏÀüÈ÷ ¸ØÃß¾ú´Ù°¡ »ì¸®¸é ´Ù½Ã ÀÛµ¿Çϴµ¥, Àá½Ã ÈÄ¿¡ È®ÀÎÇØ º¸¸é
¶È°°Àº Çö»óÀÌ ´Ù½Ã ³ªÅ¸³ª°ï ÇÑ´Ù. Ȥ½Ã ÇÁ·Î±×·¥À» À߸ø ¼³Ä¡Çß³ª ½Í¾î Áö¿ì°í ´Ù½Ã ¼³Ä¡Çصµ ¸¶Âù°¡Áö´Ù.
¸¸¾à ÃÖ±Ùµé¾î ÀÌ·¯ÇÑ °æÇèÀÌ ÀÖ´Ù¸é ÀÌ´Â ÃÖ±Ù À¯ÇàÇÏ´Â DoS(¼­ºñ½º °ÅºÎ °ø°Ý)ÀÇ ÀÏÁ¾ÀÎ
TCP SYN Flooding °ø°ÝÀ» ´çÇßÀ» °¡´É¼ºÀÌ Å©´Ù.

TCPÀÇ ¾àÁ¡À» ÀÌ¿ëÇÑ °ø°Ý¿ø¸®

SYN Flooding °ø°ÝÀº TCPÀÇ Ãë¾àÁ¡À» ÀÌ¿ëÇÑ °ø°ÝÀÇ ÇüÅÂÀ̹ǷΠ¸ÕÀú TCP¿¡ ´ëÇØ ¾Ë¾Æ¾ß ÇÑ´Ù. TCP(Transmition Control Protocol)´Â UDP¿Í´Â ´Þ¸® ½Å·Ú¼º ÀÖ´Â ¿¬°áÀ» ´ã´çÇÑ´Ù. µû¶ó¼­ ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ® °£¿¡ º»°ÝÀûÀÎ Åë½ÅÀÌ ÀÌ·ç¾îÁö±â Àü¿¡´Â ´ÙÀ½ ±×¸²°ú °°ÀÌ ¼ÒÀ§ '3 Way handshaking'¶ó´Â Á¤ÇØÁø ±ÔÄ¢ÀÌ »çÀü¿¡ ¼±ÇàµÇ¾î¾ß ÇÑ´Ù.
•1´Ü°è : A Ŭ¶óÀ̾ðÆ®´Â B ¼­¹ö¿¡ Á¢¼ÓÀ» ¿äûÇÏ´Â SYN ÆÐŶÀ» º¸³½´Ù.
•2´Ü°è : B ¼­¹ö´Â ¿äûÀ» ¹Þ°í A Ŭ¶óÀ̾ðÆ®¿¡°Ô ¿äûÀ» ¼ö¶ôÇÑ´Ù´Â SYN ÆÐŶ°ú ACK ÆÐŶÀ» ¹ß¼ÛÇÑ´Ù.
•3´Ü°è : A Ŭ¶óÀ̾ðÆ®´Â B ¼­¹ö¿¡°Ô ACK¸¦ º¸³»°í ÀÌÈķκÎÅÍ ¿¬°áÀÌ ÀÌ·ç¾îÁö°í º»°ÝÀûÀ¸·Î µ¥ÀÌÅÍ°¡ ±³È¯µÈ´Ù.

ÀÌ°ÍÀÌ TCPÀÇ ±âº»ÀûÀÎ Ç÷οì´Ù. ±×·±µ¥ ÀÌ ±×¸²¿¡¼­ ¾ÇÀÇÀûÀÎ °ø°ÝÀÚ°¡ 1´Ü°è¸¸ ¿äû(SYN)ÇÏ°í B ¼­¹ö·ÎºÎÅÍ ÀÀ´äÀ» ¹ÞÀº ÈÄ(SYN+ACK) 3´Ü°è, Áï Ŭ¶óÀ̾ðÆ®¿¡°Ô ACK¸¦ º¸³»Áö ¾Ê´Â´Ù¸é ¾î¶»°Ô µÉ±î? SYN+ACK ÆÐŶÀ» ¹ÞÀº B È£½ºÆ®´Â A·ÎºÎÅÍ ÀÀ´äÀÌ ¿Ã°ÍÀ» ±â´ëÇÏ°í ¹ÝÂë ¿­¸° À̸¥¹Ù Half Open »óÅ°¡ µÇ¾î ´ë±â »óÅ¿¡ ¸Ó¹«¸¥ ÈÄ ÀÏÁ¤ ±â°£(75ÃÊ) ÈÄ¿¡ ´ÙÀ½ ¿äûÀÌ ¿ÀÁö ¾ÊÀ¸¸é ÇØ´ç ¿¬°áÀ» ÃʱâÈ­Çϱâ Àü±îÁö ÀÌ ¿¬°áÀº ¸Þ¸ð¸® °ø°£ÀÎ ¹é·Î±×Å¥(Backlog Queue)¿¡ °è¼Ó ½×ÀÌ°Ô µÈ´Ù. ±×·±µ¥, ÀÌ À§Á¶µÈ ¿¬°á ½Ãµµ¸¦ ÃʱâÈ­Çϱâ Àü¿¡ À§Á¶µÈ »õ·Î¿î ¿ä±¸°¡ °è¼Ó µé¾î¿À°Ô µÈ´Ù¸é ¶ÇÇÑ À§Á¶µÈ »õ·Î¿î ¿ä±¸°¡ ¿¬°áÀ» ÃʱâÈ­ÇÏ´Â ¼Óµµº¸´Ù ´õ »¡¸® ÀÌ·ç¾îÁø´Ù¸é ¾î¶»°Ô µÉ±î? ÀÌ·¯ÇÑ °æ¿ì SYN ÆÐŶÀÌ ¾î´À Á¤µµ ¹é·Î±×Å¥¿¡ ÀúÀåÀÌ µÇ´Ù °á±¹ ²Ë Â÷°Ô µÇ¾î ´õ ÀÌ»óÀÇ ¿¬°áÀ» ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Â »óÅÂ, Áï ¼­ºñ½º °ÅºÎ »óÅ·Πµé¾î°¡°Ô µÇ´Â °ÍÀÌ´Ù. ÀÌó·³ ¹é·Î±×Å¥°¡ °¡µæ áÀ» °æ¿ì¿¡ °ø°ÝÀ» ´çÇÑ ÇØ´ç Æ÷Æ®·Î¸¸ Á¢¼ÓÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀ» »Ó ´Ù¸¥ Æ÷Æ®¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê°í, ¶ÇÇÑ ¼­¹ö¿¡ º°´Ù¸¥ ºÎÇϵµ À¯¹ßÇÏÁö ¾ÊÀ¸¹Ç·Î °ü¸®ÀÚ°¡ Àß ¸ð¸£´Â °æ¿ì°¡ ¸¹´Ù. ¶ÇÇÑ ´Ù¸¥ DoS °ø°Ý°ú´Â ´Þ¸® ¸¹Àº Æ®·¡ÇÈÀ» À¯¹ßÇÏ´Â °ø°ÝÀÌ ¾Æ´Ï¹Ç·Î ½±°Ô ÆÄÀÍÀÌ µÇÁö ¾Ê´Â °ø°Ý ÇüÅ´Ù. ±×·¸´Ù¸é ÀÌ °ø°ÝÀ» ´çÇÏ°í ÀÖ´ÂÁö ¿©ºÎ´Â ¾î¶»°Ô ¾Ë ¼ö ÀÖÀ»±î? ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ ÈÄ 'netstat'¶ó´Â ¸í·ÉÀ¸·Î È®Àΰ¡´ÉÇÏ´Ù.

±×·³, ¾î¶»°Ô ÆľÇÇϴ°¡?

netstatÀº ½Ã½ºÅÛÀÇ °¢Á¾ ³×Æ®¿öÅ© Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â ¸í·É¾î·Î ³×Æ®¿öÅ© ¿¬°á, ¶ó¿ìÆà ÇöȲ, ÀÎÅÍÆäÀ̽º Åë°è µîÀÇ Á¤º¸¸¦ È®ÀÎÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ¿©±â¼­ Àá±ñ netstatÀ¸·Î ³ª¿À´Â ¿¬°á »óÅ¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. netstat -na·Î È®ÀÎÇØ º¸¸é Local Address, Foreign Address, State µîÀÇ Á¤º¸°¡ Ãâ·ÂµÇ´Âµ¥ ÀÌÁß State ºÎºÐ¿¡ º¸ÀÌ´Â ¸Þ½ÃÁö¸¦ ÁÖ¸ñÇÏ¸é µÈ´Ù.




state ºÎºÐ¿¡ °¡´ÉÇÑ ¿¬°á»óÅÂ
•LISTEN : ¼­¹öÀÇ µ¥¸óÀÌ ¶°¼­ Á¢¼Ó ¿äûÀ» ±â´Ù¸®´Â »óÅÂ
•SYS-SENT : ·ÎÄÃÀÇ Å¬¶óÀ̾ðÆ® ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿ø°Ý È£½ºÆ®¿¡ ¿¬°áÀ» ¿äûÇÑ »óÅÂ
•SYN_RECEIVED : ¼­¹ö°¡ ¿ø°Ý Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ Á¢¼Ó ¿ä±¸¸¦ ¹Þ¾Æ Ŭ¶óÀ̾ðÆ®¿¡°Ô ÀÀ´äÀ» ÇÏ¿´Áö¸¸ ¾ÆÁ÷ Ŭ¶óÀ̾ðÆ®¿¡°Ô È®ÀÎ ¸Þ½ÃÁö´Â ¹ÞÁö ¾ÊÀº »óÅÂ
•ESTABLISHED : 3 Way-Handshaking ÀÌ ¿Ï·áµÈ ÈÄ ¼­·Î ¿¬°áµÈ »óÅÂ
•FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : ¼­¹ö¿¡¼­ ¿¬°áÀ» Á¾·áÇϱâ À§ÇØ Å¬¶óÀ̾ðÆ® ¿¡°Ô Á¾°áÀ» ¿äûÇÏ°í ȸ½ÅÀ» ¹Þ¾Æ Á¾·áÇÑ´À °úÁ¤ÀÇ »óÅÂ
•CLOSING : ÈçÇÏÁö ¾ÊÁö¸¸ ÁÖ·Î È®ÀÎ ¸Þ½ÃÁö°¡ Àü¼ÛµµÁß ºÐ½ÇµÈ »óÅÂ
•TIME-WAIT : ¿¬°áÀº Á¾·áµÇ¾úÁö¸¸ ºÐ½ÇµÇ¾úÀ»Áö ¸ð¸¦ ´À¸° ¼¼±×¸ÕÆ®¸¦ À§ÇØ ´çºÐ°£ ¼ÒÄÏÀ» ¿­¾î³õÀº »óÅÂ
•CLOSED : ¿ÏÀüÈ÷ Á¾·á


°¢°¢ÀÇ ¿¬°á »óÅ´ Åë½Å »óȲ¿¡ µû¶ó ¸Å¿ì º¹ÀâÇÏ°Ô ¼ø°£ÀûÀ¸·Î º¯È­Çϴµ¥, ÀÌ Áß ÁÖ·Î ÁÖ¸ñÇÏ¿©¾ß ÇÒ »óÅ´ SYN_RECEIVED´Ù. ¼³¸í¿¡ ³ª¿Â ´ë·Î ÀÌ »óÅ´ Ŭ¶óÀ̾ðÆ®ÀÇ È®ÀÎ ¸Þ½ÃÁö¸¦ ±â´Ù¸®´Â »óÅÂÀÌÁö¸¸ Ưº°È÷ Àü¿ë ȸ¼±¿¡ Àå¾Ö°¡ ¾ø´Â ÇÑ ÀÌ °úÁ¤Àº ¼ø°£ÀûÀ¸·Î ÀϾ¹Ç·Î ½ÇÁ¦ netstat·Î È®ÀεǴ °æ¿ì´Â °ÅÀÇ ¾ø´Ù. µû¶ó¼­ netstat -na | grep SYN_RECV·Î È®ÀÎÇØ º¸¾Æ ¸¹Àº ¸Þ½ÃÁö°¡ º¸Àδٸé Syn Flooding °ø°ÝÀ» ´çÇÏ°í ÀÖ´Â °ÍÀ¸·Î ÆÇ´ÜÇÏ¸é µÈ´Ù.

½ÇÁ¦ Å×½ºÆ® °ø°ÝÀ¸·Î Á÷Á¢ È®ÀÎÇØ º¸ÀÚ!

½ÇÁ¦ ÀÚ½ÅÀÇ ½Ã½ºÅÛÀÌ ¾ó¸¶³ª Ãë¾àÇÑÁö ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ Å×½ºÆ®ÇØ º¸µµ·ÏÇÏÀÚ. ³ëÆĽɿ¡ À̾߱âÇÏ´Â °ÍÀÌÁö¸¸ ÀÌ °ø°ÝÀº ¹Ýµå½Ã ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡¼­¸¸ Å×½ºÆ® ¿ëµµ·Î ½ÇÇàÇØ º¸±â ¹Ù¶õ´Ù. ÀÌ °ø°Ý ¼Ò½º´Â ÀÎÅÍ³Ý »ó¿¡¼­ ½±°Ô ãÀ» ¼ö ÀÖ´Ù. http://packetstrom.securify.com/ ³ª http://rootshell.com/¿¡ Á¢¼Ó ÈÄ synÀ¸·Î °Ë»öÇØ º¸¸é ¸¹Àº ¼Ò½º¿Í ¹®¼­°¡ Àִµ¥, ÀÌÁß °ü·Ã ÆÄÀÏÀ» ´Ù¿î¹Þ¾Æ ¼³Ä¡Çغ¸¸é µÈ´Ù. ¼Ò½º¿¡ µû¶ó ½ÇÇà ¹æ¹ýÀÌ ´Ù¸£Áö¸¸ ´Ù¿î·Îµå ¹ÞÀº ¼Ò½ºÆÄÀÏÀÌ syn_flooding _doc.c ¶ó¸é gcc -o syn_flooding_dos syn_flooding_dos.c·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù. ÀÌ ÈÄ './syn_flooding_dos ¼ÒIP °ø°ÝÁöIP °ø°ÝÇÒ ÇÏÀ§ Æ÷Æ® ¹øÈ£ »óÀ§ Æ÷Æ® ¹øÈ£'¿Í °°ÀÌ ½ÇÇàÇÏ¸é µÇ´Âµ¥, ÇÊÀÚ´Â ./syn_flooding_dos 0 localhost 80 80°ú °°ÀÌ Å×½ºÆ®ÇØ º¸¾Ò´Ù. ¾ÕÀÇ ¸í·É¾î Àǹ̴ °ø°ÝÁö ÁÖ¼Ò¸¦ ·£´ýÇÏ°Ô ¹«ÀÛÀ§ IP ÁÖ¼Ò·Î ¼³Á¤(0)ÇÏ¿© localhost ¼­¹öÀÇ 80 ¹ø Æ÷Æ®¿¡ Syn_Flooding °ø°ÝÀ» ÇÑ´Ù´Â ³»¿ëÀÌ´Ù.

½ÇÁ¦ ÇÊÀÚ°¡ Å×½ºÆ®ÇÑ ·¹µåÇò6.2 ¼­¹ö¿¡¼­´Â °ø°ÝÈÄ 2-3Ãʸ¸¿¡ À¥ ¼­ºñ½º°¡ ÁßÁö µÇ¾ú´Ù. Å×½ºÆ® °ø°Ý ÈÄ ÅÚ³Ý ·ÎÄà ȣ½ºÆ® 80À¸·Î Á¢¼ÓÇغ¸±â ¹Ù¶õ´Ù. ºÐ¸íÈ÷ httpd µ¥¸óÀº ¶° Àִµ¥, Á¢¼ÓÀÌ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ´ÙÀ½Àº °ø°ÝÀ» ´çÇÑ ¼­¹ö¿¡¼­ netstat -na | grep SYNÀ¸·Î SYN ÆÐŶÀ» ÀâÀº ºÎºÐÀÌ´Ù.

ºÐ¸íÈ÷ ·ÎÄÃÈ£½ºÆ®¿¡¼­ °ø°ÝÀ» ÇßÀ½¿¡µµ À§ ±×¸²¿¡¼­Ã³·³ 80¹ø Æ÷Æ®·Î SYN ÆÐŶÀ» ¿äûÇÑ IPÁÖ¼Ò´Â ·£´ýÇÏ°Ô º¸ÀÌ°í ÀÖ¾î µµ¹«Áö ¾î¶² IP¿¡¼­ °ø°ÝÇÏ°í ÀÖ´Â °ÍÀÎÁö ¾Ë ¼ö ¾ø´Ù. ½ÇÁ¦·Î °ø°ÝÁö IP¸¦ È®ÀÎÇØ º¸¸é ´ëºÎºÐÀÌ ÇöÀç ÀÎÅÍ³Ý »ó¿¡ ¿¬°áµÇÁö ¾ÊÀº Á¸ÀçÇÏÁö ¾Ê´Â À§Á¶µÈ IPµéÀÌ´Ù. ½ÇÁ¦ °ø°Ý ¼Ò½ºÄÚµå Áß ¼Ò½ºIP¸¦ »ý¼ºÇÏ´Â ºÎºÐÀ» º¸¸é ¾Æ·¡¿Í °°ÀÌ 0ºÎÅÍ 255±îÁö ÀÓÀÇÀÇ °ªÀ» »Ì¾Æ IPÁÖ¼Ò·Î ¼³Á¤ÇÏ´Â °ÍÀ» È®¾ÈÇÒ ¼ö ÀÖ´Ù.

SYN_Flooding °ø°Ý¿¡ ´ëÇÑ ´ëºñ ¹× ÇØ°áÃ¥

±×·¸´Ù¸é ÀÌ °ø°Ý¿¡ ´ëÇØ ¾î¶»°Ô ´ëºñÇØ¾ß ÇÒ±î? Å©°Ô ³× °¡Áö·Î ºÐ·ùÇؼ­ »ìÆ캸±â·Î ÇÏ°Ú´Ù.

¹é·Î±× Å¥¸¦ ´Ã·ÁÁØ´Ù.

Á÷°üÀûÀ¸·Î º¸¾ÒÀ» ¶§ ¼­ºñ½º °ÅºÎ¿¡ µ¹ÀÔÇÏ°Ô µÇ´Â °ÍÀº ¹é·Î¸£Å¥(Backlog Queue)°¡ °¡µæÂ÷¼­ ´Ù¸¥ Á¢¼Ó ¿ä±¸¸¦ ¹Þ¾ÆµéÀÌÁö ¸øÇϱ⠶§¹®À̹ǷΠ¹é·Î±×Å¥ÀÇ Å©±â¸¦ ´Ã·ÁÁÖ¸é µÉ °ÍÀÌ´Ù. ½ÇÁ¦·Î ¸®´ª½º¸¦ Æ÷ÇÔÇؼ­ ¸¹Àº ¿î¿µÃ¼Á¦µéÀÇ ¹é·Î±×Å¥ °ªÀ» Á¶»çÇØ º¸¸é ÀÌ °ªÀÌ ÇÊ¿ä ÀÌ»óÀ¸·Î ÀÛ°Ô ¼³Á¤µÇ¾î ÀÖ¾î ÀûÀýÈ÷ ´Ã·ÁÁÖ´Â °ÍÀÌ ÁÁ´Ù. ÇöÀç ½Ã½ºÅÛ¿¡ ¼³Á¤µÈ ¹é·Î±×Å¥ÀÇ Å©±â´Â ´ÙÀ½°ú °°Àº µÎ °¡Áö ¹æ¹ýÀ¸·Î È®ÀÎÀÌ °¡´ÉÇϸç 128KbÀÎ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

[root@net /root]# sysctl -a | grep syn_backlognet.ipv4.tcp_max_syn_backlog = 128

[root@net /root]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog128

ÀϹÝÀûÀ¸·Î ½Ã½ºÅÛÀÇ ·¥ÀÌ 128MÀÏ °æ¿ì¿¡´Â 128À» ¼³Á¤ÇÏ°í ±× ÀÌ»óÀÏ °æ¿ì¿¡´Â 1024 Á¤µµ·Î ¼³Á¤ÇØ ÁÖ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¶§ ÁÖÀÇÇÒ Á¡Àº ÀÌ °ªÀ» ¹«ÀÛÁ¤ Å©°Ô ¼³Á¤ÇÑ´Ù°í ÁÁÀº °ÍÀº ¾Æ´Ï¸ç 1024 ÀÌ»óÀ¸·Î ¼³Á¤ÇÒ °æ¿ì´Â /usr/src/linux/include/ net/tcp.h ¼Ò½º¿¡¼­ TCP_SYNQ_HSIZE º¯¼ö¸¦ ¼öÁ¤ ÈÄ Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù. ÀÌ º¯¼ö¸¦ ¼³Á¤½Ã TCP_SYNQ_HSIZE¿¡ 16À» °öÇÑ °ªÀÌ tcp_mas_syn_backlog º¸´Ù´Â À۰ųª °°¾Æ¾ß Çϴµ¥, ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â ½Ã½ºÅÛ¿¡ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸´Ï 1024 º¸´Ù ³ôÀº °ªÀ¸·Î ¼³Á¤ÇÏÁö ¸»±â ¹Ù¶õ´Ù. ±×¸®°í ÀÌ °ªÀ» ³Ê¹« Å©°Ô ¼³Á¤ÇÏ¿´À» °æ¿ì¿¡´Â °æÇèÀûÀ¸·Î ¾Æ·¡ ¼³¸íÇÒ syncookies ±â´ÉÀÌ Àß Àû¿ëµÇÁö ¾Ê´Â Çö»óÀÌ °¡²û È®ÀεǾú´Ù. ÀÌ¿Í´Â º°°³·Î ½Ã½ºÅÛÀÇ ºÎÇÏ°¡ ¸¹ÀÌ °É¸± °æ¿ì¿¡µµ ¹é·Î±×Å¥¸¦ ´Ã·ÁÁÖ¸é ÀÏÁ¤ Á¤µµÀÇ È¿°ú¸¦ º¼ ¼ö ÀÖ´Â °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ´Ù. ¹é·Î±×Å¥ÀÇ °ªÀ» ¼³Á¤ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú µÎ°¡Áö ¹æ¹ýÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.

[root@net /root]# sysctl -w net.ipv4.tcp_max_syn_backlog=1024

[root@net /root]# echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

±×·¯³ª ÀÌ ¹æ¹ýÀº ÀÓ½ÃÀûÀÎ ´ëÃ¥ÀÏ »Ó, Áö¼ÓÀûÀ¸·Î ¸¹Àº TCP SYN Flooding °ø°ÝÀ» ´çÇÒ ¶§´Â °á±¹ ¹é·Î±×Å¥°¡ °¡µæ Â÷°Ô µÇ¹Ç·Î ±Ùº»ÀûÀÎ ÇØ°á ¹æ¾ÈÀº ¾Æ´Ï´Ù.

syncookies ±â´ÉÀ» ÄÒ´Ù

Syncookies('½ÅÄíÅ°'¶ó°í ¹ßÀ½ÇÑ´Ù)´Â 'Three-way handshake'ÁøÇà°úÁ¤À» ´Ù¼Ò º¯°æ ÇÏ´Â °ÍÀ¸·Î Alex Yuriev¿Í Avi Freedman¿¡ ÀÇÇØ Á¦¾ÈµÇ¾ú´Âµ¥, TCP Çì´õÀÇ Æ¯Á¤ÇÑ ºÎºÐÀ» »Ì¾Æ³»¾î ¾Ïȣȭ ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÏ´Â ¹æ½ÄÀ¸·Î Three-way Handshake°¡ ¼º°øÀûÀ¸·Î ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸é ´õ ÀÌ»ó ¼Ò½º °æ·Î¸¦ °Å½½·¯ ¿Ã¶ó°¡Áö ¾Ê´Â´Ù. µû¶ó¼­ ÀûÀýÇÑ ¿¬°æ ¿äû¿¡ ´ëÇؼ­¸¸ ¿¬°áÀ» ¸Î±â À§ÇØ ¸®¼Ò½º¸¦ ¼ÒºñÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.

syncookies ±â´ÉÀº TCP_Syn_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇÑ °¡Àå È®½ÇÇÑ ¹æ¹ýÀ¸·Î ÀÌ ±â´ÉÀ» ÀÌ¿ëÇÏ·Á¸é ÀÏ´Ü Ä¿³Î ÄÄÆÄÀÏ ¿É¼Ç¿¡¼­ CONFIF_SYN_COOKIESÀÌ Y·Î ¼±ÅõǾî ÀÖ¾î¾ß ÇÑ´Ù. ÀÚ½ÅÀÇ Ä¿³Î ¿É¼Ç¿¡ ÀÌ ±â´ÉÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö /usr/src/linux µð·ºÅ丮·Î À̵¿ ÈÄ make menuconfig ÈÄ ´ÙÀ½°ú °°ÀÌ È®ÀÎÇÏ¸é µÈ´Ù.

Networking options ---> [*] IP: TCP syncookies support (disabled per default)

¸¸¾à ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾Ê´Ù¸é ¼±Åà ÈÄ Ä¿³Î ÄÄÆÄÀÏÀ» ´Ù½Ã ÇÏ¿©¾ß ÇÏÁö¸¸ ´ëºÎºÐ ¹èÆ÷º»Àº ±âº»ÀûÀ¸·Î ÀÌ ¿É¼ÇÀÌ ¼±ÅõǾî ÀÖÀ¸¹Ç·Î °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ±×·¯³ª À§¿Í °°ÀÌ Ä¿³Î ¿É¼Ç¿¡ ¼³Á¤µÇ¾î ÀÖ´Ù ÇÏ´õ¶óµµ ½ÇÁ¦ syncookies Àû¿ëÀº ²¨Á® ÀÖÀ¸¹Ç·Î ÀÌ °ªÀ» ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î È°¼ºÈ­ÇØ¾ß ÇÑ´Ù.

[root@control src]# sysctl -a | grep syncookienet.ipv4.tcp_syncookies = 0

0À¸·Î ¼³Á¤µÇ¾î ÀÖÀ¸¹Ç·Î ÇöÀç syncookies´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ 1À» ¼³Á¤ÇÏ¿© syncookies ±â´ÉÀ» È°¼ºÈ­µµ·Ï ÇÑ´Ù.

[root@control src]# sysctl -w net.ipv4.tcp_syncookies=1

syncookies´Â ¹é·Î±×Å¥°¡ °¡µæ áÀ» °æ¿ì¿¡µµ Á¤»óÀûÀÎ Á¢¼Ó¿ä±¸¸¦ °è¼Ó ¹Þ¾ÆµéÀϼö ÀÖµµ·Ï ÇØÁֹǷΠSYN_Flooding °ø°Ý¿¡ ´ëºñÇÑ °¡Àå È¿°úÀûÀÎ ¹æ¹ýÁß Çϳª´Ù. ¸¸¾à °ø°ÝÀ» ´çÇØ syncookies°¡ ÀÛµ¿ÇÒ ¶§¿¡´Â /var/log/message ÆÄÀÏ¿¡ ¾Æ·¡¿Í °°ÀÌ SynFlooding °ø°ÝÀÌ ÁøÇàÁßÀ̶ó´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù.

Jun 11 18:54:08 net kernel: possible SYN flooding on port 80. Sending cookies.

SYN_Flooding °ø°ÝÀÌ Áö¼ÓÀûÀ¸·Î ¸Å¿ì ½ÉÇÏ°Ô ÁøÇàÁßÀÏ ¶§¿¡´Â syncookies ±â´ÉÀÌ ÀÛµ¿ÇÑ´Ù ÇÏ´õ¶óµµ ³×Æ®¿öÅ©°¡ ´Ù¿îµÇ´Â Çö»óÀÌ °¡²û È®ÀεǾú´Ù. µû¶ó¼­ syncookies ±â´É ¿Ü¿¡ ¸î °¡Áö ¼³Á¤µµ ÇÔ²² Àû¿ëÇÏ´Â °ÍÀÌ ½Ã½ºÅÛÀÇ ¾ÈÁ¤¼ºÀ» À§ÇØ ±ÇÀåÇÏ´Â ¹æ¹ýÀÌ´Ù. ¾Æ¿ï·¯ ³×Æ®¿öÅ©°¡ ´Ù¿îµÇ¾úÀ» °æ¿ì¿¡´Â /etc/rc.d/init.d/network restart·Î ³×Æ®¿öÅ©¸¦ Àç¼³Á¤ÇØ º¸°Å³ª ¸®ºÎÆ®ÇØ¾ß ÇÑ´Ù.

±âŸ ½Ã½ºÅÛÀÇ ³×Æ®¿öÅ© ¼³Á¤À» ÃÖÀûÈ­ÇÑ´Ù

´ÙÀ½ ¼³Á¤Àº ºñ´Ü TCP Syn_Flooding °ø°Ý»Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ ¿©Å¸ DoS°ø°Ý¿¡µµ È¿°úÀûÀ¸·Î ¹æ¾îÇϹǷΠÀûÀýÈ÷ ¼³Á¤ÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù.
•sysctl -w net.ipv4.icmp_destunereach_rate=1
# 1/100ÃÊ µ¿¾È ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â "dest unreach (type 3) icmp"ÀÇ °³¼ö
•sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
# Broadcast·ÎºÎÅÍ ¿À´Â ÇÎÀ» Â÷´ÜÇÔ(Smurt °ø°ÝÀ» Â÷´ÜÇÔ).
•sysctl -w net.ipv4.icmp_echoreply_rate=1
# 1/100ÃÊ¿¡ ¹ÝÀÀÇÏ´Â ÇÎÀÇ ÃÖ´ë ¼ýÀÚ
•sysctl -w net.ipv4.icmp_echo_ignore_all=1
# ¸ðµç ÇÎÀ» Â÷´ÜÇÔ
•sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
# IP ³ª TCP Çì´õ°¡ ±úÁø bad icmp packetÀ» ¹«½ÃÇÑ´Ù.
•sysctl -w net.ipv4.icmp_paramprob_rate=1
# 1/100 ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â param probe packetÀÇ ¼ö
•sysctl -w net.ipv4.icmp_timeexceed_rate=1
# 1/100 ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â timeexceed ÆÐŶÀÇ ¼ö(traceroute¿Í °ü·Ã)
•sysctl -w net.ipv4.igmp_max_memberships=1
# 1/100ÃÊ¿¡ ¹Þ¾ÆµéÀÌ´Â igmp "memberships"ÀÇ ¼ö
•sysctl -w net.ipv4.ip_default_ttl=64
# ¸Å¿ì º¹ÀâÇÑ »çÀÌÆ®¿¡¼­´Â ÀÌ °ªÀ» ´Ã¸®´Â °Íµµ °¡´ÉÇÏÁö¸¸ 64·Î µÎ´Â °ÍÀÌ Àû´çÇÏ¸ç ´õ ´Ã·ÈÀ» °æ¿ì¿¡´Â Å« ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù.
•sysctl -w net.ipv4.ip_forward=0
# °ÔÀÌÆ®¿þÀÌ ¼­¹ö°¡ ¾Æ´Ñ ÀÌ»ó ÆÐŶÀ» Æ÷¿öµù ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
•sysctl -w net.ipv4.ipfrag_time=15
# fragmented packetÀÌ ¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ´Â ½Ã°£À» 15ÃÊ·Î ¼³Á¤ÇÑ´Ù.
•sysctl -w net.ipv4.tcp_syn_retries=3
# ÀÏÁ¤ÇÑ ½Ã°£°ú IPº°·Î º¸³»°í ¹Þ´Â SYN Àç½Ãµµ Ƚ¼ö¸¦ 3ȸ·Î Á¦ÇÑÇÑ´Ù. ÀÌ ¿É¼ÇÀº ½ºÇªÇεÈ(À§Á¶µÈ) ÁÖ¼Ò·Î ¿À´Â SYN ¿¬°áÀÇ ¾çÀ» ÁÙ¿©ÁØ´Ù. ±âº» °ªÀº 5À̸ç 255¸¦ ³ÑÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
•sysctl -w net.ipv4.tcp_retries1=3
# ¹«¾ð°¡ ¹®Á¦°¡ ÀÖÀ» ¶§ ¿¬°áÀ» À§ÇØ Àç½Ãµµ ÇÒ È½¼ö, ÃÖ¼Ò °ª°ú ±âº» °ªÀº 3ÀÌ´Ù.
•sysctl -w net.ipv4.tpc_retries2=7
# TCP ¿¬°áÀ» ²÷±â Àü¿¡ Àç½ÃµµÇÒ È½¼ö.
•sysctl -w net.ipv4.conf.eth0.rp_filter=2
sysctl -w net.ipv4.conf.lo.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2
sysctl -w net.ipv4.conf.all.rp_filter=2
# ÀÌ ¼³Á¤Àº ÀÚ½ÅÀÇ ³×Æ®¿öÅ©°¡ ½ºÇªÇÎµÈ °ø°ÝÁöÀÇ ¼Ò½º·Î ¾²ÀÌ´Â °ÍÀ» Â÷´ÜÇÑ´Ù. ¸ðµç ÀÎÅÍÆäÀ̽º¿¡¼­ µé¾î¿À´Â ÆÐŶ¿¡ ´ëÇØ reply¸¦ ÇÏ¿© µé¾î¿À´Â ÀÎÅÍÆäÀ̽º·Î ³ª°¡Áö ¸øÇÏ´Â ÆÐŶÀ» °ÅºÎÇÑ´Ù.
•sysctl -w net.ipv4.conf.eth0.accept_redirect=0
sysctl -w net.ipv4.conf.lo.accept_redirect=0
sysctl -w net.ipv4.conf.default.accept_redirect=0
sysctl -w net.ipv4.conf.all.accept_redirect=0
# icmp redirects¸¦ Çã¿ëÇÏÁö ¾Ê´Â´Ù. ¸¸¾à ICMP Redirect¸¦ Çã¿ëÇÒ °æ¿ì¿¡´Â °ø°ÝÀÚ°¡ ÀÓÀÇÀÇ ¶ó¿ìÆà Å×À̺íÀ» º¯°æÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÚ½ÅÀÌ ÀǵµÇÏÁö ¾Ê´Â °æ·Î, Áï °ø°ÝÀÚ°¡ ÀǵµÇÑ °æ·Î·Î Æ®·¡ÇÈÀÌ Àü´ÞµÉ ¼ö ÀÖ´Â À§ÇèÀÌ ÀÖ´Ù.
•sysctl -w net.ipv4.conf.eth0.accept_source_route=0
sysctl -w net.ipv4.conf.lo.accept_source_route=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.all.accept_source_route=0
# ½ºÇªÇÎÀ» ¸·±â À§ÇØ source route ÆÐŶÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù. ¼Ò½º ¶ó¿ìÆÃÀ» Çã¿ëÇÒ °æ¿ì ¾ÇÀÇÀûÀÎ °ø°ÝÀÚ°¡ IP ¼Ò½º ¶ó¿ìÆÃÀ» »ç¿ëÇؼ­ ¸ñÀûÁöÀÇ °æ·Î¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ°í, ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿À´Â °æ·Îµµ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¼Ò½º ¶ó¿ìÆÃÀÌ °¡´ÉÇÑ °ÍÀ» ÀÌ¿ëÇØ °ø°ÝÀÚ°¡ ¸¶Ä¡ ½Å·Ú¹Þ´Â È£½ºÆ®³ª Ŭ¶óÀ̾ðÆ®ÀÎ °Íó·³ À§ÀåÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
•sysctl -w net.ipv4.conf.eth0.bootp_relay=0
sysctl -w net.ipv4.conf.lo.bootp_relay=0
sysctl -w net.ipv4.conf.default.bootp_relay=0
sysctl -w net.ipv4.conf.all.bootp_relay=0
# bootp ÆÐŶÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
•sysctl -w net.ipv4.conf.eth0.log_martians=0
sysctl -w net.ipv4.conf.lo.log_martians=0
sysctl -w net.ipv4.conf.default.log_martians=0
sysctl -w net.ipv4.conf.all.log_martians=0
# ½ºÇªÇÎµÈ ÆÐŶÀ̳ª ¼Ò½º¶ó¿ìÆÃ, Redirect ÆÐŶ¿¡ ´ëÇØ ·Î±×ÆÄÀÏ¿¡ Á¤º¸¸¦ ³²±ä´Ù.
•sysctl -w net.ipv4.conf.eth0.secure_redirects=0
sysctl -w net.ipv4.conf.lo.secure_redirects=0
sysctl -w net.ipv4.conf.default.secure_redirects=0
sysctl -w net.ipv4.conf.all.secure_redirects=0
# °ÔÀÌÆ®¿þÀ̷κÎÅÍÀÇ redirect¸¦ Çã¿ëÇÏÁö ¾ÊÀ½À¸·Î½á ½ºÇªÇÎÀ» ¸·±â À§ÇØ ¼³Á¤ÇÑ´Ù.
•sysctl -w net.ipv4.conf.eth0.send_redirects=0
sysctl -w net.ipv4.conf.lo.send_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
# icmp redirects¸¦ º¸³»Áö ¾Ê´Â´Ù.
•sysctl -w net.ipv4.conf.eth0.proxy_arp=0
sysctl -w net.ipv4.conf.lo.proxy_arp=0
sysctl -w net.ipv4.conf.default.proxy_arp=0
sysctl -w net.ipv4.conf.all.proxy_arp=0
# proxy arp¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù. ÀÌ °ªÀÌ 1·Î ¼³Á¤µÇ¾úÀ» °æ¿ì proxy_arp°¡ ¼³Á¤µÈ ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ arp ÁúÀÇ°¡ µé¾î¿ÔÀ» ¶§ ¸ðµç ÀÎÅÍÆäÀ̽º°¡ ¹ÝÀÀÇÏ°Ô µÈ´Ù.
•sysctl -w net.ipv4.tcp_keealive_time=30
# ÀÌ¹Ì ÇÁ·Î¼¼½º°¡ Á¾·áµÇ¾î ºÒÇÊ¿äÇÏ°Ô ³²¾Æ ÀÖ´Â ¿¬°áÀ» ²÷´Â ½Ã°£À» ÁÙÀ̵µ·Ï ÇÑ´Ù.
•sysctl -w net.ipv4.tcp_fin_timeout=30
# ¿¬°áÀ» Á¾·á½Ã ¼Ò¿äµÇ´Â ½Ã°£À» ÁÙ¿©ÁØ´Ù(±âº» ¼³Á¤°ª: 60).
•sysctl -w net.ipv4.tcp_tw_buckets=720000
# µ¿½Ã¿¡ À¯Áö °¡´ÉÇÑ timewait ¼ÒÄÏÀÇ ¼öÀÌ´Ù. ¸¸¾à ÁöÁ¤µÈ ¼ýÀÚ¸¦ ÃÊ°úÇÏ¿´À» °æ¿ì¿¡´Â timewait ¼ÒÄÏÀÌ ¾ø¾îÁö¸ç °æ°í ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù. ÀÌ Á¦ÇÑÀº ´Ü¼øÇÑ DoS °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇØ Á¸ÀçÇϴµ¥, ÀÓÀÇ·Î ÀÌ °ªÀ» ÁÙ¿©¼­´Â ¾ÈµÇ¸ç ¸Þ¸ð¸®°¡ ÃæºÐÇÏ´Ù¸é ÀûÀýÇÏ°Ô ´Ã·ÁÁÖ´Â °ÍÀÌ ÁÁÀºµ¥, 64M ¸¶´Ù 180000À¸·Î ¼³Á¤ÇÏ¸é µÈ´Ù. µû¶ó¼­ 256MÀÏ °æ¿ì¿¡´Â 256/4=4 4*180000=720000
•sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_max_ka_probes=100
# °£´ÜÇÑ DoS °ø°ÝÀ» ¸·¾ÆÁØ´Ù.

À§ÀÇ ¸ðµç ¼³Á¤Àº ÀçºÎÆà ÈÄ¿¡ ¿ø·¡ÀÇ °ªÀ¸·Î ´Ù½Ã ÃʱâÈ­µÇ¹Ç·Î /etc/rc.d/rc.local ¿¡ µÎ¾î ºÎÆýø¶´Ù ½ÇÇàÇϵµ·Ï ÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í ¸®´ª½ºÀÇ ¹öÀüÀÌ ³·¾Æ sysctl ¸í·É¾î°¡ ¾ø´Â °æ¿ì¿¡´Â echo 0 or 1 > /proc/sys/net/*¿Í °°ÀÌ Á÷Á¢ /proc ÀÌÇÏÀÇ °ªÀ» Á÷Á¢ ¼³Á¤ÇØ Á־ µÈ´Ù. echo ¸í·É¾î ¿ª½Ã ÀçºÎÆõǸé ÃʱâÈ­µÇ¹Ç·Î /etc/rc.d/rc.local ¿¡ ¼³Á¤ÇØ µÎ¾î¾ß ÀçºÎÆÃÈÄ¿¡µµ Àû¿ëÀÌ µÈ´Ù. ¾Æ¿ï·¯ ·¹µåÇò 6.2 ÀÌ»óÀÏ °æ¿ì¿¡´Â /etc/sysctl.conf ÆÄÀÏ¿¡ net.ipv4.tcp_syncookies=1°ú °°ÀÌ ¼³Á¤ÇÑ ÈÄ ³×Æ®¿öÅ©¸¦ Àç½ÃÀÛÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.

±×¿Ü SYN_Fooding ¿¡ ´ëÇÑ º¸Ãæ ¼³¸í ¸î °¡Áö

1. ¾Õ¿¡¼­ ¼³¸íÇÑ ¹æ¹ý ¿Ü¿¡ Ãß°¡ÀûÀ¸·Î ¼³Á¤ÇÑ ¸¸ÇÑ ¸î°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. RFC 1918¿¡ ÀÇÇØ ³»ºÎ(Private) IP¸¦ ¼Ò½º·Î µé¾î¿À´Â Æ®·¡ÇÈÀ» Â÷´ÜÇÑ´Ù. 127.0.0.0, 10.0.0.0, 172.16.0.0, 192.168.0.0 µîÀº Private IP·Î¼­ ³»ºÎÀÇ °¡»ó IP¸¦ »ç¿ëÇÒ ¶§ ¾²ÀÌ´Â ÁÖ¼ÒÀ̸ç ÀϹÝÀûÀ¸·Î ÀÌ·¯ÇÑ IP¸¦ ¼Ò½ºÁÖ¼Ò·Î ¶ó¿ìÆà µÉ ¼ö ¾ø´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ºñÁ¤»óÀûÀÎ IP ÁÖ¼Ò¸¦ ¼Ò½º·Î Çؼ­ µé¾î¿À´Â Æ®·¡ÇÈÀ» Â÷´ÜÇÑ´Ù.

•iptables -A INPUT -s 10.0.0./8 -j DROP
iptables -A INPUT -s 172.0.0./12 -j DROP
iptables -A INPUT -s 192.0.0./24 -j DROP
# »ç¼³ IP¸¦ Â÷´ÜÇÑ´Ù. /8, /16 µîÀº CIDRÀ̶ó Çϸç /8Àº A Class, /16Àº B Class¸¦ ¶æÇÑ´Ù.
•iptables -A INPUT -s 255.255.255.255/32 -j DROP
iptables -A INPUT -s 127.0.0./8 -j DROP
# ÀϹÝÀûÀ¸·Î ¶ó¿ìÆÃÀÌ µÇÁö ¾Ê´Â IP ´ë¿ªÀ» Â÷´ÜÇÑ´Ù.
•iptables -A INPUT -s 240.0.0.0/5 -j DROP
# IANA¿¡ ¿¹¾àµÈ ÁÖ¼Ò¸¦ Â÷´ÜÇÑ´Ù.
•iptables -A INPUT -s 211.2.3.4 -j DROP
# ¾Æ¿ï·¯ ÀÚ±â ÀÚ½ÅÀÇ IP¸¦ ¼Ò½º·Î ÇÏ´Â ÆÐŶµµ ÇÊÅ͸µÇÑ´Ù(211.2.3.4 ´ë½Å ÀÚ½ÅÀÇ IPÀÔ·Â). ÀÚ½ÅÀÇ IP¸¦ ¼Ò½º·Î Çؼ­ ÆÐŶÀÌ µé¾î¿Ã ¼ö´Â ¾ø´Ù.

ÀÚ½ÅÀÇ ½Ã½ºÅÛÀÌ Ä¿³Î 2.4 ÀÌÀü ¹öÀüÀÇ °æ¿ì¿¡´Â iptables ´ë½Å ipchains¸¦ »ç¿ëÇϹǷΠipchains -A input -s 10.0.0./8 -j DENY¿Í °°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÏ¸é µÈ´Ù. ¸¸¾à iptables°¡ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀ¸¸é http://netfilter.kernelnotes.org/¿¡ Á¢¼Ó ÈÄ ÃֽŹöÀüÀÇ iptables.tar¸¦ ´Ù¿î·Îµå ¹Þ¾Æ ¾ÐÃàÇØÁ¦ ÈÄ make; make install·Î ¼³Ä¡ÇÏ¸é µÈ´Ù. ÇöÀç ¸®´ª½º ½Ã½ºÅÛÀÇ Ä¿³Î ¹öÀüÀº uname -r À» ÀÔ·ÂÇϸé È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¾Æ¿ï·¯ ´ÙÀ½Àº ³×Æ®¿öÅ©¸¦ ÅëÇØ ¶ó¿ìÆà µÉ ¼ö ¾ø´Â IP ´ë¿ªÀ̹ǷΠÇÊÅ͸µ ÇÏ¿©¾ß ÇÒ IP´Ù.




0.0.0.0/8 - Historical Broadcast
10.0.0.0/8 - RFC 1918¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
127.0.0.0/8 - Loopback
169.254.0.0/16 - Link Local Networks
172.16.0.0/16 - RFC 1918¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
192.0.2.0/24 - TEST-NET
192.168.0.0/16 - RFC 1918¿¡ ÀÇÇÑ ³»ºÎ ³×Æ®¿öÅ©
224.0.0.0/4 - Multicast D Class
240.0.0.0/5 - ¿¹¾àµÈ E Class
248.0.0.0/5 - ¹ÌÇÒ´ç
255.255.255.255/32 - ºê·ÎƮij½ºÆ®





2. ÀÓÀÇÀÇ IP°¡ ¾Æ´Ñ ƯÁ¤ÇÑ IP¸¦ ¼Ò½ºÁÖ¼Ò·Î °è¼ÓÀûÀ¸·Î SYN °ø°ÝÀÌ ÀÌ·ç¾î Áú °æ¿ì¿¡´Â ÇØ´ç IP¸¦ Â÷´ÜÇÏ´Â °Íµµ ÁÁÀº ¹æ¹ýÀÌ´Ù. ¸¸¾à 211.2.3.4 ¿¡¼­ Áö¼ÓÀûÀ¸·Î °ø°ÝÀÌ µé¾î¿Ã ¶§´Â ´ÙÀ½°ú °°ÀÌ µÎ °¡Áö ¹æ¹ýÀ¸·Î Â÷´ÜÇÒ ¼ö ÀÖ´Ù.





iptables -A INPUT -s 211.2.3.4 -j DROP (Kernel 2.4.x ¹öÀü)
ipchains -A input -s 211.2.3.4 -j DENY (Kernel 2.4 ÀÌÀü ¹öÀü)

route add -host 211.2.3.4 reject·Î ÇÑ´Ù.


¸¸¾à 211.2.3.X ´ë¿ª Àüü¸¦ Â÷´ÜÇÏ·Á¸é 211.2.3.0/24¿Í °°ÀÌ ÇÏ¸é µÈ´Ù(/24´Â C Class ¸¦ ¶æÇÑ´Ù). ±×·¯³ª ¾Õ°ú °°ÀÌ route º¸´Ù´Â iptables³ª ipchains·Î Â÷´ÜÇÏ´Â °ÍÀÌ ´õ È¿°úÀûÀÌ´Ù. ¸¸¾à ÀÓÀÇÀÇ IP·Î °ø°ÝÁö¸¦ »ý¼ºÇÑ´Ù¸é SYN_RECEIVED·Î º¸ÀÌ´Â IPÁß¿¡´Â ½ÇÁ¦ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇ¾î ÀÖ´Â IPµµ ÀÖÀ» °ÍÀÌ°í ±×·¸Áö ¾ÊÀº IPµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ½ÇÁ¦ °ø°ÝÀ» ´çÇÒ ¶§ °ø°ÝÁö IP¸¦ °ËÃâÇØ º¸¸é ¸ðµÎ ÇÎÀÌ µÇÁö ¾Ê´Â ½ÇÁ¦ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇÁö ¾ÊÀº IPÁÖ¼Ò´Ù. ¾î°¼­ ÀÌ·± Çö»óÀÌ ÀϾ±î? ÀÌ´Â ¾Õ¿¡¼­ ¼³¸íÇÑ TCPÀÇ 3 Way-Handshake ¿ø¸®¸¦ Àß »ý°¢Çغ¸¸é ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù. Áï, ¹«ÀÛÀ§·Î »ý¼ºµÈ IP¸¦ ¼Ò½º·ÎÇÑ SYNÆÐŶÀ» ¹ÞÀº ¼­¹ö´Â ¿äûÀ» ¹ÞÀº ¸ðµç IP·Î SYN+ACK ÆÐŶÀ» º¸³½´Ù. ±×·±µ¥ Á¤ÀÛ ½ÇÁ¦·Î ÇØ´ç IP¸¦ »ç¿ëÁßÀΠȣ½ºÆ®´Â SYNÆÐŶÀ» º¸³»Áöµµ ¾Ê¾Ò´Âµ¥, °ø°ÝÀ» ¹ÞÀº ¼­¹ö·ÎºÎÅÍ ¿µ¹®µµ ¸ð¸£´Â SYN+ACK¸¦ ¹Þ¾ÒÀ¸¹Ç·Î ÀÌ ÆÐŶÀ» ºñÁ¤»óÀûÀÎ ÆÐŶÀ¸·Î °£ÁÖÇÏ°í ÇØ´ç ÆÐŶÀ» ¸®¼Â(RST)ÇÏ¿© ÃʱâÈ­½ÃŲ´Ù. ±×¸®°í ½ÇÁ¦ Á¸ÀçÇÏÁö ¾Ê´Â IP¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ. °ø°ÝÀ» ´çÇÑ ¼­¹ö°¡ ÇØ´ç IP·ÎºÎÅÍ SYNÆÐŶÀ» ¹Þ¾Ò´Ù°í ÆÇ´Ü(½ÇÁ¦·Î´Â À§Á¶µÈ ÆÐŶÀÌÁö¸¸)ÇÏ¿© SYN+ACK ÆÐŶÀ» ¹ß¼Û ÈÄ ACK ÆÐŶÀ» °è¼Ó ±â´Ù¸®Áö¸¸ ÇØ´ç IP´Â ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î SYN+ACK ÆÐŶÀ» ¹ÞÀ» ¼öµµ ¾øÀ» »Ó´õ·¯ ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ACK ÆÐŶÀ» ¹ß¼ÛÇÏÁö ¾ÊÀ» °ÍÀÓÀº ºÒÀ» º¸µí »·ÇÑ °ÍÀÌ°í, °á±¹ °ø°ÝÀ» ¹Þ´Â ¼­¹ö´Â Á¸ÀçÇÏÁöµµ ¾Ê´Â IP·ÎºÎÅÍ ACK ÆÐŶÀ» ¹ÞÀ» °Í¸¸À» ±â´Ù¸®¸ç ¹é·Î±×Å¥´Â °¡µæÂ÷°Ô µÇ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¹é·Î±×Å¥°¡ °¡µæ Â÷°Ô µÇ´Â ÀÌÀ¯ÀÌ¸ç ¹é·Î±×Å¥¸¦ °¡µæ ä¿ì´Â IP°¡ ¸ðµÎ ½ÇÁ¦·Î´Â Á¸ÀçÇÏÁö ¾Ê´Â IPµéÀÎ °ÍÀÌ´Ù. µû¶ó¼­ °ø°ÝÀÚÀÇ ÀÔÀå¿¡¼­´Â ÀÎÅͳݻ󿡼­ ¶ó¿ìÆÃÀÌ µÇÁö ¾Ê´Â IPµé ¼Ò½º IP·Î ÇÏ¿© °ø°ÝÇÏ´Â °ÍÀÌ °¡Àå È¿°úÀûÀÏ °ÍÀÌ´Ù. Áï ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖ´Â IP¸¦ ¼Ò½º ÁÖ¼Ò·Î ÇÏ¿© SYN Flooding °ø°ÝÇÏ´Â °ÍÀº Àǹ̰¡ ¾ø´Ù.



3. ½ÇÁ¦ °ø°ÝÁö IP¸¦ ÃßÀûÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù.


´ëºÎºÐÀÇ DoS °ø°ÝÀÌ ±×·¯ÇϵíÀÌ SYN_Flooding °ø°Ýµµ ¼Ò½º IP¸¦ À§ÀåÇØ µé¾î¿À±â ¶§¹®¿¡ netstatÀ¸·Î º¸ÀÌ´Â IP¸¦ ½ÇÁ¦ °ø°ÝÁö IP¶ó°í ÆÇ´ÜÇؼ­ ÇØ´ç IP·Î ¿ª°ø°ÝÀ» Çؼ­´Â ¾ÈµÈ´Ù. °ø°ÝÀ» ´çÇÏ´Â ¸®´ª½º ¼­¹ö¿¡¼­ °ø°ÝÁö¸¦ ¾Æ´Â ¹æ¹ýÀº ¾øÀ¸¸ç »óÀ§ ¶ó¿ìÅÍ¿Í ÇØ´ç ¶ó¿ìÅÍ°¡ ¿¬°áµÇ¾î ÀÖ´Â ISP ¾÷ü¿Í ±ä¹ÐÇÏ°Ô ÇùÁ¶°¡ µÇ¾úÀ» ¶§¸¸ ±×³ª¸¶ ÃßÀûÀÌ °¡´ÉÇÏ´Ù. ±×·±³ª »ç½Ç»ó ÇùÁ¶°¡ ÀÌ·ç¾îÁ®µµ ÃßÀûÇϱâ¶õ ¸Å¿ì ¾î·Á¿îµ¥, ¸¸¾à ¶ó¿ìÆà °æ·Î°¡ 20°³ ÀÌ»ó µÇ´Â °÷¿¡¼­ °ø°ÝÇÑ´Ù¸é 20°³ ¶ó¿ìÅ͸¦ °ü¸®ÇÏ´Â ¸ðµç °ü¸®ÀÚ¿Í µ¿½Ã¿¡ ÇùÁ¶°¡ ÀÌ·ç¾îÁ®¾ßÇÏ°í °ø°ÝÀÌ ½ÇÁ¦ ÀÌ·ç¾îÁö°í ÀÖ´Â ´ç½Ã¿¡ ÃßÀûÀÌ µÇ¾î¾ß ÇϹǷΠ¸Å¿ì ¾î·Æ´Ù°í ÇÒ ¼ö ÀÖ´Ù. °á·ÐÀûÀ¸·Î °ø°ÝÁö IP¸¦ ÃßÀûÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í, Âü°íÀûÀ¸·Î ½Ã½ºÅÛ¿¡¼­ À§Á¶µÈ ÆÐŶÀ» »ý¼ºÇÏ´Â °ÍÀº ·çÆ®¸¸ÀÌ °¡´ÉÇϹǷΠ°ø°ÝÀÚ´Â °ø°ÝÁö ½Ã½ºÅÛÀÇ ·çÆ® ¼ÒÀ¯·Î SYN Flooding °ø°ÝÀ» ÇÏ´Â °ÍÀ̶ó´Â »ç½ÇÀ» Âü°íÇϱ⠹ٶõ´Ù.



4. Virtul-Server Ä¿³Î ÆÐÄ¡¸¦ ÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.


ÀÌ Ä¿³Î ÆÐÄ¡¸¦ ÇÏ¿´À» °æ¿ìµ¥´Â ¸î °¡Áö DoS °ø°ÝÀ» Â÷´ÜÇÒ ¼ö ÀÖ´Ù. VirtualServer ¶õ ¸» ±×´ë·Î ·Îµå ¹ë·±½Ì µîÀÇ Å¬·¯½ºÅ͸µ ½Ã½ºÅÛÀ» ±¸¼ºÇÒ ¶§ ÇÊ¿äÇÑ Ä¿³Î ÆÐÄ¡·Î¼­ ÆÐÄ¡¸¦ ÇÑ ÈÄ sysctl -a | grep .vs.·Î È®ÀÎÇØ º¸¸é ¸î °¡Áö ¼³Á¤ÀÌ Ãß°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ý¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ ¾È³»´Â http://www.linuxvirtualserver.org/defense.html ¸¦ Âü°íÇϱ⠹ٶõ´Ù.



5. ¶ó¿ìÅͳª ¹æÈ­º®¿¡¼­ Â÷´Ü °¡´ÉÇÏ´Ù


¶ó¿ìÅÍ µî ³»Æ®¿öÅ© Àåºñ·Î À¯¸íÇÑ ½Ã½ºÄڽýºÅÛÁî¿¡¼­´Â TCP SYN_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇØ TCP ÀÎÅͼÁÆ®¶ó´Â ¼Ö·ç¼ÇÀ» Á¦¾ÈÇß´Ù. TCP ÀÎÅͼÁÆ®´Â µÎ °¡Áö ¹æ½ÄÀ¸·Î ±¸Çö °¡´ÉÇѵ¥, ù ¹ø° ¹æ½ÄÀº 'ÀÎÅͼÁÆ® ¸ðµå'¶ó ÇÏ¿© ¸» ±×´ë·Î ¶ó¿ìÅÍ·Î µé¾î¿À´Â SYN ÆÐŶ ¿äûÀ» ±×´ë·Î ¼­¹ö¿¡ ³Ñ°ÜÁÖÁö ¾Ê°í ¶ó¿ìÅÍ¿¡¼­ ÀÏ´Ü °¡·Îä¾î (Intercept ÇÏ¿©) ¼­¹ö¸¦ ´ë½ÅÇÏ¿© SYN ÆÐŶÀ» ¿äûÇÑ Å¬¶óÀ̾ðÆ®¿Í ¿¬°áÀ» ¸Î°í, ¿¬°áÀÌ Á¤»óÀûÀ¸·Î ÀÌ·ç¾îÁö¸é À̹ø¿¡´Â Ŭ¶óÀ̾ðÆ®¸¦ ´ë½ÅÇÏ¿© ¼­¹ö¿Í ¿¬°áÀ» ¸ÎÀº ´ÙÀ½ µÎ ¿¬°áÀ» Åõ¸íÇÏ°Ô Æ÷¿öµùÇÏ¿© ¿¬°á½ÃÄÑÁÖ´Â ¹æ½ÄÀÌ´Ù. µû¶ó¼­ Á¸ÀçÇÏÁö ¾Ê´Â IP·ÎºÎÅÍ ¿À´Â SYN ¿äûÀº ¼­¹ö¿¡ µµ´ÞÇÏÁö ¸øÇÏ°Ô µÇ´Â °ÍÀÌ´Ù. µÎ ¹ø° ¹æ½ÄÀº '¿ÍÄ¡(watch) ¸ðµå'¶ó ÇÏ¿© 'ÀÎÅͼÁÆ® ¸ðµå'¿Í´Â ´Þ¸® ¶ó¿ìÅ͸¦ Åë°úÇÏ´Â SYNÆÐŶÀ» ±×´ë·Î Åë°ú½ÃÅ°°í ÀÏÁ¤ ½Ã°£µ¿¾È ¿¬°áÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸é ¶ó¿ìÅÍ°¡ Áß°£¿¡¼­ SYN ÆÐŶÀ» Â÷´ÜÇÏ´Â ¹æ½ÄÀÌ´Ù. ¸î¸î ¹æÈ­º®¿¡¼­µµ À§ÀÇ µÎ°¡Áö ¹æ½ÄÀ¸·Î SYN FloodingÀ» Â÷´ÜÇÏ°í ÀÖ´Ù. ½ÇÁ¦·Î tcp intercept¸¦ ¼³Á¤ÇÏ¿© Å×½ºÆ® °á°ú ¼­¹ö ·¹º§¿¡´Â ÀüÇô ½ºÇªÇÎµÈ SYN ÆÐŶÀÌ º¸³»ÁöÁö ¾Ê¾Æ SYN_Flooding °ø°ÝÀ» Â÷´ÜÇϱâ À§ÇÑ °¡Àå È®½ÇÇÑ ¹æ¹ýÀ̱â´Â ÇßÁö¸¸ ¾Æ½±°Ôµµ ¶ó¿ìÅÍÀÇ CPU, ¸Þ¸ð¸® ºÎÇÏ°¡ ³Ê¹« ³ô¾ÆÁö´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÀÌ ¼³Á¤¿¡ ´ëÇØ ±Ã±ÝÇÏ´Ù¸é http://www.cisco.com/ Á¢¼ÓÈÄ 'tcp intercept'·Î °Ë»öÇØ º¸±â ¹Ù¶õ´Ù. ÀÌ ¼³Á¤À» ÇßÀ» °æ¿ì¿¡´Â ¸ðµç ÆÐŶÀÌ ´ëÇØ ÀÎÅͼÁÆ®¸¦ ÇϹǷΠƮ·¡ÇÈÀÌ ¸¹À» °æ¿ì¿¡´Â ¶ó¿ìÅÍ°¡ ´Ù¿îµÇ´Â °æ¿ìµµ ÀÖÀ¸´Ï ¼³Á¤½Ã °¢º°È÷ ÁÖÀÇÇϱ⠹ٶõ´Ù.



6. À©µµ¿ì NT/2000 °è¿­¿¡¼­´Â ·¹Áö½ºÆ®¸® °ªÀ» ¼öÁ¤ÇÔÀ¸·Î½á Æ©´×ÀÌ °¡´ÉÇÏ´Ù.


ÀÌ °ª¿¡ ´ëÇÑ Æ©´×Àº ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ Å×Å©´ÏÄà ÆäÀÌÁö³ª http://packetstrom.securify.com/groups/rhino9/synflood.doc¸¦ ´Ù¿î¹Þ¾Æ Âü°íÇϱ⠹ٶõ´Ù. AIX³ª ¼Ö¶ó¸®½º µî ´Ù¸¥ À¯´Ð½º °è¿­¿¡ ´ëÇÑ Æ©´×Àº http://www.cymru.com/~robt/Docs/Articles/ip-stack-tuning.html¸¦ Âü°íÇϱ⠹ٶõ´Ù.



7. CRONÀÌ¿ëÇØ SYN_Flooding °ø°ÝÀ» °¨ÁöÇÑ´Ù.


¾Æ¹«¸® Æ©´×À» Àß Çß´Ù ÇÏ´õ¶óµµ ÁýÁßÀûÀ¸·Î SYN Flooding °ø°ÝÀ» ¹ÞÀ» ¶§´Â ³×Æ®¿öÅ© ³ª ¼­ºñ½º µ¥¸óÀÌ ÀÌ»ó ÀÛµ¿ÇÒ ¼öµµ ÀÖ´Ù. ±×·¡¼­ ÀÌ»ó Çö»óÀÌ ³ªÅ¸³ª±â Àü¿¡ ÀÏÁ¤ ½Ã °£¸¶´Ù ½Ã½ºÅÛ¿¡ ·Î±×ÀÎÇÏ¿© netstatÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ°ÚÁö¸¸ ¾ðÁ¦ °ø°ÝÀÌ µé¾î¿Ã ÁÙ ¾Ë°í ÁöÄѺ¸°í Àְڴ°¡? ±×·¡¼­ ÇÊÀÚ´Â SYN FloodingÀ» °¨ÁöÇϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ Â¥¼­ °ø°ÝÀÌ È®ÀÎµÇ¸é ¸ÞÀÏ·Î Å뺸µÇµµ·Ï ÇÏ¿© »ç¿ëÁßÀÌ´Ù:
#!/usr/bin/perl

$TASK = `netstat -na|grep SYN_RECV`;
$HOSTNAME = `/bin/hostname`;
$TO_MAIL = 'antihong@tt.co.kr';
$SUBJECT = "$HOSTNAME SYN_FLOODING °ø°Ý °¨Áö";
$MAIL_PROGRAM = "/usr/sbin/sendmail";

if ($TASK) {
        $TASK_CONFIRM = `netstat -na|grep SYN_RECV|wc -l`;

        if ($TASK_CONFIRM > 20) {
                `/etc/rc.d/init.d/httpd stop`;
                `/etc/rc.d/init.d/httpd start`;
                $HTTP_DONE = "httpd was Refreshed!!\n";
        }

        open(MAIL, "|$MAIL_PROGRAM -t");
        print MAIL "To: $TO_MAIL \n";
        print MAIL "Subject: $SUBJECT \n\n";
        print MAIL "$HOSTNAME Server is Attaked  by SYN_Flooding!!!\n";
        print MAIL "SYN_Flooding Process Number :$TASK_CONFIRM \n";
        print MAIL "$HTTP_DONE\n";
        print MAIL "$TASK \n";
        close(MAIL);
}


À§ ÆÄÀÏÀÇ ³»¿ëÁß $TO_MAILÀº °ø°Ý °¨Áö½Ã Å뺸µÉ ¸ÞÀÏÁÖ¼ÒÀ̹ǷΠÀÚ½ÅÀÇ À̸ÞÀÏ ÁÖ¼Ò ·Î º¯°æÇÏ°í, ºÒ¿ÏÀüÇÑ SYN ÆÐŶÀÌ 20°³ ÀÌ»óÀÏ °æ¿ì($TASK_CONFIRM > 20) /etc/rc.d/ init.d/httpd stop;°ú /etc/rc.d/init.d/httpd start;À¸·Î À¥ µ¥¸óÀ» ¸ØÃß¾ú´Ù°¡ ½ÃÀÛ Çϵµ·Ï ¼³Á¤ÇÏ¿´´Âµ¥, ÀÌ´Â ÀÚ½ÅÀÇ ¼³Á¤¿¡ ¸Â°Ô ÀûÀýÈ÷ ¼öÁ¤Çϵµ·Ï ÇÑ´Ù. ¹°·Ð SYN Fl ooding °ø°ÝÀÌ Æ¯Á¤ Æ÷Æ®¿¡ ´ëÇؼ­¸¸ °¡´ÉÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ °ÅÀÇ 80¹ø Æ÷Æ®¿¡ ´ëÇØ Áý ÁßÀûÀ¸·Î ÀÌ·ç¾îÁö°í ÀÖÀ¸¹Ç·Î À¥µ¥¸óÀ» ¿¹·Î ¼³Á¤ÇÑ °Í »ÓÀÌ´Ù. ¾ÕÀÇ ÆÄÀÏ ³»¿ëÀ» /e tc/cron.5min/À̶ó´Â µð·ºÅ丮¿¡ µÎ·Î ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï 700À¸·Î ¼³Á¤ÇصдÙ. ±×¸®°í /etc/crontab ÆÄÀÏÀ» ¿­¾î ´ÙÀ½ ³»¿ëÀ» Ãß°¡Çϸé 5ºÐ¸¶´Ù SYN_Flooding ¿©ºÎ¸¦ üũÇÏ ¿© °ø°ÝÀÌ È®À뵃 ¶§¸¶´Ù ÁöÁ¤µÈ ¸ÞÀÏ ÁÖ¼Ò·Î Å뺸ÇØÁØ´Ù.

59/5 root run-parts /etc/cron.5min/



--------------------------------------------------------------------------------


Linux@Work 2001.07




  Hit : 11882     Date : 2013/10/06 12:25



    
hjt7942 ¿ì¿Í ÁøÂ¥ ¸¹Àº °øºÎ°¡ µÌ½À´Ï´Ù. 2013/11/05  
1401   [ÀÚÀÛ]ÇÁ·Î¼¼½º¸ð´ÏÅÍOperationÇÊÅÍ     havu
01/10 12121
1400   cmd [¸í·ÉÇÁ·ÒÇÁÆ®] ·Î ÇØÄ¿½ºÄðÁ¢¼Ó¹æ¹ý[30]     HackerMapia
01/12 12082
1399   ³×Æ®¿öÅ© °³³ä ÈÖ¾îÀâ±â 6[10]     ¼ÒÀ¯
09/15 12072
1398   GetProcAddress ·Î ¾Ë¾Æº¸´Â Å°¿öµå     HongMK900
08/13 12070
1397   [Æß] ¾Ë°íÀÖÀ¸¸é À¯¿ëÇÑ µµ½º ¸í·É¾îµé.[2]     dzhfldk
08/22 12048
1396   [ÀÚÀÛ]Æ÷·»½ÄÀ»À§ÇÑNTFS±¸Á¶[2]     havu
01/11 12037
1395   D.Dolphin´Ô Áú¹®³»¿ë] LAN°ú WANÀÇ Â÷ÀÌÁ¡°ú VANÀÇ Á¤ÀÇ[5]     Ǫ¸¥ÇÏ´Ã
09/11 12018
1394   C¾ð¾î ÇÔ¼ö ¿ä¾à[5]     qkreoghks00
11/15 11987
1393   2¹ø°C°­ÁÂ~![9]     ±«µµjs
07/03 11978
1392   [µ¿°­]¹éÆ®·¢À» ÀÌ¿ëÇÑ Àç¹Õ´Â ³îÀ̵é![4]     cdpython
09/29 11969
1391   ¿ø°ÝÁ¾·á....[39]     bsjzzz
01/02 11950
  [Æß]TCP SYN_Flooding °ø°ÝÀÇ ¿øÀΰú ÇØ°áÃ¥[1]     Chris Ruiel
10/06 11881
1389   ¸®´ª½º ±âº» ¸í·É[1]     jeongseok0
04/22 11858
1388   * ÇØÅ·¿µÈ­ º¼¸¸ÇÑ°Å *[5]     HackerMapia
02/20 11858
1387   ¸®´ª½º ½Ã½ºÅÛ Á¤º¸ ¾Ë¾Æ³»±â[3]     bitcom01
08/11 11851
1386   À©µµ¿ìÁî XP SP1 WFP (Windows File Protection) ²ô±â[1]     x90c
03/05 11790
1385   [Project] Àü±â,ÀüÀÚ »ó½Ä ¹× »þÇÁ½ÉÀ¸·Î Àü±¸¸¸µé±â. - 1[11]     ¾ÆÀÌÇÁ¸®µå
02/03 11781
1384   [ÄÄÇ»ÅÍ Â¯µÇ´Â 100°¡Áö ÆÁ] ³×À̹ö¿¡¼­ ÆÛ¿È!![2]     turtle0216
04/12 11774
1383   Xmanager·Î ¸®´ª½º ÀÌ¿ëÇϱâ(¸Û¸Û´Ô ¸¸È­°­Á »ç¿ë)[14]     DarkSlayer
09/21 11760
1382   ÇØÄð level2 °­ÀÇ[10]     °áºù
07/07 11735
[1][2][3][4][5][6][7][8][9] 10 ..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org