Записки IT специалиста
8.8K subscribers
2.31K photos
57 videos
16 files
2.52K links
IT-канал, просто о сложном
https://interface31.ru

Купить рекламу:
https://telega.in/c/interface31
Download Telegram
Store CLI – интерфейс командной строки для Microsoft Store

Не так давно без лишнего шума и анонсов в последних выпусках Windows появилась утилита командной строки Store CLI, предназначенная для работы с магазином Microsoft.

Для ее использования откройте терминал и просто наберите:

store 


И вы получите короткую справку, которой достаточно чтобы начать с ней работать.

Для просмотра уже установленных из магазина приложений выполните:

store installed


Для поиска обновлений отдельного приложения выполните:

store update AppName


Сразу для всех:

store updates


Чтобы установить обновления добавьте ключ –apply:

store update AppName  --apply
store updates –apply


Для поиска приложений используйте:

store search AppName


Также можно искать по расширению:

store extension mp4


И вы получите все приложения для работы с mp4.

Если вы хотите подобрать альтернативы приложению, то выполните поиск похожих:

store similar vlc


Для просмотра каталога можно воспользоваться специальными командами, например, сначала просмотрим категории и субкатегории:

store app-categories


Теперь выведем топ бесплатных приложений определенной категории:

store browse-apps top-free --category "Utilities & tools"


Или топ платных в субкатегории:

store browse-apps top-paid --subcategory "Personal Security"


Найдя нужное приложение, мы можем установить его командой:

store install AppName/ID


В качестве параметра можно указать имя приложения или ID, второе предпочтительно, так как однозначно определяет приложение, даже если опубликовано несколько его версий. Например, для установки VLC можно использовать команды:

store install VLC
store install XPDM1ZW6815MQM


Возможности удаления приложений магазина в данной версии консольной утилиты нет.
👍14🤣7
Обновление PostgreSQL в Docker через pg_upgrade
 
Продолжаем тему обновления контейнеров PostgreSQL между мажорными версиями, в прошлой заметке мы рассмотрели миграцию при помощи утилиты pg_dumpall.
 
Это простой и надежный способ, но у него есть один существенный недостаток: pg_dumpall – однопоточен, использует для выгрузки и загрузки только одно ядро и выполняет все операции последовательно, как они записаны в файле дампа.
 
На крупных и даже средних базах такой подход может привести к неконтролируемому времени простоя, что неприемлемо. Поэтому сегодня мы рассмотрим миграцию при помощи другой утилиты - pg_upgrade.
 
Преимущество pg_upgrade в том, что он не делает экспорт/импорт, не пересоздает всю структуру СУБД, а работает на уровне файлов базы данных.
 
Итак, приступим, допустим мы изначально имеем:
 
services:
  db:
    container_name: postgres-db


В нашем случае:

▫️ db — имя сервиса Compose
▫️ postgres-db — реальное имя контейнера Docker
 
1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД для создания резервной копии, это исключит возможную запись в БД во время выгрузки:
 
docker compose stop
docker compose up -d db

 
Теперь выполним выгрузку дампа всего кластера:
 
docker exec -t postgres-db pg_dumpall -U postgres > full_backup.sql

 
Проверяем, что файл дампа создан и останавливаем контейнер с БД:
 
docker compose down

 
2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount.
 
🔹 При Named Volumes создаем дополнительный именованный том для нового кластера СУБД:
 
docker volume create pg_data_18

 
И запускаем специальный контейнер для апгрейда:
 
docker run --rm \
-e POSTGRES_USER=postgres \
  -v pg_data:/var/lib/postgresql/17/data \
  -v pg_data_18:/var/lib/postgresql/18/data \
  tianon/postgres-upgrade:17-to-18

 
Данный контейнер НЕ является официальным образом PostgreSQL, это community image от Tianon Gravi, но он де-факто является стандартом в мире Docker.
 
Обратите внимание на тег контейнера, он указывает версии, с которой и на которую мы переходим, в нашем случае это 17-to-18, в других случаях выбирайте контейнер с нужным тегом.
 
Затем меняем Compose, было:
 
services:
  db:
    image: postgres:17
    volumes:
      - pg_data:/var/lib/postgresql/data
volumes:
  pg_data:


Стало:
 
services:
  db:
    image: postgres:18
    volumes:
      - pg_data_18:/var/lib/postgresql/data
volumes:
  pg_data_18:

 
