Русский
Русский
English
Статистика
Реклама

Блог компании cloud4y

Правоохранители США могут изучать содержимое даже заблокированных гаджетов

14.12.2020 16:17:31 | Автор: admin

Громкие публичные заявления правоохранительных органов о трудности получения информации с заблокированных гаджетов не должны вводить вас в заблуждение. Информацию получают все, кто способен за это заплатить. Cloud4Y рассказывает, как это делается в США.

Когда были придуманы компактные мобильные телефоны, общество возликовало. Это было удобно. Обрадовались и мошенники. Устройства были маленькие и дорогие, поэтому их легко можно было вырвать из рук или вытащить из кармана. В 2007 году, после презентации первого устройства от Apple, ценность мобильного устройства стала ещё выше.

Тогда производители стали создавать системы защиты вроде Find My iPhone, что позволило снизить количество краж. Тогда появилась другая проблема. Хакеры быстро научились взламывать гаджеты для кражи личных данных. А позже начали продавать всем желающим обучающие видеоролики, показывающие, как самостоятельно взламывать те самые iPhone.

Тогда Apple начала работу над защитой данных в телефонах. Начиная с iOS 5, выпущенной в 2011 году, компания зашифровывала конфиденциальную информацию на устройстве с помощью ключа, объединяющего ПИН-код пользователя с аппаратным ключом телефона. Защиту улучшили в 2014 году, после перехода на iOS 8. Тогда более 90% данных смартфона стали защищены. То есть формально сейчас более 90 процентов данных на телефоне доступно только пользователю. И только он может открыть доступ к ним.

Новая защита обрадовала не всех. Так, правоохранительные органы утверждали, что эти инструменты помогают защищать преступников, ведь полиция и спецслужбы не могли изучить содержимое заблокированного устройства подозреваемого в преступлении. Новые функции смартфонов усложняют нашу задачу по защите общественной безопасности, сетовал окружной прокурор Манхэттена Сайрус Вэнс-младший в газете Washington Post в 2015 году, упирая на трудности с доступом к содержимому заблокированных телефонов и зашифрованным сообщениям.

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

MDFT как способ собрать доказательства

Эти аппаратные и программные инструменты собирают с мобильных телефонов все важные для криминалистов данные:

Сбор данных разными способамиСбор данных разными способами
  • Сообщения, электронные письма и фотографии;

  • Данные о том, когда были отправлены сообщения и электронные письма и где были сделаны фотографии;

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

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

MDFT отлично работает с этими платформамиMDFT отлично работает с этими платформами

Как минимум 2 000 из 18 000 правоохранительных органов США, включая 50 крупнейших полицейских департаментов страны, приобрели доступ к этим инструментам.

Правоохранительные органы много раз говорили о необходимости доступа к заблокированным телефонам для раскрытия серьезных преступлений: терроризма, убийств и детской порнографии. Но правда ли правоохранительные органы используют эти инструменты только для таких важных дел? Ведь наверняка велик соблазн использовать эти инструменты для расследования множества менее серьезных преступлений. Например, граффити, краж в магазинах, хранении наркотиков, проституции, вандализма и пр. Слабо верится, что никто из правоохранителей ни разу не использовал MDFT для того, чтобы облегчить себе жизнь.

Нужно подчеркнуть, что MDFT это относительно новая вещь, её используют далеко не везде. Но сам по себе этот инструмент весьма спорен, поскольку нарушает гражданские свободы людей. Директор ФБР Кристофер Рэй однажды пожаловался, что шифрование, подобное тому, которое используется на iPhone, препятствует доступу правоохранительных органов к важным уликам. Но Upturn обнаружил, что MDFT умеет копировать все данные, найденные на мобильном телефоне. Все это значит ваши контакты, фотографии, видео, сохраненные пароли, записи GPS, записи об использовании телефона и даже удалённые данные. Затем собранная информация сортируется, чтобы правоохранительные органы могли легко её просмотреть.

Экран Выбор типа извлечения предлагает различные варианты для типа извлечения и разблокировки устройстваЭкран Выбор типа извлечения предлагает различные варианты для типа извлечения и разблокировки устройстваМожно скачать определённые типы данных или всё сразуМожно скачать определённые типы данных или всё сразу

Кроме того, MDFT имеет и другие функции, которые упрощают работу правоохранительных органов. Например, инструмент Cellebrite может сравнивать изображение лица из полицейской базы данных с лицами на фотографиях, хранящихся в телефоне. А ещё есть функция сортировки текстовых сообщений по темам, таким как наркотики, деньги или оружие.

Сортировка контента с гаджета по темам - это очень удобноСортировка контента с гаджета по темам - это очень удобно

MDFT работает с множеством моделей телефонов. Тот же Cellebrite может извлекать данные со всех устройств iPhone, начиная с iPhone 4S и заканчивая последним iPhone 11/11 Pro/Max с последними версиями iOS до последней 13.4.1. Компания-разработчик утверждает, что может обрабатывать даже заблокированные iPhone и устройства Android.

Узаконенный взлом за деньги

То есть меры безопасности, введенные Apple и Google (разработчиком Android) для защиты данных владельцев смартфонов, усложнили всем, в том числе правоохранительным органам, доступ к личным данным на телефоне. А MDFT позволяет решить эту маленькую проблемку. За деньги, разумеется. С 2015 года полицейское управление Лас-Вегаса потратило на MDFT более 640 000 долларов, а управление полиции Майами более 330 000 долларов. Особо отличился Мичиган потрачено свыше 1 миллиона долларов.

Другими словами, средства защиты Apple и Google, по-видимому, достаточно хороши, чтобы противостоять случайным преступникам. Но они, похоже, не удерживают кого-либо с достаточно большим бюджетом, позволяющим платить за MDFT.

Да, MDFT не работает идеально. Не все телефоны ему подвластны, и не всегда удаётся получить все данные с телефонов, которые удалось разблокировать. Однако сам по себе факт использования этого инструмента вкупе с массой неконтролируемых и неизбирательных полицейских обысков с изъятием мобильных устройств выглядит весьма угрожающе. Этот вопрос никак не регулируется законодательством, а потому правоохранители могут действовать так, как им заблагорассудится.

Учитывая объём личной информации на телефоне человека, можно с уверенностью заявить, что такая деятельность ущемляет права и свободы граждан страны. В США даже Верховный суд постановил, что для изъятия и изучения мобильного телефона подозреваемого требуется ордер. Однако пока что полицейские тайно взламывают и исследуют содержимое телефонов подозреваемых, в то время как высокое начальство публично критикует системы защиты и шифрования, используемые разработчиками мобильных телефонов и приложений.


Что ещё интересного есть в блогеCloud4Y

В тюрьму за приложение

20000 петабайт под водой: есть ли перспективы у подводных центров обработки данных

Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?

Рассказываем про государственные защищенные сервисы и сети

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Перевод Пароль как крестраж ещё один способ защитить свои учётные данные

12.02.2021 10:14:08 | Автор: admin

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

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

Правила интернет-безопасности

  1. Длинный пароль лучше короткого. Если длина пароля составляет 16 символов, его почти невозможно подобрать. => cutesamantha15101995 > cutesamantha

  2. Случайные пароли лучше, чем пароли, позволяющие идентифицировать владельца пароля.=> process-cancel-stingy-garnet > cutesamantha15101995

Примечание: технически кодовая фраза process-cancel-stingy-garnet отлично может использоваться в качестве пароля. Она длинная и легко запоминается. В отличие от, скажем, B6fSpxMj&f6DU@5^k длинного сложного пароля из случайных символов.

3. Иметь принципиально разные пароли для разных учётных записей.

Один и тот же пароль для разных учётных записей это всё равно, что один и тот же ключ для разных замков. Ведь вся суть нескольких замков в том, что они _разные_! Кроме того, если использовать несколько паролей, отличающихся одним словом, которое легко угадать (например, ниже), то вы сильно рискуете. Пароли должны отличаться. Например:

bounce-unfold-stunning-chute        process-cancel-stingy-facebooksymptom-untouched-unpaid-arena  >   process-cancel-stingy-twittersediment-tweak-annually-koala       process-cancel-stingy-gmail

4.По возможности используйте двухфакторную / многофакторную аутентификацию.

Google, Facebook и многие другие сайты предлагают функцию двухфакторной аутентификации, когда второй фактор требуется только при входе в систему с нового устройства или из нового местоположения. Каждый раз вводить проверочный код не требуется. Это редкое сочетание удобства и безопасности!

Примечание: рекомендую использовать andOTP (или любые другие приложения на основе TOTP), поскольку его нельзя подделать или подсмотреть на заблокированном экране, как SMS OTP, и для него не требуется мобильная сеть или подключение к интернету. Вы также можете использовать биометрию (отпечаток пальца или распознавание лица).

Ух. Насколько реально вообще использовать длинный пароль для несметного количества сайтов, чтобы все они существенно отличались друг от друга, и при этом помнить каждый? Безопасность способна обеспечить серьёзную головную боль!

[Enter] Менеджер паролей

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

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

Например, генератор паролей BitWardenпозволяет создать случайный пароль с разными характеристиками.

Ура, я в безопасности!

Вы аккуратно храните все свои пароли в надёжном менеджере паролей.Получается, что, вы можете расслабиться, зная, что ваша цифровая жизнь действительно защищена.Или нет?

Что, если:

  • Ваш главный пароль (пароль к вашему менеджеру паролей) скомпрометирован из-за нарушения безопасности или вы оставили его в виде открытого текста письме, заметках или другом приложении?

  • Кто-то на время получил доступ к вашей разблокированной системе (компьютеру или телефону), когда вы отошли, а ваш менеджер паролей был запущен, и его содержимое можно было посмотреть?

Ответ: тыоблажался.

Когда кладёшь все яйца в одну корзину, то рискуешь, что все они могут уйти в небытие одним махом.И что тогда делать?

Пароли как крестраж

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

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

По сути, в любой момент времени вы и ваш менеджер паролей знаете только часть пароля. Это и есть двойной скрытый пароль. Фактически, как и Сами-Знаете-Кто, вы разбиваете свой пароль (душу) на части и храните их в разных местах.

До:

#Как хранится в диспетчере паролейЛогин: rickПароль: rollthepeople1732#Фактически выглядитЛогин: rickПароль: rollthepeople1732

Теперь:

#Как хранится в диспетчере паролей Логин: rickpassword: roll-the-people-venus#Как хранится в вашей головеКрестраж: papel#Фактически выглядит Логин: rickПароль: roll-the-people-venuspapel

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

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

Последний момент

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

Резюмируем

  1. Используйте хороший менеджер паролей.

  2. Используйте TOTP/биометрию вместо OTP на основе SMS.

  3. Используйте крестраж для наиболее важных учёток.

P.S. Имейте в виду, что крестражирование работает нормально только до тех пор, пока вы не подключите свой мозг к NeuraLink и случайно не загрузите свои мысли в интернет, где все смогут их увидеть ;).


Что ещё интересного есть в блогеCloud4Y

В Китае создали настольный квантовый компьютер стоимостью $5000

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Виртуальные машины и тест Гилева

Создание группы доступности AlwaysON на основе кластера Failover

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Перевод Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

16.03.2021 10:10:28 | Автор: admin

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

Nginx один из наиболее часто используемых веб-серверов в Интернете, поскольку он модульный, отзывчивый под нагрузкой и может масштабироваться на минимальном железе. Компания Detectify регулярно сканирует Nginx на предмет неправильных настроек и уязвимостей, из-за которых могут пострадать пользователи. Найденные уязвимости потом внедряются в качестве теста безопасности в сканер веб-приложений.

Мы проанализировали почти 50 000 уникальных файлов конфигурации Nginx, загруженных с GitHub с помощью Google BigQuery. С помощью собранных данных удалось выяснить, какие ошибки в конфигурациях встречаются чаще всего. Эта статья прольёт свет на следующие неправильные настройки Nginx:

1. Отсутствует корневой каталог

2. Небезопасное использование переменных

3. Чтение необработанного ответа сервера

4. merge_slashes отключены

Отсутствует корневой каталог

