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.
Нужно заблокировать ботов. Подскажите как лучше сделать ?
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
А где почитать как реализовать?skurudo wrote:Нет, к сожалению, с этим сложнее.
В случае гео-нападания проще использовать iptables c geoip.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
Традиционно в интернете.
Я вот этого парнягу уважаю - https://debian.pro/510 :-)
Я вот этого парнягу уважаю - https://debian.pro/510 :-)
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
закрывать фаерворлом надежно, но есть нюанс в отпуске можно нарваться на блокировку.
проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
Это как?demian wrote:в отпуске можно нарваться на блокировку.
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
Спасибо! Ознакомлюсь.skurudo wrote:Традиционно в интернете.
Я вот этого парнягу уважаю - https://debian.pro/510 :-)
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
заблокируете все кроме рашки, поедите в какой нить тайланд. Сервер упадет, вы об этом не узнаете и достучатся не сможете. Клиенты будут волосы на ..пе рвать.. это то будет эпик-фэйл, если нет никого на подмену.one wrote:Это как?demian wrote:в отпуске можно нарваться на блокировку.
ЗЫ: делая нестандартные решения вы привязываете себя к серверу - прощай отпуск
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
Насколько помню, нужно пересобирать nginx с поддержкой модуляdemian wrote: проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Или оно появилось в стандартных пакетах?
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
под цент не надоskurudo wrote:Насколько помню, нужно пересобирать nginx с поддержкой модуляdemian wrote: проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Или оно появилось в стандартных пакетах?
Code: Select all
Installing:
nginx x86_64 1:1.10.2-1.el7 epel 505 k
Installing for dependencies:
nginx-all-modules noarch 1:1.10.2-1.el7 epel 16 k
nginx-filesystem noarch 1:1.10.2-1.el7 epel 17 k
nginx-mod-http-geoip x86_64 1:1.10.2-1.el7 epel 23 k
nginx-mod-http-image-filter x86_64 1:1.10.2-1.el7 epel 26 k
nginx-mod-http-perl x86_64 1:1.10.2-1.el7 epel 35 k
nginx-mod-http-xslt-filter x86_64 1:1.10.2-1.el7 epel 25 k
nginx-mod-mail x86_64 1:1.10.2-1.el7 epel 53 k
nginx-mod-stream x86_64 1:1.10.2-1.el7 epel 46 k
Code: Select all
collectd-nginx.x86_64 : Nginx plugin for collectd
munin-nginx.noarch : Network-wide graphing framework (cgi files for nginx)
nextcloud-nginx.noarch : Nginx integration for NextCloud
nginx-all-modules.noarch : A meta package that installs all available Nginx modules
nginx-filesystem.noarch : The basic directory layout for the Nginx server
nginx-mod-http-geoip.x86_64 : Nginx HTTP geoip module
nginx-mod-http-image-filter.x86_64 : Nginx HTTP image filter module
nginx-mod-http-perl.x86_64 : Nginx HTTP perl module
nginx-mod-http-xslt-filter.x86_64 : Nginx XSLT module
nginx-mod-mail.x86_64 : Nginx mail modules
nginx-mod-stream.x86_64 : Nginx stream modules
owncloud-nginx.noarch : Nginx integration for ownCloud
pcp-pmda-nginx.x86_64 : Performance Co-Pilot (PCP) metrics for the Nginx Webserver
python2-certbot-nginx.noarch : The nginx plugin for certbot
nginx.x86_64 : A high performance web server and reverse proxy server
в настройках города указываются также как вы блокировали ботов через map
Code: Select all
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default yes;
CN no;
CU no;
CY no;
}
if ($allowed_country = no) {return 403; }
Code: Select all
# ls -l /usr/share/GeoIP/
total 22264
lrwxrwxrwx 1 root root 17 Mar 1 14:28 GeoIP.dat -> GeoIP-initial.dat
-rw-r--r-- 1 root root 890597 Nov 4 2016 GeoIP-initial.dat
lrwxrwxrwx 1 root root 19 Mar 1 14:28 GeoIPv6.dat -> GeoIPv6-initial.dat
-rw-r--r-- 1 root root 1667515 Nov 4 2016 GeoIPv6-initial.dat
-rw-r--r-- 1 root root 19112216 Jul 5 09:46 GeoLiteCity.dat
-rw-r--r-- 1 root root 1115050 Jul 5 09:45 GeoLiteCountry.dat
Re: Нужно заблокировать ботов. Подскажите как лучше сделать
Здравствуйте. Попробовал ваш способ блокировки нежелательных ботов, но все время перестает работать nginx. Ругается на эту часть кода:skurudo wrote: ↑Fri Aug 07, 2015 5:58 pmТоварищ, такая копипаста не пройдет! :)
Указанный способ работать не мог по той причине, что не туда.
А теперь по порядку.
во-первых, /usr/local/vesta/nginx/conf/nginx.conf - этот конфиг непосредственно панели управления, он не связан с вашими сайтами. после изменения в этом файле -во-вторых, брокировать по if - идея, но так себе - http://wiki.nginx.org/IfIsEvil (описание почему). Такая конструкция в принципе рабочая, но добавлять ее нужно в конфиг у пользователя, к примеру /home/admin/conf/web/nginx.conf, и перезупускать nginx - service nginx restart:Code: Select all
service vesta restart
в третьих, направление работы верное, отсекать ботов проще на уровне nginx.. но я видел более интересные реализации. поглядите. В основной конфиг /etc/nginx/nginx.conf добавляем:Code: Select all
location / { if ($http_user_agent ~ (libwww|Wget|LWP|damnBot|BBBike|java|spider|crawl) ) { return 403; } }
и уже по домену /home/admin/conf/web/nginx.conf условие такое: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; }
перезапуск сервиса nginx будет нужен, естественно :)Code: Select all
location / { if ($limit_bots = 1) { return 403; } }
Дерзайте.
Code: Select all
location / {
if ($limit_bots = 1) {
return 403;
}
}