🔹 Для Bind mount создаем новую директорию:
 
mkdir ./data/postgres-data-18

 
И запускаем служебный контейнер:
 
docker run --rm \
  -e POSTGRES_USER=postgres \
  -v ./data/ postgres-data:/var/lib/postgresql/17/data \
  -v ./data/postgres-data-18:/var/lib/postgresql/18/data \
  tianon/postgres-upgrade:17-to-18

 
Затем меняем Cpmpose, было:
 
services:
  db:
    image: postgres:17
    volumes:
      - ./postgres-data:/var/lib/postgresql/data


Стало:
 
services:
  db:
    image: postgres:18
    volumes:
      - ./postgres-data-18:/var/lib/postgresql/data

 
3️⃣ Запускаем стек:
 
docker compose up -d

 
И выполняем оптимизацию базы:
 
docker compose exec -T db vacuumdb -U postgres --all --analyze-in-stages

 
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.
👍141
Relax-and-Recover (ReaR) - средство аварийного восстановления системы

Среди инструментов резервного копирования существует отдельная группа - системы аварийного восстановления на "голое железо" (Bare Metal Disaster Recovery - BMDR), которые позволяют полностью восстановить систему в случае выхода из строя оборудования или уничтожения системы при воздействии иных факторов.

Relax-and-Recover - сокращенно ReaR - как раз и представляет такую систему, простую в использовании, но достаточно мощную в работе. С ее помощью вы сможете быстро восстановить вашу ОС Linux на новое оборудование, либо выполнить перенос системы со старого оборудования на новое, либо в виртуальную среду.

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

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

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

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

Читать далее: https://interface31.ru/post/relax-and-recover-sredstvo-avariynogo-vosstanovleniya-sistemy/
👍191
Стоит ли пропускать процесс обновления Windows на этапе OOBE

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

В Windows 11 процесс автоматического обновления на этапе первого включения (OOBE) сделали обязательным, хочешь – не хочешь, а сиди и жди. Но с некоторых последних версий появилась возможность его пропустить. Ну классно же!

Тут вспоминается старая поговорка: гладко было на бумаге, да забыли про овраги…

В общем появилась у нас необходимость настроить и отдать заказчику некоторое количество Мини-ПК, которые из коробки идут с Windows 11. Процесс начальной установки обновлений на системах с N100 занимает примерно от 40 минут, до часа.

Каждый раз ждать? Тем более что сам процесс настройки несложен: установить NET 3.5, IIS, штатный набор ПО через Winget, драйвера торгового оборудования, платформу 1С и опубликовать базу на IIS. Работы от силы на полчаса, а то и меньше.

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

Сказано – сделано, на втором Мини-ПК мы пропустили этап обновления и быстро занялись настройкой… Но не тут-то было…

Winget радостно сообщил нам, что msstore недоступен и поставить чего-то он может только из репозитория winget с явным указанием источника в команде. Т.е. все наши скрипты разом сломались.

Установка компонентов Windows (NET и IIS) зависла на нулевой отметке, без каких-либо признаков жизни.

Если перейти в Центр обновления Windows, то там видны нужные обновления, но все серое, везде 0%. Хотя в диспетчере задач явно обновления ставятся.

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

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

Поэтому что пнем об сову, что сову об пень, разницы никакой. Времени вы не выиграете. Так что пусть обновляется так, как это и задумано – на этапе OOBE, а это время просто внесите в планирование работ.
🤔13😁54🤡2
Вторая жизнь старого POS-терминала

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

Начнем с проблемы. В рознице широко распространено использование специализированных ПК – POS-терминалов. Это специализированный моноблок с сенсорным экраном, максимально решающий задачи розницы.

Типовой POS-терминал последние годы представлял собой систему на классическом Intel J1900 или в более поздних моделях J3xxx/J4xxx, что для современной 1С с маркировкой уже недостаточно.

Да, можно купить новые POS-терминалы на N100, то стоимость одного такого терминала будет на уровне 50-60 тыс. руб., что может быть еще приемлемо в рамках одного магазина, но в рамках сети это уже серьезные расходы, тем более в наше непростое время.

Заменить на обычный ПК? Тоже не вариант, да и не живут обычные ПК долго на кассе, POS-терминалы не зря столько стоят, потому что кроме всего прочего они еще и «антивандальные». Плюс кассиры уже привыкли работать с сенсором, а если мы говорим про общепит, то там и не отвыкали.

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