server { root /etc/nginx; location /hello.txt { try_files $uri $uri/ =404; proxy_pass http://127.0.0.1:8080/; }}

Root-директива указывает корневую папку для Nginx. В приведённом выше примере корневая папка /etc/nginx, что означает, что мы можем получить доступ к файлам в этой папке. В приведенной выше конфигурации нет места для / (location / {...}), только для /hello.txt. Из-за этого root-директива будет установлена глобально, а это означает, что запросы к / перенаправят вас на локальный путь /etc/nginx.

Такой простой запрос, как GET /nginx.conf, откроет содержимое файла конфигурации Nginx, хранящегося в /etc/nginx/nginx.conf. Если корень установлен в /etc, запрос GET на /nginx/nginx.conf покажет файл конфигурации. В некоторых случаях можно получить доступ к другим файлам конфигурации, журналам доступа и даже зашифрованным учётным данным для базовой аутентификации HTTP.

Из почти 50 000 файлов конфигурации Nginx, которые мы проанализировали, наиболее распространёнными корневыми путями были следующие:

Потерявшийся слеш

server { listen 80 default_server;server_name _;location /static { alias /usr/share/nginx/static/; }location /api {                proxy_pass http://apiserver/v1/; }}

При неправильной настройке off-by-slash можно перейти на один шаг вверх по пути из-за отсутствующей косой черты. Orange Tsai поделился информацией об этом в своём выступлении на Blackhat Нарушение логики парсера!. Он показал, как отсутствие завершающей косой черты в location директиве в сочетании с alias директивой позволяет читать исходный код веб-приложения. Менее известно то, что это также работает с другими директивами, такими как proxy_pass. Давайте разберёмся, что происходит и почему это работает.

location /api { proxy_pass http://apiserver/v1/; }

Если на Nginx запущена следующая конфигурация, доступная на сервере, можно предположить, что доступны только пути в http://apiserver/v1/.

http://server/api/user -> http://apiserver/v1//user

Когда запрашивается http://server/api/user, Nginx сначала нормализует URL. Затем он проверяет, соответствует ли префикс /api URL-адресу, что он и делает в данном случае. Затем префикс удаляется из URL-адреса, поэтому остаётся путь /user. Затем этот путь добавляется к URL-адресу proxy_pass, в результате чего получается конечный URL-адрес http://apiserver/v1//user.

Обратите внимание, что в URL-адресе есть двойная косая черта, поскольку директива местоположения не заканчивается косой чертой, а путь URL-адреса proxy_pass заканчивается косой чертой. Большинство веб-серверов нормализуют http://apiserver/v1//user до http://apiserver/v1/user, что означает, что даже с этой неправильной конфигурацией всё будет работать так, как ожидалось, и это может остаться незамеченным.

Эта неправильная конфигурация может быть использована путём запроса http://server/api../, из-за чего Nginx запросит URL-адрес http://apiserver/v1/../, который нормализован до http://apiserver/. Уровень вреда от такой ошибки определяется тем, чего можно достичь, если использовать эту неправильную конфигурацию. Например, это может привести к тому, что статус сервера Apache будет отображаться с URL-адресом http://server/api../server-status, или он может сделать доступными пути, которые не должны быть общедоступными.

Одним из признаков того, что сервер Nginx имеет неправильную конфигурацию, является возврат сервером одинакового же ответа при удалении косой черты в URL-адресе. То есть, если http://server/api/user и http://server/apiuser возвращают один и тот же ответ, сервер может быть уязвимым. Он позволяет отправлять следующие запросы:

http://server/api/user -> http://apiserver/v1//userhttp://server/apiuser -> http://apiserver/v1/user

Небезопасное использование переменных

Некоторые фреймворки, скрипты и конфигурации Nginx небезопасно используют переменные, хранящиеся в Nginx. Это может привести к таким проблемам, как XSS, обход HttpOnly-защиты, раскрытие информации и в некоторых случаях даже RCE.

SCRIPT_NAME

С такой конфигурацией, как эта:

location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; }

основная проблема будет заключаться в том, что Nginx отправит интерпретатору PHP любой URL-адрес, заканчивающийся на .php, даже если файл не существует на диске. Это распространённая ошибка во многих конфигурациях Nginx, и об этом говорится в документе Ловушки и распространенные ошибки, созданном Nginx.

XSS возможен, если PHP-скрипт попытается определить базовый URL на основе SCRIPT_NAME;

<?phpif(basename($_SERVER['SCRIPT_NAME']) ==basename($_SERVER['SCRIPT_FILENAME'])) echo dirname($_SERVER['SCRIPT_NAME']);?>GET /index.php/<script>alert(1)</script>/index.phpSCRIPT_NAME = /index.php/<script>alert(1)</script>/index.php

Использование $uri может привести к CRLF-инъекции

Другая неправильная конфигурация, связанная с переменными Nginx, заключается в использовании $uri или $document_uri вместо $request_uri.

$uri и $document_uri содержат нормализованный URI, тогда как нормализация в Nginx включает URL-декодирование URI. В блоге Volema рассказывалось, что $uri обычно используется при создании перенаправлений в конфигурации Nginx, что приводит к внедрению CRLF.

Пример уязвимой конфигурации Nginx:

location / {return 302 https://example.com$uri;}

Символами новой строки для HTTP-запросов являются \r (возврат каретки) и \n (перевод строки). URL-кодирование символов новой строки приводит к следующему представлению символов %0d%0a. Когда эти символы включены в запрос типа http://localhost/%0d%0aDetectify:%20clrf на сервер с неправильной конфигурацией, сервер ответит новым заголовком с именем Detectify, поскольку переменная $uri содержит новые URL-декодированные строчные символы.

HTTP/1.1 302 Moved TemporarilyServer: nginx/1.19.3Content-Type: text/htmlContent-Length: 145Connection: keep-aliveLocation: https://example.com/Detectify: clrf

Произвольные переменные

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

Одним из способов проверки является установка значения заголовка referer:

$ curl -H Referer: bar http://localhost/foo$http_referer | grep foobar

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

Чтение необработанного ответа сервера

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

Если клиент отправляет недопустимый HTTP-запрос в Nginx, этот запрос будет перенаправлен на серверную часть как есть, и она ответит своим необработанным содержимым. Тогда Nginx не распознает недопустимый HTTP-ответ и просто отправит его клиенту. Представьте себе приложение uWSGI, подобное этому:

def application(environ, start_response):   start_response('500 Error', [('Content-Type','text/html'),('Secret-Header','secret-info')])   return [b"Secret info, should not be visible!"]

И со следующими директивами в Nginx:

http {   error_page 500 /html/error.html;   proxy_intercept_errors on;   proxy_hide_header Secret-Header;}

proxy_intercept_errors будет обслуживать пользовательский ответ, если бэкенд имеет код ответа больше 300. В нашем приложении uWSGI выше мы отправим ошибку 500, которая будет перехвачена Nginx.

proxy_hide_header почти не требует пояснений; он скроет любой указанный HTTP-заголовок от клиента.

Если мы отправим обычный GET-запрос, Nginx вернёт:

HTTP/1.1 500 Internal Server ErrorServer: nginx/1.10.3Content-Type: text/htmlContent-Length: 34Connection: close

Но если мы отправим неверный HTTP-запрос, например:

GET /? XTTP/1.1Host: 127.0.0.1Connection: close

То получим такой ответ:

XTTP/1.1 500 ErrorContent-Type: text/htmlSecret-Header: secret-infoSecret info, should not be visible!

merge_slashes отключены

Для директивы merge_slashes по умолчанию установлено значение on, что является механизмом сжатия двух или более слешей в один, поэтому/// станет /. Если Nginx используется в качестве обратного прокси и проксируемое приложение уязвимо для включения локального файла, использование дополнительных слешей в запросе может оставить место для его использования. Об этом подробно рассказывают Дэнни Робинсон и Ротем Бар.

Мы нашли 33 Nginx-файла, в которых для параметра merge_slashes установлено значение off.

Попробуйте сами

Мы создали репозиторий GitHub, где вы можете использовать Docker для настройки своего собственного уязвимого тестового сервера Nginx с некоторыми ошибками конфигурации, обсуждаемыми в этой статье, и попробуйте найти их самостоятельно!

Вывод

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

Вторая часть будет позднее.


Что ещё интересного есть в блогеCloud4Y

Пароль как крестраж: ещё один способ защитить свои учётные данные

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

Создание группы доступности AlwaysON на основе кластера Failover

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Зачем взламывают компьютеры

12.04.2021 10:16:29 | Автор: admin

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

А потом они зовут вас, потому что компьютер тормозит/не работает. Или жалуются, что от их имени кто-то назанимал денег. Или ещё что-нибудь. Бывало такое? У меня да. Попробую хоть немного повлиять на ситуацию и максимально просто покажу, зачем киберпреступникам нужны ваши ненужные компьютеры.

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

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

Вот что можно сделать:

Как вы видите (и это ещё не все существующие способы эксплуатации), интересы злоумышленника могут быть очень разнообразными. Почти все аспекты онлайн жизни могут быть превращены в товар если аспект имеет ценность и может быть перепродан, то не сомневайтесь, что в на чёрном рынке есть услуга или продукт по его монетизации.

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

Как пример монетизации ресурсов, полученных с компьютера пользователя, можно привести инструменты из разряда укажи и щёлкни, которые предлагаются на некоторых серых форумах. Я имею в виду инструменты проверки учётных записей, которые используются для определения действительности и статуса учётной записи популярных интернет-магазинов и сервисов, включая Amazon, American Express, eBay, Facebook, iTunes, PayPal, Skype и других.

Инструменты проверки счетов, используемые кибепреступникамиИнструменты проверки счетов, используемые кибепреступниками

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


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Пароль как крестраж: ещё один способ защитить свои учётные данные

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

Создание группы доступности AlwaysON на основе кластера Failover

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Почему ваш бизнес может быть разрушен

28.04.2021 12:07:29 | Автор: admin

Привет, Хабр!

На связи снова Максим Горшков, специалист по информационной безопасности корпоративного облачного провайдера Cloud4Y. Хочу поднять вопрос о деятельности, результаты которой обычно незаметны, но крайне важны для бизнеса. Я имею в виду кибербезопасность. Будучи следователем по расследованию киберпреступлений в недавнем прошлом, я изрядно насмотрелся на компании, которые пострадали из-за недостаточно серьёзного отношения к информационной безопасности.

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

Уверен, что вы можете назвать не один десяток компаний, в которых существует огромная пропасть между зарплатой менеджера и топ- менеджера. Или где по модным тенденциям численность маркетологов превышает численность технических специалистов.

Для российского руководителя мотивы подобного поведения очевидны. Зачем менеджеру платить больше, если и так устраиваются на работу? Зачем нужны сотрудники, которые не приносят деньги? Если условный технический отдел и так что-то делает и вроде как всё работает.

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

Зарождение

Приведу реальные примеры. Киберпреступность в правоприменительной практике стала звучать где-то с 2014 года. До этого крайне редкие хакерские дела были единичными и часто раскручивались для того, чтобы показать активную работу правоохранителей на этом поле.

Мошенничества с использованием социальной инженерии вообще не воспринимались всерьёз, а уголовные дела по подобным преступлениям возбуждались далеко не всегда. Люди писали заявления, но дальше материалов проверок дело не могло продвинуться. А число преступлений начало расти.

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

Наверное, вы сейчас спросите: а каким боком тут бизнес стоит? А дело в том, что преступники быстро перепрофилировались, перейдя с атак на бабушек на атаку бизнеса. На моей памяти было около 50 компаний, чьи бухгалтеры переводили внушительные суммы преступникам, получив личное распоряжение директора. Продавцы торговых точек снимали кассу и переводили деньги мошенникам. А от настоящих кибератак некоторым компаниям и вовсе пришлось закрыться.

Причём векторы атак были разные. Далеко не всегда эксплуатировались уязвимости типа EternalBlue, (CVE-2017-0144 с помощью которой широко распространялись шифровальщики WannaCry, Petiya), хотя и они тоже были. Встречался и банальный подброс запоминающих устройств со зловредной программой, получающей удаленный доступ к ПК, например, главного бухгалтера или директора.

Я буду честен, правоохранительная система оптимизирована настолько, что не может достаточно эффективно бороться с киберпреступностью. Так что можно сказать, что киберпреступления угрожают не только бизнесу, но и государству в целом.

Что изменится в скором будущем? Киберпреступность эволюционирует и вырывается вперёд в борьбе с правоохранительной системой. Из-за такого дисбаланса заниматься взломом порой выгоднее, чем развивать свой бизнес. Просто представьте, что среднестатистический социальный инженер, а попросту телефонный мошенник, за рабочий день способен получить около 100 тыс. рублей, а в региональных компаниях системный администратор с функциями информационного безопасника в месяц не зарабатывает и 50 тыс. рублей.

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

Пережимать гайки тоже не стоит

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

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

Почему так происходит? Потому что в модели директивного управления топ-менеджеров часто не рассматривается вопрос о том, что расходы на безопасность недостаточны или уходят не в том направлении. Условно говоря, собирается совещание, где обсуждаются расходы компании. Коммерческий директор говорит, что ему нужно расширить штат продажников, директор по ИТ говорит, что нужно усилить безопасность. Генеральный директор задает им один вопрос: что получит от этого компания? Первый говорит про деньги, второй про абстрактную безопасность. И решение при распределении средств становится очевидным. Очевидным до того самого времени Ч, когда ущерб от кибератаки превысит выгоду от работы целого отдела маркетологов на несколько лет вперед.

Скажете, опять нагнетаю? В недалеком прошлом с помощью вредоносной программы, внедрённой на сервера атомной электростанции, злоумышленники смогли навредить ядерной программе Ирана. А это, на минуточку, ключевой стратегический объект целой страны. Прошло уже больше 10 лет с того момента. Сейчас злоумышленники действуют ещё хитрее, придумывают новые способы заработка.

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

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

Что было дальше? Получив возможность регистрации цифровых подписей граждан, злоумышленники находили недавно умерших одиноких пенсионеров и оформляли сделку купли-продажи квартиры задним числом. Сделка благополучно регистрировалась в Россреестре и квартира уходила злоумышленникам. Схема существовала достаточно долгое время, а была раскрыта тогда, когда у умерших обнаружились наследники, добившиеся возбуждения дела по странной сделке. Это и есть пример бытового киберпреступления, актуального в настоящее время.

Что будет дальше

Нужно понимать, что, для реализации такого сценария требуется участие квалифицированных специалистов. Киберпреступность по уровню квалификации порой опытнее даже профильных отделов ИБ компаний. В капиталистическом мире опыт и профессионализм там, где есть деньги. Так что пока компании будут экономить на специалистах, они будут жить как на пороховой бомбе. Эпоха хакеров-энтузиастов заканчивается, наступает эпоха масштабного преступного бизнеса, который прекрасно понимает, что вложенные условно 50 млн. рублей в поиск zero-day уязвимостей и разработку эксплойтов под них могут принести миллиарды, разрушив целые сектора бизнеса на корню.

А ваш бизнес готов к кибератакам таких вот сообществ, в которых работает целый штат финансово замотивированных программистов, пентестеров, всевозможных аналитиков? Государство неспроста усиленно готовится к беспрецедентной возможной кибервойне. Но и вам рекомендую озаботиться тем же вопросом.

Спасибо за внимание.


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Пароль как крестраж: ещё один способ защитить свои учётные данные

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

Создание группы доступности AlwaysON на основе кластера Failover

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Перевод Автоматизация как вектор роста бизнеса

14.05.2021 10:12:48 | Автор: admin

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

Автоматизация рабочих процессов требует внимания на втором этапе цифровой трансформации с расширением цифрового присутствия бизнеса и накапливанием знаний и опыта.

Автоматизация играет центральную роль и в создании и реализации практических идей с использованием техник искусственного интеллекта для управления ИТ (AIOps). И далее, на последующих этапах, с использованием искусственного интеллекта.

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

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

Такой подход позволяет понять, какие подходы рынок использует для продвижения автоматизации и как эти подходы влияют на цифровую трансформацию.

Один из таких подходов: инфраструктура как код.

Инфраструктура как код

Инфраструктура как код (IaC) это практика, заимствованная из методологий DevOps и SRE, которые обрабатывают файлы (артефакты) инициализации и конфигурации так же, как разработчики взаимодействуют с кодом.

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

Из-за своего происхождения автоматизацию на базе IaC часто называют GitOps, потому что именно GitHub и GitLab обычно используются в качестве предпочтительных репозиториев, и оба они хорошо интегрированы в инструменты конвейерной автоматизации.

Сегодня компании, внедряющие IaC, видят преимущества с точки зрения вложения усилий в автоматизацию.

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

Преимущества IaC и автоматизации очевидны, но есть причины, по которым внедрение этих технологий идёт медленно.

Навыки и инструменты основные проблемы при автоматизации

Вы не можете автоматизировать что-либо без современных инструментов. Центральными фигурами пакета инструментов становятся мультиоблачные варианты, зачастую с открытым исходным кодом (например, Terraform и Ansible). Хотя API-интерфейсы облачных провайдеров используются всё так же часто, они чрезмерно зависят от провайдера. Это создаёт проблему для операций во всех областях ИТ (безопасность, инфраструктура и сеть) при работе приложений в облачной среде.

Отсюда большой рост популярности не зависящих от облака инструментов. Почти половина участвовавших в опросе (47%) используют Terraform, Ansible, GitHub, GitLab, Puppet и Chef. А заточенные под конкретного поставщика инструменты использует 29% опрошенных. Это говорит о необходимости комплексной автоматизации, не зависящей от облачных сред, поскольку портфели приложений и технологии, обеспечивающие их защиту, теперь распределены по множеству общедоступных и частных облаков, дата-центров и даже периферийных устройств.

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

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

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

Подробнее..

Firefox представил новую архитектуру безопасности браузера с изоляцией сайтов

19.05.2021 16:06:46 | Автор: admin

Firefox, как и любой другой браузер, может загружать код с ненадёжных и потенциально опасных сайтов, а потом запускать его на компьютере. Чтобы защитить пользователей и вывести безопасность работы в интернете на новый уровень, команда Mozilla решила переработать свой браузер.

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

Для защиты данных Firefox применяет различные механизмы безопасности, например,Правило ограничения домена(Same Origin Policy Принцип одинакового источника),которое ограничивает взаимодействие информации, поступившей из разных источников. То есть предотвращает доступ злоумышленников к информации с других ресурсов, загружаемых в одном и том же приложении. Но этого недостаточно. Чтобы оградить пользователей от потенциальных угроз, следует полностью разделять пространство памяти, выделенное под разные сайты новая архитектура Firefox обеспечивает эти гарантии безопасности.

Почему так важно разделение пространства памяти

В начале 2018 года специалисты, исследующие вопросы безопасности, обнаружили две основные уязвимости, известные какMeltdown(аппаратнаяуязвимость, которая использует ошибку реализацииспекулятивного выполнения командв некоторых процессорах Intel и ARM, из-за которой процессор игнорирует права доступа к страницам.) иSpectre(группа аппаратныхуязвимостей большинства процессоров, позволяющая считывать данные черезсторонний канал). Специалисты продемонстрировали, как ненадёжный сайт может дать злоумышленникам доступ к памяти процесса даже на таком высокоуровневом языке, как JavaScript (на котором работает почти каждый сайт).

Для защиты от уязвимостей были развёрнуты временные меры противодействия со стороны ОС, ЦП и основных веб-браузеров. Они быстро нейтрализовали атаки, однако привели к снижению производительности. Но это были именно временные заплатки.

Firefox решила коренным образом переделать архитектуру браузера, чтобы оградить пользователей от текущих и будущих версий подобных уязвимостей. На картинке ниже подробно рассматривается пример того, как злоумышленник может получить доступ к личным данным при атаке, подобной Spectre.

С новой архитектурой Firefox загружает каждый сайт в своём собственном процессе, тем самым изолируя их память друг от друга. Например, у пользователя открыто два сайта: www.my-bank.com и www.attacker.com.Как показано на картинке выше, со старой архитектурой браузера контент с обоих сайтов может быть загружен в один и тот же процесс операционной системы.Если с сайта www.attacker.com произойдёт атака наподобие Spectre, злоумышленники смогут запрашивать и получать доступ к данным с сайта my-bank.com.

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

Как работала прежняя архитектура браузера

После запуска Firefox создавал один привилегированный процесс (или родительский процесс), который затем запускал и координировал действия нескольких веб-процессов. Родительский процесс является наиболее привилегированным, поскольку ему разрешено выполнять любое действие, которое может выполнить конечный пользователь.

Эта многопроцессорная архитектура позволяла Firefox разделять более сложный или менее надёжный код на отдельные процессы, большинство из которых имеют ограниченный доступ к ресурсам операционной системы или пользовательским файлам.Как следствие, менее привилегированный код должен был запросить более привилегированный код для выполнения операций, которые он сам выполнить не мог.

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

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

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

Что происходит на иллюстрации выше? Пользователь открывает в разных вкладках сайты: www.my-bank.com, www.getpocket.com, www.mozilla.org и www.attacker.com.Может так получиться, что my-bank.com и attacker.com будут обрабатываться одним и тем же процессом операционной системы, то есть они будут совместно использовать память этого процесса.Соответственно, злоумышленник может выполнить атаку типа Spectre для доступа к данным с my-bank.com.

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

Как работает новая архитектура Firefox с изоляцией сайтов

При добавлении Изоляции сайтов в Firefox для настольных ПК каждый уникальный сайт будет создавать свой отдельный процесс.Например, если вы загрузите https://mozilla.org и http://getpocket.com, браузер с изоляцией сайтов разделит их по двум разным процессам операционной системы, поскольку они не являются одним и тем же сайтом.

Точно так же https://getpocket.com (обратите внимание, здесь именно протокол https, а не http, как в предыдущем абзаце) также будет загружен в отдельный процесс. То есть все три сайта будут загружаться в разных процессах.

Более того, существуют некоторые домены, такие как .github.io или .blogspot.com, которые являются слишком общими, чтобы можно было идентифицировать их, как сайт.Поэтому для работы с ними Firefox будет использовать поддерживаемыйсообществомсписок доменов верхнего уровня (eTLD), чтобы помочь различать сайты.

Поскольку github.io указан как eTLD, a.github.io и b.github.io будут загружаться в разных процессах.Если вернуться к примерам, о которых говорилось ранее, сайты www.my-bank.com и www.attacker.com не считаются одним сайтом, поэтому они будут изолированы друг от друга в отдельных процессах. Память также будет изолирована, что гарантирует безопасность данных.

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

На картинке выше видно, что страница www.attacker.com пытается встроить субфреймом страницу с www.my-bank.com, но она будет загружена в другом процессе.Это гарантирует, что память процессов также будет изолирована.

Дополнительные преимущества изоляции сайтов

Новая архитектура не только делает Firefox безопаснее.Она даёт и другие преимущества:

  • Благодаря тому, что больше страниц помещается в отдельные процессы, выполнение тяжёлых вычислений на одной странице не замедлят работу других страниц.

  • Использование большего количества процессов для загрузки веб-сайтов позволяет распределять нагрузку по многим ядрам ЦП и более эффективно использовать железо.

  • Из-за дробления сайтов, сбой одного субфрейма или вкладки не повлияет на сайты, загруженные в других процессах, то есть повышается стабильность приложения.

Планы и перспективы

В настоящее время Firefox тестирует изоляцию сайтов в ночных и бета-версиях браузеров для ПК.Однако воспользоваться улучшенной архитектурой безопасности можно уже сейчас. Для этого нужно загрузить браузер Nightly или Betaотсюдаи выполнить следующие действия:

Чтобы включить изоляцию сайта в Firefox Nightly:

  1. Перейдите к about: Preferences#Experiment

  2. Установите флажок Fission (Site Isolation).

  3. Перезагрузите Firefox.

Чтобы включить изоляцию сайта в Firefox Beta:

  1. Перейдите к about: config.

  2. Установите для параметра `fission.autostart` значение `true `.

  3. Перезагрузите Firefox.

Теперь можно осваивать обновлённый браузер и радоваться усиленной безопасности.


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Пароль как крестраж: ещё один способ защитить свои учётные данные

Облачная кухня: готовим данные для мониторинга с помощью vCloud API и скороварки

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

Почему ваш бизнес может быть разрушен

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Если пароль слили в сеть сколько времени потребуется хакеру, чтобы получить доступ к вашему аккаунту?

09.06.2021 18:07:37 | Автор: admin

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

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

Результаты исследований оказались не слишком утешительными для пользователей. К половине всех скомпрометированных учетных записей злоумышленники получили доступ уже в течение 12 часов. Причём 20% записей взломали в первый же час, а ещё 40% в пределах 6 часов. Так что, если вы вечером зашли на фишинговый сайт, а потом легли спать, к утру можно обнаружить неприятный сюрприз.

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

Зачем хакерам чужие учётки?

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

Нередко скомпрометированные аккаунты применяются для BEC-атак (получение доступа к корпоративной почте и дальнейшая рассылка фишинговых ссылок и спама). Один злоумышленник попытался использовать скомпрометированную учетную запись для проведения BEC-атак на сектор недвижимости. Он разослал электронные письма со ссылками на фишинговый сайт. Таким образом злоумышленник собирался украсть данные для доступа в компании, занимающиеся недвижимостью.Естественно, у него это не получилось, так как фальшивые учетные записи контролировались исследователями Agari. Ни одно из отправленных писем не дошло до адресата.

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

Впрочем, есть и хорошая новость: согласно исследованию, примерно через неделю попытки использовать слитые пароли сходят на нет.

Что делать?

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

Кстати, как оказалось, обнаруженные и опубликованные CVE уязвимости тоже начинают эксплуатировать довольно быстро. Бывает, что уже в течение часа после появления новости о новой уязвимости,компании, не следящие за актуальностью своей инфраструктуры, подвергаются атакам киберпреступников. Так что специалистам по безопасности в компаниях стоит следить за свеженайденными уязвимостями и стараться пофиксить их как можно скорее.

Подробнее..

Перевод Фишинг с поддельным приглашением на встречу

15.06.2021 12:07:46 | Автор: admin

Вы когда-нибудь задумывались о том, как работают приглашения на встречи в MicrosoftTeamsиGoogleMeet? Недавно я занимался вопросом социальной инженерии, и у меня в голове возникла случайная мысль: как на самом деле работают приглашения на встречи, можно ли как-то использовать их в мошеннических схемах?

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

Что я хотел сделать в этой атаке?

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

Создание встречи (в Outlook) обычно работает следующим образом:

  • нажмите кнопку Новая встреча, после чего откроется страница с полями для электронной почты, предварительно заполненным шаблоном команды и URL-адресом встречи

  • установите название встречи и укажите участников

  • нажмите Отправить, и ваши участники получат красивое электронное письмо, в котором они смогут принять или отклонить приглашение на собрание.

Создание встречи в OutlookСоздание встречи в OutlookТак выглядит приглашение на встречуТак выглядит приглашение на встречу

Что не так с этим приглашением?

Когда вы создаёте приглашение на встречу, вы фактически отправляете обычное электронное письмо с вложенным файлом iCalendar.В зависимости от почтового клиента получателя письма и того, как этот клиент обрабатывает iCalendar, вы можете увидеть красивый email или простое письмо с вложением.Ниже вы можете увидеть, как выглядит приглашение на собрание команды в protonmail.

Что такое объект iCalendar?

СогласноВикипедии:

Универсальный формат iCalendar позволяет пользователям хранить и обмениваться информацией своего календаря и расписания (например, события, задачи, информация о свободном/занятом времени).Файл iCalendar сохраняется в текстовом формате и содержит событие или задачу; используется для отправки событий или задач другим пользователям, которые могут импортировать их в свои календари. Обычно имеет расширение .ics

iCalendar поддерживается Outlook, календарём Google, Yahoo, Apple и многими другими.В этой статье я сосредоточусь на Outlook.

Ниже вы можете увидеть мою версию iCalendar для приглашения на групповую встречу.Я просто отправил приглашение на встречу на свой адрес в protonmail, загрузил его и прочитал вложение.

BEGIN:VCALENDARMETHOD:REQUESTPRODID:Microsoft Exchange Server 2010VERSION:2.0BEGIN:VTIMEZONETZID:GTB Standard TimeBEGIN:STANDARDDTSTART:16010101T040000TZOFFSETFROM:+0300TZOFFSETTO:+0200RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10END:STANDARDBEGIN:DAYLIGHTDTSTART:16010101T030000TZOFFSETFROM:+0200TZOFFSETTO:+0300RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3END:DAYLIGHTEND:VTIMEZONEBEGIN:VEVENTORGANIZER;CN=ExAndroid Developer:mailto:<redacted>@outlook.comATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=<redacted>@protonmail.com:mailto:<redacted>@protonmail.comDESCRIPTION;LANGUAGE=en-US:<stripped>\n\nUID:040000008200E00074C5B7101A82E00800000000508CC0468E28D701000000000000000 01000000096DF011F20A29943A70B5DA5047021A5SUMMARY;LANGUAGE=en-US:Test meetingDTSTART;TZID=GTB Standard Time:20210403T000000DTEND;TZID=GTB Standard Time:20210404T000000CLASS:PUBLICPRIORITY:5DTSTAMP:20210403T103619ZTRANSP:OPAQUESTATUS:CONFIRMEDSEQUENCE:0LOCATION;LANGUAGE=en-US:Microsoft Teams MeetingX-MICROSOFT-CDO-APPT-SEQUENCE:0X-MICROSOFT-CDO-OWNERAPPTID:-570210331X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVEX-MICROSOFT-CDO-INTENDEDSTATUS:BUSYX-MICROSOFT-CDO-ALLDAYEVENT:FALSEX-MICROSOFT-CDO-IMPORTANCE:1X-MICROSOFT-CDO-INSTTYPE:0X-MICROSOFT-SKYPETEAMSMEETINGURL:https://teams.microsoft.com/l/meetup-join/ 19%3ameeting_YmM1MjRmMTktYjA2N<stripped>cd8%22%7dX-MICROSOFT-SCHEDULINGSERVICEUPDATEURL:https://api.scheduler.teams.microsof t.com/teams/dc<stripped>DAyMmZj@thread.v2/0X-MICROSOFT-SKYPETEAMSPROPERTIES:{"cid":"19:meeting_YmM1MjRmMTktYjA2Ny00YWQ 4LWI1NWEtZmE1NGVlMDAyMmZj@thread.v2"\,"private":true\,"type":0\,"mid":0\," rid":0\,"uid":null}X-MICROSOFT-ONLINEMEETINGCONFLINK:conf:sip:<redacted>\;gruu\;opaque= app:conf:focus:id:teams:2:0!19:meeting_YmM1MjRmMTktYjA2Ny00YWQ4LWI1NWEtZmE 1NGVlMDAyMmZj-thread.v2!56474ffc245241c5ab4081a127cc1cd8!dcf23acb18fc41d28 6acf752f1ca658dX-MICROSOFT-DONOTFORWARDMEETING:FALSEX-MICROSOFT-DISALLOW-COUNTER:FALSEX-MICROSOFT-LOCATIONS:[ { "DisplayName" : "Microsoft Teams Meeting"\, "Loca tionAnnotation" : ""\, "LocationSource" : 0\, "Unresolved" : false\, "Loca tionUri" : "" } ]BEGIN:VALARMDESCRIPTION:REMINDERTRIGGER;RELATED=START:-PT15MACTION:DISPLAYEND:VALARMEND:VEVENTEND:VCALENDAR

Здесь нужно понимать, что каждый объект iCalendar начинается сBEGIN: VCALENDARи заканчиваетсяEND: VCALENDAR.Часть встречи находится междуBEGIN: VEVENTиEND: VEVENT.Внутри вашего мероприятия вы указываете так называемые компоненты.Обычно требуются не все компоненты, и в моем POC вы можете найти урезанный файл *.ics с только необходимыми компонентами.Большинство из них самоочевидны, но я отмечу самые интересные из них.

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

ATTENDEE. Указывает участников встречи.Если вам нужно много участников, у вас будет несколько компонентов ATTENDEE.Имейте в виду, что участники не получат электронное письмо с приглашением на собрание, оно предназначено только для отображения.Вы можете легко имитировать присутствие 30 человек на собрании, если на самом деле отправляете электронное письмо одной жертве.

X-MICROSOFT-SKYPETEAMSMEETINGURL. Если вы укажете этот компонент, в напоминании о встрече будет отображаться кнопка Подключиться.К сожалению, при нажатии система попытается открыть указанный URL-адрес через приложение для рабочих столов, что приводит к ошибке.

DTSTART, DTSTAMP, DTEND. Указывают время встречи и её продолжительность.Я проделал хитрый трюк и установил время начала встречи на 5 минут раньше текущего времени, таким образом складывается ощущение, что вы опоздали на встречу на 5 минут.Когда жертва получает email, Outlook обрабатывает его как приглашение на встречу. Видит, что встреча началось 5 минут назад, и сразу же отображает напоминание на экране.Это помогает симулировать срочность.

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

В этой статье я показал, как Outlook обрабатывает приглашения на собрания.Это должно работать с любым провайдером/клиентом email-сообщений, который обрабатывает вложения *.ics. Вы можете проверить мой POC наgithubи отредактировать скрипт и шаблоны в соответствии со своими потребностями.


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Пароль как крестраж: ещё один способ защитить свои учётные данные

Облачная кухня: готовим данные для мониторинга с помощью vCloud API и скороварки

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

VMware предупредила о критических уязвимостях в удаленном исполнении кода в vCenter

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Тим Бернерс-Ли создаст NFT из World Wide Webs Objective-C

16.06.2021 10:13:29 | Автор: admin

На следующей неделе сэр Тим Бернерс-Ли выставит на аукцион NFT оригинал исходного кода, который он использовал для создания Всемирной паутины.

Центральным элементом цифрового коллекционирования будет 9 555 строк исходного кода с отметками времени, которые разделяют файлы, созданные Бернерсом-Ли в период с 3 октября 1990 г. по 24 августа 1991 г. Этот код, написанный преимущественно на Objective-C, послужил фундаментом для большей части современного интернета.Файлы охватывают реализации HTML, HTTP и URI, а также исходные HTML-файлы, которые Бернерс-Ли написал как своего рода ReadMe для ранних пользователей сети. Подробнее о лоте можно узнать на странице аукциона.

ПисьмоПисьмо

NFT также будет включать письмо, недавно написанное Бернерсом-Ли и содержащее его размышления об исходном веб-коде.Письмо написано на Markdown, что делает его готовым для Github.NFT также будет иметь 30-минутную анимированную черно-белую визуализацию написанного кода.Наконец, счастливый победитель получит SVG-плакат с кодом Бернерса-Ли, который он сделал лично с помощью скрипта Python.На плакате имеется векторизованная подпись автора в правом нижнем углу.

ПлакатПлакат

NFT, или невзаимозаменяемые токены, по сути, представляют собой цифровые сертификаты подлинности. Для коллекционеров это новый способ заявить о праве собственности на оригинальные цифровые активы, которые, помимо токена, неотличимы от любой другой цифровой копии. NFT Бернерса-Ли во всемирной паутине закодирован как контракт на блокчейне Ethereum. Тим Бернерс-Ли сам обратился к представителям Sothebys в апреле 2021 года с идеей продать код. Файлы сохранены в tar-архиве.

Продавая NFT оригинального кода, Бернерс-Ли, видимо, пытается съесть свой кусок пирога, испечённого 30 лет назад. Когда в 1993 году ЦЕРН выпустил код WorldWideWeb Бернерса-Ли, он не был обременён патентами или требованиями лицензионных отчислений. Таким образом, NFT это возможность заработать на исходном коде. Хотя этот NFT, похоже, предназначен для благотворительности. Продажа пойдёт на пользу инициативам, которые поддерживают сэр Тим и леди Бернерс-Ли, говорится в заявлении Sotheby's. Торги начнутся с 1000 долларов.

Бернерс-Ли изобрёл Всемирную паутину в ЦЕРНе в 1989 году, когда он предложил распределённую гипертекстовую систему, вдохновившись задачей управления потоком данных, который почти наверняка мог произвести Большой адронный коллайдер. Многие дискуссии о будущем в ЦЕРНе и эпохе LHC заканчиваются вопросом: Как мы сможем отслеживать такой большой проект?, писал Бернерс-Ли своему руководителю.

В ответ тот вручил ему блестящий новый NeXTcube, чтобы он мог реализовать свои идеи в коде. Результатом стало приложение WorldWideWeb, инструмент WYSIWYG, сочетающий просмотр и создание HTML. Он сохранял файлы на локальный диск, чтобы их обслуживал httpd. Сегодня вы можете изучить оригинальные идеи Бернерса-Ли на веб-сайте CERN, где был размещён первый в мире сайт, а также познакомиться с виртуализированной версией первого браузера, работающего в вашем гораздо более современном аналоге.


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Фишинг с поддельным приглашением на встречу

Облачная кухня: готовим данные для мониторинга с помощью vCloud API и скороварки

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

VMware предупредила о критических уязвимостях в удаленном исполнении кода в vCenter

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Детям о Кубернете, или приключения Фиппи в космосе

10.11.2020 12:07:03 | Автор: admin

Kubernetes удобная и быстро ставшая популярной платформа для работы с контейнерами. Поскольку Cloud4Y предлагает услугу Kubernetes как сервис, то внимательно следит за событиями, происходящими на рынке контейнеризации. И недавно мы наткнулись на детище молодого стартапа Kasten, о котором обязательно нужно рассказать. Ребята решили максимально упростить понимание работы ИТ-решений, и выпустили несколько детских рассказов про Фиппи. В них очень красиво и понятно рассказывается о технологиях. Мы решили перевести для вас историю про Фиппи и Kubernetes. А заодно рассказать, как она создавалась.

Когда Kasten, молодой стартап в области управления данными Kubernetes, занимался поиском способа обучения новичков основам облачной экосистемы, они обратились за помощью к Юизе Мартинес-Ривера и Читлали Толия. Они сильно помогли в подготовке книги Phippy, которая будет представлена на KubeCon 2020.

Юиза кандидат философских наук и художник с опытом работы в архитектурном дизайне и графическом дизайне в сфере высоких технологий. Она любит визуализацию ИТ-процессов, так как считает, что это способствует лучшему усвоению информации. Редактор и переводчик Читлали Толиа является экспертом в области латиноамериканской литературы и культурологии, имеет опыт в издательской деятельности и Ed Tech.

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

Как создавалась история

Для начала истории нужен был сеттинг. Как обрисовать проблемы, с которыми сталкивается облачное хранилище? С самого начала было решено, что капитан Куб и Фиппи занимаются развитием нового города. Это похоже на процессы, которые идут в облачной экосистеме. И хотя все полагали, что это отличная идея, хотелось придумать что-то ещё более интересное. Поэтому, когда Kasten сообщил, что предела для полёта фантазии нет , творческая команда восприняла это буквально. Фиппи и капитан Куб собрали вещи и начали репетировать лунную походку.

Авторы решили, что эта история будет происходить во время путешествия на Марс. И подана как диалог между капитаном Кубом и Фиппи, в котором они обсуждают проблемы и придумывают решения по мере приближения к Марсу. Планировалось, чтобы их прибытие на Марс становится финалом истории и началом реализации их решений, отражая роль книги как образовательного инструмента. По окончании истории читатели должны будут предпринять действия по поиску провайдеров и начать свой путь к облачным решениям.

Проработка деталей истории требовала тесной работы с экспертами в предметной области. Сначала нужно было разобраться с самыми большими проблемами, с которыми сталкиваются облачные хранилища, поставщики услуг резервного копирования и пользователи, а затем логически организовать их и найти способы провести аналогии на вымышленном марсианском форпосте. По ходу работы также нужно было решить, какие персонажи присоединятся к Фиппи. Нужно было максимально всё упростить, чтобы избежать путаницы, а это означало, что список персонажей должен быть небольшим. Робот Ruby, бэкап-робот, появился, когда команда искала способы иллюстрирования процессов. Она стала представителем нового, гибкого, надёжного способа совершения действий в облачной экосистеме.

Создание артов

Отправившись в космическое приключение, иллюстраторы начали обсуждать идеи и общее настроение, которого хотели достичь. Сошлись на ретро-футуристической эстетике, глядя на старые кадры Джетсонов. Дэвид Боуи и Flight of the Conchords стали саундтреком этой истории.

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

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

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

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

Надеемся, что вам понравится эта книга, и вы будете с интересом ждать новых приключений Фиппи и его команды. Книгу можно найти на странице CNCFPhippy and Friends.

Оригинал книги можно скачать с GitHub:https://kastenhq.github.io/Phippy-In-Space/.

Переведённая на русский язык версия от Cloud4Y.


Что ещё интересного есть в блогеCloud4Y

Найдено давно утерянное руководство к самому старому компьютеру в мире

ИИ помогает выбирать лучшего актёра на роль в фильме

Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?

Рассказываем про государственные защищенные сервисы и сети

Внутри центра обработки данных Bell Labs, 1960-е

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Виртуальные машины и тест Гилева

22.12.2020 10:22:28 | Автор: admin

А давайте поговорим про синтетические тесты? Мы заметили, что часть клиентов использует их, оценивая профпригодность любого облачного решения. Иногда нас просят предоставить результаты какого-либо теста или сами проверяют систему во время бесплатного пробного периода. Причём то же нагрузочное тестирование проводят редко. В фаворитах тест Гилева. Про него-то мы и расскажем. Ведь если и делать подобный тест, то делать его нужно правильно.

Введение

Стоит понимать, что тест Гилева никак не отражает быстродействие реальной конфигурации с реальной базой данных. Он запускается на пустой платформе без установки каких-либо конфигураций и тем более загрузки реальных баз 1С. А ведь многопоточный тест может быть запущен в качестве нагрузочного и на реальной системе с реальными данными.

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

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

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

Исходные данные

Тест Гилева синтетический тест, позволяющий оценить быстродействие платформы 1С:Предприятие. В основном используется для оценки производительности при использовании СУБД для хранения баз данных 1С, но может использоваться и для файлового варианта хранения баз данных 1С. Поставляется в виде файла конфигурации (*.cf) для дальнейшей загрузки в конфигураторе 1С:Предприятие.

Тест состоит из двух частей, которые могут быть запущены независимо друг от друга.

Первая часть однопоточный тест, оценивает производительность выполнения операций в один поток, что является характерной особенностью платформы 1С:Предприятие. По результатам теста строится график в виде столбчатой диаграммы, в котором слева направо представлены текущий результат теста и результаты, соответствующие оценкам плохо, удовлетворительно, хорошо и отлично. Оценочные результаты имеют фиксированные значения (10, 15, 35 и 60 соответственно). Результат однопоточного теста предоставляется в неких условных единицах.

Вторая часть многопоточный тест, позволяет оценить скорость записи на диски при одновременном обращении к базе данных нескольких запросов. В качестве результатов выводятся максимальные скорости записи отдельных строк, однопоточной записи, максимальной скорости записи и рекомендуемого числа пользователей. При использовании файловой архитектуры хранения баз 1С этот тест недоступен.

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

Среда тестирования

Для тестирования в обычном облаке Cloud4Y мы создали виртуальную машину с гостевой ОС Windows Server 2019. ВМ развернули из стандартного шаблона в варианте с паравиртуальным драйвером дисков. Данный тип контроллера не даёт преимуществ по скорости работы в сравнении с LSI Logic SAS, но активно продвигается вендором и может стать типом контроллера по умолчанию в будущем.

В качестве СУБД использовали Microsoft SQL Server 2019 редакции Standard. Редакция Express даёт схожие результаты тестирования, однако неприменима на реальных базах из-за ограничений редакции. Следовательно, использовать её в шаблоне виртуальной машины не имеет смысла.

На виртуальной машине установили сервер 1С:Предприятие и настроили кластер серверов 1С. Также установили дополнительные средства администрирования серверов 1С. В качестве единственной конфигурации использовался тест Гилева.

Для тестирования раздельной конфигурации, где сервер 1С и СУБД размещаются на отдельных ВМ, мы клонировали исходную ВМ, после чего в гостевой ОС каждой из получившихся виртуальных машин удалили лишние компоненты и провели дополнительную настройку.

Оптимизации

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

  2. Оптимизировали гостевую ОС. Все оптимизации делались на основании рекомендаций с сайтов https://its.1c.ru и https://gilev.ru. Также учитывались данные с других тематических ресурсов. При внесении изменений в гостевую ОС мы проверяли актуальность рекомендаций, так как значительная их часть относится к устаревшим версиям операционных систем. В итоге мы а)полностью отключили все функции энергосбережения в гостевой ОС и включили режим максимальной производительности, б) отключили на уровне системы протокол IPv6, в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters создали ключ DisabledComponents типа DWORD (32 бита) со значением 0xffffffff, что соответствует отключению всех компонент IP версии 6, кроме интерфейса замыкания на себя. При этом значении также будет использоваться в политиках префиксов протокол IP версии 4 вместо IPv6.

  3. Оптимизировали СУБД. В частности, мы:

  • Установили минимально необходимый набор компонентов СУБД MSSQL

  • Установили лимит потребления памяти сервером СУБД: минимальное значение равное половине объёма оперативной памяти, максимальное полный размер RAM, за вычетом 1 ГБ на каждые выделенные 16 ГБ оперативной памяти

  • Установили максимальную степень параллелизма равную 1

  • Базу tempdb, пользовательскую базу данных, лог базы данных разнесли на отдельные файловые системы на отдельных виртуальных дисках

  • Выполнили тонкую настройку параметров баз model и tempdb: значения начального размера базы от 1 ГБ до 10 ГБ, начальный размер журнала транзакций от 1 ГБ до 2 ГБ и авторасширение в 512 МБ

  • В СУБД разрешили операции по обслуживанию томов

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

  • Для совместной архитектуры отключили все протоколы обмена данными, кроме shared memory, для раздельной все, кроме tcp

Тестирование

Настройки сделаны, давайте посмотрим на то, какое влияние на результаты теста отказывают разные параметры инфраструктуры

Влияние виртуальных процессоров и сокетов

Рис.1Рис.1Рис. 2Рис. 2Рис. 3 Рис. 3

На рис. 1-3 приводятся результаты исследования влияния сокетов для совмещённой конфигурации. Как можно увидеть, максимальные значения достигаются при одном сокете, при увеличении их количества результаты теста снижаются.

Рис. 4Рис. 4Рис. 5Рис. 5

На рис. 4 и 5 показано слияние увеличения количества виртуальных процессоров. Как можно увидеть, значительного выигрыша в результатах теста Гилева увеличение количества виртуальных процессоров не даёт.

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

Влияние объёма RAM

Теперь давайте оценим влияние объёма оперативной памяти на результаты теста

Рис. 6Рис. 6

Как можно увидеть, увеличение памяти не даёт ощутимого влияния на результаты теста.

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

Влияние размера кластера файловой системы тома с базой данных

Рис. 7Рис. 7Рис. 8Рис. 8Рис. 9Рис. 9

На рис. 7-9 представлено влияние размера кластера файловой системы тома с базой данных. Как вы видите, размер кластера файловой системы не даёт ощутимого влияния на результаты теста.

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

Влияние совместной или раздельной архитектуры

Рис. 10Рис. 10

На рис.10 представлены результаты теста Гилева для раздельной архитектуры (отдельный сервер СУБД). Обратите внимание, тест никак не учитывает в однопоточном тесте конфигурацию сервера СУБД, учитывается только конфигурация сервера, где развёрнута платформа 1С:Предприятие. В целом, производительность в тесте Гилева у раздельной архитектуры несколько ниже, чем у совместной, поскольку используется протокол tcp вместо более быстрого протокола shared memory.

Влияние нагруженности кластера и выделения ресурсов

Рис. 11Рис. 11

На рис. 11 представлены результаты теста Гилева на виртуальной машине, расположенной на изолированном от основного кластера хосте. Результаты существенно выше предыдущих, поскольку все ресурсы хоста гарантированно предоставляются единственной виртуальной машине.

Рис. 12Рис. 12

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

Итоги исследований

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

  2. Нагруженность кластера, в котором работает виртуальная машина, может существенно влиять на результат теста Гилева

  3. Совмещённая архитектура даёт более высокие результаты по сравнению с раздельной за счёт использования более быстрого протокола shared memory. Однако, при использовании такой архитектуры нужно внимательно следить за ресурсами, потребляемыми отдельными компонентами системы, чтобы избежать конкуренции

  4. Значительная часть рекомендаций, представленных на сайтах https://its.1c.ru и https://gilev.ru, неактуальна при использовании современных версий операционных систем и СУБД

Надеюсь, эта информация будет вам полезна. И помните, что одними лишь синтетическими тестами руководствоваться не стоит. Обращаем ваше внимание на тот факт, что мы проводили тест Гилева по 1С в виртуальной среде на не очень мощных процессорах. В будущем можно будет провести исследование на новом железе. Интересно?


Что ещё интересного есть в блогеCloud4Y

В тюрьму за приложение

20000 петабайт под водой: есть ли перспективы у подводных центров обработки данных

Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?

Рассказываем про государственные защищенные сервисы и сети

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Производительность RemoteFX, часть 1

14.04.2021 14:22:42 | Автор: admin

О технологии RemoteFX от Майкрософт, которая повышает качество работы в режиме удалённого рабочего стола, известно давно. В интернете хватает материалов, демонстрирующих её эффективность. Но большинство оценок носят качественный характер: "вот играем в %game_name%, fps в норме", "вот запустили 3D софт, как будто локально работает! Скриншот здесь, видео там".

В данном исследовании мы разберёмся, как перейти от "попугаев" к конкретным метрикам, чтобы количественно оценить эффективность технологии и объективно сравнить её использование с обычным режимом RDP.

Содержание
  • Кратко о RemoteFX

  • Конфигурация тестовой среды

    • Сервер

    • Клиент

  • Выбор показателей для измерений

  • Методика тестирования

    • Тест #1: ввод текста

    • Тест #2: ввод текста + 3D BenchMark

    • Тест #3: ввод текста + просмотр локальных видеофайлов

    • Тест #4: ввод текста + просмотр youtube-ролика

  • Обработка данных и построение графиков

  • Анализ результатов и наиболее интересные графики

    • Задержки при обработке ввода от пользователя

    • Частота кадров

    • Общие сетевые метрики

    • Загрузка центрального процессора

    • Загрузка видеокарты

  • Выводы

  • Что дальше

  • Список источников

  • Приложения

    • Переопределение групп сбора данных: _1_task_define.cmd

    • Принудительная остановка записи данных: _1_task_breake.cmd

    • Конвертация двоичных данных в CSV: blg2csv.cmd

    • Нормализация заголовков CSV: blg2csv.ps1

    • Jupiter Notebook: импорт данных

    • Jupiter Notebook: отрисовка одной метрики на диаграмму

    • Jupiter Notebook: отрисовка всех метрик на одной диаграмме

    • Диаграмма со всеми графиками

Кратко о RemoteFX

Традиционный RDP работает так, чтобы как можно больше работы по отрисовке окна удалённого рабочего стола переложить на клиента: по сети передаются графические примитивы и инструкции, которые должна выполнить клиентская видеокарта. Такой подход, в случае показа видео или использования интерфейса Windows Aero, требует поддержки со стороны клиента. Иначе вместо Aero будет использована упрощённая схема, а обработанный CPU сервера видеопоток передан клиенту в виде растровой графики, производительность отрисовки при этом может оказаться просто неприемлемой. Поэтому приходилось выбирать: либо использовать традиционный RDP только в связке с достаточно производительным клиентским железом, либо отказываться от сложной графики.

При включении RemoteFX клиенту по сети по прежнему передаются растровые кадры. Но есть два существенных отличия от традиционного RDP. Во-первых, вся подготовка и обработка графики перекладывается на GPU сервера, это происходит намного быстрее и разгружает CPU. А во-вторых, используется сжатие кадра, которое выполняет кодек RemoteFX. Это существенно снижает объём передаваемых по сети данных, тем самым разгружая канал связи. Это существенно снижает требования к клиентскому железу, но сохраняет достаточный уровень отрисовки и отзывчивости удалённого рабочего стола.

Конфигурация тестовой среды

Сервер

  • 2 vCPU Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz

  • 8 GB RAM

  • GPU NVIDIA GRID M60-1Qб, Dedicated Memory 929 MB, Shared Memory 4095 MB

  • гостевая ОС Windows Server 2019 Standart x64 1809 (Version 10.0.17763.1577), DirectX 12

  • network in/out rate limit 50 Mbps

Клиент

  • Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz, 3801 МГц, ядер: 4, логических процессоров: 4

  • 16 GB RAM

  • network in/out rate limit 100 Mbps

  • OS Windows 10 Pro 2004 (Version 10.0.19041.685), DirectX 12

  • настройки RDP-сеанса

    • 1920 x 1080 (32 bit) (32Hz)

    • на вкладке "Взаимодействие" выбрано "Локальная сеть (10 Мбит/с и выше)"

Выбор показателей для измерений

Качество и производительность удалённого рабочего стола нужно оценить с точки зрения как пользователя, так и потребления облачных ресурсов. Будем собирать данные о частоте кадров отрисовки, задержках отклика на ввод данных, сетевом трафике и загрузке CPU/GPU/RAM. Метрики выбраны с учётом официальныхрекомендаций по диагностике.

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

Показания
  • \Графика RemoteFX(*)\Качество кадра

  • \Графика RemoteFX(*)\Исходящих кадров в секунду

  • \Графика RemoteFX(*)\Входящих кадров в секунду

  • \Графика RemoteFX(*)\Среднее время кодирования

  • \Графика RemoteFX(*)\Коэффициент сжатия графических данных

  • \Графика RemoteFX(*)\Пропущено кадров в секунду у сервера недостаточно ресурсов

  • \Графика RemoteFX(*)\Пропущено кадров в секунду недостаточно сетевых ресурсов

  • \Графика RemoteFX(*)\Пропущено кадров в секунду у клиента недостаточно ресурсов

  • \Задержка ввода данных пользователем на сеанс(Max)\Максимальная задержка ввода

  • \Сведения о процессоре(_Total)\% загруженности процессора

  • \NVIDIA GPU(*)\% Video Decoder Usage

  • \NVIDIA GPU(*)\% Video Encoder Usage

  • \NVIDIA GPU(*)\% GPU Memory Usage

  • \NVIDIA GPU(*)\% GPU Usage

  • \NVIDIA GPU(*)\% FB Usage

  • \Сеть RemoteFX(*)\Потери

  • \Сеть RemoteFX(*)\Общая скорость отправки

  • \Сеть RemoteFX(*)\Общая скорость приема

  • \Сеть RemoteFX(*)\Скорость отправки TCP-данных

  • \Сеть RemoteFX(*)\Скорость отправки UDP-данных

  • \Сеть RemoteFX(*)\Общая скорость приема

  • \Сеть RemoteFX(*)\Скорость получения TCP-данных

  • \Сеть RemoteFX(*)\Скорость получения UDP-данных

  • \Сеть RemoteFX(*)\Пропускная способность текущего TCP-подключения

  • \Сеть RemoteFX(*)\Пропускная способность текущего UDP-подключения

  • \Память\% использования выделенной памяти

  • \Память\Доступно байт

PS. По непонятной причине данные по оперативной памяти не сохранялись в журнал при выполнении задания группы сбора, хотя "вживую"Системный мониторнормально строил графики по обоим показателям.Сброс кэша счётчиковне помог.

Методика тестирования

Чтобы оценить эффективность использования выделенной видеокарты на облачным сервере, нужно провести две серии одинаковых тестов: до и после включения отрисовки удалённого рабочего стола на GPU.

В каждой серии выполним следующие тесты:

  1. ввод текста

  2. ввод текста + 3D BenchMark

  3. ввод текста + просмотр локальных видеофайлов

  4. ввод текста + просмотр youtube-ролика

Для оценки влияния теста на задержку обработки ввода от пользователя поверх основной программы открывается стандартныйБлокноти зажимается произвольная клавиша. Окно редактора на протяжении теста будет постоянной частью всех кадров, поэтому исказит результат в лучшую сторону. Чтобы снизить эффект, размер окна уменьшим до 122*156% 99% кадра будут меняться и визуально будет видно, что имитация активности пользователя работает.

Тест #1: ввод текста

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

Тест #2: ввод текста + 3D BenchMark

Выполнялся при помощи FurMark в полноэкранном режиме.

Тест #3: ввод текста + просмотр локальных видеофайлов

Локальные видеофайлы воспроизводились в Windows Media Player, равёрнутом на весь экран, без установки каких-либо дополнительных кодеков, по кругу в следущем порядке:

  1. "Ants carrying dead spider": 1920 x 1080, 10667 кбит/с, 19 секунд, 29.97 fps

  2. "Flying Through Forest 1": 1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps

  3. "Low Angle Of Pedestrians Walking In Busy Street, Daytime": 4096 x 2160, 31721 кбит/с, 13 секунд, 25 fps

Единственным критерием отбора была динамичность ролика: видеоряд должен был как можно сильнее нагрузить кодек RemoteFX. Но ролик "Flying Through Forest 1" оказался в этом плане интересной находкой: выходной FPS заметно проседал, а входной от запуска к запуску был сильно выше или ниже среднего! Его влияние на различные метрики будет заметно на графиках, которые будут ниже.

Тест #4: ввод текста + просмотр youtube-ролика

В качестве youtube-теста был выбран чудесный ролик "Коста-Рика", который проигрывался в качестве1080p60в браузере Firefox, режим "киоск".

Обработка данных и построение графиков

Файлы журналов -blg- имеют двоичный формат: легко открываются в родной программе, графики всех счётчиков на одной шкале, можно выключать/включать/масштабировать/etc. Но чтобы работать с данными из нескольких файлов, нужно другое решение.

Сначалаконвертируем двоичные файлы в csv (см. Приложение)с помощью стандартной утилитыreglogиочистим их заголовки (см. Приложение).

Затем вJupiter-блокноте при помощи библиотекpandasиmatplotlibпрочитаемcsv (см. Приложение, Jupiter Notebook: импорт) ипостроимграфики (см. Приложение, Jupiter Notebook: одна метрика одна диаграмма).

Анализ результатов и наиболее интересные графики

Задержки при обработке ввода от пользователя

До включения групповых политик сильнее всего на обработке ввода сказалось проигрывание локальных видеофайлов: в среднем 45 мс при рекомендованных 33 мс.

Включение отрисовки через GPU в групповых политиках стабилизировало этот показатель во всех сценариях.

Частота кадров

После включения GPU ускорения ситуация явно становится лучше, особенно в 3D тесте. Результаты двух других тестов хоть и демонстрируют улучшение, но недостаточно: провалы на графиках соответствуют визуальным "рывкам" при просмотре.

Воспроизведение"Flying Through Forest 1"(1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps): от запуска к запуску на вход кодека RеmoteFX поступало либо повышенное либо пониженное количество кадров. Возможно, причина в перекодировке из формата QuickTime, "лишних" 8 пикселях ширины кадра или битрейте.

"Коста-Рика"также вызвал "проседание" FPS у RemoteFX: его проигрывание в браузере в1080p60ложилось на центральный процессор. Возможно, он просто не успевал перекодировать из 60fps и подготовить нужный кадр для RemoteFX.

Общие сетевые метрики

При включении GPU ускорения происходит рост сетевого трафика, который зависит от сценария теста.

Видно, что самым тяжёлым для кодека RemoteFX опять оказался тот же самый видеофайл,"Flying Through Forest 1". Первый запуск этого теста, когда наблюдается провал входящих кадров, также видим скачки трафика до 60 Мбит/с и потери до 30% - 40%.

Загрузка центрального процессора

Включение GPU ускорения практически вдвое разгружает центральный процессор, за исключением youtube-теста. И даже здесь удалось уйти от периодической 100% загрузки.

Загрузка видеокарты

Возможно, разгадка странного поведения второго ролика кроется в графике 17: входящих для RemoteFX кадров было больше, когда видеокарта была больше загружена кодированием.

Выводы

В RDP протоколе частота кадров ограничена 30-ю кадрами в секунду. Со стороны сервера увеличить лимит FPSможно, но бессмысленно: на практике терминальная сессия перестала отрисовывать окно и реагировать на действия как раз при проигрывании"того самого"видеофайла :).

Итоги в цифрах:

  1. Частота кадров стабилизируется почти на максимально возможном для протокола уровне: 29-30 FPS в среднем вместо 25 или даже 15 FPS

  2. Отзывчивость удалённого рабочего стола также стабилизируется, при этом возрастая в несколько раз

  3. Заметно, на 20-50 %, разгружается центральный процессор

  4. Немного возрастает утилизация канала связи, на 3-6 Мбит/сек

  5. Утилизация GPU составила до 20%

Результат действительно очень хороший: RemoteFX значительно увеличивает качество работы в терминальной сессии плавность отрисовки окна и отклик на действия пользователя сравнимы с локальным режимом. Даже "тяжёлые" сценарии показывают в этом плане заметный прирост.

Тесты, конечно, носят искусственный характер: выбором способа нагрузки на кодек RemoteFX можно как "завалить" так и "подтянуть" его результаты. Возможно, более релевантным было бы проведение чего-то вроде "конфетти-теста",например, такого.

Что дальше

Так как на этом этапе тесты проводились для одной сессии и при включении лишь рекомендованных настроек, то далее имеет смысл протестировать производительность:

  • при одновременной работе нескольких пользователей

  • при включении в групповых политиках различных дополнительных настроек кодека

Список источников

Приложения

Переопределение групп сбора данных: _1_task_define.cmd
@echo offsetlocal EnableDelayedExpansion@REM для сбора используются счётчики, перечисленные в _1_counters.cfg@REM счётчики называются только на английском, на русском это просто описание@REM @REM запуск сбора данных:@REM    при каждом входе на удалённый рабочий стол исправить _1_counters.cfg:@REM    1)  посмотреть номер своей терминальной сессии консольной командой@REM        query session@REM    @REM    2)  вписать этот номер в _1_counters.cfg, например, RDP-Tcp 9@REM    @REM    3)  перерегистрировать сброщик запуском данного файла@REM @REM    4)  замер производительности производится запуском _2_task_run_X.cmd и длится 2 минуты@REM @REM удаление старого сборщика данныхlogman delete -n RemoteFX_1logman delete -n RemoteFX_2logman delete -n RemoteFX_3logman delete -n RemoteFX_4logman delete -n RemoteFX_5for /F "usebackq delims= " %%a IN (`query session ^| find "Administrator"`) DO (    set "x=%%a"    set "x=!x:~9,10!"    echo !x!    type NUL>_1_counters.cfg    echo ^\NVIDIA GPU^(^*^)^\%% Video Decoder Usage>>_1_counters.cfg    echo ^\NVIDIA GPU^(^*^)^\%% Video Encoder Usage>>_1_counters.cfg    echo ^\NVIDIA GPU^(^*^)^\%% GPU Memory Usage>>_1_counters.cfg    echo ^\NVIDIA GPU^(^*^)^\%% GPU Usage>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\Processor Information^(_Total^)^\%% Processor Time>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\Loss Rate>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\Current TCP Bandwidth>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\Current UDP Bandwidth>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\Total Sent Rate>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\TCP Sent Rate>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\UDP Sent Rate>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\Total Received Rate>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\TCP Received Rate>>_1_counters.cfg    echo ^\RemoteFX Network^(RDP-Tcp !x!^)^\UDP Received Rate>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Output Frames/Second>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Input Frames/Second>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Frames Skipped/Second - Insufficient Server Resources>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Frames Skipped/Second - Insufficient Network Resources>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Frames Skipped/Second - Insufficient Client Resources>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Frame Quality>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Average Encoding Time>>_1_counters.cfg    echo ^\User Input Delay per Session^(Max^)^\Max Input Delay>>_1_counters.cfg    echo.>>_1_counters.cfg    echo ^\RemoteFX Graphics^(^*^)^\Graphics Compression ratio>>_1_counters.cfg    echo ^\NVIDIA GPU^(^*^)^\%% FB Usage>>_1_counters.cfg    @REM счётчик памяти не работает, сброс кэша счётчиков также не помог    @REM    https://docs.microsoft.com/ru-ru/troubleshoot/windows-server/performance/manually-rebuild-performance-counters    echo ^\Memory^\%% Committed Bytes In Use>>_1_counters.cfg    echo ^\Memory^\Available Bytes>>_1_counters.cfg)@REM и регистрация нового сборщикаlogman create counter -n RemoteFX_1 -f bin -max 10 -si 00:00:01 -rf 00:02:00 --v -o "%~dp0logs\test #1 void GPO X" -cf "%~dp0_1_counters.cfg"logman create counter -n RemoteFX_2 -f bin -max 10 -si 00:00:01 -rf 00:02:00 --v -o "%~dp0logs\test #2 3D GPO X" -cf "%~dp0_1_counters.cfg"logman create counter -n RemoteFX_3 -f bin -max 10 -si 00:00:01 -rf 00:02:00 --v -o "%~dp0logs\test #3 wmp GPO X" -cf "%~dp0_1_counters.cfg"logman create counter -n RemoteFX_4 -f bin -max 10 -si 00:00:01 -rf 00:02:00 --v -o "%~dp0logs\test #4 youtube GPO X" -cf "%~dp0_1_counters.cfg"logman create counter -n RemoteFX_5 -f bin -max 10 -si 00:00:01 -rf 00:02:00 --v -o "%~dp0logs\test #5 webGL GPO X" -cf "%~dp0_1_counters.cfg"@REM pause@REM exit
Принудительная остановка записи данных: _1_task_breake.cmd
@REM запускаем сбор данныхlogman stop RemoteFX_1logman stop RemoteFX_2logman stop RemoteFX_3logman stop RemoteFX_4logman stop RemoteFX_5
Конвертация двоичных данных в CSV: blg2csv.cmd
@echo off@REM смена кодировки нужна для powershell-скрипта "%~dpn0.ps1"chcp 65001@REM работаем в текущей папке скриптаcd "%~dp0logs"@REM включаем расширения для переопределения переменных в циклеsetlocal EnableDelayedExpansion@REM цикл по двоичным файлам мониторингаFOR /F "usebackq delims=." %%a IN (`dir *.blg /b`) DO (    set "blg=%%a.blg"    set "csv=%%a.csv"    @REM convert binary to csv    relog "!blg!" -f csv -o "!csv!" -y)@REM имена cmd и powershell скриптов должны совпадатьstart "%~dpn0.ps1" /WAIT /B pwsh.exe -Command "& {%~dpn0.ps1 -en:$False}"@REM справка reglog - утилиты работы с журналами производительности@REM https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/relog
Нормализация заголовков CSV: blg2csv.ps1

Заголовки столбцов содержат различные уникальные данные (id терминальной сессии или оборудования), которые будут несовпадать из-за применения групповых политик и выхода-входа на терминальный сервер. Приводим к единому виду с помощью PowerShell-скрипта:

[CmdletBinding()]param (    [switch] $en       = $False  # substitute ru alias of counters by real en name)$WorkDir = $MyInvocation.MyCommand.Definition | Split-Path -Parent$LogsDir = Join-Path -Path $WorkDir -ChildPath 'logs'$EncodeFrom = [System.Text.Encoding]::GetEncoding(1251)$EncodeTo = New-Object System.Text.UTF8Encoding $False$names = @(    New-Object psobject -Property @{ 'ru' = 'Задержка ввода данных пользователем на сеанс(Max)\Максимальная задержка ввода' ; 'en' = 'User Input Delay per Session\Max Input Delay'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Входящих кадров в секунду' ; 'en' = 'RemoteFX Graphics\Input Frames/Second'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Исходящих кадров в секунду' ; 'en' = 'RemoteFX Graphics\Output Frames/Second'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Среднее время кодирования' ; 'en' = 'RemoteFX Graphics\Average Encoding Time'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Качество кадра' ; 'en' = 'RemoteFX Graphics\Frame Quality'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Коэффициент сжатия графических данных' ; 'en' = 'RemoteFX Graphics\Graphics Compression ratio'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Общая скорость отправки' ; 'en' = 'RemoteFX Network\Total Sent Rate'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Общая скорость приема' ; 'en' = 'RemoteFX Network\Total Received Rate'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Потери' ; 'en' = 'RemoteFX Network\Loss Rate'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Пропущено кадров в секунду  недостаточно сетевых ресурсов' ; 'en' = 'RemoteFX Graphics\Frames Skipped/Second - Insufficient Network Resources'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Пропущено кадров в секунду  у сервера недостаточно ресурсов' ; 'en' = 'RemoteFX Graphics\Frames Skipped/Second - Insufficient Server Resources'}    New-Object psobject -Property @{ 'ru' = 'Графика RemoteFX\Пропущено кадров в секунду  у клиента недостаточно ресурсов' ; 'en' = 'RemoteFX Graphics\Frames Skipped/Second - Insufficient Client Resources'}    New-Object psobject -Property @{ 'ru' = 'Сведения о процессоре(_Total)\% загруженности процессора' ; 'en' = 'Processor Information(_Total)\% Processor Time'}    New-Object psobject -Property @{ 'ru' = 'NVIDIA GPU\% GPU Usage' ; 'en' = 'NVIDIA GPU\% GPU Usage'}    New-Object psobject -Property @{ 'ru' = 'NVIDIA GPU\% GPU Memory Usage' ; 'en' = 'NVIDIA GPU\% GPU Memory Usage'}    New-Object psobject -Property @{ 'ru' = 'NVIDIA GPU\% Video Decoder Usage' ; 'en' = 'NVIDIA GPU\% Video Decoder Usage'}    New-Object psobject -Property @{ 'ru' = 'NVIDIA GPU\% Video Encoder Usage' ; 'en' = 'NVIDIA GPU\% Video Encoder Usage'}    New-Object psobject -Property @{ 'ru' = 'NVIDIA GPU\% FB Usage' ; 'en' = 'NVIDIA GPU\% FB Usage'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Пропускная способность текущего UDP-подключения' ; 'en' = 'RemoteFX Network\Current UDP Bandwidth'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Пропускная способность текущего TCP-подключения' ; 'en' = 'RemoteFX Network\Current TCP Bandwidth'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Скорость отправки UDP-данных' ; 'en' = 'RemoteFX Network\UDP Sent Rate'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Скорость получения UDP-данных' ; 'en' = 'RemoteFX Network\UDP Received Rate'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Скорость отправки TCP-данных' ; 'en' = 'RemoteFX Network\TCP Sent Rate'}    New-Object psobject -Property @{ 'ru' = 'Сеть RemoteFX\Скорость получения TCP-данных' ; 'en' = 'RemoteFX Network\TCP Received Rate'})$Heads = @()foreach ($f in Get-ChildItem -Path $LogsDir -File -Filter '*.csv'){    $FileContent = $f | Get-Content -Encoding $EncodeFrom    $HeadOrig = $FileContent[0]    # приводим заголовки к единому виду, убираем ненужное    # "\\TESTGPU\NVIDIA GPU(#0 GRID M60-1Q (id=1, NVAPI ID=513))\% GPU Memory Usage"    if ($HeadOrig -match '.*(?<hostname>\\\\[a-zA-Z0-9]*\\).*')    {        $HeadOrig = $HeadOrig.Replace($Matches['hostname'], '')    }    if ($HeadOrig -match '.*NVIDIA GPU(?<gpu>\(#[A-Z0-9 ]*-[A-Z0-9]* \(id=[0-9,]* NVAPI ID=[0-9]*\)\))')    {        $HeadOrig = $HeadOrig.Replace($Matches['gpu'], '')    }    # "\\TESTGPU\Графика RemoteFX(RDP-Tcp 55)\Входящих кадров в секунду"    if ($HeadOrig -match '.*(?<session>\(RDP-Tcp[ 0-9]*\)).*')    {        $HeadOrig = $HeadOrig.Replace($Matches['session'], '')    }    # "(PDH-CSV 4.0) (Russia TZ 2 Standard Time)(-180)"    if ($HeadOrig -match '.*(?<time>\(.*\) \(.*Time\)\([0-9 +-]*\))')    {        $HeadOrig = $HeadOrig.Replace($Matches['time'], 'Time')    }    if ($en)    {        $HeadOrig = ($HeadOrig -split '","') -replace '"', ''        foreach ($h in $HeadOrig)        {            if ($h -notin $names.ru) { continue }            $n = $names | Where-Object {$_.ru -eq $h}            $HeadOrig[($HeadOrig.IndexOf($h))] = $n.en  # $h = $n.en не работает        }        $HeadOrig = '"{0}"' -f ($HeadOrig -join '","')    }    $FileContent[0] = $HeadOrig  # перезапись заголовка    $FileContent | Out-File -Encoding $EncodeTo -FilePath $f.FullName    $Heads += $f.Name + $HeadOrig  # сохранение заголовка}# вывод заголовков столбцов в отдельный файл для доп. контроля порядка, названий и т.д.$Heads | Out-File -Encoding $EncodeTo -FilePath (Join-Path -Path $LogsDir -ChildPath 'heads.txt')
Jupiter Notebook: импорт данных
import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.ticker import EngFormatter  # для вывода форматированных единиц измеренияplt.rcParams['figure.max_open_warning'] = 30  # порог предупреждения при одновременном построении нескольких рисунков%matplotlib inline# импорт данных csv-файловt21 = pd.read_csv('./logs/test #2 3D GPO 1.csv', na_values=' ')t20 = pd.read_csv('./logs/test #2 3D GPO 0.csv', na_values=' ')  # , encoding='cp1251')t31 = pd.read_csv('./logs/test #3 wmp GPO 1.csv', na_values=' ')t30 = pd.read_csv('./logs/test #3 wmp GPO 0.csv', na_values=' ')t31_prev = pd.read_csv('./logs/test #3 wmp GPO 1 anomaly.csv', na_values=' ')t41 = pd.read_csv('./logs/test #4 youtube GPO 1.csv', na_values=' ')t40 = pd.read_csv('./logs/test #4 youtube GPO 0.csv', na_values=' ')# слияние результатов каждого теста: сначала рекомендованные GPO, потом default GPOt2 = pd.concat([t21, t20],           join='inner', axis=1)t3 = pd.concat([t31, t30, t31_prev], join='inner', axis=1)t4 = pd.concat([t41, t40],           join='inner', axis=1)# разные наборы для итерации и рисования в циклеdataframes = [t2, t3, t4]ax_titles = ['test #2: 3D benchmark', 'test #3: play 1080p video', 'test #4: play 1080p youtube video']legend = ['GPU acceleration', 'default', 'GPU, anomaly']img_sx, img_sy = 15, 5  # размеры одного ряда графиковfgs = [  # макет графиков  # yunit ед. изм., ylabel метка Y-оси, ydata колонка из датафрейма    {'yunit': 'ms',     'ylabel': 'Input Delay',            'ydata': 'Задержка ввода данных пользователем на сеанс(Max)\Максимальная задержка ввода'},    {'yunit': 'fps',    'ylabel': 'RemoteFX input FPS',     'ydata': 'Графика RemoteFX\Входящих кадров в секунду'},    {'yunit': 'fps',    'ylabel': 'RemoteFX output FPS',    'ydata': 'Графика RemoteFX\Исходящих кадров в секунду'},    {'yunit': 'bps',    'ylabel': 'Tx Speed',               'ydata': 'Сеть RemoteFX\Общая скорость отправки'},    {'yunit': 'bps',    'ylabel': 'Rx Speed',               'ydata': 'Сеть RemoteFX\Общая скорость приема'},    {'yunit': '%',      'ylabel': 'Tx / Rx Loss',           'ydata': 'Сеть RemoteFX\Потери'},    {'yunit': '%',      'ylabel': 'CPU Usage',              'ydata': 'Сведения о процессоре(_Total)\% загруженности процессора'},    {'yunit': '%',      'ylabel': 'GPU Usage',              'ydata': 'NVIDIA GPU\% GPU Usage'},    {'yunit': '%',      'ylabel': 'GPU Memory Usage',       'ydata': 'NVIDIA GPU\% GPU Memory Usage'},    {'yunit': '%',      'ylabel': 'GPU Decoder Usage',      'ydata': 'NVIDIA GPU\% Video Decoder Usage'},    {'yunit': '%',      'ylabel': 'GPU Encoder Usage',      'ydata': 'NVIDIA GPU\% Video Encoder Usage'},    {'yunit': 'ms',     'ylabel': 'Encoding Time',          'ydata': 'Графика RemoteFX\Среднее время кодирования'},    {'yunit': '%',      'ylabel': 'Frame Quality',          'ydata': 'Графика RemoteFX\Качество кадра'},    {'yunit': '%',      'ylabel': 'Compression: enc byte / in byte', 'ydata': 'Графика RemoteFX\Коэффициент сжатия графических данных'},    {'yunit': 'fps',    'ylabel': 'FPS Loss by network',    'ydata': 'Графика RemoteFX\Пропущено кадров в секунду  недостаточно сетевых ресурсов'},    {'yunit': 'fps',    'ylabel': 'FPS Loss by server',     'ydata': 'Графика RemoteFX\Пропущено кадров в секунду  у сервера недостаточно ресурсов'},    {'yunit': 'fps',    'ylabel': 'FPS Loss by client',     'ydata': 'Графика RemoteFX\Пропущено кадров в секунду  у клиента недостаточно ресурсов'},    {'yunit': '%',      'ylabel': 'GPU Framebufer Usage',   'ydata': 'NVIDIA GPU\% FB Usage'},    {'yunit': 'bps',    'ylabel': 'Tx Speed UDP',           'ydata': 'Сеть RemoteFX\Скорость отправки UDP-данных'},    {'yunit': 'bps',    'ylabel': 'Rx Speed UDP',           'ydata': 'Сеть RemoteFX\Скорость получения UDP-данных'},    {'yscale': 1000,    'yunit': 'bps', 'ylabel': 'Bandwidth UDP', 'ydata': 'Сеть RemoteFX\Пропускная способность текущего UDP-подключения'},    {'yunit': 'bps',    'ylabel': 'Tx Speed TCP',           'ydata': 'Сеть RemoteFX\Скорость отправки TCP-данных'},    {'yunit': 'bps',    'ylabel': 'Rx Speed TCP',           'ydata': 'Сеть RemoteFX\Скорость получения TCP-данных'},    {'yscale': 1000,    'yunit': 'bps', 'ylabel': 'Bandwidth TCP', 'ydata': 'Сеть RemoteFX\Пропускная способность текущего TCP-подключения'},]
Jupiter Notebook: отрисовка одной метрики на диаграмму
for i in range(len(fgs)):  # сколько метрик, столько рисунков (рядов диаграмм)    fig, axs = plt.subplots(1, 3, figsize=(img_sx, img_sy), sharex='col', sharey='row', gridspec_kw=dict(hspace=0, wspace=0, ))  # width_ratios=[1, 1, 1]    fig_name = fgs[i]['ydata'].split('\\')[1]    fig.suptitle(f'Рис. {i + 1:>2}. {fig_name}', fontsize=14)  #, color='grey')  # имя рисунка    fig.patch.set_facecolor('white')  # фон рисунка белый вместо прозрачного    axs[0].set(ylabel=fgs[i]['ylabel'])  # подпись Y-оси только на первых (левых) графиках из трёх    axs[2].yaxis.set_tick_params(labelleft=False, labelright=True, which='major')  # дублируем значения справа    for ax, d, title in zip(axs, dataframes, ax_titles):  # на каждый тест своя диаграмма        ax.plot(d.index.values, d[fgs[i]['ydata']] * (fgs[i].get('yscale', 1)))  # строим график        ax.set_title(title)  #, color='grey')  # заголовок диаграммы                ax.xaxis.set_tick_params(which='major', labelcolor='grey')  # подписи к X-шкале        ax.xaxis.set_major_formatter(EngFormatter(unit='s'))  # по X секунды        ax.yaxis.set_tick_params(which='major', labelcolor='grey')  # подписи Y-шкале        ax.yaxis.set_major_formatter(EngFormatter(unit=fgs[i]['yunit']))  # по Y у каждого графика своя ед. изм.        # расчёт средних и вывод в легенду диаграммы "на лету"        avg = [EngFormatter(places=0).format_eng(avg * (fgs[i].get('yscale', 1))) for avg in d[fgs[i]['ydata']].mean()]        lgn = [f'avg {m}{fgs[i]["yunit"]}, {l}' for l, m in zip(legend, avg)]        ax.legend(lgn, fontsize=8)  # отображение легенды графика        ax.grid(axis='y')  # горизонтальная сетка        ax.set_xlim(0,119)  # метка "120" засоряла график        if ax == axs[1]:  # выделяем аномалии на средней диаграмме            ax.axvline(x=15, linestyle=":", color='C0')            ax.axvline(x=58, linestyle=":", color='C0')            ax.axvline(x=101, linestyle=":", color='C0')        fig.tight_layout()  # (pad=0.4, w_pad=1.5, h_pad=30.0)
Jupiter Notebook: отрисовка всех метрик на одной диаграмме

Общая ось X на все графики: метрики тестов располагаются строго друг под другом - удобно сопоставлять разные метрики между собой.

# один рисунок  # plt.style.available  # plt.style.use('seaborn-whitegrid')fig, axs = plt.subplots(len(fgs), 3, figsize=(img_sx, img_sy * len(fgs)), sharex='col', sharey='row', gridspec_kw=dict(hspace=0.2, wspace=0))fig.patch.set_facecolor('white')  # фон рисунка белый вместо прозрачного# заголовки только вверху[ax.set_title(title) for ax, title in zip(axs[0], ax_titles)]  # ax.set_title(title, color='grey')for i in range(len(fgs)):    axs[i,0].set(ylabel=fgs[i]['ylabel'])    fig_name = fgs[i]['ydata'].split('\\')[1]    axs[i,1].set(xlabel=f'Рис. {i + 1:>02}. {fig_name}')    # axs[i,1].xaxis.label.set_color('grey')    axs[i,2].yaxis.set_tick_params(labelleft=False, labelright=True, which='major')    for ax, d, title in zip(axs[i], dataframes, ax_titles):        ax.plot(d.index.values, d[fgs[i]['ydata']] * (fgs[i].get('yscale', 1)))        ax.xaxis.set_tick_params(which='major', labelcolor='grey')  # подписи к X-шкале        ax.xaxis.set_major_formatter(EngFormatter(unit='s'))  # по X секунды        ax.yaxis.set_tick_params(which='major', labelcolor='grey')  # подписи Y-шкале        ax.yaxis.set_major_formatter(EngFormatter(unit=fgs[i]['yunit']))  # по Y у каждого графика своя ед. изм.        # расчёт средних и изменение легенды диаграммы "на лету"        avg = [EngFormatter(places=0).format_eng(avg * (fgs[i].get('yscale', 1))) for avg in d[fgs[i]['ydata']].mean()]        lgn = [f'avg {m}{fgs[i]["yunit"]}, {l}' for l, m in zip(legend, avg)]        ax.legend(lgn, fontsize=8)  # отображение легенды графика        ax.grid(axis='y')  # горизонтальная сетка        ax.set_xlim(0,119)  # метка "120" засоряла график        if ax == axs[i,1]:  # выделяем аномалии на средней диаграмме            ax.axvline(x=15, linestyle="--", color='C0')            ax.axvline(x=58, linestyle="--", color='C0')            ax.axvline(x=101, linestyle="--", color='C0')
Диаграмма со всеми графиками

Продолжение истории будет на следующей неделе. Спасибо за внимание!


Что ещё интересного есть в блогеCloud4Y

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Пароль как крестраж: ещё один способ защитить свои учётные данные

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Подготовка шаблона vApp тестовой среды VMware vCenter + ESXi

Создание группы доступности AlwaysON на основе кластера Failover

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

20000 петабайт под водой есть ли перспективы у подводных центров обработки данных

07.12.2020 10:20:40 | Автор: admin

Дата-центры строят в самых неожиданных местах: старых бомбоубежищах, ледяных пещерах, католических храмах... У каждого варианта есть свои особенности. Мы предлагаем обсудить подводные ЦОД.

Люди активно используют море в своей деятельности. Но, помимо сброса в него многочисленных отходов, они начали работать и над размещением под водой центров обработки данных. Так, успешно завершился недавний эксперимент Microsoft с дата-центром у Оркнейских островов. И это значит, что морские глубины вполне могут стать бесценным ресурсом для операторов ЦОД.

У подводных дата-центров есть несколько важных преимуществ перед традиционными: они более экологичные и позволяют уменьшить объём вреда, наносимого окружающей среде, у них более высокий уровень технической надежности и потенциально большая устойчивость ко многим физическим угрозам, характерным для наземных ЦОД, начиная от землетрясений и заканчивая террористическими атаками.

Но пока что подводные ЦОД далеки от того, чтобы стать глобальной реальностью. Более того, главный их аргумент, снижение нагрузки на экологию, перебивается новой идеей: удалением ROT-данных (Redundant, Obsolete or Trivial избыточные, устаревшие или банальные). Некоторые аналитики считают, что за 2020 год в атмосферу будет выброшено шесть миллионов тонн CO2 из-за хранения данных, которые компании не могут идентифицировать и которые могут даже не понадобиться им в будущем. Если бы эта идея стала популярной, то можно было бы увидеть значительное сокращение объёма хранящейся в ЦОД информации, что окажет прямое влияние на выбросы дата-центров, а также на общие расходы компаний.

Идея с ROT-данными может показаться поверхностной, но это небольшое изменение можно внедрить в бизнес-процесы уже сейчас, так как оно не способно нанести ущерба компаниям. При этом польза от него будет по принципу win-win. Поскольку 2020 год стал временем быстрого принятия новых идей и адаптации бизнеса к новым условиям, почему бы не попробовать и это решение?

Но вернёмся к подводным ЦОД. Про экологию мы сказали, стоит затронуть и вопрос защищённости. Наверняка вы не раз слышали ( и не только от Cloud4Y) о том, сколь важно создавать резервные копии вне офиса и даже отдельно от другой инфраструктуры. Это делается для того, чтобы в случае любых неприятностей ИТ-отдел в полном составе не начинал седеть от понимания, что данные за день/неделю/месяц безвозвратно утеряны. Услуга резервного ЦОД это следствие нашего желания максимально эффективно защитить данные компаний-клиентов. Но резервные копии можно отправлять в облако и другого оператора. Их дата-центр может находиться где угодно. Даже под водой.

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

В примере Microsoft всего восемь из 855 серверов вышли из строя за два года с тех пор, как центр обработки данных был погружен в океан. Это 12,5% от средней частоты отказов оборудования. Весьма достойные показатели, особенно если учесть отсутствие людей в сооружении. Подводный ЦОД выглядит весьма надёжно, представляя собой почти идеальный вариант для резервного копирования данных или Disaster recovery.

Так что вполне можно ожидать, что и другие крупные операторы дата-центров последуют примеру Microsoft, изучая возможность размещения своих ЦОД в морских недрах. И тем самым будут развивать не только более экологичное хранение данных, но и всевозможные технологии, связанные с деятельностью человека и технически сложного оборудования под водой. Должно получиться интересно. Что думаете?


Что ещё интересного есть в блогеCloud4Y

В тюрьму за приложение

Детям о Кубернете, или приключения Фиппи в космосе

Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?

Рассказываем про государственные защищенные сервисы и сети

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Бесплатный канал 100Mbps для клиентов Cloud4Y

26.04.2021 12:16:37 | Автор: admin

C апреля 2021 Cloud4Y отменил тарификацию интернет-канала пропускной способностью 100Mbps при расчёте стоимости виртуальных мощностей.

Ранее, в качестве бесплатной базовой опции, Cloud4Y предлагал интернет-канал 5Mbps.

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

Почему это важно?

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

Вы можете бесплатно протестировать облачный сервис Cloud4Y, оставив заявку на сайтe.

Подробнее..

Подготовка шаблона vApp тестовой среды VMware vCenter ESXi

25.02.2021 10:21:06 | Автор: admin

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

Перед вами пошаговое руководство по подготовке шаблона vApp для VMware Cloud Director, включающего в себя vCenter Server Appliance и 3 гипервизора ESXi, с целью снижения временных затрат на развертывании тестовой инфраструктуры VMware.

Оглавление
  1. Что мы будем делать

    1.1. Список VM в шаблон

    1.2. Требования

  2. Схема логической топологии

  3. Подготовка Working Environment

    3.1. Установка ESXi

    3.2. Установка ManagementVM

    3.3. Установка vCenter Server Appliance

  4. Создание шаблона vApp

    4.1. Подготовка vApp

    4.2. Создание ESXi VM в vApp

    4.3. Кастомизация ESXi в vApp

    4.4. Установка vCenter Server Appliance в vApp

    4.5. Установка Windows Server 2019 в vApp

    4.6. Установка Ubuntu 18.04 LTS в vApp

    4.7. Удаление ISO приводов и сетевых адаптеров

  5. Выгрузка vApp шаблона из Working Environment

  6. Загрузка vApp в VMware Cloud Director

1. Что мы будем делать

Мы подготовим максимально гибкий шаблон без привязки к адресу подсети, доменному имени, количеству выделяемых ресурсов и т.п. Будем делать так, чтобы при развертывании шаблона администратор мог произвести тонкую настройку. Подготовка шаблона выполняется в сети 10.0.0.0/24, а за стандартные значения при развертывании готового шаблона примем домен Domain.local и сеть 192.168.2.0/24.

Имя домена domain.local и сеть 192.168.2.0/24 выберем как значения по умолчанию, которые можно изменять в процессе развёртывания шаблона.

Мы подготовим шаблон, включающий в себя 6 виртуальных машин.

1.1. Список VM в шаблоне

  1. VMware ESXi 1 Гипервизор;

  2. VMware ESXi 2 Гипервизор;

  3. VMware ESXi 3 Гипервизор;

  4. VMware vCenter Server Appliance with Embedded Platform Services Controller в конфигурации Tiny;

  5. Ubuntu 18.04 LTS в качестве общего NFS хранилища;

  6. Windows Server 2019 в качестве DNS сервера и Management machine. В последствии, с нее будет производится управления vCenter.

1.2. Требования

  1. VDC в VMware Cloud Director:

    a. 28 vCPU;

    b. 50GB RAM;

    c. 2TB Storage.

  2. Дистрибутивы ПО:

    a. ISO с дистрибутивом VMware ESXi 6.7U3b;

    b. ISO (или OVA) с дистрибутивом VMware vCenter Server Appliance 6.7U3b;

    c. ISO (или OVA) с Windows Server 2019;

    d. ISO (или OVA) с Ubuntu1804.

  3. Дополнительное ПО (опционально):

    a. Браузер Google Chrome;

    b. Текстовый редактор Notepad++;

    c. SFTP клиент WinSCP.

    d. 7-Zip

  4. Убедитесь, что в нашей локальной сети на уровне vCenter облачного провайдера переключены в состоянии Accept политики Promiscuous mode и Forged transmits. Иначе не будет связи между сетью виртуального дата-центра и сетью внутри подготавливаемого шаблона. Здесь об этом рассказывается подробнее.

Дистрибутивы продуктов VMware можно скачать с официального сайта, зарегистрировавшись в программе обучения и получив VMware Evaluation License на 60 дней.

Возможностей VMware Cloud Director для подготовки данного шаблона будет недостаточно, поэтому сначала развернём нашу рабочую среду Working Environment в виртуальном дата-центре VMware Cloud Director.

В рабочую среду мы установим ESXi гипервизор, vCenter Server Appliance и Windows Server 2019 в качестве ManagementVM. Подготовку шаблона будем выполнять, используя интерфейс vSphere Client в рабочей среде.

2. Схема логической топологии

3. Подготовка Working Environment

3.1. Установка ESXi

В VDC создаём каталог (Libraries -> Catalogs -> New) и загружаем в него ISO с установщиком ESXi.

Создаём VM temp-ESXi1 ESXi 6.7.

Выбираем загрузку с ISO.

Назначаем VM 24 vCPU, 24 Cores per socket, 32GB RAM и 5GB Storage. Подключаем сеть к виртуальной машине.

ESXi требует для развёртывания минимум двухъядерные процессоры. Установка на 24 одноядерных vCPU завершится ошибкой, поэтому необходимо задать отличный от единицы параметр Cores per socket.

Запускаем VM.

Выполняем установку, нажимая Enter или F11

В процессе установки задаём пароль root

Нажимаем F11 и дожидаемся завершения установки

По завершению установки нажимаем Enter и перезагружаемся

Дожидаемся окончания загрузки, нажимаем F2, вводим пароль root

Переходим в настройки сети Configure Management Network.

Задаём статический IP.

Отключаем IPv6.

Перезагружаем VM для применения отключения IPv6. Для применения остальных настроек достаточно перезапуска сетевого адаптера.

В VMware Cloud Director подключаем к temp-ESXi1 ещё один диск на 1ТБ. Это будет наш Datastore. Перезагружаем VM temp-esxi1.

3.2. Установка ManagementVM

Разворачиваем VM с Windows Server 2019. Настраиваем доступ по RDP.

Подключаемся по RDP к VM c Windows Server. Устанавливаем роль DNS сервера.

Создаём Forward Lookup Zone template.local

Создаём Reverse Lookup Zone для 0.0.10.in-addr.arpa

Создаём A и PTR записи в созданных зонах для temp-esxi01 и vcentersa1.

Важно! PTR запись для vCenter должна быть обязательно. Без неё установка vCenter завершится ошибкой.

Настраиваем DNS Forwarders.

Настраиваем DNS сервер 127.0.0.1 на сетевом интерфейсе.

3.3. Установка vCenter Server Appliance

Монтируем образ VMware-VCSA-all-6.7.0-14367737.iso на ManagementVM и извлекаем из ISO E:\vcsa\VMware-vCenter-Server-Appliance-6.7.0.40000-14367737_OVF10.ova

Переходим в vcd.cloud4y.ru в свой VDC. Загружаем в каталог OVA шаблон с vCenter. Для загрузки понадобится 300 ГБ свободного места в VDC.

Получаем ошибку

В логе видим текст ошибки Validation failed for the OVF file you provided: Fatal: Line/char 867/92: cvc-minInclusive-valid: Value '-100' is not facet-valid with respect to minInclusive '0' for type 'unsignedShort'. Fatal: Line/char 867/92: cvc-attribute.3: The value '-100' of attribute 'ovf:id' on element 'OperatingSystemSection' is not valid with respect to its type, 'unsignedShort'..

VMware Cloud Director не принимает значение -100 на строке 867 *.ovf файла.

Возвращаемся на ManagementVM и с помощью архиватора 7-zip извлекаем *.ovf и *.mf файлы. OVA представляет из себя архив tar, и, как правило, содержит файлы виртуальных дисков *.vmdk, файл конфигурации VM/vApp *.ovf, список файлов в архиве и их контрольные суммы *.mf

Открываем *.ovf через текстовый редактор и ищем -100 на 867 строке и заменяем на 1

Теперь нам нужно пересчитать SHA1 для *.ovf файла и изменить это значение в *.mf файле

Для расчета хеша используем PowerShell

(Get-FileHash C:\Users\Administrator\Desktop\VMware-vCenter-Server-Appliance-6.7.0.40000-14367737_OVF10.ovf -Algorithm SHA1).Hash.ToLower()

Заменяем значение в *.mf файле

Запаковываем *.ovf и *.mf обратно в OVA шаблон

Пробуем загрузить OVA в VDC ещё раз.

По завершению загрузки разворачиваем vApp с vCenter в нашем VDC

Выделяемые ресурсы vCPU, RAM, Storage не меняем. Больше ресурсов не требуется, а при меньшем значении могут возникнуть проблемы с производительностью.

Конфигурируем сеть.

На шаге 8 ничего не меняем. Мы изменим эти параметры позже. Нажимайте Next. Если при развёртывании шаблона что-то пойдёт не так, придётся заполнять эти поля ещё раз при повторном развёртывании.

Дожидаемся окончания развёртывания и перемещаем VM в vApp vcsa + esxi для наглядности. С технической точки зрения разницы нет.

По окончанию перемещения наш vApp vcsa + esxi выглядит следующим образом.

Переходим в Guest Properties temp-vcentersa1 и нажимаем Edit

Заполняем поля, указанные в таблице ниже. Остальные поля заполнять не обязательно

Наименование параметра

Описание параметра

Значение параметра

Domain Name

Имя домена (DNS суффикс)

template.local

Host Network IP Address Family

Семейство IP

ipv4

Host Network Mode

IP Mode

static

Host Network IP Address

IP адрес vCenter

10.0.0.110

Host Network Prefix

Префикс подсети

24

Host Network Default Gateway

IP шлюза по умолчанию

10.0.0.1

Host Network DNS Servers

Адреса DNS серверов

10.0.0.102

Host Network Identity

FQDN vCenter

temp-vcentersa1.template.local

Directory Username

Логин учетной записи администратора в SSO домене. Используется для аутентификации в веб интерфейсе vCenter

administrator@vsphere.local

Directory Password

Пароль учетной записи администратора в SSO домене. Используется для аутентификации в веб интерфейсе vCenter

*пароль*

Directory Domain Name

Имя домена SSO. Должно соответствовать домену, указанному в логине учетной записи администратора

vsphere.local

Root Password

Пароль root от консоли vCenter

*пароль*

Tools-based Time Synchronization Enabled

Использовать VM Tools для синхронизации времени с гипервизором.

+

На случай, если мы где-то ошиблись в заполнении параметров, можно создать Snapshot перед первым запуском.

Запускаем VM и ждём 5-10 минут.

Через браузер с ManagementVM переходим на https://temp-vcentersa1.template.local:5480/ и дожидаемся окончания установки.

Нажимаем Set Up

Вводим пароль root, указанный ранее в Guest Properties

На шаге 2 проверяем корректность настроек. Редактируем при необходимости.

На шаге 3 создаём новый SSO домен.

Проверяем корректность параметров и нажимаем Finish.

Если установка завершится ошибкой на 2%, то проблема почти наверняка кроется в некорректно созданной PTR записи для vCenter.

Дожидаемся окончания установки

Переходим по адресу https://temp-vcentersa1.template.local:443, выбираем LAUNCH VSPHERE CLIENT (HTML5)

Вводим учётные данные Администратора SSO домена

Скачиваем сертификат CA и устанавливаем в систему https://temp-vcentersa1.template.local/certs/download.zip .

Необходимо установить сертификат download.zip\certs\win\*.crt в доверенные корневые центры сертификации ManagementVM и перезапустить браузер.

В vCenter создаём дата-центр.

В дата-центре создаём кластер.

Включаем vSphere DRS.

vSphere HA и VSAN оставляем выключёнными. C 1 ESXi гипервизором DRS работать не будет, но он должен быть включён для работы с vApp.

Переходим в Configure - > Configuration > Quickstart кластера temp-Cluster и добавляем temp-ESXi1, нажав ADD.

Выбираем наш хост temp-esxi1.template.local и вводим учётные данные root.

Принимаем его сертификат и завершаем работу с Quickstart. Нужно добавить temp-esxi1 в кластер. Продолжать настройку кластера необходимости нет.

Добавляем Datastore в наш кластер. Кликаем правой кнопкой мыши по кластеру и выбираем Storage -> New Datastore.

Выбираем тип VMFS

Задаём имя Datastore и выбираем подключенный ранее диск на 1 ТБ на temp-ESXi1.

На шаге 4 указываем использование всего раздела на 1 ТБ и завершаем работу мастера.

Выводим temp-esxi1 из Maintenance Mode

Подготовка инфраструктуры для создания шаблона завершена.

4. Создание шаблона vApp

4.1. Подготовка vApp

Кликаем на кластер правой кнопкой мыши и создаём новый vApp: vApp_vCenter6.7_3ESXi6.7_UbuntuNFS_WindowsDNS

В vApp будут следующие VM:

  1. ESXi01

  2. ESXi02

  3. ESXi03

  4. vCenterSA01

  5. WindowsDNS

  6. UbuntuNFS01

UbuntuNFS это имитация внешней СХД. На ней будет Datastore, доступный всем ESXi хостам.

ESXi0x устанавливаем из ISO. vCenterSA01, WindowsDNS, UbuntuNFS можно развернуть из OVA шаблонов.

Добавим ISO с установщиком ESXi в temp-Datastore. Переходим в Datastores -> temp-Datastore -> Files, создаём папку ISO и загружаем в неё ISO образ установщика ESXi

4.2. Создание ESXi VM в vApp

На шаге 2 задаём имя VM.

На шаге 3 выбираем vApp, в котором будут размещены VM.

На шаге 6 выбираем тип гостевой ОС.

На шаге 7 выбираем 2 vCPU, 4GB RAM, 5GB Storage и подключаем ISO. Разверните подраздел CPU и отметьте пункт Hardware virtualization.

Перейдите на вкладку VM Options и снимите отметку с пункта Secure Boot.

Клонируем VM ESXi01 в VM ESXi02 и в VM ESXI03.

Запускаем vApp и выполняем установку ESXi01, ESXi02, ESXi03.

Настраиваем на ESXi IP адреса:

ESXi01 - 10.0.0.11

ESXi02 - 10.0.0.12

ESXi03 - 10.0.0.13

На каждом ESXi хосте включаем доступ по SSH (F2 -> Troubleshooting Options - > Enable SSH)

4.3. Кастомизация ESXi в vApp

Добавим ESXi хостам возможность кастомизации сетевых параметров из интерфейса VMware Cloud Director (и vSphere Client). Для этого подключимся с помощью WinSCP к хосту, перейдём в каталог /etc/rc.local.d и откроем текстовым редактором файл local.sh

Заменим содержимое local.sh следующим скриптом:

#!/bin/sh#Customization script for ESXi01getprops_from_ovfxml() {/bin/python - <<EOSfrom xml.dom.minidom import parseStringovfEnv = open("$1", "r").read()dom = parseString(ovfEnv)section = dom.getElementsByTagName("PropertySection")[0]for property in section.getElementsByTagName("Property"):key = property.getAttribute("oe:key").replace('.','_')value = property.getAttribute("oe:value")print ("{0}={1}".format(key,value))dom.unlink()EOS}#С помощью VMware Tools получаем ovf.xml с параметрами, переданными через Guest Properties/sbin/vmtoolsd --cmd='info-get guestinfo.ovfEnv' >/tmp/ovf.xml 2>/dev/nulleval `getprops_from_ovfxml /tmp/ovf.xml`#Проверяем, что в Guest Properties включена кастомизацияif [ $enablecustomization1 = "enabled" ] ;thenesxcfg-init --set-boot-progress-text "Applying OVF customization..."#Изменяем пароль rootecho $rootpassword1 | passwd --stdin root#Задаем FQDN ESXi хостаesxcli system hostname set --fqdn=$fqdn1#Задаем настройки IPesxcli network ip interface ipv4 set -i vmk0 -I $ipaddr1 -N $netmask1 -g $defaultgateway1 -t static#Очищаем список DNS серверовesxcli network ip dns server remove -a#Добавляем DNS серверesxcli network ip dns server add --server=$dnsserver1#Перезапускаем сетевой интерфейс для применяния настроекesxcli network ip interface set -e false -i vmk0esxcli network ip interface set -e true -i vmk0esxcfg-init --set-boot-progress-text "OVF customization applied"elseesxcfg-init --set-boot-progress-text "OVF customization disabled."firm -f /tmp/ovf.xmlexit 0

Сохраним файл и выключим хост ESXi из меню выключения.

Важно: для каждого ESXi хоста применятся своя версия скрипта.

Это связано с тем, что в ovf.xml передаются все параметры Guest Properties каждой VM в vApp.

Для ESXi02 в скрипте нужно у всех переменных заменить число в конце переменной на 2.

$rootpassword1 заменить на $rootpassword2

$ipaddr1 заменить на $ipaddr2

и т.д.

Скрипт для ESXi02
#!/bin/sh#Customization script for ESXi02getprops_from_ovfxml() {/bin/python - <<EOSfrom xml.dom.minidom import parseStringovfEnv = open("$1", "r").read()dom = parseString(ovfEnv)section = dom.getElementsByTagName("PropertySection")[0]for property in section.getElementsByTagName("Property"):key = property.getAttribute("oe:key").replace('.','_')value = property.getAttribute("oe:value")print ("{0}={1}".format(key,value))dom.unlink()EOS}#С помощью VMware Tools получаем ovf.xml с параметрами, переданными через Guest Properties/sbin/vmtoolsd --cmd='info-get guestinfo.ovfEnv' >/tmp/ovf.xml 2>/dev/nulleval `getprops_from_ovfxml /tmp/ovf.xml`#Проверяем, что в Guest Properties включена кастомизацияif [ $enablecustomization2 = "enabled" ] ;thenesxcfg-init --set-boot-progress-text "Applying OVF customization..."#Изменяем пароль rootecho $rootpassword2 | passwd --stdin root#Задаем FQDN ESXi хостаesxcli system hostname set --fqdn=$fqdn2#Задаем настройки IPesxcli network ip interface ipv4 set -i vmk0 -I $ipaddr2 -N $netmask2 -g $defaultgateway2 -t static#Очищаем список DNS серверовesxcli network ip dns server remove -a#Добавляем DNS серверesxcli network ip dns server add --server=$dnsserver2#Перезапускаем сетевой интерфейс для применяния настроекesxcli network ip interface set -e false -i vmk0esxcli network ip interface set -e true -i vmk0esxcfg-init --set-boot-progress-text "OVF customization applied"elseesxcfg-init --set-boot-progress-text "OVF customization disabled."firm -f /tmp/ovf.xmlexit 0
Скрипт для ESXi03
#!/bin/sh#Customization script for ESXi03getprops_from_ovfxml() {/bin/python - <<EOSfrom xml.dom.minidom import parseStringovfEnv = open("$1", "r").read()dom = parseString(ovfEnv)section = dom.getElementsByTagName("PropertySection")[0]for property in section.getElementsByTagName("Property"):key = property.getAttribute("oe:key").replace('.','_')value = property.getAttribute("oe:value")print ("{0}={1}".format(key,value))dom.unlink()EOS}#С помощью VMware Tools получаем ovf.xml с параметрами, переданными через Guest Properties/sbin/vmtoolsd --cmd='info-get guestinfo.ovfEnv' >/tmp/ovf.xml 2>/dev/nulleval `getprops_from_ovfxml /tmp/ovf.xml`#Проверяем, что в Guest Properties включена кастомизацияif [ $enablecustomization3 = "enabled" ] ;thenesxcfg-init --set-boot-progress-text "Applying OVF customization..."#Изменяем пароль rootecho $rootpassword3 | passwd --stdin root#Задаем FQDN ESXi хостаesxcli system hostname set --fqdn=$fqdn3#Задаем настройки IPesxcli network ip interface ipv4 set -i vmk0 -I $ipaddr3 -N $netmask3 -g $defaultgateway3 -t static#Очищаем список DNS серверовesxcli network ip dns server remove -a#Добавляем DNS серверesxcli network ip dns server add --server=$dnsserver3#Перезапускаем сетевой интерфейс для применяния настроекesxcli network ip interface set -e false -i vmk0esxcli network ip interface set -e true -i vmk0esxcfg-init --set-boot-progress-text "OVF customization applied"elseesxcfg-init --set-boot-progress-text "OVF customization disabled."firm -f /tmp/ovf.xmlexit 0

После того, как мы добавили скрипты на каждый ESXi хост, через vCenter кликаем на VM -> Configure -> vApp Options -> Edit

Отмечаем пункт Enable vApp options, а на вкладке OVF Details отмечаем пункт VMware Tools. Это нужно для того, чтобы VMware Tools передали ovf.xml внутрь гостевой ОС ESXi

Переходим VM -> Configure -> vApp Options, пролистываем вниз и нажимаем ADD.

Для ESXi01 нужно добавить следующие Properties:

  1. enablecustomization1;

  2. rootpassword1;

  3. fqdn1;

  4. ipaddr1;

  5. netmask1;

  6. defaultgateway1;

  7. dnsserver1.

В поле Category указываем название подраздела, в поле Label отображамое имя параметра, а в поле Key ID имя переменной, которую обрабатывает скрипт кастомизации.

Эти параметры можно будет задать в интерфейсе VMware Cloud Director в процессе развёртывания шаблона. Скриншот для наглядности ниже.

Нажимаем ADD и добавляем Properties.

На вкладке Type мы можем выбрать тип параметра, в нашем случае все параметры строковые (String), и выбрать значение по умолчанию (Default value). Это значение будет автоматически подставлено при развёртывании шаблона.

Создаём property для каждого параметра на каждом ESXi хосте.

Корректно заполненные Properties должны выглядеть, как на скриншотах ниже.

4.4. Установка vCenter Server Appliance в vApp

Добавим OVA с vCenter Server Appliance vApp. Конфигурировать и запускать не будем.

Выбираем OVA шаблон vCenter

В процессе развёртывания оставляем все значения По умолчанию. Просто нажимаем Next на каждом этапе и дожидаемся окончания развёртывания.

Затем необходимо установить Windows Server 2019 и Ubuntu 18.04 LTS. Это можно сделать, используя ISO-образы, но я пойду более простым путём и разверну их из OVA шаблонов, предварительно скачанных из публичных каталогов VMware Cloud Director (vcd.cloud4y.ru).

4.5. Установка Windows Server 2019 в vApp

Разворачиваем Windows Server из OVA шаблона. Запускаем VM.

Включаем удалённое управление по RDP.

Устанавливаем роль DNS сервера.

Создаём Forward Lookup Zone для domain.local.

Создаём Reverse Lookup Zone для 2.168.192.in-addr.arpa.

Выключаем VM.

4.6. Установка Ubuntu 18.04 LTS в vApp

Концепция следующая:

При развёртывании шаблона в VMware Cloud Director подключаем к VM с Ubuntu 18.04 LTS дополнительный диск, форматируем его в ext4 и расшариваем в нашей подсети средствами NFS.

Настраиваем сеть. Устанавливаем обновления: apt install update && apt install upgrade -y

Устанавливаем NFS сервер: apt install nfs-kernel-server nfs-common -y

Внесём закомментированные строки, которые будет достаточно раскомментировать в случае развёртывания в стандартной конфигурации.

Редактируем /etc/fstab

Редактируем /etc/exports

Выключаем все запущенные VM в vApp.

4.7. Удаление ISO приводов и сетевых адаптеров

Переходим в настройки каждой VM и удаляем все CD-приводы и сетевые адаптеры каждой VM в vApp. CD-приводы нам более не требуются. Сетевые адаптеры удаляем во избежание конфликтов при развёртывании шаблона.

5. Выгрузка vApp шаблона из Working Environment

Выгрузка шаблона из vCenter.

Теперь мы можем выгрузить шаблон.

В случае возникновения подобного предупреждения разрешаем открытие всплывающих окон в браузере.В случае возникновения подобного предупреждения разрешаем открытие всплывающих окон в браузере.

По окончанию скачивания получаем набор файлов, готовых к загрузке в VMware Cloud Director. Общий размер 11,5 ГБ, но в VMware Cloud Director потребуется около 350ГБ, т.к. у нас используются Thin (тонкие) диски, а VMware Cloud Director рассчитывает размер не по текущему размеру диска, а по максимальному (до которого диски могут быть расширены).

6. Загрузка vApp в VMware Cloud Director

Переходим в vcd.cloud4y.ru и загружаем vApp из OVF.

Нажимаем Browse и выбираем все файлы, которые мы экспортировали из vCenter.

На последующих шагах принимаем EULA и не вносим изменений в параметры развёртывания. Нажимаем Next-> Next -> -> Finish.

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

Надеемся, что наш туториал по подготовке шаблона vApp тестовой среды VMware vCenter + ESXi в VMware Cloud Director будет вам полезен при работе с вложенной виртуализацией и подготовке среды для неё. Да, в первую очередь информация будет полезна инженерам облачного провайдера. Но для понимания принципов работы облачной инфраструктуры статью можно прочитать и другим техническим специалистам.

Спасибо за внимание!


Что ещё интересного есть в блогеCloud4Y

Пароль как крестраж: ещё один способ защитить свои учётные данные

Тим Бернерс-Ли предлагает хранить персональные данные в подах

Виртуальные машины и тест Гилева

Создание группы доступности AlwaysON на основе кластера Failover

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

В тюрьму за приложение

20.11.2020 16:08:20 | Автор: admin

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

Днём 23 октября С. Ювараджа был в своем доме в Тирупуре и писал программное обеспечение, когда в его дверь постучали сотрудники полиции.

Вы разработали это приложение? спросили полицейские, указывая на экран телефона с телефонным приложением Super Tatkal, которое позволяет заказывать железнодорожные билеты намного быстрее, чем через IRCTC, громоздкий веб-сайт Индийских железных дорог. Услышав в ответ да, они арестовали 32-летнего разработчика в соответствии с Законом об Индийских железных дорогах 1989 года за несанкционированный бизнес по приобретению и поставке железнодорожных билетов. Вскоре после его ареста чиновники также добились деактивации Super Tatkal и Super Tatkal Pro, которые до этого были доступны в магазине Google Play.

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

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

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

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

Директор Центра инноваций и предпринимательства Индийской школы бизнеса прокомментировал этот инцидент так: Нельзя обходить нормативные требования, будь то IRCTC или любое другое государственное учреждение. Но я думаю, что сначала разработчика следовало предупредить, чтобы достичь компромисса. Но IRCTC компромисса явно не желает. В своём твиттере компания заявила, что использование незаконного программного обеспечения запрещено Законом о железных дорогах.

Немного о разработчике и предмете спора

Ювараджа впервые начал программировать на BASIC в 11 лет. Вскоре он полюбил кодинг и начал рассматривать это направление как вариант карьеры, когда познакомился с Java. В 2007 году Ювараджа поступил на авиационного инженера в Технологический институт Мадраса, ведущую техническую школу Тамил Наду. Будучи весьма перспективным учащимся, он получал стипендию в размере 3000 рупий (3080 рублей) в месяц от Организации оборонных исследований и разработок правительства Индии (DRDO). В Массачусетском технологическом институте в Ченнаи Ювараджа встретил таких же, как он. Тех, кто любит программировать. Позднее он получил степень магистра в области авиационной техники и устроился в хорошую авиационную фирму в Бангалоре.

Работая в Бангалоре, Ювараджа часто заказывал билеты для поездки домой в Тирупур. Именно тогда я понял, что приложение IRCTC ужасно медленное. Кроме того, я всегда хотел разрабатывать приложения, и мне показалось, что сейчас самое подходящее время , рассказывает Ювараджа. Так появился Super Tatkal.

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

Сначала в приложении были баги, но постоянная группа пользователей давала обратную связь, указывая на недочёты. Устраняя их, Ювараджа понял, что приложение набирает популярность. Первый год оно было бесплатным. Позже, когда стоимость обслуживания облачных серверов увеличилась до 10 000 рупий в месяц, разработчик попросил у пользователей финансовой поддержки. Это не помогло, и тогда он решил ввести систему покупок внутри приложения, когда пользователь мог купить стопку из 10 виртуальных монет за 20 рупий (около 20 рублей). После первых трёх бесплатных бронирований приложение просило пять монет за транзакцию, то есть пользователь должен был заплатить 10 рупий (10 рублей) за бронирование.

Железнодорожники утверждают, что Ювараджа заработал 20 миллионов рупий через Super Tatkal в период с 2016 по 2020 год. Это может показаться большим числом, но получается около 40 000 рупий в месяц. При этом все пользователи знали о модели оплаты и что разработчик никого не обманывал, заставляя платить.

Мы не разрешали

Super Tatkal ProSuper Tatkal Pro

Так как Super Tatkal набирал обороты, Ювараджа решил погрузиться в мир стартапов. Он уволился с работы в 2017 году и вместе с двумя своими друзьями создал приложение-агрегатор грузовиков Speedbird trucks. Это было похоже на Ola или Uber для грузовиков. Но у компании быстро появились проблемы. Было сложно убедить людей использовать грузовики, доступные в приложении, потому что существующие контракты с известными сервисами казались пользователям проще. Компания была основана на сбережениях трех молодых людей, и ей не хватало бизнес-модели. История закончилась убытками.

Между тем у Super Tatkal дела шли относительно хорошо. Количество пользователей продолжало расти, и было запущено второе приложение, Super Tatkal Pro. Оно позволило бронировать билеты через приложение IRCTC для железнодорожного сообщения в 2019 году. Чтобы поддерживать свой стартап и поддерживать свою семью, Ювараджа также работал программистом-фрилансером. Доход был небольшой, но стабильный. Однако Ювараджа и не подозревал, что его приложение внимательно изучалось сотрудниками железнодорожной полиции.

Сотрудники штаб-квартиры Южной железной дороги в Ченнаи сыграли ключевую роль в анализе данных и идентификации местонахождения разработчика поддельного приложения, а также собрали доказательства, например исходный код сервера, исходный код приложения, список конечных пользователей и банковские выписки преступника горделиво указано в отчёте железнодорожной полиции.

Ошибка Ювараджа, по мнению одного из представителей железнодорожной компании, заключалась в том, что он не получил необходимое разрешение от IRCTC и работал как билетный агент. Согласно Закону о железных дорогах, все, кто помогает пассажирам оформлять билеты, должны зарегистрироваться в IRCTC в качестве агента. Относится ли это правило к разработчикам приложений? Компания не стала отвечать на этот вопрос.

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

Когда Ювараджа вернулся домой, журналисты спросили его, планирует ли он возродить своё приложение и наладить сотрудничество с IRCTC, если ему выдадут официальное разрешение. Мне бы этого очень хотелось, услышали они.


Что ещё интересного есть в блогеCloud4Y

Найдено давно утерянное руководство к самому старому компьютеру в мире

Детям о Кубернете, или приключения Фиппи в космосе

Определённо не Windows 95: какие операционные системы поддерживают работу в космосе?

Рассказываем про государственные защищенные сервисы и сети

Внутри центра обработки данных Bell Labs, 1960-е

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Sci-Hub теперь находится в нецензурируемой сети

15.01.2021 16:07:39 | Автор: admin

После того, как популярный, но крайне нелюбимый правообладателями сайт Sci-Hub столкнулся с неоднократными отзывами доменных имен, а Твиттер и вовсе забанил аккаунт Sci-Hub, Александра Элбакян зарегистрировала его в сети распределенных доменных имен Handshake.

База данных научных работ теперь доступна напрямую черезпорталы службы,а такжечерез NextDNS, облачный преобразователь доменных имен, ориентированный на конфиденциальность, который преобразует IP-адреса в доменные имена. Разработчики NextDNSназываютсебя истинными сторонниками сетевого нейтралитета и конфиденциальности в интернете. Они считают, что незашифрованные DNS-резолверы, управляемые интернет-провайдерами, наносят ущерб этим двум принципам. Устойчивый к цензуре DNS поможет сохранить доступность Sci-Hub, даже если его снова попытаются закрыть, надеется основательница портала.

Handshake по сути является децентрализованным сервером доменных имен.Вместо использования стандартного веб-центра сертификации для аутентификации подключений пользователей к серверу, Handshake сохраняет ссылки на IP-адреса веб-сайтов, зарегистрированных в его системе.

DNS подобен телефонной книге в Интернете.Адреса в телефонной книге это IP-адреса серверов.DNS был создан для того, чтобы давать IP-адресам понятные для человека имена, поэтому с нашей платформой вы можете найти IP-адрес через Handshake, а не через центр сертификации, рассказываетТишун Рокерре, генеральный директор платформы Namebase, предоставляющей доступ к Handshake.

Как работает Handshake

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

Для обеспечения максимальной открытости, децентрализации, безопасности и, самое главное, устойчивости к цензуре, Handshake использует алгоритм proof-of-work. Такое решение позволяет разрешать имена со скоростью, превосходящей отправку запроса на DNS-резолверы Google. Это быстрее в том случае, если ваш узел имеет локальный кэш данных.

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

Таким образом, если фирмы, контролирующие центры сертификации, попытаются подвергнуть цензуре доменное имя Sci-Hub через устаревшую систему, то люди, которые хотят получить доступ к сайту, все равно смогут его получить через записи Handshake.

Чтобы зарегистрировать домен Handshake, любой человек может указать имя сайта и сделать ставку на торговой площадке Handshake с его одноименным токеном HNS. После двухнедельного аукциона участник, предложивший самую высокую цену, выигрывает домен (чей отпечаток в цепочке блоков действует как невзаимозаменяемый токен, NFT).

Что дальше

Децентрализованная система доменных имен (необязательно Handshake, успеха могут добиться и его последователи), может стать важным инструментом в борьбе за децентрализованный интернет. Этот проект является частью так называемых приложений Web 3.0, стремящихся создать менее централизованный, устойчивый к цензуре Интернет.В Handshake, например, естьдополнительный браузер,позволяющий вести поиск в интернете без цензуры. Также можно упомянуть Urbit, который находится в разработке более десяти лет и полагается на Ethereum для создания платформы для децентрализованных персональных серверов. Все эти решения очень пригодились бы Parler, столкнувшемуся с цензурой и давлением со стороны поставщиков облачных серверов, магазинов приложений и центров сертификации DNS.

Ну а пока беженцы вроде Sci-Hub протаптывают дорожку в сеть, которую трудно зацензурить. Станет ли тропинка широкой магистралью, покажет время.


Что ещё интересного есть в блогеCloud4Y

В тюрьму за приложение

2020 год всемирной мобильности (как бы иронично это ни звучало)

Виртуальные машины и тест Гилева

Китайские регуляторы хотят получать от ИТ-гигантов данные о потребительских кредитах

Как настроить SSH-Jump Server

Подписывайтесь на нашTelegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Подробнее..

Киберпонедельник в Cloud4Y

25.01.2021 16:17:27 | Автор: admin

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

Cloud4Y на три дня открывает бесплатный доступ к видеокурсу Управление виртуальным дата центром и сетями в vCloud Director (VMware) специально для тех, кто хочет разобраться в этой теме и научиться управлять облачной инфраструктурой.

В результате вы и ваши сотрудники сможете эффективнее использовать облачные платформы и больше не будете не путаться при работе с виртуальными машинами.

Курс уже получил 91 оценку от 366 студентов, средняя оценка 4.53. Три дня он будет снова бесплатно доступен на Udemy!Регистрируйтесь и учитесь!

Подробнее..

Обновили White Paper О защите персональных данных

15.05.2021 18:08:01 | Автор: admin

С мая 2021 года Cloud4Y предлагает обновлённый White Paper О защите персональных данных документ, содержащий информацию обо всех аспекта работы с персональными данными, включая законодательную базу, принцип построений системы защиты ПДн, и пр. В документе учтены изменения, принятые в 2021 году, что позволяет использовать его как руководство для организации систем защиты ПДн.

Мы добавили в White Paper:

  • Изменения в 152-ФЗ Об обработке персональных данных, вступившие в силу 01.03.2021 года в части обработки общедоступных данных и распространения персональных данных неограниченному кругу лиц, принятые законом 519-ФЗ О внесении изменений в Федеральный закон 152-ФЗ

  • Методический документ ФСТЭК России от 5 февраля 2021 года Методика оценки угроз безопасности информации

  • Изменения в 149-ФЗ Об информации, информационных технология и о защите информации, вступившие в силу 01.02.2021 года в части обработки и распространения информации в социальных сетях.

  • Изменения в КОАП РФ, касающиеся ужесточения санкций за нарушения 152-ФЗ Об обработке персональных данных

White Paper О защите персональных данных состоит из нескольких блоков, каждый из которых раскрывает отдельный аспект вопроса. Здесь есть историческая справка, инструкция по организации обработки и обеспечению безопасности ПДн оператора, разбор структуры законодательства России в области защиты прав субъектов ПДн, ответственности оператора и проверок регуляторов.

Документ будет полезен компаниям, которые тем или иным образом используют персональные данные. С его помощью можно понять требования закона, устранить проблемные зоны и научиться правильно работать с ПДн. Получить White Paper можно бесплатно у менеджеров Cloud4Y или отправив заявку на сайте облачного провайдера.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru