Блокируем китайцев

    Ниже пойдет текст достойный пера К.О.

    Китайский трафик велик и беспощаден. Когда какая-нибудь смешная или не очень картинка попадает в китайские блоги, провайдер colocation начинает обижаться и рассказывать про несоответствие соотношений 3 к 2 российского и зарубежного трафика.

    В очередной раз словив попадание ню фотосета с одного из проектов на просторы чайнанета (боже мой, сколько у них популярных блогов) и посчитав, во что может выльется эта экспансия на восток, решил ограничить наших глубокоуважаемых желтокожих братьев по планете.

    Примеров реализации есть несколько (ngx_http_geo_module, ngx_http_geoip_module или обычным deny), наиболее эффективный с помощью ngx_http_geo_module и базы wipmania (http://www.wipmania.com/ru/base/)

    Облегчение на одном из серверов.
    image


    http {
    ...
    geo $geo {
    include geoip.conf;
    default XX;
    }

    }

    server {

    if ($geo = CN)
    {
    return 403;
    }

    ...
    }


    Если нужно закрыться ото всех, оставив несколько стран, то поможет такая реализация

    server {
    ...
    #дефолтовый флаг
    set $a 0;

    if ($geo = RU)
    {
    set $a 1;
    }

    if ($geo = UA)
    {
    set $a 1;
    }

    #неизвестные ipшки пусть ходят
    if ($geo = XX)
    {
    set $a 1;
    }

    if ($a = 0)
    {
    return 403;
    }
    ...
    }


    UPD! В этом случае правильнее выдавать 444, спасибо rolltin
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 58
    • 0
      До кучи правда зарулил на localhost китайские ipшки через view бинда.
      • +20
        «Две вещи не люблю, расизм и негров» (с)
        • +2
          Зато я к сожалению могу легко написать пособие:

          «Как подставить на бабки размещающих оборудование в Ростелекоме и в РТКомме, для чайников».
          • +2
            просим в студию!
            )
            • +1
              Только после того, как я не буду присутствовать на площадке в рткомме :)
        • +7
          Как вариант — вместо 403 использовать 444. В таком случае nginx просто закроет соединение.
          Невежливо, конечно, но зато неплохо экономит трафик :-)
          • 0
            Вы совершенно правы, я совсем забыл про 444, хоть 403 и идеологически правильнее, но я сомневаюсь, что это изменит поведение хотлинкеров, поэтому правильнее будет 444 в данном случае. Совсем правильно на фаерволе закрыть, но возможность есть не всегда.
            • –2
              Может всетаки 404 Page not found? Что такое 444?
              • +5
                Я как и 4% умнейших администраторов интернета :) использую nginx.

                В случае если выдавать 403, 404 и т.п. коды, то 106 или сколько там байт будет передано веб-сервером клиенту, в случае если выдавать нестандартный код 444 в nginx, то nginx просто закрывает соединения не передавая ничего. Когда в секунду десятки и сотни запросов так удобнее и лучше делать, чем показывать никому не нужную красивооформленную для людей 403 внутри img src
                • 0
                  Большое спасибо за разяснение.
          • +14
            И всё же блокировать трафик по географическому признаку — это как-то неправильно.
            Вряд ли вам нравится, когда вы обнаруживаете, что тот или иной сервис заблокирован для России.
            Я бы лучше поискал более адекватного хостера или CDN.
            А если вы деньги на этом зарабатываете, то выберите способ монетизации на китайцах :)
            • +5
              Нужно понимать, что некоторые проекты бывают более-менее четко географически привязаны. Ну и касательно хостера :) я сам хостер и я не против 70Мбит исходящего, но я против 45% в нем китайского нецелевого.
              • +7
                Так адаптируйтесь — сделайте его целевым! :)
                Ведь если вы сядете и подумаете, как на этом заработать, в выигрыше останетесь и вы, и китайцы.
                А так получается, что к вам текут посетители, а вы от них носом крутите — дескать «не наша ЦА».
                Я не спорю, иногда экономически выгоднее их заблокировать, но для этого надо сначала хотя бы рассмотреть несколько альтернативных вариантов.
                Ведь если то, что вы опубликовали, так понравилось китайцам — значит географическая привязанность не столь очевидна (как минимум в данном конкретном случае).
                • +3
                  То, что и им и нам нравится одни и те-же картинки лишний раз подтверждает, что все мы произошли от одной и той-же обезьяны.

                  Монетизировать нельзя, так как это обычный хотлинкинг только с очень огромным размахом. Делать сайт с контентом для китайцев нереально, вы же понимаете, что для этого нужно родиться китайцев, там совсем другая идеология построения блогов и т.п.

                  А варианты написать на картинках «пришлите мне юань и получишь доступ» не будет востребовано :)
                  • +1
                    Вам виднее — я специфики вашего бизнеса не знаю.
                    Я просто исходил из того, что если трафик «живой» (а не DDoS, например), то можно попробовать извлечь пользу из ситуации.
                    • +4
                      Закройте хотлинкинг проверкой: если идет хотлинк и от китайца, то редирект на какую-нибудь страницу, где висит та самая картинка, которую он так хочет посмотреть.
                      А попутно еще 10 баннеров — вот отличное экономическое решение проблемы.

                      Можно еще хитрее сделать — маленькие картинки отдавать напрямую (все они большой трафик не создадут), а большие отдавать с рекламой.

                      Люди платят деньги за раскрутку по блогам — вам она дается на халяву. Используйте ее!
                      • +1
                        Закройте хотлинкинг проверкой: если идет хотлинк и от китайца, то редирект на какую-нибудь страницу, где висит та самая картинка, которую он так хочет посмотреть.


                        Глупость какая, вы серьезно считаете, что что-либо в img src= отличное от обычных image-type покажется в браузере китайца? Какой смысл в img src выставлять что-угодно кроме картинки с Лениным или просто блокировать соединение? Никто не будет смотреть исходный код и переходить потом по доменному имени или по url картинки напрямую.
                        • +3
                          Представляю лица китайцев, если им показывать Ленина с фигой :)
                          • 0
                            Самое главное, чтобы не Ху Цзиньтао =)
                            • +7
                              Кстати, тоже решение — напишите у себя там, что Ху мудак и свободу Тибету — они сами вас быстренько заблокируют :)
                          • 0
                            Кажется, хозяева picamatic.ru как-то рассказывали на хабре, что они зарабатывают как раз на китайском трафике. Для России — это просто бесплатный сервис, без рекламы и прочего. А вот для китайцев показывается реклама, и на этом они делают приличные деньги.
                            • 0
                              Заблочить, как вариант, конечно

                              Но, вариант с монетизацией, попробовать было бы интересно. Очень бы порадовал топик с «опытами» на эту тему.
                              Выдавать уменьшенное изображение с надписью «Полное изображение на xxxxx.cn»… Какой-то % не полениться набрать руками в браузере урл, открыть, получить полное изображение и конечно же порцию рекламы (контекст, партнерки, банеры что угодно… пробовать эффект).
                              • 0
                                ну уж лучше тогда просто выдавать картинку, но с присоединенной рекламой. по-моему очень кошерно) — китайцы афигеют от такого =)
                          • 0
                            Показывайте китайскую рекламу :)
                      • 0
                        Youtube блокирует постоянно :( Какое-нибудь видео на хабре, пытаешься посмотреть, а тебе: «Недоступно для вашей страны».
                      • –2
                        У iptables geoip есть, работает намного шустрее
                        А на счет китайского трафика — верно, набигают и грабят сайты
                        Это не люди а боты которые воруют контент, потому и трафф такой
                        • 0
                          Да нет, это люди, я же на те блоги заходил по реферерам, смотрел.
                          • –1
                            Намного шустрее вышестоящего провайдера попросить не пускать :)

                            iptables помогает и будет разумеется быстрее\выше\сильнее, но не всегда можно iptables использовать.
                            • +1
                              Странно, когда мы пробовали ограничивать по iptables система нагибалась еще сильнее чем через nginx.
                              • +1
                                Так и есть.
                                geoip в iptables неэффективен в плане утилизации ресурсов.
                                Особенно на таких нагрузках.
                            • 0
                              «Что китайцу хорошо — русскому смерть.» (с)
                              Как-то так.
                              • +4
                                не отдавайте картинки, если их запрашивают не с ваших страниц, вот и всё…
                                • 0
                                  Если делать проверку на реферера, то попадают пользователи проксей, некоторых антивирусов и т.п.
                                  • 0
                                    но всё равно это как-то гуманнее, чем отрезать всех китайцев… (меньше людей пострадает)
                                    • +1
                                      попадают пользователи проксей, некоторых антивирусов и т.п.
                                      на этот случай у nginx есть параметр blocked:
                                      blocked — строка «Referer» в заголовке запроса присутствует, но её значение удалено файрволлом или прокси-сервером; к таким строкам относятся строки, неначинающиеся на «http://»;
                                      http://sysoev.ru/nginx/docs/http/ngx_http_referer_module.html#directives
                                      • +2
                                        Одно дело — когда в реферера нет и совсем другое — когда там другой домен. Я лично хотлинкинг защищаю именно по принципу наличия домена и домена отличного от моего. Если реферера нет, спокойно отдаю контент, таковых не очень много и серьёзной нагрузки они не создают.
                                  • +16
                                    а можно линк на ню фотосет столь понравившийся китайцам? ;)
                                    • –2
                                      Вы путаете сайты, вам на тот, что начинается на l а заканчивается на um.ru, на мордочке его они кстати они иногда бывали, да :)
                                      • 0
                                        Это на который ещё инвайт нужно суметь достать? :)
                                        • +7
                                          На loremipsum.ru какая-то пустышка. Фотосет давай!
                                      • +26
                                        Только китаец прорвался через великий китайский файрволл, как его по geoip банят :)
                                        • –29
                                          Оффтопик! Паника!
                                          TORRENTS.RU разделегирован.
                                          kartz.ru/2010/02/18/torrents-ru-not-delegated/
                                          (Извиняюсь, для создания топик-ссылки не хватает кармы.)
                                          • 0
                                            А как же Coral CDN?
                                            • +6
                                              Ох, ужасный гимор, живя тут, в Китае, каждый раз переподключаться к разным VPN-ам, из-за таких вот «экономных» админов. И я здесь, как бы, далеко не единственный русский.
                                              • –1
                                                Я выше уже писал, что мне не жалко отдавать трафик, мне не жалко головок жесткого диска :), мне жалко 30-40Мбит которые невозможно ни монетизировать, ни как-то принести себе в пользу. Да даже не в отсутствие альтруизма дело, просто платить за него не хватит никакого моего кармана.

                                                Сейчас я за свои десятки и сотни мегабит ничего не плачу, магистральщик радуется размещая такой ресурс, просто они с большого количества зарубежного огорчаются, вы же понимаете, что «неограниченный трафик» термин используемый только говнохостерами, остальные вынуждены учитывать кое-какие соотношения или входящего\исходящего или российского\зарубежного.
                                                • +1
                                                  Так и я просто бурчу. Мне тоже не жалко сделать два клика для подключения к vpn. :) Peace!
                                                  Все к тому, что блокировать 1/4 человечества… странное ощущение.
                                                • +1
                                                  каждый раз переподключаться к разным VPN-ам

                                                  Прикупите себе дешевый российский vds за 150 рублей в месяц и настройте на нем vpn. Я так и сделал.
                                                • –1
                                                  Простите за офтопик. У меня есть вопрос к собравшимся здесь сисадминам.

                                                  Что-то случилось в последние несколько часов с графиком загрузки процессора на одном VDS. Сайт работает нормально, беспокоит толко график.
                                                  • 0
                                                    А это его в ответ заблокировали китайцы:)
                                                    • 0
                                                      Это мой вопрос и мой VDS.
                                                  • 0
                                                    интересно, а как китайцы свои собственные сервера держат? )))
                                                    • 0
                                                      А вот вам как отгородить от китайцев свои сервисы, на примере sshd, также с использованием geoip
                                                      • 0
                                                        как уже сказали выше — у iptables есть модуль geo. Я защищаюсь от брутфорса при помощи snort'а
                                                        • 0
                                                          Видимо вы не совсем поняли меня, тут не идет речь о защите от брута, тут тотальное отрубление стран, а для защиты от брута имеется sshguard.
                                                          PS: iptables далеко не всегда необходим, я бы даже сказал бы что огромное число людей его ставит из-за тупорылой паранои, когда и без него никто не поимеет к вам доступа.
                                                          • 0
                                                            iptables далеко не всегда необходим, я бы даже сказал бы что огромное число людей его ставит из-за тупорылой паранои


                                                            В этом деле лучше всегда переспать, чем недоесть.
                                                      • 0
                                                        Вредный парсер, скушас ссылочку guruway.wordpress.com/2010/02/18/pam-pam_geoip
                                                        • 0
                                                          В xtables расширении для iptables есть модуль libxt_geoip.
                                                          Через пару дней на wipmania.com выходит новая версия WorldIP базы и мы планируем добавить формат для этого модуля
                                                          А вообще китайцы активны в завоевывании IP диапазонов

                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.