Category: it

Category was added automatically. Read all entries about "it".

FIPS

Дальше всякое сисадминское.

FIPS это Федеральный Стандарт по Обработке Информации (Federal Information Processing Standard). Когда говорят FIPS, обычно подразумевают публикацию Национального Института Стандартов и Технологий (NIST) за нумером 140-2. В ней описываются всяческие стандарты безопасности, включая алгоритмы шифрования, генерации случайных чисел и т.д. В России тоже есть аналог этого документа, это ГОСТ 54583-2011.

В Винде режим совместимости с FIPS включается довольно просто — либо через групповые политики (если у нас домен) или же через локальные настройки безопасности: Local Policies -> Security Options -> Use FIPS Compliant algorithms for encryption, hashing, and signing. Это заставит все программы, выполняемые на компьютере, использовать только безопасные алгоритмы. Если же программа захочет использовать небезопасный алгоритм (например, алгоритм хеширования MD5), то она вывалится с ошибкой “не шмагла”, а в евентах останутся соответствующие матюги от SCHANNEL.

И вот заодно пнём Линукс. Вернее, не сколько сам Линукс, сколько восторженных линуксофанатов. Скажите мне, дарагие друзиа, как на вашей любимой платформе включается режим совместимости с FIPS? А? Чего молчите? Ну, тогда отвечу я: НИКАК. Чтобы получить FIPS-совместимый Линукс, надо менять ядро на FIPS-совместимое, а оно (кокой сурприз!!) — продаётся и обновляется строго за деньги. Просто вы, дарагие друзиа, ничего сложнее пишмашинки или стандартного LAMP-сервера в жизни не делали, поэтому продолжаете считать, что Линукс — он бесплатный.

Пойдём далее. Самая большая засада с включением FIPS в том, что весь софт, который не умеет в SHA, AES и прочие умные слова, перестаёт работать. И ладно там если перестаёт работать какое-то самописное изделие или ещё какой несерьёзный софт. А вот у меня вчера перестал работать SQL Server. Ага, вот так вот, мля, знай наших! Вернее, перестал работать не сам сервер баз данных, а сервис линкования серверов. Он же шпарит по шифрованому протоколу между сервантами. И вот видимо конкретно эта часть не является FIPS-совместимой, так как от сервера прилетает TCP RST сразу после попытки TLS-рукопожатия.

Будем сегодня разбираться, не то это DBA чего-то не так наконфигурял, либо надо писать телегу в Microsoft, чтобы FIPS-совместимый продукт стал, наконец, FIPS-совместимым.

Mirrored from Лабораторный Журнал №6.

Пнём Линукс

Есть у меня флешка на 128 гигабайт. Винда её форматирует NTFS примерно секунды две. Та же самая флешка, воткнутая в Линуксовую машину, форматируется ext4 уже полчаса. И конца-края этому процессу не видно.

Современная, дружественная пользователю операционная система, да.

PS: Не говоря уже о том, что NTFS в сто раз круче ext4. На флешке, правда, не так важно.

Mirrored from Лабораторный Журнал №6.

PHP порадовал

Нашёл старенький пример, который, оказывается, до сих пор работает.

var_dump(md5(‘240610708’) == md5(‘QNKCDZO’));

Выдаёт bool(true).

То-есть, MD5 хеши для строк ‘240610708’ и ‘QNKCDZO’ являются одинаковыми (с точки зрения PHP).

С нормальной точки зрения хеши неодинаковы. Первый 0e462097431906509019562988736854, второй — 0e830400451993494058024219903391.

Но. Оператор сравнения == в PHP может на ходу преобразовать тип данных (type mangling). Эти строки оно переделывает в цифры в экспоненциальной записи. Всё, что до ‘e’ — мантисса, всё, что потом — порядок. А так как мантисса у нас 0, её можно умножать хоть на чёрта лысого, она всё равно останется нулём. 0 == 0, естественно, возвращается true.

Вот, что случается, когда кто-то придумывает свой язык программирования с синтаксисом Си, но что-то записанное этим синтаксисом, работает не как в Си.

В PHP данная ошибка программиста (программиста ли?) лечится использованием специального оператора сравнения === вместо ==, т.е. строгим сравниванием вместо обычного, без преобразования типов.

