๐ก Apache Web Server ์ ์ฑ ๋ด ์ฐจ๋จ ๋ฐฉ๋ฒ ์ ๋ฆฌ
apache confํ์ผ ๋๋ ํ ๋ฆฌ ๋ฐ ํ์ผ ๊ตฌ์กฐ๋ virtual host ์ฌ๋ฌ๊ฐ ๋ฐ proxy pass๋ก tomcat์ reverseProxy๋ก ์ค์ ํ ์ํฉ
์ ์ฑ ๋ด ๋ชฉ๋ก
์ ์ฑ ๋ด ๋ชฉ๋ก์ ์ธํฐ๋ท์ ๋์๋ค๋๋ ๊ฒ์ ์ค์ค ํ์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ ๋ฐ์์ฃผ์ธ์ ๐
์ ์ฑ ๋ด ๋ชฉ๋ก์ ์ค์ ํ์ผ์์ ์ ๊ทผํ ์ ์๋ ์ ๋นํ ๊ฒฝ๋ก์ ๋ง๋ค์ด์ค๋๋ค. ์ฌ๊ธฐ์๋ /etc/apache/sites-available/extra/bad_bot.conf ๊ฒฝ๋ก์ ๋ง๋ค์์ต๋๋ค.
/etc/apache2/sites-available/extra/bad_bot.conf ํ์ผ ๋ด์ฉ
# SetEnvIfNoCase User-Agent ^$ bad_bot
SetEnvIfNoCase User-Agent "^MJ12bot" bad_bot
SetEnvIfNoCase User-Agent "^MJ12bot/v1.4.5" bad_bot
#์
์ฑ๋ด...
SetEnvIfNoCase User-Agent "SemrushBot" bad_bot #181203
SetEnvIfNoCase User-Agent "SemrushBot-SA" bad_bot #181203
SetEnvIfNoCase User-Agent "DomainCrawler" bad_bot #181210
...
์ฌ๊ธฐ์ ํ์ฅ์๋ ๊ผญ conf ํ์ผ์ด ์๋์ด๋ ์๊ด์์ต๋๋ค.
์ผ๊ด ์ฐจ๋จ ์ค์ ๋ฐฉ๋ฒ
VirtualHost๋ฅผ ์ฌ์ฉํ๋ ์ํฉ์์ ์ฌ๋ฌ conf ํ์ผ์ด ๋๋ ์ ธ ์์๋๋ฐ ๋งค VirtualHost ๋ง๋ค User Agent ์ฐจ๋จ์ ์ค์ ํ๋ ๊ฒ๋ณด๋ค๋ ์ต์์ ์ค์ ํ์ผ์์ ํ๋ฒ๋ง ์ค์ ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ด ๋๋ค.
์ ๋ ์ต์์ ์ค์ ํ์ผ์ apache ์ค์ ์ ๊ธฐ๋ณธ์ผ๋ก ์๋ /etc/apache2/sites-available/000-default.conf ํ์ผ์ ์ค์ ํ๊ฒ ์ต๋๋ค.
/etc/apache2/sites-available/000-default.conf ํ์ผ ๋ด์ฉ
<Location />
# ์๊น ์์ฑํด๋ ์
์ฑ ๋ด ๋ชฉ๋ก
Include /etc/apache2/sites-available/extra/bad_bot.conf
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Location>
ํน์ User-Agent๊ฐ ์ ์ฐจ๋จ๋๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
$ curl -I -A "SlackBot" http://www.test.com
$ curl -H "User-Agent: SemrushBot" https://www.test.com
์คํ ๊ฒฐ๊ณผ
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
<hr>
<address>Apache/2.4.41 (Ubuntu) Server at www.test.com Port 443</address>
</body></html>
์ด๋ ๊ฒ 403์ผ๋ก HTTP ์ํ์ฝ๋๋ฅผ ๋ฐํํ๋ฉด ์ฐจ๋จ์ด ๋ ๊ฒ ์ ๋๋ค. ๋น๋ก apache์ access log์ ๋จ๊ธฐ๋ ํ์ง๋ง,
์์ฒญ ์์ฒด๋ ๋์ง๋ง, ๊ถํ ์์์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์น ํ์ด์ง ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฌ์ค๋ ํธ๋ํฝ์ ๋ง์์ผ๋ก์จ ์ ์ฑ๋ด์ผ๋ก ์ธํ ๋ถํ์ํ๊ณ ๊ณผ๋ํ ํธ๋ํฝ์ ํ์ ํ ์ค์ผ ์ ์์ต๋๋ค! ๐๐๐๐
์ฐธ๊ณ
Apache bad_bot.conf ์ค์ ํ๋ ๋ฐฉ๋ฒ: https://hoing.io/archives/398
Apache confํ์ผ์ Location์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ: https://gromet.tistory.com/463
์ ์ฑ bot ๋ชฉ๋ก: https://hoing.io/storage/1/9890057497.txt