Linux: taskset — Ручное управление ядрами CPU. Привязка процессов как SRE
"Сервер тормозит, но htop показывает свободные ядра". Знакомая ситуация? Причина может быть в конкуренции за CPU или в неправильном распределении нагрузки.
taskset — это ваш "хирург" для CPU. Он позволяет жестко привязать процесс к определенным ядрам или запустить его сразу с нужным CPU Affinity.
Изоляция: Критичные сервисы (например, БД, Nginx) не будут конкурировать за ядра с "фоновыми" задачами.
NUMA: Оптимизация для NUMA-архитектур (процесс работает на ядрах, ближайших к памяти, которую он использует).
Производительность: Предотвращение "миграции" процессов между ядрами, что снижает накладные расходы.
1️⃣ Привязка к ядрам для уже запущенного процесса:
Сначала найдем PID процесса (например, myapp).
Посмотрим CPU в системе:
Пример: Сажаем процесс 1574 на ядра 0, 1 и 2:
Теперь процесс гарантированно не займет остальные ядра.
2️⃣ Запуск программы с ограничением по CPU (через битовую маску):
taskset при запуске требует mask (битовую маску), а не список ядер.
Как работает маска: Каждое ядро — это один бит.
Ядро 0 = 1 (0x01)
Ядро 1 = 2 (0x02)
Ядро 2 = 4 (0x04)
Ядро 3 = 8 (0x08)
...и так далее (2 в степени номер ядра)
Пример: Запустить программу только на ядре 0 (маска 1):
Пример: Запуск на ядрах 2 и 3 (маска 4 + 8 = 12 = 0x0C):
3️⃣ Как быстро узнать маску для нужных ядер (лайфхак):
Не хочется считать? Дайте taskset список ядер для любого процесса, а потом узнайте его маску.
4️⃣ Наглядный тест с xz:
Создайте тестовый файл: dd if=/dev/urandom of=/tmp/testfile bs=1M count=200
Запустите xz только на ядрах 0 и 1 (маска 1 + 2 = 3):
Откройте htop и увидите, как процесс xz будет использовать строго эти два ядра.
Взгляд архитектора: Вы управляете не "сервером", а ресурсами. taskset позволяет делать микро-оптимизацию, которая может спасти нагруженное приложение от деградации производительности. Это часть вашего инструментария для Performance Engineering.
#linux #performance #taskset #sre #команды #гайд
"Сервер тормозит, но htop показывает свободные ядра". Знакомая ситуация? Причина может быть в конкуренции за CPU или в неправильном распределении нагрузки.
taskset — это ваш "хирург" для CPU. Он позволяет жестко привязать процесс к определенным ядрам или запустить его сразу с нужным CPU Affinity.
Изоляция: Критичные сервисы (например, БД, Nginx) не будут конкурировать за ядра с "фоновыми" задачами.
NUMA: Оптимизация для NUMA-архитектур (процесс работает на ядрах, ближайших к памяти, которую он использует).
Производительность: Предотвращение "миграции" процессов между ядрами, что снижает накладные расходы.
1️⃣ Привязка к ядрам для уже запущенного процесса:
Сначала найдем PID процесса (например, myapp).
# Ищем PID
pidof myapp
# Или:
ps aux | grep myapp
# ...предположим, PID = 1574
Посмотрим CPU в системе:
lscpu | grep -E 'CPU\(s\)|NUMA'
# Пример: CPU(s): 8, NUMA node0 CPU(s): 0-7
Пример: Сажаем процесс 1574 на ядра 0, 1 и 2:
taskset -pc 0-2 1574
# Результат:
# pid 1574's current affinity list: 0-7
# pid 1574's new affinity list: 0,1,2
Теперь процесс гарантированно не займет остальные ядра.
2️⃣ Запуск программы с ограничением по CPU (через битовую маску):
taskset при запуске требует mask (битовую маску), а не список ядер.
Как работает маска: Каждое ядро — это один бит.
Ядро 0 = 1 (0x01)
Ядро 1 = 2 (0x02)
Ядро 2 = 4 (0x04)
Ядро 3 = 8 (0x08)
...и так далее (2 в степени номер ядра)
Пример: Запустить программу только на ядре 0 (маска 1):
taskset 1 gzip hugefile
Пример: Запуск на ядрах 2 и 3 (маска 4 + 8 = 12 = 0x0C):
taskset 0x0C gzip hugefile
3️⃣ Как быстро узнать маску для нужных ядер (лайфхак):
Не хочется считать? Дайте taskset список ядер для любого процесса, а потом узнайте его маску.
# Временно привязываем systemd-journald к ядрам 4 и 5
taskset -pc 4-5 $(pidof systemd-journald)
# Смотрим его маску:
taskset -p $(pidof systemd-journald)
# Пример:
# pid 412's current affinity mask: 30 <- Вот и маска для ядер 4-5!
4️⃣ Наглядный тест с xz:
Создайте тестовый файл: dd if=/dev/urandom of=/tmp/testfile bs=1M count=200
Запустите xz только на ядрах 0 и 1 (маска 1 + 2 = 3):
taskset 3 xz -T2 /tmp/testfile
Откройте htop и увидите, как процесс xz будет использовать строго эти два ядра.
Взгляд архитектора: Вы управляете не "сервером", а ресурсами. taskset позволяет делать микро-оптимизацию, которая может спасти нагруженное приложение от деградации производительности. Это часть вашего инструментария для Performance Engineering.
#linux #performance #taskset #sre #команды #гайд
Windows: Хватит "кликать". Массовое управление пользователями AD с PowerShell
Задача: 50 новым сотрудникам из отдела "Sales" нужно установить менеджера в профиле.
Реакция админа: Открыть "Пользователи и компьютеры", найти каждого, дважды кликнуть, перейти на вкладку "Организация", вписать менеджера... 150 кликов, 30 минут.
Реакция архитектора: 30 секунд, одна строка.
PowerShell — это не просто скриптовый язык, это инструмент для массовых операций в AD.
Как это работает:
Найти (Get): Сначала находим всех, кто нам нужен.
PowerShell
Изменить (Set): Передаем результат по "конвейеру" (|) на командлет Set-ADUser.
PowerShell
Еще примеры:
Массово разблокировать: Get-ADUser -Filter 'Department -eq "Support"' | Unlock-ADAccount
Массово отключить: Get-ADUser -Filter 'Description -like "*old*"' | Disable-ADAccount
Взгляд архитектора: Вы не "меняете пользователей". Вы обеспечиваете консистентность данных и автоматизируете процессы. Это основа для скриптов onboarding/offboarding (прием/увольнение), которые экономят компании сотни часов и предотвращают ошибки.
#windows #powershell #activedirectory #automation #sysadmin #гайд
Задача: 50 новым сотрудникам из отдела "Sales" нужно установить менеджера в профиле.
Реакция админа: Открыть "Пользователи и компьютеры", найти каждого, дважды кликнуть, перейти на вкладку "Организация", вписать менеджера... 150 кликов, 30 минут.
Реакция архитектора: 30 секунд, одна строка.
PowerShell — это не просто скриптовый язык, это инструмент для массовых операций в AD.
Как это работает:
Найти (Get): Сначала находим всех, кто нам нужен.
PowerShell
# Находим всех включенных пользователей в OU "Sales"
Get-ADUser -Filter 'Enabled -eq $true' -SearchBase "OU=Sales,DC=corp,DC=local"
Изменить (Set): Передаем результат по "конвейеру" (|) на командлет Set-ADUser.
PowerShell
# Находим всех в "Sales" И ОДНОЙ КОМАНДОЙ устанавливаем им менеджера
Get-ADUser -Filter 'Enabled -eq $true' -SearchBase "OU=Sales,DC=corp,DC=local" |
Set-ADUser -Manager "CN=Boss,OU=Management,DC=corp,DC=local"
Еще примеры:
Массово разблокировать: Get-ADUser -Filter 'Department -eq "Support"' | Unlock-ADAccount
Массово отключить: Get-ADUser -Filter 'Description -like "*old*"' | Disable-ADAccount
Взгляд архитектора: Вы не "меняете пользователей". Вы обеспечиваете консистентность данных и автоматизируете процессы. Это основа для скриптов onboarding/offboarding (прием/увольнение), которые экономят компании сотни часов и предотвращают ошибки.
#windows #powershell #activedirectory #automation #sysadmin #гайд
Гайд/Linux (Networking)
Linux: ping и traceroute — это прошлое. Диагностируем сеть как SRE с mtr
Проблема: Сервер "лагает". ssh "залипает". Вы запускаете ping — 0% потерь. Вы запускаете traceroute — он доходит до цели. Так в чем же дело?
Ответ: Вы не видите потери пакетов (packet loss) на промежуточных узлах.
mtr (My Traceroute) — это ping и traceroute в одном флаконе, на стероидах. Он в реальном времени показывает потери и пинг до каждого хопа на пути к цели.
Как читать mtr: Просто запустите: mtr google.com
Вы увидите таблицу: Host (Хопы) | Loss% (Потери) | Snt (Отправлено) | Last | Avg | Best | Wrst
Ваша задача — смотреть на Loss%:
Если потери 0% до самого конца — с сетью все в порядке.
Если на 7-м хопе (маршрутизатор вашего провайдера) 10% потерь, а на всех последующих тоже 10% — вы нашли виновника.
Команда для отчета (для скриптов):
Bash
Взгляд архитектора: Вы переходите от жалобы "у меня тормозит" к факту: "На 7-м хопе, xe-0-1-0.msk.provider.net, 10% потерь пакетов, начиная с 14:00". Это Data-Driven Troubleshooting (поиск неисправностей на основе данных), а не гадание.
#linux #networking #sre #mtr #diagnostics #команды #гайд
Linux: ping и traceroute — это прошлое. Диагностируем сеть как SRE с mtr
Проблема: Сервер "лагает". ssh "залипает". Вы запускаете ping — 0% потерь. Вы запускаете traceroute — он доходит до цели. Так в чем же дело?
Ответ: Вы не видите потери пакетов (packet loss) на промежуточных узлах.
mtr (My Traceroute) — это ping и traceroute в одном флаконе, на стероидах. Он в реальном времени показывает потери и пинг до каждого хопа на пути к цели.
Как читать mtr: Просто запустите: mtr google.com
Вы увидите таблицу: Host (Хопы) | Loss% (Потери) | Snt (Отправлено) | Last | Avg | Best | Wrst
Ваша задача — смотреть на Loss%:
Если потери 0% до самого конца — с сетью все в порядке.
Если на 7-м хопе (маршрутизатор вашего провайдера) 10% потерь, а на всех последующих тоже 10% — вы нашли виновника.
Команда для отчета (для скриптов):
Bash
# Отправить 10 пакетов и вывести отчет, не запуская интерактивный режим
mtr --report -c 10 ya.ru
Взгляд архитектора: Вы переходите от жалобы "у меня тормозит" к факту: "На 7-м хопе, xe-0-1-0.msk.provider.net, 10% потерь пакетов, начиная с 14:00". Это Data-Driven Troubleshooting (поиск неисправностей на основе данных), а не гадание.
#linux #networking #sre #mtr #diagnostics #команды #гайд
Linux: Аудит "богов". Кто и что может делать через sudo?
Вы думаете, что у пользователя www-data нет прав root. Но что лежит в /etc/sudoers.d/? Неправильная sudo-политика — это прямой путь к повышению привилегий (Privilege Escalation).
Как ПРАВИЛЬНО проводить аудит sudo:
Проверить конкретного пользователя: Самая важная команда. Она показывает эффективные права пользователя, собранные из всех файлов.
Bash
Посмотреть все активные правила "вживую": Этот grep отсечет все комментарии (#) и пустые строки ($) и покажет только действующие правила из всех файлов.
Bash
Посмотреть, кто и что уже делал: sudo логирует каждое свое выполнение (обычно в /var/log/secure или /var/log/auth.log).
Bash
Взгляд архитектора: Principle of Least Privilege (PoLP). sudo — это не просто "дать root". Это гранулированный инструмент. Архитектор никогда не дает ALL=(ALL) ALL. Он дает dev-user ALL=(ALL) /usr/sbin/systemctl restart myapp.service. Это и есть проектирование безопасности.
#linux #security #sudo #audit #cybersecurity #sysadmin #гайд
Вы думаете, что у пользователя www-data нет прав root. Но что лежит в /etc/sudoers.d/? Неправильная sudo-политика — это прямой путь к повышению привилегий (Privilege Escalation).
Как ПРАВИЛЬНО проводить аудит sudo:
Проверить конкретного пользователя: Самая важная команда. Она показывает эффективные права пользователя, собранные из всех файлов.
Bash
# Показать, что может делать www-data
sudo -l -U www-data
# Вывод:
# (ALL) NOPASSWD: /usr/sbin/service nginx reload <-- (ХОРОШО)
# (ALL) NOPASSWD: /bin/bash <-- (ОЧЕНЬ ПЛОХО!)
Посмотреть все активные правила "вживую": Этот grep отсечет все комментарии (#) и пустые строки ($) и покажет только действующие правила из всех файлов.
Bash
sudo grep -vE '^(#|$)' /etc/sudoers /etc/sudoers.d/*
Посмотреть, кто и что уже делал: sudo логирует каждое свое выполнение (обычно в /var/log/secure или /var/log/auth.log).
Bash
# Показать 20 последних команд, выполненных через sudo
sudo cat /var/log/auth.log | grep "sudo:" | tail -n 20
Взгляд архитектора: Principle of Least Privilege (PoLP). sudo — это не просто "дать root". Это гранулированный инструмент. Архитектор никогда не дает ALL=(ALL) ALL. Он дает dev-user ALL=(ALL) /usr/sbin/systemctl restart myapp.service. Это и есть проектирование безопасности.
#linux #security #sudo #audit #cybersecurity #sysadmin #гайд
Windows: Будущее VPN уже здесь. Разбираем "SMB over QUIC"
Все мы знаем "боль" классических VPN: они медленные, отваливаются, их блокируют файрволы. Доступ к файловым шарам для удаленных пользователей — это вечный компромисс между удобством и безопасностью.
Microsoft решила эту проблему, и это будущее, которое уже здесь: SMB over QUIC.
Что это такое (простым языком): Это "родной" VPN от Microsoft, созданный только для доступа к файловым серверам. Он "заворачивает" стандартный файловый трафик SMB (порт 445) внутрь QUIC (HTTP/3).
Почему это революция для админа:
Безопасность: Весь трафик всегда зашифрован (DTLS 1.3).
Проходит везде: Работает поверх UDP-порта 443. Этот порт открыт в 99.9% сетей (для HTTPS), а значит, доступ будет из любого отеля, кафе или аэропорта.
Стабильность: QUIC "терпим" к смене сетей (Wi-Fi -> LTE -> Wi-Fi), не разрывая сессию.
Взгляд архитектора: Это не просто "фича". Это фундаментальный сдвиг к модели Zero Trust. Вы больше не "пускаете" пользователя во всю внутреннюю сеть (как с VPN). Вы даете ему шифрованный, изолированный доступ только к одному ресурсу — файловому серверу.
#windows #windowsserver #security #networking #smb #quic #architect #гайд
Все мы знаем "боль" классических VPN: они медленные, отваливаются, их блокируют файрволы. Доступ к файловым шарам для удаленных пользователей — это вечный компромисс между удобством и безопасностью.
Microsoft решила эту проблему, и это будущее, которое уже здесь: SMB over QUIC.
Что это такое (простым языком): Это "родной" VPN от Microsoft, созданный только для доступа к файловым серверам. Он "заворачивает" стандартный файловый трафик SMB (порт 445) внутрь QUIC (HTTP/3).
Почему это революция для админа:
Безопасность: Весь трафик всегда зашифрован (DTLS 1.3).
Проходит везде: Работает поверх UDP-порта 443. Этот порт открыт в 99.9% сетей (для HTTPS), а значит, доступ будет из любого отеля, кафе или аэропорта.
Стабильность: QUIC "терпим" к смене сетей (Wi-Fi -> LTE -> Wi-Fi), не разрывая сессию.
Взгляд архитектора: Это не просто "фича". Это фундаментальный сдвиг к модели Zero Trust. Вы больше не "пускаете" пользователя во всю внутреннюю сеть (как с VPN). Вы даете ему шифрованный, изолированный доступ только к одному ресурсу — файловому серверу.
#windows #windowsserver #security #networking #smb #quic #architect #гайд
🤨2
ИБ: Новая угроза — "Quishing". Как QR-коды обходят вашу защиту
Ваш дорогой anti-spam фильтр проверяет ссылки и текст. Но что, если в письме нет ни одной ссылки?
Встречайте "Quishing" (QR Code Phishing) — стремительно растущий вектор атак.
Как это работает:
Пользователь получает письмо (часто под видом "Срочно! Обновите MFA-аутентификацию").
В письме нет ссылок, только изображение (QR-код). Ваш спам-фильтр видит просто картинку и пропускает письмо.
Пользователь сканирует QR-код личным телефоном.
Телефон (который не защищен вашим корпоративным EDR) переходит на фишинговый сайт, где пользователь вводит свой логин и пароль.
Взгляд архитектора: Это атака на "слой 8" (человека), которая обходит традиционные технические средства защиты (E-Mail Gateway, EDR на ПК).
Как защищаться (Defense in Depth):
Обучение: Расскажите пользователям, что сканировать неизвестные QR-коды так же опасно, как и кликать по ссылкам.
MFA: Настоящий MFA (не SMS) — ваш главный бастион.
MDM (Mobile Device Management): Если сотрудники используют личные телефоны для работы, они должны быть под управлением (MDM) и иметь защиту (Endpoint Security).
#security #phishing #cybersecurity #zerotrust #гайд #musthave
Ваш дорогой anti-spam фильтр проверяет ссылки и текст. Но что, если в письме нет ни одной ссылки?
Встречайте "Quishing" (QR Code Phishing) — стремительно растущий вектор атак.
Как это работает:
Пользователь получает письмо (часто под видом "Срочно! Обновите MFA-аутентификацию").
В письме нет ссылок, только изображение (QR-код). Ваш спам-фильтр видит просто картинку и пропускает письмо.
Пользователь сканирует QR-код личным телефоном.
Телефон (который не защищен вашим корпоративным EDR) переходит на фишинговый сайт, где пользователь вводит свой логин и пароль.
Взгляд архитектора: Это атака на "слой 8" (человека), которая обходит традиционные технические средства защиты (E-Mail Gateway, EDR на ПК).
Как защищаться (Defense in Depth):
Обучение: Расскажите пользователям, что сканировать неизвестные QR-коды так же опасно, как и кликать по ссылкам.
MFA: Настоящий MFA (не SMS) — ваш главный бастион.
MDM (Mobile Device Management): Если сотрудники используют личные телефоны для работы, они должны быть под управлением (MDM) и иметь защиту (Endpoint Security).
#security #phishing #cybersecurity #zerotrust #гайд #musthave
AI-Промпт (Чек-лист): "Обоснуй покупку нового сервера"
Боль админа: Вы говорите менеджеру: "Нам нужен новый сервер! CPU 100%, диск 99%!". Ответ менеджера: "Пока работает — не трогаем. Денег нет".
Вы говорите на разных языках. AI — ваш идеальный "переводчик" с технического на язык бизнеса.
Промпт (для ChatGPT/Gemini/Copilot):
Взгляд архитектора: AI помогает вам выполнить главную задачу архитектора — связать технологии с бизнес-целями и донести ценность IT-вложений до тех, кто принимает решения.
#ai4admin #architect #sysadmin #промпты #чеклисты #гайд
Боль админа: Вы говорите менеджеру: "Нам нужен новый сервер! CPU 100%, диск 99%!". Ответ менеджера: "Пока работает — не трогаем. Денег нет".
Вы говорите на разных языках. AI — ваш идеальный "переводчик" с технического на язык бизнеса.
Промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли Senior IT Architect.
Моя задача — убедить руководство (CEO, CFO) выделить бюджет на покупку нового сервера для базы данных (SQL01).
Технические проблемы:
1. Серверу 5 лет, гарантия истекла.
2. Диски (RAID 5, HDD) заполнены на 97%.
3. CPU (старый Xeon) в пиковые часы 100% загружен.
4. Бэкапы занимают 8 часов и замедляют работу.
Твоя задача:
Напиши короткое, но убедительное **ТЭО (технико-экономическое обоснование)** для руководства.
Чек-лист для AI:
1. [ ] Начать с "Бизнес-рисков", а не "Технических проблем". (Не "CPU 100%", а "Отчеты по продажам формируются 40 минут вместо 2").
2. [ ] Оценить риск простоя. (Что будет, если сервер умрет? "Остановка отгрузок на N часов", "Потеря данных = штрафы").
3. [ ] Предложить решение. (Новый сервер с SSD (NVMe) в RAID 10, больше RAM).
4. [ ] Показать ROI (возврат инвестиций). ("Скорость отчетов х5", "Бэкап за 30 мин", "Снижение риска простоя на 99%").
5. [ ] Язык: Деловой, без технического жаргона.
Взгляд архитектора: AI помогает вам выполнить главную задачу архитектора — связать технологии с бизнес-целями и донести ценность IT-вложений до тех, кто принимает решения.
#ai4admin #architect #sysadmin #промпты #чеклисты #гайд
Windows: Скрипт-аудитор "кто имеет доступ?". Ищем "дыры" в NTFS-правах
Вы "расшарили" папку \\filesrv01\Sales. Спустя год в ее 50-ти подпапках права превратились в "паутину". Вы не знаете, у кого на самом деле есть Full Control.
Реакция админа: "Работает — не трогай". Реакция архитектора: Запустить рекурсивный аудит и найти все "опасные" права.
Этот PowerShell-скрипт — ваш аудитор. Он рекурсивно просканирует папку и найдет все явные (не-наследованные) права, выданные "Всем" (Everyone) или "Прошедшим проверку" (Authenticated Users).
Код скрипта:
PowerShell
Взгляд архитектора: Это — аудит принципа наименьших привилегий (PoLP). Вы не "верите", что права в порядке, вы проверяете. Этот скрипт — основа для ежемесячной проверки файловых шар на соответствие политикам безопасности.
#windows #powershell #security #ntfs #audit #скрипты #sysadmin
Вы "расшарили" папку \\filesrv01\Sales. Спустя год в ее 50-ти подпапках права превратились в "паутину". Вы не знаете, у кого на самом деле есть Full Control.
Реакция админа: "Работает — не трогай". Реакция архитектора: Запустить рекурсивный аудит и найти все "опасные" права.
Этот PowerShell-скрипт — ваш аудитор. Он рекурсивно просканирует папку и найдет все явные (не-наследованные) права, выданные "Всем" (Everyone) или "Прошедшим проверку" (Authenticated Users).
Код скрипта:
PowerShell
[CmdletBinding()]
param (
[string]$TargetFolder = "C:\Shares\Sales",
# Ищем эти "опасные" группы
[string[]]$DangerousPrincipals = @("Everyone", "Authenticated Users")
)
Write-Host "--- Начинаю аудит NTFS-прав в $TargetFolder ---" -ForegroundColor Cyan
# Получаем все папки рекурсивно
$Folders = Get-ChildItem -Path $TargetFolder -Recurse -Directory
$Report = foreach ($Folder in $Folders) {
# Получаем ACL (список доступа)
$Acl = Get-Acl -Path $Folder.FullName
foreach ($AccessRule in $Acl.Access) {
# Нас интересуют только ЯВНЫЕ (не наследованные) права
if ($AccessRule.IsInherited -eq $false) {
# Проверяем, есть ли группа в нашем "опасном" списке
if ($DangerousPrincipals -contains $AccessRule.IdentityReference.Value) {
[PSCustomObject]@{
Path = $Folder.FullName
User = $AccessRule.IdentityReference
Permissions = $AccessRule.FileSystemRights
Status = "DANGEROUS_EXPLICIT_PERM"
}
}
}
}
}
if ($Report) {
Write-Host "`n[!!!] ОБНАРУЖЕНЫ ОПАСНЫЕ ЯВНЫЕ ПРАВА:" -ForegroundColor Red
$Report | Format-Table
} else {
Write-Host "`n[OK] Опасных явных прав не найдено." -ForegroundColor Green
}
Взгляд архитектора: Это — аудит принципа наименьших привилегий (PoLP). Вы не "верите", что права в порядке, вы проверяете. Этот скрипт — основа для ежемесячной проверки файловых шар на соответствие политикам безопасности.
#windows #powershell #security #ntfs #audit #скрипты #sysadmin
🔥2
Linux: Скрипт "Daily Digest". Топ-10 ошибок из journalctl
Сервер "глючит". Лог journalctl — это миллион строк. Вы не можете найти причину в этом "шуме".
Реакция админа: Листать journalctl | grep "error" и надеяться. Реакция архитектора: Агрегировать данные и найти паттерны.
Этот Bash-скрипт — ваш "SRE-ассистент". Он проанализирует логи journalctl за последние 24 часа и покажет Топ-10 самых частых ошибок, отсекая весь "шум".
Код скрипта:
Bash
Как использовать:
Сохраните как digest.sh.
chmod +x digest.sh
sudo ./digest.sh
Взгляд архитектора: Вы не "ищете ошибку". Вы анализируете частотность. Если одна и та же ошибка (Failed password for root) повторилась 5000 раз — это brute-force атака, и вам нужен fail2ban. Если (Disk I/O error) — у вас умирает диск. Это Data-Driven Troubleshooting.
#linux #bash #journalctl #sre #diagnostics #скрипты #devops
Сервер "глючит". Лог journalctl — это миллион строк. Вы не можете найти причину в этом "шуме".
Реакция админа: Листать journalctl | grep "error" и надеяться. Реакция архитектора: Агрегировать данные и найти паттерны.
Этот Bash-скрипт — ваш "SRE-ассистент". Он проанализирует логи journalctl за последние 24 часа и покажет Топ-10 самых частых ошибок, отсекая весь "шум".
Код скрипта:
Bash
#!/bin/bash
# --- JournalCTL Error Digest ---
echo "--- Топ-10 ошибок в journalctl за последние 24 часа ---"
# 1. journalctl: Запрашиваем все с приоритетом "error" (3) за последние 24 часа.
# 2. awk: Вырезаем только само сообщение (все, что после ': ').
# 3. sort: Сортируем строки, чтобы одинаковые были рядом.
# 4. uniq -c: "Схлопываем" одинаковые строки и считаем их (count).
# 5. sort -nr: Сортируем по числу (numeric) в обратном порядке (reverse).
# 6. head -n 10: Показываем топ-10.
journalctl --since "24 hours ago" -p err | \
awk -F': ' '{ $1=""; $2=""; print $0 }' | \
sort | \
uniq -c | \
sort -nr | \
head -n 10
echo "---------------------------------------------------------"
Как использовать:
Сохраните как digest.sh.
chmod +x digest.sh
sudo ./digest.sh
Взгляд архитектора: Вы не "ищете ошибку". Вы анализируете частотность. Если одна и та же ошибка (Failed password for root) повторилась 5000 раз — это brute-force атака, и вам нужен fail2ban. Если (Disk I/O error) — у вас умирает диск. Это Data-Driven Troubleshooting.
#linux #bash #journalctl #sre #diagnostics #скрипты #devops
🔥2
SOC: Знать — значит защищать. Где следить за угрозами
В мире кибербезопасности скорость решает всё. Пока вы ставите патч от вчерашней уязвимости, хакеры уже эксплуатируют сегодняшнюю. Ключ к успеху в SOC (Security Operations Center) — это быть в курсе последних тенденций атак.
Админ реагирует на инцидент. Архитектор предвидит его, читая о новых TTPs (тактиках, техниках и процедурах) атакующих.
Вот 3 сайта "must-read", которые должны быть в ваших ежедневных закладках:
Krebs on Security (https://krebsonsecurity.com)
Глубокие расследования киберпреступлений от Брайана Кребса. Он часто раскапывает то, о чем молчат другие.
The Hacker News (https://thehackernews.com)
"Пульс" индустрии. Оперативные новости о новых уязвимостях, 0-day и крупных взломах.
Bleeping Computer (https://www.bleepingcomputer.com)
Незаменимый ресурс по шифровальщикам (Ransomware). Детальные разборы новых семейств, индикаторы компрометации (IoC) и утилиты-дешифраторы.
Взгляд архитектора: Это не просто "чтиво". Это поток разведданных (Threat Intelligence). Читая эти сайты, вы не просто "узнаете новости" — вы получаете данные, чтобы:
Настроить Sysmon или auditd на поиск новых техник.
Объяснить руководству, почему нужно срочно внедрить MFA (показав свежий кейс).
Проактивно проверить свою инфраструктуру на уязвимости, о которых только что стало известно.
#security #soc #cybersecurity #threatintel #musthave #гайд #architect
В мире кибербезопасности скорость решает всё. Пока вы ставите патч от вчерашней уязвимости, хакеры уже эксплуатируют сегодняшнюю. Ключ к успеху в SOC (Security Operations Center) — это быть в курсе последних тенденций атак.
Админ реагирует на инцидент. Архитектор предвидит его, читая о новых TTPs (тактиках, техниках и процедурах) атакующих.
Вот 3 сайта "must-read", которые должны быть в ваших ежедневных закладках:
Krebs on Security (https://krebsonsecurity.com)
Глубокие расследования киберпреступлений от Брайана Кребса. Он часто раскапывает то, о чем молчат другие.
The Hacker News (https://thehackernews.com)
"Пульс" индустрии. Оперативные новости о новых уязвимостях, 0-day и крупных взломах.
Bleeping Computer (https://www.bleepingcomputer.com)
Незаменимый ресурс по шифровальщикам (Ransomware). Детальные разборы новых семейств, индикаторы компрометации (IoC) и утилиты-дешифраторы.
Взгляд архитектора: Это не просто "чтиво". Это поток разведданных (Threat Intelligence). Читая эти сайты, вы не просто "узнаете новости" — вы получаете данные, чтобы:
Настроить Sysmon или auditd на поиск новых техник.
Объяснить руководству, почему нужно срочно внедрить MFA (показав свежий кейс).
Проактивно проверить свою инфраструктуру на уязвимости, о которых только что стало известно.
#security #soc #cybersecurity #threatintel #musthave #гайд #architect
👍1
Охота на "бесфайловых": Анализ RAM с помощью Volatility
Ваш антивирус молчит, Sysmon чист, но вы чувствуете, что сервер скомпрометирован.
Скорее всего, вы столкнулись с Fileless Malware — вредоносным кодом, который живет только в оперативной памяти (RAM) и никогда не касается диска.
Реакция админа: Перезагрузить сервер (и уничтожить все улики). Реакция архитектора: Сделать дамп памяти и начать "цифровую форензику".
Volatility 3 — это "золотой стандарт" (и open-source) для анализа дампов памяти Windows и Linux.
Как это работает (на пальцах):
Соберите дамп: Используйте WinPmem или FTK Imager (от AccessData), чтобы "сфотографировать" всю RAM проблемного сервера в один .mem файл.
Запустите Volatility на машине для анализа: vol.py -f server_dump.mem <plugin>
3 плагина, которые находят "невидимое":
windows.pstree.PsTree
Что делает: Показывает дерево процессов. Вы сразу увидите аномалию: powershell.exe, запущенный из-под winword.exe, или svchost.exe, который висит дочерним процессом у explorer.exe.
windows.netscan.NetScan
Что делает: Показывает все сетевые соединения, которые были активны в момент снятия дампа. Он найдет "скрытые" C2-соединения, которые процесс мог уже закрыть и "почистить" из netstat.
windows.malfind.Malfind
Что делает: "Охотник" за вредоносным кодом. Он сканирует память процессов на наличие внедренного (injected) кода — классический признак fileless-атаки.
Взгляд архитектора: Это — высшая лига Incident Response. Вы должны предполагать, что EDR может быть обойден. Умение анализировать RAM — это ваш последний рубеж обороны, позволяющий найти коренную причину (root cause) самой сложной атаки.
#windows #security #forensics #volatility #cybersecurity #architect #гайд
Ваш антивирус молчит, Sysmon чист, но вы чувствуете, что сервер скомпрометирован.
Скорее всего, вы столкнулись с Fileless Malware — вредоносным кодом, который живет только в оперативной памяти (RAM) и никогда не касается диска.
Реакция админа: Перезагрузить сервер (и уничтожить все улики). Реакция архитектора: Сделать дамп памяти и начать "цифровую форензику".
Volatility 3 — это "золотой стандарт" (и open-source) для анализа дампов памяти Windows и Linux.
Как это работает (на пальцах):
Соберите дамп: Используйте WinPmem или FTK Imager (от AccessData), чтобы "сфотографировать" всю RAM проблемного сервера в один .mem файл.
Запустите Volatility на машине для анализа: vol.py -f server_dump.mem <plugin>
3 плагина, которые находят "невидимое":
windows.pstree.PsTree
Что делает: Показывает дерево процессов. Вы сразу увидите аномалию: powershell.exe, запущенный из-под winword.exe, или svchost.exe, который висит дочерним процессом у explorer.exe.
windows.netscan.NetScan
Что делает: Показывает все сетевые соединения, которые были активны в момент снятия дампа. Он найдет "скрытые" C2-соединения, которые процесс мог уже закрыть и "почистить" из netstat.
windows.malfind.Malfind
Что делает: "Охотник" за вредоносным кодом. Он сканирует память процессов на наличие внедренного (injected) кода — классический признак fileless-атаки.
Взгляд архитектора: Это — высшая лига Incident Response. Вы должны предполагать, что EDR может быть обойден. Умение анализировать RAM — это ваш последний рубеж обороны, позволяющий найти коренную причину (root cause) самой сложной атаки.
#windows #security #forensics #volatility #cybersecurity #architect #гайд
`htop` — это прошлое. `Netdata` — ваш личный SRE-дашборд за 1 минуту
Как это работает: Вы запускаете одну строчку. Через 60 секунд у вас в браузере
* CPU (разбивка по ядрам, user, system, iowait)
* Память (включая slab, cache)
* Диски (I/O, очередь, утилизация каждого диска)
* Сеть (трафик, пакеты, ошибки каждого интерфейса)
* Авто-детекция: Он сам найдет nginx, postgres, systemd и покажет их персональные метрики.
Установка (одной строкой):
Bash
Взгляд архитектора: Это High-Resolution Monitoring. Вы видите не "среднюю температуру по больнице", а микро-всплески, которые и вызывают проблемы. Это идеальный инструмент для траблшутинга в реальном времени. Вы можете коррелировать: "Ага, ровно в 18:30:05 был всплеск
#linux #sre #monitoring #netdata #devops #sysadmin #гайд #musthave
htop показывает, что происходит сейчас. Prometheus — мощный, но сложный (требует настройки).Netdata — это "золотая середина". Это невероятно мощный, per-second (посекундный) мониторинг, который не требует настройки.Как это работает: Вы запускаете одну строчку. Через 60 секунд у вас в браузере
http://<ip>:19999 открывается дашборд, который показывает всё:* CPU (разбивка по ядрам, user, system, iowait)
* Память (включая slab, cache)
* Диски (I/O, очередь, утилизация каждого диска)
* Сеть (трафик, пакеты, ошибки каждого интерфейса)
* Авто-детекция: Он сам найдет nginx, postgres, systemd и покажет их персональные метрики.
Установка (одной строкой):
Bash
# Официальный скрипт установки
bash <(curl -Ss https://my-netdata.io/kickstart.sh) --dont-wait
Взгляд архитектора: Это High-Resolution Monitoring. Вы видите не "среднюю температуру по больнице", а микро-всплески, которые и вызывают проблемы. Это идеальный инструмент для траблшутинга в реальном времени. Вы можете коррелировать: "Ага, ровно в 18:30:05 был всплеск
Disk I/O , и именно в эту секунду postgres захлебнулся".#linux #sre #monitoring #netdata #devops #sysadmin #гайд #musthave
🔥3
SOC-уровень: Ваш личный "Threat Intel" фид (4 ресурса)
"понимание атак... и обмен ими с IT-отделом — это ключ к расширению вашего кругозора".
Админ патчит, когда ему пришел тикет от SOC.
Архитектор читает те же отчеты, что и SOC, и проектирует систему так, чтобы тикет не появился.
Чтобы строить безопасные системы, вы должны думать как атакующий.
Вот 4 ресурса "уровня SOC", которые должен читать каждый инженер:
* The DFIR Report: Как происходят реальные вторжения(https://thedfirreport.com/)
Зачем: Это не "новости". Это полные, "от А до Я" разборы атак. Как (Phishing) -> Куда (PowerShell) -> Как (Lateral Movement). Вы видите всю цепочку и учитесь рвать её звенья.
* CISA KEV: Каталог ИЗВЕСТНЫХ ЭКСПЛУАТИРУЕМЫХ уязвимостей(https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
Зачем: Ваш сканер нашел 100 "критических" уязвимостей. Но какие из них реально используют хакеры прямо сейчас? CISA KEV — это ваш "приоритетный лист" для патч-менеджмента.
* BleepingComputer: Атаки на цепочку поставок(https://www.bleepingcomputer.com/tag/supply-chain-attack/)
Зачем: Ваш "периметр" мертв. Эта лента показывает, как атакуют через ваших доверенных вендоров (ПО, обновления, SaaS). Помогает проектировать системы по принципу Zero Trust.
* CheckPoint: Интерактивная карта киберугроз(https://threatmap.checkpoint.com/)
Зачем: Это "большая картина". Она дает контекст в реальном времени. Если вы видите, что идет аномальная волна DDoS из определенной страны, вы будете готовы к ней.
Взгляд архитектора: Не ждите, пока SOC пришлет вам алерт. Используйте эти ресурсы, чтобы проактивно укреплять свои системы. Это и есть "расширение кругозора": вы начинаете понимать "почему" и "как", а не просто "что" исправлять.
#security #soc #cybersecurity #threatintel #cisa #dfir #architect #гайд
"понимание атак... и обмен ими с IT-отделом — это ключ к расширению вашего кругозора".
Админ патчит, когда ему пришел тикет от SOC.
Архитектор читает те же отчеты, что и SOC, и проектирует систему так, чтобы тикет не появился.
Чтобы строить безопасные системы, вы должны думать как атакующий.
Вот 4 ресурса "уровня SOC", которые должен читать каждый инженер:
* The DFIR Report: Как происходят реальные вторжения(https://thedfirreport.com/)
Зачем: Это не "новости". Это полные, "от А до Я" разборы атак. Как (Phishing) -> Куда (PowerShell) -> Как (Lateral Movement). Вы видите всю цепочку и учитесь рвать её звенья.
* CISA KEV: Каталог ИЗВЕСТНЫХ ЭКСПЛУАТИРУЕМЫХ уязвимостей(https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
Зачем: Ваш сканер нашел 100 "критических" уязвимостей. Но какие из них реально используют хакеры прямо сейчас? CISA KEV — это ваш "приоритетный лист" для патч-менеджмента.
* BleepingComputer: Атаки на цепочку поставок(https://www.bleepingcomputer.com/tag/supply-chain-attack/)
Зачем: Ваш "периметр" мертв. Эта лента показывает, как атакуют через ваших доверенных вендоров (ПО, обновления, SaaS). Помогает проектировать системы по принципу Zero Trust.
* CheckPoint: Интерактивная карта киберугроз(https://threatmap.checkpoint.com/)
Зачем: Это "большая картина". Она дает контекст в реальном времени. Если вы видите, что идет аномальная волна DDoS из определенной страны, вы будете готовы к ней.
Взгляд архитектора: Не ждите, пока SOC пришлет вам алерт. Используйте эти ресурсы, чтобы проактивно укреплять свои системы. Это и есть "расширение кругозора": вы начинаете понимать "почему" и "как", а не просто "что" исправлять.
#security #soc #cybersecurity #threatintel #cisa #dfir #architect #гайд
🔥2
Windows: Защита «второго прыжка». Что такое Resource-Based Constrained Delegation?
Вам нужно, чтобы веб-сервис (Frontend) мог обращаться к базе данных (Backend) от имени пользователя. Старое решение (KCD): Вы настраиваете делегирование на Frontend-сервисе, давая ему право «притворяться» пользователем при обращении к Backend. Это сложно, требует прав Domain Admin и создает мощную «учетку», которую любят атаковать.
Новое решение: Resource-Based Constrained Delegation (RBCD) Это «делегирование наоборот», представленное в Windows Server 2012.
Как работает: Вы настраиваете Backend-сервис (например, файловый сервер или SQL) и говорите ему: «Я разрешаю вот этому Frontend-сервису присылать мне пользователей».
Право делегирования хранится на ресурсе, а не на учетной записи-посреднике.
Как настроить (PowerShell):
PowerShell
Взгляд архитектора: Это фундаментальный сдвиг к модели Zero Trust. Вы больше не создаете «супер-учетки» с широкими правами. Вместо этого, каждый ресурс сам определяет, кому он доверяет. Это безопаснее, проще в аудите и работает между разными доменами и лесами.
#windows #security #activedirectory #kerberos #architect #гайд
Вам нужно, чтобы веб-сервис (Frontend) мог обращаться к базе данных (Backend) от имени пользователя. Старое решение (KCD): Вы настраиваете делегирование на Frontend-сервисе, давая ему право «притворяться» пользователем при обращении к Backend. Это сложно, требует прав Domain Admin и создает мощную «учетку», которую любят атаковать.
Новое решение: Resource-Based Constrained Delegation (RBCD) Это «делегирование наоборот», представленное в Windows Server 2012.
Как работает: Вы настраиваете Backend-сервис (например, файловый сервер или SQL) и говорите ему: «Я разрешаю вот этому Frontend-сервису присылать мне пользователей».
Право делегирования хранится на ресурсе, а не на учетной записи-посреднике.
Как настроить (PowerShell):
PowerShell
# 1. Получаем учетку Frontend-сервиса (кто будет делегировать)
$FrontendService = Get-ADComputer -Identity "WEB-SRV-01"
# 2. Настраиваем Backend-сервис (кому делегируют)
# Мы "разрешаем" WEB-SRV-01 действовать от имени других
Set-ADComputer -Identity "SQL-SRV-01" -PrincipalsAllowedToDelegateToAccount $FrontendService
Взгляд архитектора: Это фундаментальный сдвиг к модели Zero Trust. Вы больше не создаете «супер-учетки» с широкими правами. Вместо этого, каждый ресурс сам определяет, кому он доверяет. Это безопаснее, проще в аудите и работает между разными доменами и лесами.
#windows #security #activedirectory #kerberos #architect #гайд
Linux: Ваш бэкап «убивает» производительность? Управляем I/O с `ionice`
Вы запускаете ночной
Решение:
Классы
1. (Realtime): Высший приоритет. Процесс получит I/O немедленно. (Использовать с осторожностью!)
2. (Best-Effort): Стандартный класс. Имеет 8 уровней приоритета (0-7, где 0 — высший).
3. (Idle): Ваш лучший друг для бэкапов. Процесс получит I/O, только если никто другой его не просит.
Как использовать:
Запустить новую «медленную» задачу:
Bash
Изменить приоритет запущенного процесса:
Bash
Взгляд архитектора: Вы управляете не только CPU, но и I/O QoS (Quality of Service).
#linux #sre #performance #ionice #backup #команды #гайд
Вы запускаете ночной
rsync или бэкап базы данных. В htop CPU свободен, но сайт «лежит», а SSH «тормозит». Причина: Ваш бэкап полностью «съел» дисковый I/O (ввод-вывод). nice и renice (которые управляют CPU) здесь бессильны.Решение:
ionice Эта утилита позволяет задать приоритет дискового I/O для процесса.Классы
ionice:1. (Realtime): Высший приоритет. Процесс получит I/O немедленно. (Использовать с осторожностью!)
2. (Best-Effort): Стандартный класс. Имеет 8 уровней приоритета (0-7, где 0 — высший).
3. (Idle): Ваш лучший друг для бэкапов. Процесс получит I/O, только если никто другой его не просит.
Как использовать:
Запустить новую «медленную» задачу:
Bash
# Запускаем rsync с самым низким приоритетом (Idle)
ionice -c 3 rsync -a /var/www/ /mnt/backup/
Изменить приоритет запущенного процесса:
Bash
# Находим PID нашего rsync (например, 4567)
pidof rsync
# "Замедляем" его
ionice -c 3 -p 4567
Взгляд архитектора: Вы управляете не только CPU, но и I/O QoS (Quality of Service).
ionice -c 3 для всех фоновых задач (бэкапы, индексация) — это стандарт для SRE, гарантирующий, что фоновые операции никогда не повлияют на производительность основного сервиса.#linux #sre #performance #ionice #backup #команды #гайд
👍3
Full-Stack: Управляем «зоопарком» конфигов. `chezmoi` — ваш личный IaC
У вас есть идеальный
Решение: `chezmoi` (произносится "шей-муа") Это не просто "менеджер dotfiles", это декларативный инструмент, как Ansible или Terraform, но для вашей личной среды.
Почему он лучше, чем symlink-менеджеры (Stow) или bare-репозиторий Git:
1. Декларативность: Вы говорите chezmoi apply, и он приводит конфиги в нужное состояние.
2. Шаблоны: Он использует go-template для создания разных конфигов на разных машинах (например, git config с разным email для работы и дома).
3. Безопасность: Интегрируется с gpg, age или менеджерами паролей (1Password, Bitwarden, KeePass) для безопасного хранения секретов.
Как начать:
Bash
Теперь ваш
Взгляд архитектора: Это Configuration as Code для инженера. Вы относитесь к своей рабочей среде так же, как к production-серверам: декларативно, версионируемо и безопасно. Это экономит часы при настройке новой машины и гарантирует консистентность.
#devops #automation #chezmoi #git #linux #windows #гайд
У вас есть идеальный
.bashrc на Linux-сервере, крутой .zshrc на macOS и мощный profile.ps1 на Windows. Как синхронизировать их, не копируя вручную? А что делать с секретами (ключами API, токенами) в .gitconfig ?Решение: `chezmoi` (произносится "шей-муа") Это не просто "менеджер dotfiles", это декларативный инструмент, как Ansible или Terraform, но для вашей личной среды.
Почему он лучше, чем symlink-менеджеры (Stow) или bare-репозиторий Git:
1. Декларативность: Вы говорите chezmoi apply, и он приводит конфиги в нужное состояние.
2. Шаблоны: Он использует go-template для создания разных конфигов на разных машинах (например, git config с разным email для работы и дома).
3. Безопасность: Интегрируется с gpg, age или менеджерами паролей (1Password, Bitwarden, KeePass) для безопасного хранения секретов.
Как начать:
Bash
# Инициализируем (он создаст репо в ~/.local/share/chezmoi)
chezmoi init
# Добавляем ваш .bashrc в "желаемое состояние"
chezmoi add ~/.bashrc
Теперь ваш
~/.bashrc скопирован, и вы можете chezmoi apply его на любой другой машине.Взгляд архитектора: Это Configuration as Code для инженера. Вы относитесь к своей рабочей среде так же, как к production-серверам: декларативно, версионируемо и безопасно. Это экономит часы при настройке новой машины и гарантирует консистентность.
#devops #automation #chezmoi #git #linux #windows #гайд
🔥2
AD: Ваш Domain Admin бесполезен, если он залогинен на ПК. Разбираем "Admin Tier Model"
Хакер взломал ПК вашего HelpDesk-администратора, который также является Domain Admin. Через 10 минут хакер получил ключи от всего домена.
Почему: Вы нарушили главный принцип безопасности AD.
Admin Tier Model (Модель Уровней Администрирования) — это не "фича", это архитектурная концепция от Microsoft, которая изолирует ваши "ключи от королевства".
Суть (простыми словами): Ваша инфраструктура делится на 3 "непересекающихся" уровня:
Tier 0 (Ядро / Ключи):
Что это: Контроллеры Домена (DC), PKI (Центры Сертификации), ADFS.
Кто: Только Domain Admins. Запрещено логиниться этими учетками куда-либо, кроме Tier 0.
Tier 1 (Серверы / Приложения):
Что это: Серверы приложений, SQL, WSUS, Файловые серверы.
Кто: Server Admins. Им запрещено логиниться на Tier 0.
Tier 2 (Рабочие станции / Пользователи):
Что это: Ноутбуки, ПК пользователей, принтеры.
Кто: HelpDesk / Workstation Admins. Им запрещено логиниться на Tier 1 и Tier 0.
"Золотое правило" (Закон Гравитации): Tier 0 (DA) НИКОГДА не должен "спускаться" и логиниться на Tier 1 или Tier 2.
Почему? Как только ваш Domain Admin (Tier 0) логинится на ПК (Tier 2), его хэш пароля остается в памяти (LSASS). Хакер, взломав этот ПК, забирает хэш (Pass-the-Hash) и мгновенно становится Domain Admin.
Взгляд архитектора: Вы не просто "создаете группы". Вы проектируете барьеры. Компрометация Tier 2 (самого уязвимого) не должна приводить к компрометации Tier 1 и, тем более, Tier 0. Это основа Zero Trust и единственный способ защитить AD от атак Lateral Movement.
#windows #security #activedirectory #architect #zerotrust #cybersecurity #гайд #musthave
Хакер взломал ПК вашего HelpDesk-администратора, который также является Domain Admin. Через 10 минут хакер получил ключи от всего домена.
Почему: Вы нарушили главный принцип безопасности AD.
Admin Tier Model (Модель Уровней Администрирования) — это не "фича", это архитектурная концепция от Microsoft, которая изолирует ваши "ключи от королевства".
Суть (простыми словами): Ваша инфраструктура делится на 3 "непересекающихся" уровня:
Tier 0 (Ядро / Ключи):
Что это: Контроллеры Домена (DC), PKI (Центры Сертификации), ADFS.
Кто: Только Domain Admins. Запрещено логиниться этими учетками куда-либо, кроме Tier 0.
Tier 1 (Серверы / Приложения):
Что это: Серверы приложений, SQL, WSUS, Файловые серверы.
Кто: Server Admins. Им запрещено логиниться на Tier 0.
Tier 2 (Рабочие станции / Пользователи):
Что это: Ноутбуки, ПК пользователей, принтеры.
Кто: HelpDesk / Workstation Admins. Им запрещено логиниться на Tier 1 и Tier 0.
"Золотое правило" (Закон Гравитации): Tier 0 (DA) НИКОГДА не должен "спускаться" и логиниться на Tier 1 или Tier 2.
Почему? Как только ваш Domain Admin (Tier 0) логинится на ПК (Tier 2), его хэш пароля остается в памяти (LSASS). Хакер, взломав этот ПК, забирает хэш (Pass-the-Hash) и мгновенно становится Domain Admin.
Взгляд архитектора: Вы не просто "создаете группы". Вы проектируете барьеры. Компрометация Tier 2 (самого уязвимого) не должна приводить к компрометации Tier 1 и, тем более, Tier 0. Это основа Zero Trust и единственный способ защитить AD от атак Lateral Movement.
#windows #security #activedirectory #architect #zerotrust #cybersecurity #гайд #musthave
❤3
Linux: "Почему мой Docker-контейнер тормозит?" Вскрываем `cgroups`
Вы выделили Docker-контейнеру
Происходит CPU Throttling (троттлинг). Ваш контейнер хочет больше CPU, но
Как увидеть "троттлинг" своими глазами:
Найдите "слайс" вашего контейнера:
Bash
Bash
* nr_periods: Сколько раз процесс "приходил" за CPU.
* nr_throttled: Сколько раз ему было отказано (он был "задушен").
* throttled_time: Суммарное время, которое процесс провел в "задушенном" состоянии (в наносекундах).
Взгляд архитектора: Если nr_throttled (количество удушений) постоянно растет — вы нашли корень зла. Вы доказали, что проблема не в "тормозах", а в нехватке выделенных ресурсов. top вам этого никогда не покажет. Архитектор валидирует лимиты, а не гадает.
#linux #sre #docker #cgroups #performance #diagnostics #гайд #architect
Вы выделили Docker-контейнеру
2 CPU, а он "задыхается". Вы запускаете htop на хосте — а там 20% простоя. Что происходит?Происходит CPU Throttling (троттлинг). Ваш контейнер хочет больше CPU, но
cgroups (Control Groups) его "душат".cgroups — это технология ядра, которая изолирует и ограничивает ресурсы (CPU, RAM, I/O) для групп процессов. Это фундамент, на котором стоят systemd, Docker и Kubernetes.Как увидеть "троттлинг" своими глазами:
Найдите "слайс" вашего контейнера:
Bash
# Найти "слайс" Docker
systemd-cgls | grep 'docker-'
# /docker-a1b2c3d4e5f6.scope
Прочитайте статистику CPU (самое важное):
Bash
# Идем в "папку" cgroup этого контейнера
cd /sys/fs/cgroup/cpu/docker/a1b2c3d4e5f6...
# Читаем файл статистики
cat cpu.stat
* nr_periods: Сколько раз процесс "приходил" за CPU.
* nr_throttled: Сколько раз ему было отказано (он был "задушен").
* throttled_time: Суммарное время, которое процесс провел в "задушенном" состоянии (в наносекундах).
Взгляд архитектора: Если nr_throttled (количество удушений) постоянно растет — вы нашли корень зла. Вы доказали, что проблема не в "тормозах", а в нехватке выделенных ресурсов. top вам этого никогда не покажет. Архитектор валидирует лимиты, а не гадает.
#linux #sre #docker #cgroups #performance #diagnostics #гайд #architect
Windows: "Get-WmiObject — мертв". Переходим на CIM
Если вы в 2025 году все еще пишете Get-WmiObject в своих PowerShell-скриптах, у нас плохие новости. Эта команда мертва (deprecated).
Почему она мертва? Она использует "старый" протокол DCOM, который:
* Медленный.
* Блокируется файрволами (требует 100500 открытых портов).
* Неэффективный.
Новый стандарт: Get-CimInstance (CIM) CIM (Common Information Model) — это современная замена WMI.
Почему CIM — это круто:
Работает по WinRM: (Как и PowerShell Remoting). Ему нужен один порт (5985 http или 5986 https). Он "пробивает" файрволы.
Быстрый: Использует WS-Man, который намного легче, чем DCOM.
Умный: Get-CimInstance возвращает "чистые" объекты, а не системный мусор.
Сравнение "до" и "после":
МЕРТВО (не делайте так):
PowerShell
ЖИВО (делайте так):
PowerShell
(...или New-CimSession для создания постоянного подключения).
Взгляд архитектора: Выбирать правильный инструмент — это и есть архитектура. Get-WmiObject — это "костыль" из эры Server 2003. Get-CimInstance — это стандарт для современной, автоматизированной Windows-инфраструктуры.
#windows #powershell #automation #wmi #cim #sysadmin #гайд #musthave
Если вы в 2025 году все еще пишете Get-WmiObject в своих PowerShell-скриптах, у нас плохие новости. Эта команда мертва (deprecated).
Почему она мертва? Она использует "старый" протокол DCOM, который:
* Медленный.
* Блокируется файрволами (требует 100500 открытых портов).
* Неэффективный.
Новый стандарт: Get-CimInstance (CIM) CIM (Common Information Model) — это современная замена WMI.
Почему CIM — это круто:
Работает по WinRM: (Как и PowerShell Remoting). Ему нужен один порт (5985 http или 5986 https). Он "пробивает" файрволы.
Быстрый: Использует WS-Man, который намного легче, чем DCOM.
Умный: Get-CimInstance возвращает "чистые" объекты, а не системный мусор.
Сравнение "до" и "после":
МЕРТВО (не делайте так):
PowerShell
# Медленно, через DCOM
Get-WmiObject -Class Win32_OperatingSystem -ComputerName SERVER01
ЖИВО (делайте так):
PowerShell
# Быстро, через WinRM
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName SERVER01
(...или New-CimSession для создания постоянного подключения).
Взгляд архитектора: Выбирать правильный инструмент — это и есть архитектура. Get-WmiObject — это "костыль" из эры Server 2003. Get-CimInstance — это стандарт для современной, автоматизированной Windows-инфраструктуры.
#windows #powershell #automation #wmi #cim #sysadmin #гайд #musthave
🔥1
Защита от "самого себя": Как обезопасить критичные конфиги в Linux
Проблема: Один rm -rf по ошибке. Одна неудачная правка nginx.conf в 3 часа ночи. И prod лежит. "Админ" надеется на бэкапы (восстановление). "Архитектор" предотвращает саму возможность ошибки.
Вот 3 уровня эшелонированной обороны для ваших самых важных файлов (конфигов, скриптов, сертификатов).
Уровень 1: "Бетонный бункер" (chattr)
Это — ваш immutable (неизменяемый) флаг. Самая сильная защита, даже от root.
⏺ Как включить: sudo chattr +i /etc/nginx/nginx.conf
Теперь этот файл нельзя удалить, изменить, переименовать или даже создать на него ссылку. Совсем.
⏺ Как выключить (для плановых правок): sudo chattr -i /etc/nginx/nginx.conf
#АрхитекторскийЛайфхак: Сделали правки -> немедленно включили защиту обратно! Это лучшая защита от случайного rm или sed -i.
Уровень 2: "Гибкий контроль" (ACL)
Стандартных rwx (владелец/группа/остальные) часто не хватает. ACL (Access Control Lists) дают гранулярный доступ.
Задача: Дать юзеру deploy право только читать конфиг, но не менять.
⏺ Назначаем права: sudo setfacl -m u:deploy:r /etc/nginx/nginx.conf
⏺ Проверяем права: getfacl /etc/nginx/nginx.conf
Это намного чище, чем добавлять deploy в группу root (чего делать нельзя никогда).
Уровень 3: "Умный Sudo" (sudoers)
Никогда не давайте сервисным юзерам и коллегам ALL=(ALL) ALL. Это "ключи от королевства". Давайте только то, что нужно.
Задача: Дать deploy право только перезапускать Nginx, но не редактировать или удалять его файлы.
⏺ Редактируем visudo: deploy ALL=(root) NOPASSWD: /bin/systemctl restart nginx
Теперь deploy может выполнить sudo systemctl restart nginx, но sudo rm /etc/nginx/nginx.conf ему "откажет в доступе".
Итог: sudoers защищает от эскалации привилегий. ACL защищает от случайных правок другими пользователями. chattr защищает от root-ошибок (включая вас самих в 3 часа ночи).
#linux #security #sysadmin #chattr #acl #sudo #bestpractice
Проблема: Один rm -rf по ошибке. Одна неудачная правка nginx.conf в 3 часа ночи. И prod лежит. "Админ" надеется на бэкапы (восстановление). "Архитектор" предотвращает саму возможность ошибки.
Вот 3 уровня эшелонированной обороны для ваших самых важных файлов (конфигов, скриптов, сертификатов).
Уровень 1: "Бетонный бункер" (chattr)
Это — ваш immutable (неизменяемый) флаг. Самая сильная защита, даже от root.
⏺ Как включить: sudo chattr +i /etc/nginx/nginx.conf
Теперь этот файл нельзя удалить, изменить, переименовать или даже создать на него ссылку. Совсем.
⏺ Как выключить (для плановых правок): sudo chattr -i /etc/nginx/nginx.conf
#АрхитекторскийЛайфхак: Сделали правки -> немедленно включили защиту обратно! Это лучшая защита от случайного rm или sed -i.
Уровень 2: "Гибкий контроль" (ACL)
Стандартных rwx (владелец/группа/остальные) часто не хватает. ACL (Access Control Lists) дают гранулярный доступ.
Задача: Дать юзеру deploy право только читать конфиг, но не менять.
⏺ Назначаем права: sudo setfacl -m u:deploy:r /etc/nginx/nginx.conf
⏺ Проверяем права: getfacl /etc/nginx/nginx.conf
Это намного чище, чем добавлять deploy в группу root (чего делать нельзя никогда).
Уровень 3: "Умный Sudo" (sudoers)
Никогда не давайте сервисным юзерам и коллегам ALL=(ALL) ALL. Это "ключи от королевства". Давайте только то, что нужно.
Задача: Дать deploy право только перезапускать Nginx, но не редактировать или удалять его файлы.
⏺ Редактируем visudo: deploy ALL=(root) NOPASSWD: /bin/systemctl restart nginx
Теперь deploy может выполнить sudo systemctl restart nginx, но sudo rm /etc/nginx/nginx.conf ему "откажет в доступе".
Итог: sudoers защищает от эскалации привилегий. ACL защищает от случайных правок другими пользователями. chattr защищает от root-ошибок (включая вас самих в 3 часа ночи).
#linux #security #sysadmin #chattr #acl #sudo #bestpractice
🔥4