💡 Полезные Советы

Как часто нужно обновлять SSH ключи?

17.01.26
27

Коротко: большинство экспертов рекомендуют менять SSH‑ключи раз в 6 - 12 месяцев, но частота зависит от уровня риска и требований безопасности. Современные рекомендации подчёркивают, что ключи нельзя оставлять "вечными", потому что со временем они превращаются в скрытый риск для инфраструктуры.

1. Для личных проектов и своего сервера

Рекомендуемая частота: Раз в 1 год (или даже реже).

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

  • Вы потеряли ноутбук или флешку с ключом.

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

  • Вы случайно "засветили" приватный ключ (выложили на GitHub, отправили в чат и т.д.).

2. Для работы и продакшна (Лучшая Практика)

Рекомендуемая частота: Раз в 3-6 месяцев.

В корпоративной среде риски выше.

  • Стандарт PCI DSS (для работы с картами), из-за него многие корпоративные регламенты требуют ротацию каждые 90 дней (корпоративной среде существует огромная разница между "что написано в стандарте" и "что требуют аудиторы / безопасники на местах".)

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

PCI DSS (Payment Card Industry Data Security Standard) - это "золотой стандарт" безопасности для любой организации, которая хранит, обрабатывает или передает данные банковских карт (Visa, Mastercard, МИР).

SSH - это главная дверь для управления сервером. Если ваш сервер имеет отношение к платежам или картам, то настройки SSH становятся объектом пристального внимания аудиторов PCI DSS.

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

1. Запрет прямого входа root (Требование 8.6)

  • Что требует стандарт: Каждое действие на сервере должно быть привязано к конкретному человеку. Если все заходят под общим логином root, то в логах будет видно «root удалил базу данных», но непонятно, кто именно это был - Вася или Петя.

  • Ваша ситуация: Вы только что создали личного пользователя (h...) и отключили PermitRootLogin. Это полное соответствие стандарту. Теперь в логах будет видно: "Пользователь h... повысил права до root и удалил базу".

2. Запрет простых паролей и использование криптографии (Требование 2.3)

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

  • Ваша ситуация: SSH сам по себе шифрует трафик. А отключение входа по паролю (PasswordAuthentication no) и переход на ключи - это лучшая практика (Best Practice), которую аудиторы очень любят.

3. Регулярная смена ключей (Требование 3.6.4)

  • Что требует стандарт: Криптографические ключи (Ключи шифрования данных (Data Encryption Keys)) должны меняться по расписанию (обычно каждые 90 дней), а старые - уничтожаться.

  • Что это: Это ключи, которыми шифруется сама база данных с номерами карт. Если хакер украдет этот ключ и дамп базы, он сможет прочитать номера карт.

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

4. Не использовать "дефолтные" настройки (Требование 2.1)

  • Что требует стандарт: Нельзя использовать пароли и настройки, которые идут "из коробки" (vendor-supplied defaults).

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

Стандарт PCI DSS настоятельно рекомендует (а версия 4.0 требует) двухфакторную аутентификацию (MFA) даже для администраторов. PCI DSS не предписывает конкретный метод, например "SSH‑ключ + код Google Authenticator". Он требует наличия MFA, а конкретная реализация остаётся на усмотрение организации!

3. Критические ситуации (Менять немедленно)

В этих случаях расписание не имеет значения - нужно действовать сразу:

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

  2. Скомпрометированное устройство. Логика "я почистил компьютер антивирусом, значит всё в порядке" здесь не работает. Вирусы (трояны, стилеры) настроены искать именно файлы в папке .ssh. Как только вирус попадает на компьютер, он мгновенно копирует эти файлы и отправляет их злоумышленнику. Вы можете возразить: "Но у меня ключ защищен паролем (passphrase)!". Если устройство скомпрометировано, скорее всего, на нем работал кейлоггер (программа, записывающая нажатия клавиш). Когда вы вводили пароль, чтобы разблокировать ключ, хакер получил и файл ключа, и пароль к нему.

  3. Смена алгоритмов шифрования. Если вы использовали старые ключи RSA-1024 или DSA (которые сейчас считаются слабыми), их нужно срочно заменить на современные Ed25519 или RSA-4096.

Частая ошибка при обновлении

Многие думают, что создание нового ключа автоматически отменяет старый. Это не так. SSH-сервер пускает по списку ключей. Если вы добавите новый ключ, но забудете удалить строку со старым ключом из файла ~/.ssh/authorized_keys, то старый ключ продолжит работать.

Правильный алгоритм ротации:

  1. Сгенерировать новую пару ключей (ssh-keygen -t ed25519).

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

  3. Проверить вход с новым ключом.

  4. Удалить старый публичный ключ из файла authorized_keys на сервере.

  5. Удалить старый приватный ключ с локального компьютера.

 

Как добавить или изменить контрольные вопросы для локальной учетной записи (даже если Windows не предлагает)

11.12.25
160

Прочитай прежде:

В Windows 11 Home (и в новых версиях Pro) Microsoft практически принуждает использовать облачный аккаунт при установке. Команда ms-cxh://setsqsalocalonly работает СТРОГО только на полностью локальных аккаунтах.