Для современной 1С будет достаточно моделей уровня N100, хотя в примерно в те же деньги вы можете купить и что-то более мощное, обычно на AMD.

Разместить такой мини-ПК можно в подсобном помещении или где-то в районе кассы так, чтобы к нему был доступ, но было затруднительно его сломать, уронить, завалить бумагами, пакетами и т.п.

На него ставится джентельменский набор ПO: платформа 1С, нужные торговые драйвера, например, для весов, служебные утилиты и поднимается веб-сервер. В Windows из коробки есть IIS, который отлично работает и используем мы именно его. После чего на этом мини-ПК публикуется база.

На POS-терминале меняем локальную базу на нашу веб-публикацию, при этом вам даже не придется перенастраивать торговое оборудование, так как оно подключается к рабочему месту, а оно в 1С не изменилось.

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

В результате все довольны, особенно бизнес, который решил проблему при достаточно малом уровне затрат.
1👍26🤝7🔥52
Тонкое управление Windows Update

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

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

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

Отдельное спасибо скажем нейросети, за то, что красиво отформатировала, упорядочила и прокомментировала наш файл:

Windows Registry Editor Version 5.00

; =================================================================
; Настройка Windows Update: Контроль расписания, активных часов и перезагрузок
; =================================================================

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]

; Включить управление активными часами (система не будет перезагружаться в этот период)
"SetActiveHours"=dword:00000001

; Установка активных часов: 09:00 - 23:00 (17 в hex = 23 в dec)
"ActiveHoursStart"=dword:00000009
"ActiveHoursEnd"=dword:00000017


[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]

; Включить автоматические обновления (0 = включено, 1 = отключено)
"NoAutoUpdate"=dword:00000000

; Вариант автоматизации: 4 = Автоматическая загрузка и установка по расписанию
"AUOptions"=dword:00000004

; Расписание установки: 0 = Каждый день
"ScheduledInstallDay"=dword:00000000

; Время установки по расписанию: 03:00 ночи
"ScheduledInstallTime"=dword:00000003

; Устанавливать еженедельно при наличии обновлений
"ScheduledInstallEveryWeek"=dword:00000001

; Исключить автоматическую перезагрузку, если в системе есть вошедшие пользователи
"NoAutoRebootWithLoggedOnUsers"=dword:00000001

; Отключение принудительного ребута по наступившему расписанию (требует реакции пользователя)
"AlwaysAutoRebootAtScheduledTime"=dword:00000000

; Не выполнять принудительный перезапуск до тех пор, пока пользователь не подтвердит уведомление
"OptionsForRebootNotifications"=dword:00000001

; =================================================================
; Настройка «Дедлайнов» (Защита от внезапных перезагрузок на новых сборках Win 10/11)
; =================================================================

; Включаем принудительное следование дедлайнам уведомлений, а не жестким ребутам
"ConfigureDeadlineNoAutoReboot"=dword:00000001

; Сколько дней дается пользователю на установку крупных обновлений (Feature Updates) до напоминания
"ConfigureDeadlineForFeatureUpdates"=dword:00000007

; Сколько дней дается на установку обновлений безопасности (Quality Updates) — обычно 2-7 дней
"ConfigureDeadlineForQualityUpdates"=dword:00000005

; Льготный период (Grace Period) — сколько дней система ждет ПОСЛЕ дедлайна, прежде чем
; начать настойчиво просить перезагрузку (но все еще в рамках Активных Часов!)
"ConfigureDeadlineGracePeriod"=dword:00000002


В целом там все написано, но уточним одну деталь:

"NoAutoRebootWithLoggedOnUsers"=dword:00000001


Используйте по собственному усмотрению, в ряде случаев разумнее поставить там dword:00000000, что наоборот обеспечит автоматическую перезагрузку за пределами рабочего времени.

Также учтите, что современные системы игнорируют эту опцию, если обновление помечено как «критическое» или «безопасность», для предотвращения спонтанной перезагрузки в этом случае как раз и добавлен блок «дедлайнов».
🤝19👍131
Как убрать это окно?
 
Все просто, но не все ищут простые пути. Открываем приложение Параметры, переходим в Система → Уведомления и прокручиваем в самый низ до пункта Дополнительные параметры, затем просто снимаем галочку Предложить способы завершения настройки этого устройства для наиболее эффективного использования Windows.
 
Заодно можно и советы с подсказками выключить, чтобы не надоедали.
 
