?

Log in

No account? Create an account
Кот Муций
07 December 2018 @ 02:37 am
Давно я Микрософт не ругал.

Понадобилось тут прокинуть site-to-site IPsec-туннель между FortiGate и Windows-сервером. Документации по такому сценарию нагуглилось ноль, пришлось действовать методом проб и ошибок. Благодаря сниффингу, дебаггингу и молитвам к известной матери построить таки получилось - см. описание в технобложике. Но до чего ж я в процессе пыли нажрался, и всё благодаря замечательным качествам Windows RRAS (Routing & Remote Access Service).

Сюрприз первый - ограничить принимаемые сертификаты от второй стороны только выписанными определённым CA нельзя. Можно жмякнуть по галке "Verify Name and Usage attributes of the server's certificate", и на этом всё. То есть да, будет проверено, что в сертификате значится хостнейм, к которому мы обращаемся, что сертификат не протух и что он подписан валидным CA. Да только этих валидных CA на любом Windows - несколько десятков!

То есть если между двумя сторонами сидит хакер, который может направить трафик на адрес Фортигейта на свой сервер (через DNS ли, через раутинг ли) - то он может как нефиг делать получить на этот хостнейм сертификат от LetsEncrypt, с их-то смехотворной верификацией. И затем выдавать себя за Фортигейт. Подключиться к Фортигейту от имени RRAS ему не выйдет - Фортигейт-то как раз проверяет, какой CA удостоверил вторую сторону. Но если обе стороны - Windows, то вот вам полноценный рецепт на man-in-the-middle.

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