Если вы входите в систему по email (или используете PIN-код, привязанный к email), эта команда просто проигнорируется системой, так как безопасность вашего аккаунта управляется через серверы Microsoft, а не локально.
Особенность 24H2/25H2

В новейших сборках Windows (особенно после обновлений безопасности 2024-2025 годов) Microsoft могла активировать политику, скрывающую вопросы безопасности, чтобы стимулировать использование Windows Hello.

Решение для версий 23H2 и ниже:
Пользователи локальных учетных записей Windows 10 и 11 часто сталкиваются с проблемой: если забыть пароль, восстановить доступ к системе практически невозможно без потери данных.

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

Решение - скрытая команда Cloud Experience Host, которая принудительно вызывает меню настройки безопасности.

Для чего это нужно?

Команда ms-cxh://setsqsalocalonly запускает мастер, который позволяет привязать к вашему локальному профилю три секретных вопроса (например, "Кличка первого питомца"). Если вы забудете пароль при входе в систему, Windows предложит ответить на них и позволит сбросить пароль без флешки восстановления.

Инструкция

1. Проверка типа учетной записи Убедитесь, что вы используете именно локальную учетную запись (не Microsoft Account). Для онлайн-аккаунтов эта команда просто не сработает (выдаст ошибку или ничего не произойдет).

2. Запуск команды Нажмите комбинацию клавиш Win + R на клавиатуре. Вставьте следующую команду и нажмите Enter:

ms-cxh://setsqsalocalonly

3. Подтверждение личности Откроется синее системное окно. Сначала вам нужно будет ввести ваш текущий пароль администратора, чтобы подтвердить, что это действительно вы.

4. Настройка вопросов После ввода пароля появится меню "Обновление контрольных вопросов".

  • Выберите 3 вопроса из списка.

  • Впишите ответы.

  • Нажмите кнопку "Готово".

Теперь, если вы когда-нибудь забудете пароль, на экране блокировки достаточно нажать кнопку "Сбросить пароль", ответить на вопросы, и доступ будет восстановлен.

 

VPN (Outline) не работает через мобильную сеть, только по Wi-Fi. Обход DPI, чиним за минуту

10.12.25
1171

Вы настроили свой Outline VPN, и дома через Wi-Fi всё летает. Instagram грузится, YouTube показывает в 4K. Но стоит выйти на улицу и переключиться на LTE/4G, как магия исчезает. Сайты перестают открываться, а приложение выдает ошибки вроде error network changed или просто бесконечно переподключается.

Почему так? 

Разница между домашним провайдером и мобильным оператором часто кроется в настройках систем фильтрации трафика (DPI — Deep Packet Inspection).

Мобильные операторы часто используют более агрессивные настройки DPI. Когда вы включаете Outline, он создает зашифрованный туннель. Простой Shadowsocks (протокол, на котором работает Outline) шифрует содержимое, но сам процесс соединения (рукопожатие) может выглядеть подозрительно для умных фильтров.

Оператор видит «непонятный» поток данных, который не похож на обычный просмотр сайтов (HTTP/HTTPS), и на всякий случай разрывает соединение (connection reset), что и приводит к ошибке смены сети.
Здесь добавлю мем про разрыва сессии "Звонок в саппорт Стрима в три часа ночи". (Для TCP важно стабильное соединение без разрывов, в отличие от UDP)

Решение: Маскировка под обычный сайт.

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

Инструкция:

  1. Скопируйте ваш текущий ключ Outline в заметки. 
  2. В самый конец ключа, без пробелов, добавьте этот текст:

    &prefix=POST%20

    (Важно: %20 — это код пробела, пишите именно так!)

    Было: ss://Y2hh...443/?outline=1

    Стало: ss://Y2hh...443/?outline=1&prefix=POST%20

  3. Скопируйте новый длинный ключ.
  4. Удалите старый сервер из приложения Outline и добавьте новый.

Если не помогло: Попробуйте вместо POST использовать GET. Добавьте в конец: &prefix=GET%20

 

 

Ошибка LightingService.exe подсветки ASUS. Переполнения стека и бесконечный цикл запуска службы.

06.12.25
130

Разбор ошибки LightingService.exe: почему падает подсветка ASUS

Если вы заметили в журнале событий Windows множество ошибок, связанных с LightingService.exe, знайте: это сбой фоновой службы ASUS Aura. Она отвечает за управление RGB-подсветкой материнской платы, видеокарты и другой периферии.

Давайте разберем анатомию этого сбоя на примере конкретного лога.

🔍 1. Технический анализ ошибки

В деталях события мы видим следующие ключевые параметры:

  • Имя сбойного модуля: AacHal_x86.dll
  • Код исключения: c00000fd

Что скрывается за аббревиатурами?
Модуль AacHal расшифровывается как ASUS Aura Controller Hardware Abstraction Layer. Это «прослойка» (уровень аппаратных абстракций), через которую софт общается с физическим контроллером подсветки на железе. Именно здесь происходит критическая ошибка.

Код c00000fd в Windows однозначно указывает на STATUS_STACK_OVERFLOW (Переполнение стека).

