glia

Геката

Tags: 

Я в детстве с большим удовольствием читал "Легенды и мифы древней Греции" Николая Куна, поэтому в древнегреческой мифологии ориентируюсь сравнительно неплохо. Но вот Геката, о которой пойдёт речь, в этой книге практически не представлена — поэтому близко познакомился я с этой богиней только недавно, причём несколько необычным образом.

Недавно у нас на работе случилась очередная реорганизация, в результате которой я и двое моих коллег оформились в отдельную команду. Команда отвечала за инфобезопасность (security), регуляторный контроль (compliance) и внутреннюю IT-поддержку (в основном сводящуюся к выдаче доступа при найме и отбиранию оного при увольнении, а также решению мелких технических проблем). Особенно примечательно то, что получалось ровно три человека: по одному человеку на каждую функцию. А во главе всего этого поставили начальницу, которая отвечает за атмосферу в коллективе и решение административных вопросов.

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

Когда я вспомнил про Гекату, я практически сразу понял: это то, что надо! И чем больше я изучал материалов про неё, тем больше убеждался, что так оно и есть. В итоге я предложил эту кандидатуру команде со следующей "сопроводительной запиской":

Почему Геката?

  1. Геката часто представляется существом с тремя головами (иногда даже тремя телами), что символизирует три направления работы нашей команды.
  2. Женский род этого божества отражает тот факт, что командой руководит женщина.
  3. Гекату часто именуют различными эпитетами, три из которых непосредственно связаны с нашей работой:
    • Ἀποτρόπαια — "отвращающая несчастье" (инфобезопасность)
    • Κλειδοῦχος — "хранительница ключей" (управление доступом)
    • Πρόπολος — "служительница" (соблюдение регуляторных требований).
  4. Её часто ассоциируют с собаками, что хорошо сочетается с нашей офисной культурой — у нас допускается и даже поощряется приводить в офис собак.

Надо ли говорить, что кандидатуру приняли единогласно, и теперь вот это миловидное создание символизирует нашу команду:

А на днях Геката снова напомнила о себе — на сей раз в качестве персонажа рок-оперы "Орфей". Это история Орфея и Эвридики, творчески переосмысленная и переложенная на жанр мюзикла. Многие исполнители знакомы нам ещё по "Последнему испытанию" — очень приличного уровня мальчики и девочки, слушать их одно удовольствие. К сожалению, официально издана только аудиоверсия, а многочисленные видеозаписи, гуляющие в Интернете — это любительские съёмки с соответствующим качеством звука.

Впрочем, Юля нашла ролик, в котором любительские видео склеены воедино и на них наложены официальные аудиотреки. Получилось весьма прилично, и мы это с удовольствием посмотрели. А песню Гекаты "Спи и забывай", исполненную Верой Зудиной, я даже вырезал и выложил отдельно — настолько здорово получилось:

Трудности перевода: Wolfenstein и немцы

Коллеги решили "тряхнуть стариной и поиграть в Wolfenstein". Я сразу же почувствовал неладное: ведь "Wolfenstein 3D" — это игрушка моего детства, причём именно что детства. К тому этапу, который можно было бы называть "юностью", её сменили более прогрессивные Doom, Duke, Quake и далее по списку. А с учётом того, что народ у меня в конторе в среднем лет на 15 младше меня, я бы очень удивился, если бы кто-нибудь из них не то, чтобы играл, а хотя бы просто видел то, что у меня ассоциируется со словом Wolfenstein.

NGINX и американские санкции

И знаешь, Геральт, порой бывает так, что Очень Большое Зло схватит тебя за горло и скажет: «Выбирай, братец, либо я, либо то, которое чуточку поменьше...»

А.Сапковский, "Меньшее зло"

Контора, где я работаю, является американской. Соответственно, несмотря на то, что вся разработка нашей системы производится в Эстонии, крутится эта система на американских серверах и продаётся от имени нашего головного офиса, расположенного в Нью-Йорке. Поэтому соблюдение законодательства США является для нас весьма важным требованием.