(Справедливости ради, Windows позволяет использовать поверх IPsec протокол EAP, а вот там-то CA ограничивать можно. Но:
  • это усложняет инфраструктуру - нужен RADIUS (и проверяется сертификат именно RADIUS, а не VPN-гейта)
  • документации по такому использованию EAP у Фортинета примерно ноль, но в этом не Микрософт виноват,
  • это поверх - уже после аутентификации IPsec; проверяет оно юзера, и клиентский сертификат должен сидеть в профиле юзера. Как это заставить работать с автоматическим подключением RRAS? Может, если запустить certmgr.msc под SYSTEM и импортировать туды, то и выгорит...
    В общем, дикие траблы. Скорее всего, не взлетит. Да и точно ли это устраняет MiTM?)

    Этого можно было бы легко избежать, попросту перейдя с сертификатов на pre-shared keys, однако тут нас ждёт сюрприз второй - это работает примерно с десятого раза на двадцатый. Подозреваю баг. Девять раз получаешь "authentication failed", на десятый неожиданно подключаешься. Забиваешь PSK заново - сразу подключаешься; если отключишься, то по новой. Причём, похоже, работает только если сессию инициирует Фортигейт.

    Сюрприз третий - назначить статический адрес диал-ап интерфейсу нельзя, настройки игнорируются. Because fuck you. В какой-то момент получилось через "netsh interface ipv4 add address", потом снова обломись.

    Сюрприз четвёртый - банальный forwarding между LAN и туннелем раз работает, а раз нет. Почему - понять не удалось.

    В общем - если рассудок и жизнь дороги вам, держитесь подальше от торфяных болот.
  •  
     
    Current Music: Dierks Bentley - What Was I Thinkin'?
     
     
    Кот Муций
    25 November 2018 @ 03:16 am
    Замечательный закон о карах за бойкот Израиля помните? А вот и первое применение, и оно маразматичней некуда: русский, инглиш. Это вот письмо, о котором речь.

    Что могу сказать по этому поводу:

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

    2. Очень надеюсь, что новозеландцы требования наших идиотов пошлют в форме как можно более обидной, чтобы желание их повторять отпало. Это самое полезное, что они для нас могут сделать. Если же паче чаяния этих женщин и впрямь оштрафуют - последствия для нас будут куда хуже.

    Да, и что иерусалимский суд иск против Airbnb отклонит - тоже надеюсь, но надежда эта очень хиленькая. Ясен пень, щас мы всех уважать себя заставим.
     
     
    Current Music: Aura Blaze (https://www.youtube.com/watch?v=2_y93m9ZQKw)
     
     
    Кот Муций
    24 November 2018 @ 03:33 am
    Настраивал давеча в одной сеточке синхронизацию часов и был поражён, внезапно обнаружив, что в il.pool.ntp.org не осталось ни одного IP-адреса. Совсем недавно была парочка, а теперь всё.

    В Израиле публичных NTP-серверов не дофига. Попытался использовать сервер Israel Internet Association, timeserver.iix.net.il - но и тут вышел облом. Он, похоже, лишь израильские IP обслуживает - а у моей сеточки, так уж вышло, они значатся как зарубежные. Плюнул и пошёл тянуть время с иностранных серверов.

    Всё-таки, мне кажется, должен быть какой-то минимум сетевых служб, которое приличное государство должно поддерживать для своих жителей - без тоталитарных попыток заставить пользоваться только ими, и без дурацких попыток ограничить доступ к ним лишь определённым сетям. Я бы в перечень включил DNS, NTP, e-mail и службу аутентификации, IdP.

    Всё ж таки ситуация, когда огромное количество организаций, включая государственные, полагаются на гугловский DNS 8.8.8.8 как на главный и зачастую единственный источник, нездоровая.
    Tags:
     
     
    Current Music: Bustan Abraham - Canaan
     
     
    Кот Муций
    23 November 2018 @ 03:50 am
    Скажите, мне одному кажется, что схема верификации, которую использует LetsEncrypt - это издевательство над логикой?

    Работает так:
    * клиент хочет сертификат для сайта example.org;
    * пускай он разместит нечто по адресу http://example.org/some/path - мы это нечто проверим, и если оно окажется тем, что мы ожидаем увидеть, то это послужит доказательством того, что юзер - законный владелец этого имени хоста и вправе получить на него сертификат.

    Но ведь это же абсурд. Сертификат нам затем и нужен, чтобы удостоверять подлинность сайта - как же можно считать обращение к сайту доказательством его подлинности, когда сертификата ещё нет?

    Да, они там важно надувают щёки, что дескать все посылаемые значения криптографически заверены - но откуда берётся это доверие изначально, как можно знать, что чувак, зарегистрировавшийся в LetsEncrypt с каким-то там личным ключом и подписавший им это самое нечто, вообще имеет право на этот сайт?

    И если ни личный ключ, ни запрос на сайт не доказывают ничего, то как может являться доказательством их гибрид?

    Для того, чтобы оценить маразм идеи, достаточно знать следующее: в новой версии Google Sites при создании сайта с custom domain Гугл автоматически выписывает ему сертификат от LetsEncrypt. Автоматически. LetsEncrypt у держателя домена не проверяет ничего. Сразу выдаёт сертификат Гуглу. Всё. Совершенно не нужно ничего понимать в криптографии, чтобы понять, какая это профанация.

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

    Да, более традиционные процедуры domain validation тоже не лишены слабых мест: и создание DNS-записей с рандомальными значениями, и уж тем более получение мейла на адрес вида admin@example.org. Но то, что позволяет LetsEncrypt - это man-in-the-middle как он есть. Это не безопасность, это сапоги всмятку.

    Поразительно, сколько админов в Сети радостно пишут: сертификаты! бесплатно! бежим брать! - совершенно не задаваясь вопросом, что именно те сертификаты удостоверяют. Бесплатный сыр удивительно эффективно отключает мозги.
     
     
    Current Music: Moonspell - 1755
     
     
    Кот Муций
    10 November 2018 @ 02:56 pm
    Зашёл почитать, что новенького есть в новой версии шифровального протокола TLS, в девичестве SSL (которая скоро будет использоваться всякий раз, когда мы жмём на линк с https:// и во многих, многих других случаях) - и был крайне сильно шокирован. Прямо в RFC, официальном документе, описывающем протокол, открытым текстом признаётся, что он подвержен replay attack, и что борьба с этим - ответственность разработчиков серверного приложения: вот вы, мол, и постройте систему так, чтобы это было неважно.

    О чём вообще речь?Collapse )
    Почему это возможно в новой версии TLS?Collapse )
    Что предлагается?Collapse )
    Почему это скверная идея?Collapse )
    Частный случайCollapse )

    В общем, брат-админ, где фичу 0-RTT увидишь - там её и прибей.

    P.S. Полезные ссылочки: 1, 2, 3.
     
     
    Current Music: Moonspell - Desastre
     
     
     
    Кот Муций
    15 July 2018 @ 02:47 pm
    Пересматривал фильм "Shadow Dancer" и решил глянуть, откуда взялось словечко "peelers", которым персонажи (члены IRA в Северной Ирландии) называют ментов. Оказалось забавно: оба прозвища британских полицейских - bobbies и peelers - происходят от имени одного и того же человека, сэра Роберта Пиля, основателя ирландской и лондонской полиции.

    Тут мне вспомнилось, что фамилия Peel мне знакома из совершенно другого контекста. Глянул - и точно: Вильям Пиль, председатель комиссии Пиля, что рекомендовала правительству в 1937-м раздел Палестины на арабское и еврейское государства - внук того самого Роберта Пиля. Естественно, его отец так же был политиком, хотя не столь известным.

    Да, а фильм хороший. Рекомендую.
     
     
    Current Music: King Crimson - Happy Family
     
     
    Кот Муций
    16 June 2018 @ 02:20 am
    Загадочный случай: приснилась песенка в стиле кантри, на английском, естественно, в которой неоднократно повторялось слово Shenandoah. Оно мне ни о чём не говорило и мне не казалось, что я слышал его раньше, но запомнилось твёрдо - так что, проснувшись, пошёл гуглить.

    И оказалось:
    - что был такой знаменитый индейский вождь племени Онейда, союзничавший с американскими колонистами во время их войны за независимость.
    - что в честь него в Америке названа река, прорва городков, а также корабли, самолёты и самокаты.
    - что есть современная певица Joanne Shenandoah, исполняющая индейскую музыку и числящая этого самого вождя в предках,
    - и наконец, что есть известнейшая песня неизвестного авторства "Oh Shenandoah", о любви белого к дочери этого самого вождя, и исполняла её масса знаменитых музыкантов, включая Боба Дилана, Ван Моррисона, и даже Джерри Гарсиа.

    Я её на ютюбе незамедлительно послушал, и даже в нескольких вариантах. Вот только она оказалась ничуть непохожа на песенку, приснившуюся мне - та была куда побыстрее и пободрее. Но к сожалению, слова той я вовремя не загуглил, и попытки обнаружить какие-то другие песни с этим словом провалились. Так что теперь остаётся лишь гадать - то ли где-то я её всё же слышал, то ли она таки существовала исключительно во сне.

    Может, с каждым любителем фолка в какой-то момент происходит что-либо подобное? :-)
     
     
    Current Music: Skyclad - Vintage Whine
     
     
    Кот Муций
    03 June 2018 @ 01:14 am
    Читал сегодня, несколько офигел:
    https://www.hrw.org/report/2015/09/22/look-another-homeland/forced-evictions-egypts-rafah

    То, что египетская армия сносит постройки в Рафиахе - про это я слышал. Но масштабы себе не представлял. Уничтожено по меньшей мере 3255 зданий, 685 гектаров обрабатываемой земли, точное количество насильственно переселённых не указывается, но должно быть несколько десятков тысяч, причём сменное жильё им власти не обеспечивали - какая-то очень частичная денежная компенсация в зубы и крутись как хочешь...

    В Гугл-мэпсах размер разрушений виден очень хорошо.
    Tags:
     
     
    Current Music: Camel - Mother Road
     
     
    Кот Муций
    01 June 2018 @ 10:54 pm
    Ничосе какой эпизод. Не знал.
    https://en.wikipedia.org/wiki/Sinking_of_the_Rainbow_Warrior

    TLDR: в 1985-м агенты французской спецслужбы взорвали корабль Гринписа, чтобы помешать протестам против французских ядерных испытаний на атолле Моруроа. Один погибший.
     
     
    Current Music: Somali Yacht Club - Blood Leaves a Trail
     
     
    Кот Муций
    За последнее время много вожусь с IaaS-облаком; хочется излить несколько наблюдений, как подходы, принятые в обычных, невиртуализированных системах некритически переносятся в облачную среду:

    1. Неоднократно наблюдал, как на облачных серверах баз данных или там Exchange люди привычно ставят диск для баз, и отдельно - диск на transaction logs, думая, что это улучшит производительность. Да с чего бы? На обычном железе в этом был простой, понятный смысл: на диске баз данных считывающая головка может прыгать между секторами как угодно, а на диске логов будет большую часть времени просто записывать в хвост. Соответственно, лучше, чтобы диски были разные.
    Но зачем это делать в облаке, где все эти диски - всего лишь файлы на датасторе? Если они хранятся на одном и том же физическом хард-диске - ну так значит, он обречён крутиться псевдорандомально. Но даже если мы разнесём их на разные хранилища - один чёрт каждое из них используется тучей прочего народу. Предсказать, как реально будут крутиться хард-диски в этих хранилищах - абсолютно невозможно.

    Впрочем, по мере ухода магнитных дисков этот вопрос отпадёт окончательно. Хотя и тогда по инерции админы будут разносить базы и логи - у нас так заведено.


    2. Продолжая тему дисков - объясните мне кто-нибудь, а какой смысл в локальных дисках в облаке? Почему не определить любой, или хотя бы любой data disk как shared? (Шишков, прости...) Это в физическом мире у нас есть либо SAN, либо просто SCSI-кабель к дискам, который больше чем в один компьютер не воткнёшь. А в виртуальном какая разница, какое устройство эмулировать - SCSI-контроллер или HBA какой-нибудь? Один чёрт наши диски - просто файлы на каком-то датасторе.

    Сегодня облака shared disks обычно не предоставляют, и поэтому, чтобы завести какой-нибудь кластер на виртуалках, который их требует (да хотя бы файлсервер на микрософтовском Failover Cluster) нужно сооружать дикие турусы на колёсах. А как было бы просто: кликаешь в облачном портале мышкой пару раз - вот тебе виртуалка с диском. Кликаешь ещё - вот тебе вторая, третья, восьмая виртуалка, и все видят тот же диск. А дальше дело твоё, как их координировать: либо только главный сервер кластера юзает диск, либо ставь файловую систему, поддерживающую доступ со многих, типа VMFS или GFS2.


    3. VLANs и, шире говоря, Ethernet вообще. Как-то упускается из виду, что в обычных локальных сетях broadcast domains существуют не от хорошей жизни, а оттого, что каждый компьютер в порт файерволла не воткнёшь. Хотелось бы инспектировать трафик между любыми двумя хостами - но что делать, свитчи функциональностью современного файерволла не обладают, а если такие и есть, то цена у них заоблачная, pun intended. Поэтому, если не хочется угробить производительность, приходится разбивать сеть на какие-то секьюрити-зоны, отказываться от возможности фильтровать трафик внутри них и удолетворяться фильтрацией между ними. Кроме того, VLAN-ы позволяют с лёгкостью гонять групповой и широковещательный трафик.

    Но это не то, что я хотел бы от облака! Там-то мне возможность фильтровать трафик между двумя любыми машинами гораздо чаще пригождалась бы, чем преимущества broadcast domains.

    Пример: допустим, у меня классический расклад - 20 вебных фронтэндов, за ними SQL Server. По логике секьюрити-зон, мне надо засунуть фронтэнды в один VLAN, SQL - в другой, и контролировать трафик между ними. Но тогда фронтэнды могут между собой неограниченно общаться - а зачем мне это надо? Им нужно говорить с HTTP-клиентами и с SQL-сервером, а друг дружке им что-либо передавать незачем.

    Тут пригодился бы Private VLAN, но облако такое не предоставляет. Наштамповать отдельный VLAN под каждый фронтэнд можно, но мы упрёмся в иные ограничения. Приходится сажать их в общий, а это лишний риск.

    Надо сказать, что Микрософт это как раз осознали - в Azure классического Ethernet-а нету, они там наворотили что-то своё на Layer2. В результате можно фильтровать трафик между любыми машинами, даже если они сидят в одном сабнете - но любой неюникастовый и, шире, любой не-IP трафик не поддерживается. По-моему, выбор в правильную сторону.


    А у вас какие наблюдения?
     
     
    Current Music: Joni Mitchell - Clouds