🔄 2. Почему ошибок так много? (Бесконечный цикл)

На скриншоте видно, что сбои идут чередой с интервалом в пару минут (0:00, 0:02, 0:04...). Это классическая картина «петли смерти» службы:

  1. Служба запускается.
  2. Драйвер попадает в бесконечную рекурсию (вызывает сам себя), моментально исчерпывает выделенную память (стек).
  3. Происходит аварийное завершение (краш).
  4. Windows видит, что служба упала, и согласно настройкам восстановления, пытается запустить её снова.
  5. Цикл повторяется.

⚠️ 3. Чем это опасно?

Подобное поведение драйверов (в данном случае — компонента подсветки) несет серьезные риски:

  • Синий экран смерти (BSOD): Если переполнение стека произойдет на уровне ядра, Windows не сможет просто перезапустить службу и уйдет в BSOD, часто даже не успев записать дамп памяти.
  • Уязвимость системы: Ошибки в драйверах (утечки памяти, состояние гонки) — это дыры в безопасности. Злоумышленники или вирусы могут использовать уязвимый драйвер как лазейку для повышения привилегий или маскировки вредоносных действий.

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

01.10.25
176

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

​Основная угроза в этом случае - заражение прошивки материнской платы (BIOS/UEFI).

Вот как это работает:

1.) Процесс загрузки: Когда вы включаете компьютер, первой запускается не операционная система, а программа, записанная в чип на материнской плате - BIOS или UEFI. Эта программа инициализирует оборудование и ищет на подключенных дисках загрузчик операционной системы.

2.)​ Атака на прошивку: Если на этом зараженном диске находится не просто вирус, а специализированная вредоносная программа (так называемый буткит или руткит прошивки), она может запуститься в этот самый ранний момент. Ее цель - не заразить Windows (которая и так неисправна), а перезаписать часть кода в самой прошивке вашей материнской платы.

3.) ​Последствия: Если заражение прошивки удастся, вирус будет загружаться каждый раз при включении компьютера, еще до старта Windows и до начала работы любого антивируса. Такой вирус практически невозможно обнаружить стандартными средствами, и он переживет форматирование диска и полную переустановку Windows. Это дает злоумышленнику полный и скрытый контроль над вашим ПК.

Поможет ли в этом случае Secure Boot?

​В этой ситуации Secure Boot - ваша основная, но не стопроцентная линия защиты.

  • Как он должен сработать: Secure Boot проверяет цифровую подпись загрузчика Windows. Если буткит изменил оригинальный загрузчик, подпись станет недействительной, и Secure Boot должен заблокировать запуск, не дав вредоносному коду выполниться.

​Почему он может не помочь:

  • Уязвимости: Существуют сложные атаки, которые могут обойти Secure Boot, используя уязвимости в прошивке или в подписанных, но уязвимых загрузчиках. ​Отключен: Secure Boot может быть отключен в настройках вашего BIOS.

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

DNS Google 8.8.8.8 и 8.8.4.4, а так же чем DNS отличается от DNSSEC?

07.08.25
306

DNS (Domain Name System - Система доменных имён) - это фундаментальная система "поиска адресов" в Интернете. Можно представить, как гигантскую "телефонную книгу" Интернета - где имя(доменное имя сайта, например google.com), а телефон(ip-адрес).

DNSSEC (DNS Security Extensions - Расширения безопасности DNS) - это набор расширений, который делает этот поиск безопасным, защищая от подделки ответов и перенаправления на вредоносные сайты. DNSSEC не заменяет DNS, а защищает его данные. Можно представить, как "систему печатей и проверку их подлинности в телефонной книге", которая гарантирует , что злоумышленник не подменил номера телефонов на свои.

Google Public DNS

У Google Public DNS есть основной адрес 8.8.8.8 и резервный 8.8.4.4 - это бесплатные DNS-сервера, которыми может воспользоваться любой желающий в мире вместо DNS-серверов, предоставляемых по умолчанию его интернет-провайдером (ISP).

Плюсы:

  1. Google Public DNS поддерживает современные стандарты (включая DNSSEC!) и может предоставлять более точные результаты в некоторых случаях.
  2. Иногда провайдеры блокируют доступ к определенным сайтам на уровне своих DNS или их серверы работают медленно или ненадежно.
  3. Серверы Google обычно очень быстрые и обладают высокой доступностью.

О времени NTP.

Настройка NTP-серверов (Network Time Protocol) критически важна для корректной работы компьютеров и сетевых устройств.

Цифровые подписи DNSSEC имеют срок действия (валидности), как и SSL-сертификаты. Они содержат поля: Inception Time (Время начала действия) и Expiration Time (Время окончания действия).

Что делает валидатор (на резолвере): Когда резолвер получает DNS-ответ и подписи DNSSEC, он обязан проверить текущее время (по своим часам) на соответствие этим временным меткам.

Если время отличается: Для пользователя будет указано, например : "Не удается получить доступ к сайту" А детальная информация: text ERR_NAME_NOT_RESOLVED или DNS_PROBE_FINISHED_BAD_CONFIG