Вот именно поэтому не следует учиться программированию на языках со слабой и динамической типизацией данных. На питонах, перлах и php можно, например, сравнить “1” и 5. А Джава незамедлительно пошлёт погромиста нахер: не сравнивай божий дар с яичницей. Плюс на Джаве то, что выглядит так как на Си, работает так же. Что, на мой взгляд, архиверно.

Mirrored from Лабораторный Журнал №6.

Про десятую винду

Меня, в принципе, десятая винда удовлетворяет. Хотя стартовое меню я до сих пор считаю одним из кривейших решений в истории Микрософта. Его, конечно, можно настраивать, и сделать довольно удобным, но всё равно — хреновое это решение, если честно. Это, впрочем, не с десятой винды началось, а ещё с восьмой. И что характерно, совершенно непонятно, почему и зачем. То-есть, в случае с десятой виндой ещё более-менее понятно — ради лучшей работы на мобильных устройствах (Microsoft Surface весьма неплохо себя чувствует на рынке, у меня даже такое есть). Но совершенно непонятно, на кой хер это издевательство надо было тянуть на серверные версии винды, там что, тоже мобильные устройства, что ли? Ага, сервер баз данных на планшете. Или доменный контроллер. Рехнуться и не встать.

Но одна вещь в десятой винде просто ВЫБЕШИВАЕТ. Это работа с не очень стандартными USB устройствами. Почему-то тут всё строго через анальное отверстие.

Вот у меня, например, есть игра RockSmith. Игра заключается в том, чтобы подключить настоящую электрогитару с компу и играть по табам. В комплекте с игрой идёт USB кабель, с точки зрения компьютера представляющий собой USB микрофон. Один конец кабеля в комп, другой в разъём 1/4 дюйма на родном стратокастере и погнали.

Так вот заставить этот микрофон работать на десятой винде — это просто майн кампф какой-то. В последний раз я это сделал, вынеся ВСЕ USB устройства из диспетчера устройств к соответствующей матери нахер. После этого оно заработало. Но проработало недолго — до следующего обновления. Потому что в обновлении они в очередной раз что-то докручивают, после чего нихера не фурычит.

И ладно бы ещё устройства третьих фирм бы ломались. Но сейчас я, например, не могу заставить винду увидеть контроллер от коробокса. Хотя уж, ЕПТЫТЬ, казалось бы — Микрософтовский же продукт! И Микрософтовская ОС его в упор не видит.

Что за ерунда….

Mirrored from Лабораторный Журнал №6.

Распознавание задниц

Распознавание лиц — прошлый век, будущее — за распознаванием задниц!!!

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

Правда, дальше лаборатории это дело не пошло.

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

Mirrored from Лабораторный Журнал №6.

Про 42

Хотел написать про то, как мне лично было непонятно, чем так гордится группа исследователей Массачуссетского Технологического, которая нашла значения x, y, и z, при которых x3 + y3 + z3 = 42.

Набросал для расчётов свою прогу на Джаве. И не могу сказать, что она не работала. Она прекрасно работала для многих цифр, в том числе, и для любимого числа Шелдона Купера (73). Но дальше, имея на руках порядки полученных в MIT цифр для 42, прикинул вычислительную сложность, и охренел — т.к. решать данную проблему, как говорится, “в лоб” на самом ультрасовременном суперкомпьютере с его двумя сотнями петафлопсов с лихером придётся э…. не намного меньше, чем возраст наблюдаемой Вселенной.

Устыдился, пошёл читать про алгоритм, которым раньше было решено уравнение x3 + y3 + z3 = 33. Оказалось, что там, мягко говоря, очень не в лоб решали. Устыдился окончательно. Полезно вот так иногда, рожей об стол, для скромности и смиренности.

Mirrored from Лабораторный Журнал №6.

Отбивательство

Блин, последнюю неделю практически все мои разговоры на работе происходят так:

Тестеры: Вы добавили на фаерволл ексепшены?
Я: А вы мне прислали список ексепшенов как я потребовал две недели назад?
Тестеры: Вот прямо щас поглядим и пришлём!

