Нужно заблокировать ботов. Подскажите как лучше сделать ?
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;
}
}