We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Нужно заблокировать ботов. Подскажите как лучше сделать ?
Нужно заблокировать ботов. Подскажите как лучше сделать ?
Нужно заблокировать на сервере ботов, которые содержат в 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.