Либо, если надо быстро и массово, через правку реестра, проще всего это сделать при помощи команды PowerShell:
 
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement" -Name "ScoobeSystemSettingEnabled" -PropertyType DWord -Value 0 -Force

 
 
Но, в отличие от первого способа, для того чтобы изменения вступили в силу вам придется перезагрузить компьютер или выйти и повторно войти в систему.
10👍34🔥72🤮1
Новое меню Пуск в Windows 11

Меню Пуск в Windows 11 сложно назвать удачным, и оно вызывало у пользователей множество нареканий. Особенно своей практически полной «деревянностью», которая после отличного и кастомизируемого меню Windows 10 воспринималась особенно остро.

В Windows 10 была реализована концепция доступа в один клик. Справа – плитки, слева – список установленных программ. Никаких лишних переходов. В Windows 11 установленные приложения были вынесены на отдельный экран и для доступа к ним требовался дополнительный клик.

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

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

И вот совершенно неожиданно в мае 2026 года для пользователей выпусков 24H2 и 25H2 было выпушено обновление с существенно переработанным меню Пуск. Нет, революции не случилось, но эволюция произошла достаточно существенная.

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

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

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

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

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

Но не все так плохо, для любителей классики предусмотрены варианты отображения списком или сеткой.

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

Не сказать, что стало совсем хорошо, но значительно лучше чем было, похоже, что разработчики все таки учли некоторые свои ошибки или нас готовят к выпуску чего-то нового (а может и хорошо забытого старого).
👍11🤔7😁1
Изучаем логи Docker
 
Чтение логов – основная работа системного администратора, когда что-то пошло не так. Да, сегодня у него есть хороший помощник – ИИ, но перед тем, как он проанализирует логи их надо откуда-то взять.
 
Сегодня мы рассмотрим, что может предложить нам сам Docker в части чтения логов. А предложить он может достаточно много.
 
Штатно посмотреть логи можно командой:
 
docker logs my_container

 
Где my_container – имя нашего контейнера, также можно использовать вместо имени его ID.
 
А если нам надо больше деталей?
 
docker logs --details my_container

 
Данная команда дополнит вывод всеми собранными данными и вместо
 
2024-01-15T10:00:00Z APP started

 
Мы получим:
 
2024-01-15T10:00:00Z APP started, container_id=abc123, env=prod

 
Если же мы хотим смотреть лог в реальном времени, то добавляем ключ -f или --follow:
 
docker logs -f my_container

 
Это хорошо, но как быть, если нам надо посмотреть логи с определенного времени? Используем ключ --since в котором указываем метку времени:
 
docker logs --since "2024-01-15T14:30:00Z" my_container

 
Или относительный интервал, скажем за последние 30 минут:
 
docker logs --since 30m my_container

 
Либо можем попросить вывести определенное количество последних строк при помощи ключа -n или --tail:
 
docker logs --tail 50 my_container

 
Данная команда покажет последние 50 строк, ключи можно комбинировать, например:
 
docker logs --tail 20 -f my_container

 
Покажет последние 20 строк лога и продолжит отслеживать его в реальном времени.
 
Если нужно обязательно выводить в каждой строке метку времени используйте ключ -t или –timestamps.
 
Еще один полезный ключ --until (требуется API 1.35+), он прямо противоположен --since и показывает лог до, а не после указанной временной метки или относительного интервала.
 
docker logs --until 1h my_container

 
Покажет все логи не ранее чем за час.
 
Но особую ценность он имеет в сочетании с –-since, скажем:
 
docker logs --since "2024-01-15T10:00:00Z" --until "2024-01-15T11:00:00Z" my_container

 
Данная команда покажет логи между 10 и 11 часами 15 января 2024 года.
👍21🤝53
Как я переходил на Linux, но так и не перешел
 
В нашей, админской, среде часто можно слышать: а я вот перешел на Linux и горя не знаю. Что подается обычно с некоторой элитарностью и превосходством.
 
Но на самом деле вопрос сегодня сугубо утилитарный, потому как работаем мы не с ОС, а с программным обеспечением, которое эта самая ОС позволяет запускать.
 
Linux давно уже решил многие детские болезни и является взрослой операционной системой, со своими достоинствами и недостатками. А с прочным входом в нашу жизнь веб-технологий и того самого Electron и иже с ним – границы между вебом и десктопом стали стремительно размываться.
 
