Apache 1.3.x¿¡¼ DoS °ø°Ý ¸·±â | ÀÛ¼ºÀÏ : 2003/08/20 15:29 |
![]() |
Á¶È¸¼ö : 6269 |
![]() | |||||||||
ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ ) ÀÛ¼ºÀÏ : 2003.8.20(¼ö) ƯÁ¤ URLÀ̳ª IPÀÏ °æ¿ì³ª ƯÁ¤ÇÑ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÏ¿© DoS(Denial of Service, ¼ºñ½º°ÅºÎ) °ø°ÝÀÌ µé¾î¿Â´Ù¸é httpd.conf ¿¡¼ SetEnvIf, SetEnvIfNoCase µî°ú Allow, Deny ¼³Á¤À¸·Î °£´ÜÈ÷ ¸·À» ¼ö ÀÖ°ÚÁö¸¸ ÀÏÁ¤ÇÑ À¯ÇüÀÌ ¾ø´Ù¸é ÇØ°áÁ¡À» ã±â°¡ ½±Áö ¾Ê´Ù. ´ÙÇàÈ÷ Apache 1.3.x¿ë mod_dosevasive ¸ðµâ·Î DoS °ø°ÝÀ» ½±°Ô ¸·À» ¼ö ÀÖ´Ù. 1. mod_dosevasive ¼³Ä¡ http://www.nuclearelephant.com/projects/dosevasive/ ¿¡¼ mod_dosevasive (ÇöÀç ÃֽŹöÀüÀº 1.6.1)À» ¹Þ¾Æ¿Â´Ù. mod_dosevasive.tar.gz À» apache_source_Ȩ/src/modules ¿¡ Ǭ ´ÙÀ½ ±âÁ¸¿¡ apache ÄÄÆÄÀÏÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ÇϵÇ, --add-module=... ¿É¼Ç¸¸ Ãß°¡ÇØÁØ´Ù. ---------------------------------------------- ./configure --prefix=/usr/local/apache \ --enable-module=all --enable-shared=max \ --add-module=src/modules/dosevasive/mod_dosevasive.c <-- Ãß°¡ÇÔ make make install ---------------------------------------------- ±âÁ¸¿¡ ¾²´ø apache°¡ ÀÖ´Ù¸é make installÀº ÇÏÁö ¸»°í, »ý¼ºµÈ src/modules/extra/mod_dosevasive.so ¸ðµâÀ» ±âÁ¸ apacheÀÇ libexec/ µð·ºÅ丮¿¡ º¹»çÇÑ´Ù. 2. ¼³Á¤ httpd.conf ¿¡ ¾Æ·¡ ¼³Á¤ÀÌ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ---------------------------------------------- ... LoadModule dosevasive_module libexec/mod_dosevasive.so ... AddModule mod_dosevasive.c ---------------------------------------------- httpd.conf¿¡´Â ´ÙÀ½°ú °°ÀÌ ¼³Á¤À» Ãß°¡ÇÑ´Ù. ---------------------------------------------- < IfModule mod_dosevasive.c> DOSHashTableSize 3097 DOSPageCount 5 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 30 < /IfModule> ---------------------------------------------- DOSHashTableSize 3097 hash tableÀÇ Å©±â. IP, URIµîÀ» ºÐ¼®Çϱâ À§ÇÑ °ø°£À¸·Î ¾²ÀÌ´Â °Í °°Àºµ¥ Á¤È®È÷´Â ¸ð¸£°Ú´Ù. Á¢¼ÓÀÌ ¸¹Àº ¼¹öÀÌ¸é ¼öÄ¡¸¦ ³ôÀδÙ. DOSPageCount 5 DOSPageInterval 1 DOSPageInterval¿¡¼ ÁöÁ¤ÇÑ ½Ã°£(ÃÊ´ÜÀ§)µ¿¾È °°Àº ÆäÀÌÁö¸¦ 5¹ø ¿äûÇÑ °æ¿ì ÇØ´ç Ŭ¶óÀÌ¾ðÆ® IP¸¦ ºí·°Å·ÇÑ´Ù. ºí·°Å·µÇ´Â µ¿¾È¿¡ »ç¿ëÀÚ¿¡°Ô´Â 403(Forbidden) Äڵ尡 Àü¼ÛµÈ´Ù. DOSSiteCount 50 DOSSiteInterval 1 DOSSiteInterval¿¡¼ ÁöÁ¤ÇÑ ½Ã°£µ¿¾È ¾î´À ÆäÀÌÁöÀÌµç ¿äû °Ç¼ö°¡ 50¹øÀ» ³Ñ´Â °æ¿ì ÇØ´ç Ŭ¶óÀÌ¾ðÆ® IP¸¦ ºí·°Å·ÇÑ´Ù. 403ÄÚµå º¸³»´Â °ÍÀº ¸¶Âù°¡Áö DOSBlockingPeriod 30 ºí·°Å·µÈ IP´Â 30Ãʵ¿¾È Á¢¼ÓÀ» ÇÒ ¼ö ¾ø´Ù. 3. ¸ðµâ »ç¿ëÀ» ÁßÁöÇÏ·Á¸é Â÷´Ü ±â´ÉÀ» ÀÌ¿ëÇÏÁö ¾Ê±â À§ÇØ DOSPageCount 0 DOSSiteCount 0 ¿Í °°ÀÌ ÇÏ¸é ¸ðµâ ³»ºÎÀÇ default°ªÀ» ÀÌ¿ëÇØ¼ µ¿ÀÛÇϹǷΠLoadModule, AddModule¸¦ ÁÖ¼® ó¸®ÇÏ´Â ¹æ¹ýÀ» ½á¾ßÇÑ´Ù. ¶Ç´Â Count°ªÀ» »ó´çÈ÷ Å« ¼ö¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ°Ú´Ù. 4. Â÷´ÜÇÏ´ÂÁö Å×½ºÆ® °£´ÜÇÑ Å×½ºÆ® Åø·Î test.plÀ» Á¦°øÇÑ´Ù. 12¹øÂ° ÁÙ¿¡ printf("%03d ", $_ ); ¸¦ Ãß°¡Çϰí apache¸¦ ½ÇÇà½ÃŲ ´ÙÀ½ perl test.plÀ» ÇØº¸¸é 200 OK, 403 Forbidden µÈ °ÍÀ» ½±°Ô È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. DOSPageCount, DOSSiteCount ¼öÄ¡¸¦ ³Ê¹« ³·°Ô Çϸé Á¤»óÀûÀÎ Á¢¼Ó¿¡ ´ëÇØ¼µµ Â÷´ÜµÉ ¼ö ÀÖÀ¸¹Ç·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¼öÄ¡¸¦ ³·Ãß°í, °°Àº ÆäÀÌÁö¸¦ reload(Ctrl+R)¸¦ ¿©·¯¹øÇß´õ´Ï ¹Ù·Î 403 ÆäÀÌÁö°¡ µîÀå. 403 ÆäÀÌÁö¸¦ º°µµ·Î ¸¸µå´Â °ÍÀÌ ÁÁÀ» µí ½Í´Ù. httpd.conf¿¡ ErrorDocument 403 ... ¼³Á¤ À¸·Î htmlÀ» ¸¸µé¾îµÎ¸é ¹æ¹®ÀÚ¿¡°Ô µµ¿òÀÌ µÇÁö ¾ÊÀ»±î... ÀÌÁ¨ ab, lynx µîÀ¸·Î °Ô½Ã¹° Á¶È¸¼ö¸¦ ¼ø°£ÀûÀ¸·Î ¿Ã¸°´Ù°Å³ª, ½Ã½ºÅÛ ·Îµå¸¦ Áõ°¡½ÃŰ´Â °Í±îÁöµµ ¾î´ÀÁ¤µµ ¸·À» ¼ö ÀÖÀ» °ÍÀÌ´Ù. |
![]() |