Программисты: вы установили наш новый код на веб-приложение?
Я: А вы его скомпилировали и мне его дали, как я просил три недели назад?
Программисты: Дайте пять минут, пришлём!

Отдел документации: что-то мы до сих пор не видим новую базу данных, которую мы просили добавить
Я: А вы прислали мне схему БД которую я уже вторую неделю ежедневно прошу, чтобы я её добавил?
Отдел документации: Ну добавьте хоть чего!
Я: Чего добавлять-то? Тонну таблиц и толпу варчаров? А какой длины? Сколько? А индексы где будем делать? А проверки на уникальность? А первичный ключ надо? А кто к этому должен иметь доступ, и какой?
Отдел документации: Мы щас подумаем.

Начальник: Чего-то у нас нихера не работает!
Я: У меня все ходы записаны.
Начальник: Понятно. Щас я их смотивирую.

А завтра будет, японский бог, ровно то же самое.

Mirrored from Лабораторный Журнал №6.

Вчера Линукс чинили-чинили

Ставили на виртуальную машинку обновлённое ядро. Поставили, обновили грабли (GRUB), перегружаемся… в старое ядро. Чо за нах. Стёрли нахер старый /boot/vmlinuz, так что единственным vmlinuz осталось новое ядро. Перегружаемся… в старое ядро. КАК??? ОТКУДА?? Как машина может загрузиться ядро, которого даже на диске нет? Всё перепроверили, заново поставили новое ядро, перепроверили грабли, перегружаемся… в старое ядро.

Я чуть крышей не поехал. Откуда оно берётся-то? Делаем find / -name “vmlinuz*”. Нихера, кроме нового ядра.

Наконец от отчаяния смотрим в syslog и видим какие-то упоминания /dev/sda, при том, что у нас вроде как один диск, и ОС у нас стоит на /dev/sdb. Выясняем наконец, что к машине прицеплен второй диск, который нигде не смонтирован — но на нём, ядрёна вошь, стоит vmlinuz, в который и грузится наша виртуалка!

Отцепляем диск нахер и наконец нормально грузимся в новое ядро.

Давненько я не чувствовал себя таким идиотом. Это бодрит.

Mirrored from Лабораторный Журнал №6.

Вопросы на интервью, помощь зала

Мне надо будет нанять сисадмина; но так как мы теперь семимильными шагами идём в облако, от сисадмина теперь требуется опыт программирования. Не сильно углублённого, но надо, чтобы человек понимал основы написания скриптов.

Сижу чешу репу над списком вопросов.

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

1. Если нужно совершить одно и то же действие пять раз, как это лучше всего сделать внутри скрипта?
2. Если мне надо получить пронумерованный список всех компьютеров в домене, как проще всего это сделать?
3. Нужно написать скрипт, который будет посылать извещение сисадмину, если в домене появятся учётные записи, пароль которых никогда не истекает. Как это лучше всего написать?
4. if (a = 0) { .. } — почему данное условие либо не работает вообще, либо не работает правильно?

Какие ещё будут предложения?

Mirrored from Лабораторный Журнал №6.

Про облачное сисадминство

Скажу я вам, что оно мне нравится значительно больше традиционного. Во-первых, тем, что не нужно делать нудную неинтересную работу типа проверки статуса дисков в массиве, их замены, и прочего. Это позволяет сконцентрироваться на более интересных (и денежных) аспектах сисадминства — управлением AD, настройкой сетей, администрированием баз данных, и так далее. А витую пару-то обжимать можно и мартышку научить.

Но самый неожиданный аспект данного сисадминства лично для меня заключается в том, что оно сильно сдвинуло меня в область программирования. Потому что Правильное Облачное Сисадминство — это Инфраструктура как Код, что подразумевает руление ресурсами в первую очередь через использование JSON-шаблонов, нарисованных в Visual Studio исполняемых Team Foundation Server, и далее по алфавиту.

Особенно важно использовать Инфраструктуру как Код если надо создавать туеву хучу одинаковых ресурсов. Я могу, например, 20 виртуальных машин с SQL Server-ом создать за 5 минут. Удачи угнаться если делать всё это руками.

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

Короче, лублу и керемендую.

Mirrored from Лабораторный Журнал №6.