И каждый раз снова и снова встает вопрос – а может ну ее, эту «винду» и пора полностью перебраться на любимый дистрибутив?
 
Возможно - это хорошая идея, а возможно и нет. Мы не фанаты какой-то системы, а исходим из того, что ОС – это инструмент, а хороший специалист умеет одинаково хорошо играть от сильных сторон и выбирает софт под задачу, а не их собственных пристрастий.
 
Linux неплох, но в нем все еще остаются проблемы с широким спектром специфического оборудования, профессиональным софтом, играми и многим другим.
 
А так как мы плотно работаем с самым разным торговым, медицинским и прочим оборудованием, то вероятность того, что его полноценная поддержка будет в Linux близка примерно к нулю.
 
Тут и с Windows проблемы, для некоторых устройств мы держим виртуалки на Windows 7 или даже Windows XP.
 
Да и найти подходящий софт под Windows гораздо проще.
 
Но есть задачи, которые легче и проще решаются из-под Linux, особенно когда вы работаете преимущественно с Linux системами.
 
А дальше каждый решает сам, какая система ему ближе и в которой он проводит больше всего времени.
 
Но выбор одной системы вовсе не означает отказ от другой. Особенно в наше время повальной виртуализации.
 
После ряда попыток перейти на Linux в постоянной основе я понял, что идея эта контрпродуктивная и надо не привыкать и адаптироваться, а извлекать максимум преимуществ из текущей среды.
 
Практически на всех моих устройствах основная ОС – это Windows, на ПК Windows 10, на ноутбуках Windows 11, хотя она мне не сильно нравится.
 
Но я не ставлю на нее никакие твики, альтернативные меню Пуск и т.д., потому что понимаю, если я хочу нормально работать с клиентами и понимать их проблемы и чаяния, то мне самому надо быть погруженным в эту самую среду.
 
Ну а как же Linux? Он тоже со мной, многие задачи проще решать именно под этой ОС, скажем новый сайт полностью управляется из Linux-системы. Потому что в ней все связанные с сайтом задачи решаются проще, легче и быстрее.
 
Это же касается и ряда других задач, под каждую из которых у меня есть настроенная виртуалка и я просто запускаю ее и погружаюсь в привычную и удобную для данной задачи среду.
 
И поэтому я для себя эту задачу давно решил – основная ОС, это та система, которая тебе ближе и удобнее, в которой ты решаешь походя максимум повседневных задач.
 
Другие ОС – это отдельные кейсы, от которых не следует отказываться, создали виртуалку, заточили под конкретную задачу и пользуемся. Повторимся, админ – не фанатик, а специалист играющий от сильных сторон.
 
А я уже давно живу на два (или даже три – четыре) дома, используя наиболее удобное мне окружение для каждой из задач.
1👍388💯6🤮3🤡2
Извлечение контейнера ЭП из ESMART и JaCarta

Как вытащить неэкспортируемый ключ из Рутокен знают даже дети. Отдельное спасибо говорим компании Контур за предоставленные инструменты.

С другими моделями токенов все сложнее и если jaCarta – это редкий и исчезающий вид токенов, то ESMART встречается все чаще и чаще. Можно ли вытащить оттуда неэкспортируемый контейнер ключа?

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

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

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

Но тут, в отличие от метода с Рутокен есть очень неочевидные и неоднозначные вещи. Там мы использовали легальные инженерные утилиты производителя, а данная библиотека – по сути эскплойт, выполняющий атаку на уязвимости протокола APDU, о чем сам автор первоначальной методики (а не перепечаток) пишет открытым текстом.

А дальше мы снова уходим из технической плоскости в юридическую. Прямого запрета копировать ЭП в 63‑ФЗ «Об электронной подписи», однако соглашаясь с выпуском подписи у УЦ ФНС вы в форме договора присоединения соглашаетесь с Регламентом УЦ, который прямо запрещает так делать.

Скопировав ЭП, вы не совершаете уголовного преступления или административного правонарушения, за исключением случая, если вы несанкционированно скопируете чужую подпись – тут ч. 1 ст. 272 УК РФ.

Все что вы нарушили – это гражданско-правовой договор с УЦ, за что УЦ имеет полное право эту подпись отозвать, на этом последствия для правомерного владельца подписи заканчиваются.

А вот в случае с нашим методом, где мы выполняем атаку на APDU библиотека может легко и непринужденно быть оценена как вредоносная компьютерная программа и мы получаем уже ч.1 ст. 273 УК РФ, которая наказывает создание, распространение и использование такой информации.

