2023.06.21 / 10:53
Apache mod_evasive¸¦ ÀÌ¿ëÇÑ DOS Â÷´Ü ¹æ¹ý _ ¼³Ä¡ ½ÇÀü
µðµµ½º
Ãßõ ¼ö 70
mod_evasive
´Â apache DOS º¸¾È ¸ðµâ
·Î,¼¹ö¿¡ ¸¹Àº ¿äûÀ» º¸³»´Â Æ®·¡ÇÈÀ» Â÷´ÜÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
ÇØ´ç ¸ðµâÀ» ¸ÕÀú ¼³Ä¡Çϱâ Àü¿¡ yum ÆÐÅ°Áö¸¦ ÃÖ½ÅÀ¸·Î À¯ÁöÇؾßÇÑ´Ù.
¨ç
yum ÃֽŠ¾÷µ¥ÀÌÆ®yum -y update
yum ¾÷µ¥ÀÌÆ® ¿À·ù ¹ß»ý ½Ã ¾Æ·¡ ¸í·ÉÀ» ¼öÇàÇÏ°í Àç½Ãµµ.
yum remove epel-release
¨è
epel-releaseyum -y install epel-release
EPEL(Extra Packages for Enterprise Linux)˼
¸®´ª½ºÀÇ Ãß°¡ ÆÐÅ°Áö¶ó°í º¸¸é µÈ´Ù.
yum -y install mod_evasive
vi /etc/httpd/conf.d/mod_evasive.conf
Àú ÆÄÀÏ¿¡¼ DOS¿Í °ü·ÃµÈ ¼³Á¤ °ªµéÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù.
ÀÚÁÖ »ç¿ëÇÏ´Â ¼³Á¤µéÀº ¾Æ·¡¿Í °°´Ù.
DOSSiteInterval¿¡ ÁöÁ¤µÈ ½Ã°£µ¿¾È
ƯÁ¤ ÆäÀÌÁöÀÇ ¿äû ¼ö°¡ DOSSiteCount(
ÇØ´ç Ŭ¶óÀ̾ðÆ® IP¸¦ Â÷´ÜÇÑ´Ù.
Â÷´ÜµÈ IP´Â
Å×½ºÆ® ÇÁ·Î±×·¥Àº
ÇØ´ç ÆÄÀÏÀÇ °æ·Î´Â
ÇÊÀÚÀÇ °æ¿ì /usr/share/doc/mod_evasive-1.10.1/test.plÀε¥
¸®´ª½ºÀÇ Ãß°¡ ÆÐÅ°Áö¶ó°í º¸¸é µÈ´Ù.
¨é
apache DOS º¸¾È ¸ðµâ ¼³Ä¡yum -y install mod_evasive
¨ê
¸ðµâ º¸¾È °ª ¼³Á¤vi /etc/httpd/conf.d/mod_evasive.conf
Àú ÆÄÀÏ¿¡¼ DOS¿Í °ü·ÃµÈ ¼³Á¤ °ªµéÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù.
ÀÚÁÖ »ç¿ëÇÏ´Â ¼³Á¤µéÀº ¾Æ·¡¿Í °°´Ù.
DOSSiteCount
¡¡¡¡¡¡¡¡20
DOSSiteInterval
¡¡¡¡ 3
DOSSiteInterval¿¡ ÁöÁ¤µÈ ½Ã°£µ¿¾È
ƯÁ¤ ÆäÀÌÁöÀÇ ¿äû ¼ö°¡ DOSSiteCount(
20
)¹øÀ» ³Ñ´Â °æ¿ìÇØ´ç Ŭ¶óÀ̾ðÆ® IP¸¦ Â÷´ÜÇÑ´Ù.
DOSBlockingPeriod
¡¡ 50
Â÷´ÜµÈ IP´Â
50
Ãʵ¿¾È Á¢¼Ó ÇÒ ¼ö ¾ø´Ù.
DOS¸¦ ´çÇÑ °æ¿ì °ø°Ý ·Î±×°¡ ³²°ÔµÇ´Âµ¥
66¹ø °ÁÙ¿¡ DOSLogDir¿¡¼ ·Î±× ÆÄÀÏ À§Ä¡¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
¾Æ·¡ ¸í·É¾î·Î ·Î±× Æú´õ¸¦ ¸¸µé°í apache ±ÇÇÑÀ» ºÎ¿©ÇÑ´Ù.
# mkdir /var/log/mod_evasive
# chown apache.apache /var/log/mod_evasive
71~72¹øÀº DOS °ø°Ý¿¡¼ Á¦¿ÜµÇ´Â ´ë»óµéÀÌ´Ù.
ÇÊ¿ä¿¡ µû¶ó¼ ÈÀÌÆ® ¸®½ºÆ®¸¦ ´õ Ãß°¡ÇÒ ¼ö ÀÖ´Ù.
¨ë
Â÷´ÜµÇ´ÂÁö Å×½ºÆ®ÇϱâÅ×½ºÆ® ÇÁ·Î±×·¥Àº
test.pl
À» Á¦°øÇÑ´Ù.ÇØ´ç ÆÄÀÏÀÇ °æ·Î´Â
ÇÊÀÚÀÇ °æ¿ì /usr/share/doc/mod_evasive-1.10.1/test.plÀε¥
½Ç½À ȯ°æ¿¡ µû¶ó µð·ºÅ丮¸íÀÌ Á¶±Ý ´Ù¸¦ ¼ö ÀÖ´Ù.
test.pl
ÆÄÀÏÀÇ 12¹ø°ÁÙ¿¡ ´ÙÀ½°ú °°Àº Äڵ带 Ãß°¡ÇÑ´Ù.printf("%03d¡¡", $_ );
±× ÈÄ ´ÙÀ½ ¸í·ÉÀ¸·Î ÅøÀ» ½ÇÇàÇÑ´Ù.
perl test.pl
´Ù¸¥ ¹æ¹ýÀ¸·Î´Â °ø°Ý ¼¹ö¸¦ º°µµ·Î ±¸ÃàÇÏ¿© ÁøÇàÇÑ´Ù.
°ø°Ý ¼¹öÀÇ
test.pl
¿¡¼ PeerAddr¸¦ º»ÀÎÀÇ À¥ ¼¹ö ÁÖ¼Ò·Î ¼ÂÆÃÇÏ°íSocketÀ» ·çÇÁ¹é ÁÖ¼Ò·Î ³Ö´Â´Ù.
perl·Î ÇØ´ç ÅøÀ» ½ÇÇà½ÃÅ°¸é Ÿ°Ù À¥ ¼¹ö·Î DOS µÈ´Ù.
°ø°Ý ¼öÇà ÈÄ ¾Æ·¡Ã³·³ 200 OK ¸Þ½ÃÁö°¡ Ç¥½ÃµÇ´Ù°¡ 403 ¸Þ½ÃÁö°¡ ¶ß¸é¼ À¥ Á¢¼ÓÀÌ Â÷´ÜµÈ´Ù.
100¡¡HTTP/1.1 403 Forbidden
À¥ ¼¹ö¿¡¼´Â DOS¸¦ ½ÃµµÇÑ IP°¡ ÆÄÀÏ À̸§À¸·Î ÀúÀåµÇ¾ú´Ù.
/var/log/httpd/error_log¸¦ ÅëÇØ °ø°ÝÀÚ°¡ Â÷´ÜµÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ°í
access_log¿¡ DOS¸¦ ½ÃµµÇÑ ÈçÀûÀÌ ³²´Â´Ù.