И в один прекрасный день из юридического отдела "прилетела" очередная задача в рамках соблюдения этого самого законодательства, а именно: заблокировать доступ к нашему сервису из ряда стран, с которыми не дружит США. Куда, естественно, также относится и Крым, который всё никак не могут поделить. И приписка, что, мол, если не получится заблокировать точечно Крым, то можно блокировать всю Украину - клиентов у нас там всё равно нет.

Я поизучал вопрос и ответил следующее. Во-первых, хоть у нас и нет клиентов с Украины, а у наших клиентов, судя по логам, есть, и их это затронет. А во-вторых, если вам нужно стопроцентно и гарантированно заблокировать Крым, то блокировать придётся и Украину, и Россию - в противном случае всегда останется некий процент (до 7%) крымских айпишников, которые фильтр не отловит. Вам как надо: чтобы закон соблюдался или чтоб работало?

Наверху посовещались и решили, что погрешность в 7% их устроит. Тогда я взял страничку с геокодами Украины (по ISO Крым украинский и не волнует) и выписал коды собственно Крыма, а также находящегося на полуострове Севастополя. Вместе с прочими запретными регионами получилась следующая конфигурация в NGINX:

    geoip_country /GeoIP.dat;
    geoip_city /GeoLiteCity.dat;
    geoip_proxy ;
    map "$geoip_country_code:$geoip_region" $embargoed_region {
      default no;
      "UA:43" yes; # Crimea region
      "UA:40" yes; # Sebastopol City, part of Crimea
      "~^CU:.*$" yes; # Cuba
      "~^IR:.*$" yes; # Iran
      "~^SD:.*$" yes; # Sudan
      "~^SY:.*$" yes; # Syria
      "~^KP:.*$" yes; # North Korea
      "~^VE:.*$" yes; # Venezuela
    }

После чего добавил в конфигурацию сервера вставку, которая при запросе из данных регионов возвращает ошибку 451, которая как раз недавно была введена в стандарт RFC по случаю возникшей в последнее время моды на блокировку неугодных ресурсов или стран на государственном уровне:

  if ($embargoed_region = yes) {
    return 451;
  }

Чувствовал себя при этом премерзко. Вероятно, что-то подобное чувствует солдат, которому приказано стрелять в мирное население. И дело тут не только в Крыме.

Новая буква в адресной строке. Перевод сайта на HTTPS

Перевёл вчера сайт на HTTPS. Оказалось не так сложно, как я предполагал — на всё ушла пара часов. Функционально ничего не должно было измениться — ну, если не считать того, что я починил вход через Mail.Ru и Яндекс, который не работал уже давно, но обнаружил я это только в процессе тестирования HTTPS. Всю суть изменений иллюстрирует диалог с Юлей:
— Чем занимаешься? — спросила она, когда я ковырялся в настройках.
— Сайт перенастраиваю, — ответил я, не вдаваясь в подробности.

Через пресловутые пару часов я уже листал страницы своего блога, проверяя, всё ли работает. Юля спрашивает:
— А что ты сделал?
Показываю мышкой на адресную строку (уже сам понимая комичность ситуации):
— Видишь, вот тут буковка "s" появилась...

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

На самом деле, меня бы и это не сподвигло почесаться, если бы не появление Letsencrypt — удостоверяющего центра, совершившего революцию в процедуре выдачи SSL-сертификатов (то есть того, без чего невозможно сделать у себя HTTPS). Сертификаты от Letsencrypt, во-первых, бесплатны, а во-вторых, процесс их получения и ротации полностью автоматизирован. Концепция начинает потихоньку завоёвывать Интернет, приводя к тому, что в последнее время держать сайт без HTTPS действительно стало моветоном :)

Так что я снова в тренде. Надеюсь, что всё по-прежнему работает, но если что отвалилось — вы знаете, куда писать :)

P.S. Кстати, в процессе настройки имел место забавный "побочный эффект": я впервые прочувствовал всю мощь OpenSource. Подробности, впрочем, интересны будет только айтишникам.