Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Нужно заблокировать ботов. Подскажите как лучше сделать ?

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
19 posts
  • Previous
  • 1
  • 2
one
Posts: 392
Joined: Tue Sep 15, 2015 4:11 pm

Os: Debian 8x
Web: apache + nginx
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by one » Mon Jul 03, 2017 3:35 pm

skurudo wrote:Нет, к сожалению, с этим сложнее.
В случае гео-нападания проще использовать iptables c geoip.
А где почитать как реализовать?
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by skurudo » Tue Jul 04, 2017 5:19 am

Традиционно в интернете.
Я вот этого парнягу уважаю - https://debian.pro/510 :-)
Top

demian
Posts: 543
Joined: Thu May 16, 2013 5:19 am

Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by demian » Tue Jul 04, 2017 11:09 am

закрывать фаерворлом надежно, но есть нюанс в отпуске можно нарваться на блокировку.

проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Top

one
Posts: 392
Joined: Tue Sep 15, 2015 4:11 pm

Os: Debian 8x
Web: apache + nginx
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by one » Tue Jul 04, 2017 11:20 am

demian wrote:в отпуске можно нарваться на блокировку.
Это как?
Top

one
Posts: 392
Joined: Tue Sep 15, 2015 4:11 pm

Os: Debian 8x
Web: apache + nginx
Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by one » Tue Jul 04, 2017 11:20 am

skurudo wrote:Традиционно в интернете.
Я вот этого парнягу уважаю - https://debian.pro/510 :-)
Спасибо! Ознакомлюсь.
Top

demian
Posts: 543
Joined: Thu May 16, 2013 5:19 am

Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by demian » Tue Jul 04, 2017 11:41 am

one wrote:
demian wrote:в отпуске можно нарваться на блокировку.
Это как?
заблокируете все кроме рашки, поедите в какой нить тайланд. Сервер упадет, вы об этом не узнаете и достучатся не сможете. Клиенты будут волосы на ..пе рвать.. это то будет эпик-фэйл, если нет никого на подмену.

ЗЫ: делая нестандартные решения вы привязываете себя к серверу - прощай отпуск
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by skurudo » Tue Jul 04, 2017 12:13 pm

demian wrote: проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Насколько помню, нужно пересобирать nginx с поддержкой модуля
Или оно появилось в стандартных пакетах?
Top

demian
Posts: 543
Joined: Thu May 16, 2013 5:19 am

Re: Нужно заблокировать ботов. Подскажите как лучше сделать ?
  • Quote

Post by demian » Wed Jul 05, 2017 3:50 am

skurudo wrote:
demian wrote: проще nginx к этому подключить
пакеты geoip + в крон апдейтер базы.
Насколько помню, нужно пересобирать nginx с поддержкой модуля
Или оно появилось в стандартных пакетах?
под цент не надо

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
полный список nginx'a что присутсвует в epel для центика

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; }
после # geoipupdate

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
Top

Duck83
Posts: 36
Joined: Thu Aug 24, 2017 10:33 am

Re: Нужно заблокировать ботов. Подскажите как лучше сделать
  • Quote

Post by Duck83 » Fri Dec 27, 2019 10:48 am

skurudo wrote: ↑
Fri Aug 07, 2015 5:58 pm
Товарищ, такая копипаста не пройдет! :)
Указанный способ работать не мог по той причине, что не туда.

А теперь по порядку.

во-первых, /usr/local/vesta/nginx/conf/nginx.conf - этот конфиг непосредственно панели управления, он не связан с вашими сайтами. после изменения в этом файле -

Code: Select all

service vesta restart
во-вторых, брокировать по if - идея, но так себе - http://wiki.nginx.org/IfIsEvil (описание почему). Такая конструкция в принципе рабочая, но добавлять ее нужно в конфиг у пользователя, к примеру /home/admin/conf/web/nginx.conf, и перезупускать nginx - service nginx restart:

Code: Select all

location / {
   if ($http_user_agent ~ (libwww|Wget|LWP|damnBot|BBBike|java|spider|crawl) ) {
       return 403;
   }
}
в третьих, направление работы верное, отсекать ботов проще на уровне nginx.. но я видел более интересные реализации. поглядите. В основной конфиг /etc/nginx/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;
 } 
и уже по домену /home/admin/conf/web/nginx.conf условие такое:

Code: Select all

location / {
    if ($limit_bots = 1) {
              return 403;
            }
}
перезапуск сервиса nginx будет нужен, естественно :)

Дерзайте.
Здравствуйте. Попробовал ваш способ блокировки нежелательных ботов, но все время перестает работать nginx. Ругается на эту часть кода:

Code: Select all

location / {
    if ($limit_bots = 1) {
              return 403;
            }
}
Пробовал также способ с добавлением в конфиг доменов - также неудача. Можете помочь найти проблему?
Top


Post Reply
  • Print view

19 posts
  • Previous
  • 1
  • 2

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password