И накажут вас тут не за копирование ЭП, а именно за создание и использование, а если еще и заметку в блог тиснули – то и за распространение.

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

Мораль тут будет простая: надо – делайте, способ рабочий. Но не афишируйте свою деятельность и не храните инструменты в открытом доступе.
1👍19🥱1
Проблема истечения срока действия корневых сертификатов Secure Boot
 
Уже сейчас в технических кругах разгоняется хайп  и всякого рода страшилки об истечении срока действия корневых сертификатов Secure Boot, которые были выпущены Microsoft в 2011 году и истекают в 20 числах июня  2026 года.
 
Давайте начнем по порядку, основной вопрос – а причем тут Microsoft и как это должно касаться меня, если я не использую продукты этой компании.
 
Вернемся немного в историю, технология Secure Boot блокирует любой загрузчик, если он не подписан подписью, для которой у системы есть цепочка доверия. Для этого в UEFI загружаются корневые сертификаты производителя ПО.
 
 С выходом Windows 8 и Server 2012 Secure Boot стал обязательным и Microsoft продавила производителей на то, что для получения статуса «совместимо с Windows» они должны обязательно разместить ключи их CA в своих UEFI.
 
А что же Linux? В силу фрагментации и небольшой рыночной доли заинтересованности производителей включать в прошивку ключи Linux не было, да и попробуй включи все 100500 дистрибутивов.
 
В итоге сообщество пошло другим путем, был разработан промежуточный загрузчик Shim (дословно – прокладка), он был проверен и подписан ключом Third-Party UEFI CA Microsoft.
 
Теперь при старте системы UEFI видел подписанный Shim и не блокировал его загрузку, а дальше управление передавалось родному загрузчику Linux.
 
Таким образом Microsoft стал практически монопольным CA для Secure Boot. Первые сертификаты были выпущены в 2011 году и истекают в июне 2026, новые сертификаты выпущены в 2023 и будут работать до 2038 года.
 
Что будет, если вы их не обновите? Ничего страшного, система продолжит работать как ни в чем не бывало, потому что применяется мягкая проверка подписи. Если загрузчик подписан истекшим ключом до окончания его срока действия, то такая подпись продолжает считаться действительной.
 
Но вот загрузиться с новым загрузчиком, который подписан подписью 2023 года на такой системе не получится, ну или придется отключить Secure Boot, что резко снизит безопасность системы.
 
Для пользователей Windows сильно переживать нечего, обновления с новыми ключами получат все пользователи Windows 11, а также Windows 10 22H2, все LTSC начиная с 2019 и, неожиданно, старая 1604.
 
Windows Server получит обновления начиная с 2016 и новее, для пользователей Server 2012 обновления доступны только по программе ESU.
 
Но даже если вы используете неподдерживаемую версию Windows, вы всегда можете вручную обновить BIOS, если производитель вашей системы выпустил прошивку с новыми сертификатами.
 
В Linux все сложнее, возможность обновить сертификаты в прошивке имеют далеко не все, их список ограничивается ведущими дистрибутивами, сотрудничающими с Microsoft, в их число входят Ubuntu 22.04/24.04+, RHEL 9+, Debian 12+ и некоторые другие.
 
В остальных случаях дистрибутивы могут обновить Shim, но для его поддержки вам придется прошить BIOS вручную.
 
Если же производитель не предоставляет обновлений прошивки и ваше ПО не получает обновлений, то вы можете всегда загрузить сертификаты Microsoft или собственные сертификаты вашего ПО через экран MOK (Machine Owner Key), который знаком всем пользователям Ventoy.
 
В целом какой-то критичной проблемы нет, но знать о ситуации с истечением срока корневых сертификатов Secure Boot нужно, равно как и трезво представлять все возможные проблемы и сложности.
👍242👀1
Надо больше золота, больше, еще больше!!!

Яндекс продолжает крутить гайки. Ну а куда вы с подводной лодки денетесь в текущих условиях?

Ждем пока подтянется Mail.ru/VK, они сейчас могут красиво сыграть от противного, но в условиях отсутствия фактической конкуренции, сразу после набора пользовательской массы, может произойти все тоже самое.

Какие варианты? Да особо никаких, или платим, благо не сильно дорого, или поднимаем что-то свое и не факт, что это выйдет проще и дешевле.
😁12🤬6💯3👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮1