Конфигурация nginx + cloudflare

При использовании Cloudflare для правильного определения адреса клиента в nginx нужно настроить ngx_http_realip_module. Конфигурация следуюшая:

# Cloudflare
set_real_ip_from   199.27.128.0/21;
set_real_ip_from   173.245.48.0/20;
set_real_ip_from   103.21.244.0/22;
set_real_ip_from   103.22.200.0/22;
set_real_ip_from   103.31.4.0/22;
set_real_ip_from   141.101.64.0/18;
set_real_ip_from   108.162.192.0/18;
set_real_ip_from   190.93.240.0/20;
set_real_ip_from   188.114.96.0/20;
set_real_ip_from   197.234.240.0/22;
set_real_ip_from   198.41.128.0/17;
set_real_ip_from   162.158.0.0/15;
set_real_ip_from   104.16.0.0/12;
set_real_ip_from   2400:cb00::/32;
set_real_ip_from   2606:4700::/32;
set_real_ip_from   2803:f800::/32;
set_real_ip_from   2405:b500::/32;
set_real_ip_from   2405:8100::/32;
real_ip_header     CF-Connecting-IP;

Gist с конфигурацией

Боремся с referer спамом

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

map $http_referer $bad_referer {
    hostnames;
    default                         0;
    .semalt.com                     1;
    .kambasoft.com                  1;
    .savetubevideo.com              1;
    .descargar-musica-gratis.net    1;
    .7makemoneyonline.com           1;
    .baixar-musicas-gratis.com      1;
    .iloveitaly.com                 1;
    .iloveitaly.co                  1;
    .fbdownloader.com               1;
    .econom.co                      1;
    .buttons-for-website.com        1;
    .srecorder.co                   1;
    .darodar.com                    1;
    .priceg.com                     1;
    .blackhatworth.com              1;
    .adviceforum.info               1;
}

В конфигурацию атакуемого сервера добавляем:

if ($bad_referer) {
    return 444;
}

Gist с конфигурацией

Пингвин склеил ласты. Национальная программная платформа R.I.P.

В свете крымских событий мимо прошла одна очень показательная новость. Разработчик национальной программной платформы, ООО «ПингВин Софтвер» (который в свое время за 16 дней и 5 миллионов рублей свою операционную систему сделал), склеивает ласты:

ООО «ПингВин Софтвер» подало заявление о собственном банкротстве в АС г. Москвы (http://kad.arbitr.ru/Card/81f0a187-10cc-4932-822c-bf848fd4783e/).

Нет, ну а что? Деньги получены, бюджеты освоены, какой линукс, о чем вы? В свете введения компаниями Microsoft, Oracle, Symantec и HP санкций в отношении ряда российских банков и компаний эта новость выглядит особенно мило.

Прощай, FreeBSD!

Остановил сегодня последнюю впску с FreeBSD.

Немного грустно расставаться операционной системой, с которой работал больше 10 лет, но пора уже признать очевидное: FreeBSD превратилась в систему для гиков из телекомов, корпораций и тех, кто продает решения на ней. Рядовому пользователю пользоваться этой системой нет никакого смысла.

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

freebsd_roads

Снова ветряные мельницы

Месяц назад отправил в краевую прокуратуру обращение по поводу массового нарушения Роскомнадзором федерального законодательства, спустя три недели позвонил — оказывается, обращения с сайта им вообще не приходят. Продублировал по электронной почте, получил такой вот ответ:

krasproc

И это при том, что согласно п. 3.4 Инструкции о порядке рассмотрения обращений и приема граждан в органах прокуратуры Российской Федерации,

обращение, разрешение которого не входит в компетенцию данной прокуратуры, в течение 7 дней со дня регистрации направляется соответствующему прокурору с одновременным уведомлением об этом заявителя.

Как бороться за свои права, если сама прокуратура (которая, типа, следит за соблюдением законов) свои же инструкции нарушает?

UPDATE

krasproc_reply1

krasproc2

Политическая цензура в Рунете

Тем временем в России вступил в силу закон о политической цензуре:

По требованию заместителя генерального прокурора РФ Роскомнадзор обеспечил блокировку первых четырех интернет-ресурсов во исполнение федерального закона №398-ФЗ «О внесении изменений в Федеральный закон «Об информации, информационных технологиях и о защите информации».

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

Одна из интернет-страниц с противозаконной информацией располагалась на ресурсе livejournal.com. Ресурс был внесен в единый реестр противоправной информации для направления на выгрузку операторам связи. Администрация ресурса в кратчайшие сроки удалила блог с противоправной информацией. После проверки сотрудниками Роскомнадзора уведомления администрации livejournal.com об удалении незаконного контента, ресурс был исключен из реестра.
http://rkn.gov.ru/news/rsoc/news23648.htm

mozg_edinorossa

Закон, как и все остальное, выходящее из клоаки «взбесившегося принтера», к реальной жизни отношения не имеет.

2. Федеральный орган исполнительной власти, осуществляющий функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи, на основании обращения, указанного в части 1 настоящей статьи, незамедлительно:

1) направляет по системе взаимодействия операторам связи требование о принятии мер по ограничению доступа к информационному ресурсу, в том числе к сайту в сети «Интернет», или к информации, размещенной на нем и содержащей призывы к массовым беспорядкам, осуществлению экстремистской деятельности, участию в массовых (публичных) мероприятиях, проводимых с нарушением установленного порядка. Данное требование должно содержать доменное имя сайта в сети «Интернет», сетевой адрес, указатели страниц сайта в сети «Интернет», позволяющие идентифицировать такую информацию;
http://www.rg.ru/2013/12/30/extrem-site-dok.html

