У меня есть скриптер, который использует прокси для атаки на веб-сайт, который я обслуживаю.
Я заметил, что они, как правило, получают доступ к сайту через программное обеспечение с определенной строкой общего пользовательского агента (т.е. http://www.itsecteam.com/en/projects/project1_page2.htm "Расширенное программное обеспечение для внедрения sql-кода Havij" со строкой user_agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Havij
). Я знаю, что любое достойное взлома программное обеспечение, вероятно, сможет изменить строку пользовательского агента, но меня устраивает, что скриптер должен иметь дело с этой функцией в какой-то момент.
Итак, существует ли какое-либо программное обеспечение для автоматической блокировки доступа и постоянного занесения в черный список путем сопоставления строк пользовательского агента?
вы можете запретить доступ через BrowserMatch и запретить из SetEnvIf Пример:
SetEnvIfNoCase User-Agent "^Wget" bad_bot
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot
SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot
<Directory "/var/www">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Directory>
Чтобы заблокировать их постоянно, вы должны написать собственный файл журнала и использовать fail2ban, например, чтобы заблокировать их с помощью iptables.
Например, создайте LogFormat
LogFormat "%a %{User-agent}i" ipagent
Добавьте ведение журнала к вашему vhost / серверу
CustomLog /var/log/apache2/useragent.log ipagent
/etc/fail2ban/filter.d/baduseragent.conf
[Definition]
failregex = ^<HOST> Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 5\.1; SV1; \.NET CLR 2\.0\.50727\) Havij$
/etc/fail2ban/jail.conf
[apache-bad-user-agent]
enabled = true
port = 80,443
protocol = tcp
filter = baduseragent
maxretry = 1
bantime = 86400
logpath = /var/log/apache2/useragent.log
Думаю, я понял ваш вопрос. Я дам более подробное объяснение, если это именно то, что вы ищете. (это будет работать как ловушка и для других вещей)
RewriteMap badlist txt:~/bad_useragent_list
RewriteCond %{HTTP_USER_AGENT} .* [NC]
RewriteCond ${badlist:%1|white} ^black$ [NC]
RewriteRule (.*) "/trap.php" [L]