LINUX
2023.06.21 / 10:45

[ Apache ] DDoS °ø°Ý ´ëÀÀ( evasive ¸ðµâ,iptables Á¦¾È )

µðµµ½º
Ãßõ ¼ö 68

´ÊÀº Àú³á ÇÑÅëÀÇ ÀüÈ­¸¦ ¹Þ¾Ò´Ù. "ȨÆäÀÌÁö¶û ¾ÛÀÌ Á¤º¸¸¦ ¸øºÒ·¯¿Í¿ä.." (³Ê¹« ¹«¼Ê.. ¤§¤§¤§)

ÁÖÁß¿¡ Ãß°¡ÇÑ CSRF º¸¾È ±â´É¶§¹®¿¡ »ý±ä ¹®Á¦Àΰ¡ »ý°¢Çß´Ù.

ÇÏÁö¸¸ À¥¿¡¼­ È®ÀÎÇßÀ»¶§ Á¢¼Ó½Ã°£ÀÌ ÇöÀúÈ÷ ´À·ÁÁ³Áö¸¸ ±â´É ÀÚü´Â ¹®Á¦°¡ ¾ø¾ú´Ù.

 

 top ¸í·É¾î¿Í nmon ¸í·É¾î¸¦ ÀÌ¿ëÇؼ­ È®ÀÎÇغ¸´Ï apache Æ®·¡ÇÈÀÌ ¾öû³ª°Ô ´Ã¾î³ªÀÖ¾ú´Ù.

±×·¡¼­ /var/log/apache2/access.log ÆÄÀÏÀ» È®ÀÎÇØ º¸´Ï

1.20.101.120 - - [18/May/2019:11:24:07 +0900] "POST /login HTTP/1.1" 200 27623 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
1.179.206.89 - - [18/May/2019:11:24:07 +0900] "POST /login HTTP/1.1" 200 27624 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
103.235.199.9 - - [18/May/2019:11:24:07 +0900] "POST /login HTTP/1.1" 200 27620 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
103.234.137.78 - - [18/May/2019:11:24:07 +0900] "POST /login HTTP/1.1" 200 27624 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
103.240.210.154 - - [18/May/2019:11:24:07 +0900] "POST /login HTTP/1.1" 200 27619 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
103.235.199.72 - - [18/May/2019:11:24:08 +0900] "POST /login HTTP/1.1" 200 27627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
103.113.104.176 - - [18/May/2019:11:24:08 +0900] "POST /login HTTP/1.1" 200 27629 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"

À§¿Í °°Àº ¾Ë¼ö ¾ø´Â IP¿¡¼­ ¿äûÀÌ ¾öû³ª°Ô ¸¹ÀÌ µé¾î¿ÍÀÖ¾ú´Ù.

DDoS °ø°ÝÀ¸·Î »ý°¢ÇÏ¿© ¹æ¾î¹ý¿¡ ´ëÇÏ¿© ã¾Æº¸°í Àû¿ë ½ÃÄѺ¸¾Ò´Ù. 

 

 

 

1. Apache¸ðµâ(evasive) »ç¿ëÇÏ¿© ¹æ¾îÇϱâ 

 

- evasive ¸ðµâÀ» ¼³Ä¡ÇØÁØ´Ù. 

sudo apt-get install libapache2-mod-evasive

 

- ¼³Ä¡ÇÏ°Ô µÇ¸é /etc/apache2/mods-available/evasive.conf ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

- ÁÖ¼®À» Áö¿ì°í ¼³Á¤°ªÀ» ¸ÂÃçÁØ´Ù.

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097        #¼ýÀÚ¸¦ ´Ã¸®¸é ¼º´ÉÀº Çâ»óµÇÁö¸¸, ¸Þ¸ð¸®°¡ ´õ¿í ¼ÒºñµÈ´Ù.
    DOSPageCount        2           #IP ÁÖ¼Ò°¡ Â÷´ÜµÇ±â Àü¿¡ page interval ´ç µ¿ÀÏÇÑ ÆäÀÌÁö¿¡ ´ëÇÑ ¿äû ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
    DOSSiteCount        50          #µ¿ÀÏÇÑ Å¬¶óÀ̾ðÆ®¿¡¼­ site interval´ç site Á¢¼Ó ½Ãµµ¸¦ ÇØ´ç °ª ÀÌ»óÀ¸·Î ¿äûÇÒ °æ¿ì Â÷´Ü
    DOSPageInterval     1			#page interval ÆäÀÌÁö ¿äû °£°ÝÀ¸·Î µðÆúÆ®´Â 1ÃÊ
    DOSSiteInterval     1           #site interval »çÀÌÆ® ¿äû °£°ÝÀ¸·Î µðÆúÆ®´Â 1ÃÊ 
    DOSBlockingPeriod   10          #Â÷´Ü½Ã°£

    DOSEmailNotify      you@yourdomain.com
    DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
    DOSLogDir           "/var/log/mod_evasive"
</IfModule>

 

- º¯°æ ¸ðµâÀ» Àû¿ë½ÃÄÑÁØ´Ù.

sudo a2enmod evasive
sudo service apache2 restart

 

- Àû¿ëÀ» ÇϰԵǸé À§ÀÇ Á¦ÇѼ³Á¤¿¡ ´ëÇØ °É¸®´Â ip¿¡ ´ëÇÏ¿© 403 À» ¹ÝȯÇÏ°Ô µÈ´Ù.

110.74.193.199 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
110.72.30.211 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
110.44.116.189 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
110.74.195.120 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
110.74.196.232 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"
105.247.158.94 - - [18/May/2019:13:39:01 +0900] "POST /login HTTP/1.1" 403 6851 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"

 

- Ãß°¡ÀûÀ¸·Î Log Directory°¡ ¾øÀ» °æ¿ì www-data ¼ÒÀ¯ÀÚ·Î ¸¸µé¾î ÁÖ¸é µÈ´Ù.

 2. UbuntuÀÇ Route ±â´ÉÀ» »ç¿ëÇÑ IP Á¢±Ù Â÷´Ü

 

- ÇØ´ç ¹æ¹ýÀº ƯÁ¤ IP°¡ º¯Ä¢ÀûÀ¸·Î Á¢±ÙÀ» ½ÃµµÇϰųª ¿äûÇÏ°Ô µÉ °æ¿ì IP ÀÚü¸¦ ¼­¹ö¿¡ ´ëÇØ Â÷´Ü½ÃÅ°´Â ¹æ¹ýÀÌ´Ù.

route #¸ñ·ÏÈ®ÀÎ
route add -host µµ¸ÞÀÎ(ip) reject  #Â÷´Ü IP Ãß°¡
route del -host µµ¸ÞÀÎ(ip) reject  #Â÷´Ü IP ÇØÁ¦

 

 

1¹øÀÇ ¼³Á¤¸¸À¸·Îµµ ¼­¹öÀÇ Æ®·¡ÇÈÀÌ °¨¼ÒÇÏ¿© Á¤»óÀûÀÎ ¼­ºñ½º Á¦°øÀº µÇ¾úÀ¸³ª 

L7 ´Ü°è(apache)¿¡¼­ Â÷´ÜÇÏ´Â °Íº¸´Ù L4,L3 »óÀ§ ´Ü°è¿¡¼­ ó¸®ÇÏ´Â °ÍÀÌ ¼­¹ö¿¡´Â ÁÁÀ» µí Çϳª 

ÇöÀç´Â ÇØ´ç ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© ¼³Á¤Çصξú´Ù.