Дело в том, что никакой «системы взаимодействия» Роскомнадзора и операторов связи не существует. Единственным средством такого взаимодействия была система, известная как «говнореестр», а она не позволяет блокировать доступ «незамедлительно» в автоматическом режиме, как того требует буква закона, т.к. в ней отсутствует механизм подписки на изменения. Если же блокировать вручную, в рамках «телефонного права», по звонку из регионального отделения РосКомЦензуры, то обещанных 10-15 минут тем более не получится, поскольку Россия — страна большая, операторов в ней тысячи в каждом регионе.

Да и разница в часовых поясах сказывается: захочет Генпрокурор выпилить сайт с призывом выйти с вилами на Кремль в 15:00 по Москве, а во Владивостоке уже 22:00 и люди, которые могут блокировать доступ на уровне оператора уже просто спят.

Отличный программист

Прошел сегодня повторно PHP/MySQL/Linux тест от Badoo, назвали отличным программистом.

И даже поставили на 22 место в рейтинге. Когда прошлый раз проходил, пару лет назад, набрал 69 баллов. Профессионализм не пропьешь.

Шел 2014 год…

Шел 2014 год, а фряшечка так и не умела автоматически мержить файлы, различающиеся лишь хедером, при бинарном обновлении:

root@vps1:/usr/src # freebsd-update upgrade -r 10.0-RELEASE
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.2-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/doc world/games

The following components of FreeBSD do not seem to be installed:
src/src

Does this look reasonable (y/n)? y

Fetching metadata signature for 10.0-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 9.2-RELEASE for merging... done.
Preparing to download files... done.
Attempting to automatically merge changes in files... done.

The following file could not be merged automatically: /etc/crontab
Press Enter to edit this file in mcedit and resolve the conflicts
manually...
< <<<<<< current version
# $FreeBSD: releng/9.2/etc/crontab 194170 2009-06-14 06:37:19Z brian $
=======
# $FreeBSD: release/10.0.0/etc/crontab 194170 2009-06-14 06:37:19Z brian $
>>>>>>> 10.0-RELEASE

В такие моменты очень хорошо понимаю Шетухина. Когда перестаешь лепить свои велосипеды на базе FreeBSD и начинаешь пользоваться ею как обычный пользователь — она перестает удовлетворять, даже если за плечами есть 10 лет опыта работы с ней.

РосКомБеспредел

Данный текст рекомендуется к прочтению представителям всех интернет-провайдеров РФ.

Преамбула

Сегодня зашел на сайт своих старых «друзей», Енисейского управления Роскомнадзора, и сильно огорчился, увидев там следующую новость:

По результатам мониторинга, проведенного Енисейским управлением Роскомнадзора, на предмет осуществления операторами связи ограничения доступа к информации, распространяемой посредством информационно-телекоммуникационной сети «Интернет», в порядке, установленном Федеральным законом от 27.07.2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации» составлены и направлены для рассмотрения в суды протоколы об административных правонарушениях по ч. 3 ст. 14.1 КоАП РФ (осуществление предпринимательской деятельности с нарушением условий, предусмотренных специальным разрешением (лицензией)), в отношении операторов связи ООО «Классика-сервис», ЗАО «Современные технологии связи».

http://24.rkn.gov.ru/news/news58775.htm

Ситуация 1 в 1, как ситуация, имевшая место быть на моей прошлой работе. И сейчас, судя по всему, пришло время вытащить её из-под ковра.
Читать далее РосКомБеспредел