Нужно заблокировать ботов. Подскажите как лучше сделать ?
Нужно заблокировать ботов. Подскажите как лучше сделать ?
Нужно заблокировать на сервере ботов, которые содержат в Useragent например TweetmemeBot , TweetmemeBot , Subscribe .
Как лучше это сделать ?
Раньше был такой способ, но сейчас почему то не работает https://yadi.sk/i/SnTBbCA5iKFdY
Как лучше это сделать ?
Раньше был такой способ, но сейчас почему то не работает https://yadi.sk/i/SnTBbCA5iKFdY
для панели управления vesta nano /usr/local/vesta/nginx/conf/nginx.conf
добавить в конец
if ($http_user_agent ~* "InAGist|naver|Livelapbot|Slurp|wordpress|FlipboardProxy|SemrushBot|SolomonoBot|AhrefsBot|SearchBot|magpie|urllib|peerindex|Configuration|Kimengi|Subscribe|Crowsnest|Jakarta|crawler|findlinks|Browserlet|Java|LibreOffice|QuerySeekerSpider|Powermarks|CodeGator|xpymep|MJ12bot|Butterfly|UnwindFetchor|JS-Kit|rogerbot|MetaURI|NING|PaperLiBot|facebookexternalhit|ia_archiver|Slingstone|linkfluence|uMBot|Twitterbot|TweetmemeBot") {
return 403;
}
перезагрузить
/etc/init.d/nginx restart
/etc/init.d/apache2 restart
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
Товарищ, такая копипаста не пройдет! :)
Указанный способ работать не мог по той причине, что не туда.
А теперь по порядку.
во-первых, /usr/local/vesta/nginx/conf/nginx.conf - этот конфиг непосредственно панели управления, он не связан с вашими сайтами. после изменения в этом файле -
во-вторых, брокировать по if - идея, но так себе - http://wiki.nginx.org/IfIsEvil (описание почему). Такая конструкция в принципе рабочая, но добавлять ее нужно в конфиг у пользователя, к примеру /home/admin/conf/web/nginx.conf, и перезупускать nginx - service nginx restart:
в третьих, направление работы верное, отсекать ботов проще на уровне nginx.. но я видел более интересные реализации. поглядите. В основной конфиг /etc/nginx/nginx.conf добавляем:
и уже по домену /home/admin/conf/web/nginx.conf условие такое:
перезапуск сервиса nginx будет нужен, естественно :)
Дерзайте.
Указанный способ работать не мог по той причине, что не туда.
А теперь по порядку.
во-первых, /usr/local/vesta/nginx/conf/nginx.conf - этот конфиг непосредственно панели управления, он не связан с вашими сайтами. после изменения в этом файле -
Code: Select all
service vesta restart
Code: Select all
location / {
if ($http_user_agent ~ (libwww|Wget|LWP|damnBot|BBBike|java|spider|crawl) ) {
return 403;
}
}
Code: Select all
map $http_user_agent $limit_bots {
default 0;
~*(google|bing|yandex|msnbot) 1;
~*(AltaVista|Googlebot|Slurp|BlackWidow|Bot|ChinaClaw|Custo|DISCo|Download|Demon|eCatch|EirGrabber|EmailSiphon|EmailWolf|SuperHTTP|Surfbot|WebWhacker) 1;
~*(Express|WebPictures|ExtractorPro|EyeNetIE|FlashGet|GetRight|GetWeb!|Go!Zilla|Go-Ahead-Got-It|GrabNet|Grafula|HMView|Go!Zilla|Go-Ahead-Got-It) 1;
~*(rafula|HMView|HTTrack|Stripper|Sucker|Indy|InterGET|Ninja|JetCar|Spider|larbin|LeechFTP|Downloader|tool|Navroad|NearSite|NetAnts|tAkeOut|WWWOFFLE) 1;
~*(GrabNet|NetSpider|Vampire|NetZIP|Octopus|Offline|PageGrabber|Foto|pavuk|pcBrowser|RealDownload|ReGet|SiteSnagger|SmartDownload|SuperBot|WebSpider) 1;
~*(Teleport|VoidEYE|Collector|WebAuto|WebCopier|WebFetch|WebGo|WebLeacher|WebReaper|WebSauger|eXtractor|Quester|WebStripper|WebZIP|Wget|Widow|Zeus) 1;
~*(Twengabot|htmlparser|libwww|Python|perl|urllib|scan|Curl|email|PycURL|Pyth|PyQ|WebCollector|WebCopy|webcraw) 1;
}
Code: Select all
location / {
if ($limit_bots = 1) {
return 403;
}
}
Дерзайте.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
skurudo да отлично. все работает , только надо добавлять к каждому домену такую запись в секцию server .
А можно какой нибудь записью добавить это условие ко всем доменам пользователя ? Или вообще для всего сервера ?
https://yadi.sk/i/L2AEGJBwiLEiZ
А можно какой нибудь записью добавить это условие ко всем доменам пользователя ? Или вообще для всего сервера ?
https://yadi.sk/i/L2AEGJBwiLEiZ
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
А то! Конечно можно :)Garant wrote: А можно какой нибудь записью добавить это условие ко всем доменам пользователя ? Или вообще для всего сервера ?
но тут получается - для каждого, не для всего сервера.
Вот в этой вот директории лежат шаблоны:
/usr/local/vesta/data/templates/web/nginx/
Из них генерятся реальные боевые шаблоны. Можно изменить шаблоны и сделать Rebuild web. При добавлении новых доменов будут браться из шаблонов, а вот уже добавленные нужно делать ребилд.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
Т.е. в шаблоне появляется вот такая вот секция https://yadi.sk/i/-zlnHNKxiLGNw ?
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
Верно. По сути это не отличается от того, что у вас сделано в отдельно взятом конфиге, только теперь это будет при ребилде веба и в новых доменах тоже.Garant wrote:Т.е. в шаблоне появляется вот такая вот секция https://yadi.sk/i/-zlnHNKxiLGNw ?
Обратите внимание, что шаблон такой не один, менять везде не обязательно, а только в тех, которые используете. Впрочем на ваше усмотрение.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
skurudo спасибо ) Постоянно выручаете. По 400 сайтам постоянно бегали какие то непонятные боты с твиттера и фейсбука. Убрал их , сервер ожил. LA с 20 опустился до 2 ) Еще раз большое спасибо !!!
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
На здоровье! :) Плохишей нужно банить, не гоже их поощрять. Мешают - баню их.Garant wrote:skurudo спасибо ) Постоянно выручаете. По 400 сайтам постоянно бегали какие то непонятные боты с твиттера и фейсбука. Убрал их , сервер ожил. LA с 20 опустился до 2 ) Еще раз большое спасибо !!!
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
А есть подобное решение но с блокировкой по базе IP и странам?
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
Нет, к сожалению, с этим сложнее.
В случае гео-нападания проще использовать iptables c geoip.
В случае гео-нападания проще использовать iptables c geoip.