🛡️ Windows (Security): "Убить" Mimikatz. Включаем LSA Protection (PPL)
Боль: Хакер получил права админа на 1 сервере. Он запускает mimikatz.exe -> sekurlsa::logonpasswords -> и "вытаскивает" из памяти процесса lsass.exe все пароли/хэши, включая Domain Admin'а, который логинился туда 2 часа назад. Игра окончена.
Реакция админа: "Мой EDR/Антивирус поймает mimikatz". (А если нет?)
Реакция архитектора: "Я сделаю lsass.exe неприкосновенным".
LSA Protection (PPL - Protected Process Light) — это "спящий" режим защиты в Windows (начиная с 8.1 / Server 2012 R2), который запрещает любым процессам (даже с правами SYSTEM) читать память lsass.exe.
Как включить (1 ключ реестра):
(Требуется перезагрузка для применения)
Результат: mimikatz (и другие "дамперы") просто выдаст ERROR kuhl_m_sekurlsa_acquireLSA ; Process Protection Error! (0x00000005). Доступ запрещен.
Взгляд архитектора: Это фундаментальное "укрепление" (Hardening). Вы не "надеетесь" на EDR, вы используете встроенный механизм ОС, чтобы сделать компрометацию lsass.exe невозможной.
#windows #security #mimikatz #lsass #cybersecurity #architect #гайд #musthave
Боль: Хакер получил права админа на 1 сервере. Он запускает mimikatz.exe -> sekurlsa::logonpasswords -> и "вытаскивает" из памяти процесса lsass.exe все пароли/хэши, включая Domain Admin'а, который логинился туда 2 часа назад. Игра окончена.
Реакция админа: "Мой EDR/Антивирус поймает mimikatz". (А если нет?)
Реакция архитектора: "Я сделаю lsass.exe неприкосновенным".
LSA Protection (PPL - Protected Process Light) — это "спящий" режим защиты в Windows (начиная с 8.1 / Server 2012 R2), который запрещает любым процессам (даже с правами SYSTEM) читать память lsass.exe.
Как включить (1 ключ реестра):
# Запускаем PowerShell от имени Admin
$RegPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"
Set-ItemProperty -Path $RegPath -Name "RunAsPPL" -Value 1
(Требуется перезагрузка для применения)
Результат: mimikatz (и другие "дамперы") просто выдаст ERROR kuhl_m_sekurlsa_acquireLSA ; Process Protection Error! (0x00000005). Доступ запрещен.
Взгляд архитектора: Это фундаментальное "укрепление" (Hardening). Вы не "надеетесь" на EDR, вы используете встроенный механизм ОС, чтобы сделать компрометацию lsass.exe невозможной.
#windows #security #mimikatz #lsass #cybersecurity #architect #гайд #musthave
🔥2
⚙️ DevOps (Automation): "Grep по YAML". Встречаем yq
Боль: Вам нужно в CI/CD-скрипте "вытащить" версию image: из docker-compose.yml или kubernetes-deployment.yml.
Реакция админа: cat docker-compose.yml | grep "image:" | awk -F': ' '{print $2}' (Это "хрупкий" скрипт. Он сломается от одного лишнего пробела или комментария).
Реакция архитектора: yq '.services.my-app.image' docker-compose.yml
yq — это jq (для JSON), но для YAML. Это "швейцарский нож" для парсинга *.yml файлов в bash.
Почему это киллер-фича:
* Надежность: Он понимает структуру YAML. Ему плевать на пробелы и комментарии.
* Чтение: yq '.spec.replicas' deployment.yml
* Запись: yq -i '.spec.replicas = 3' deployment.yml (Изменить файл "на лету"!)
* Merge: yq eval-all '. as $item ireduce ({}; . * $item)' file1.yml file2.yml (Склеить два YAML-файла).
Взгляд архитектора: Это надежная автоматизация (Reliable Automation). Ваши bash-скрипты в CI/CD (GitLab, Jenkins) становятся предсказуемыми. Вы можете безопасно читать и модифицировать ваши IaC-конфиги "на лету".
#devops #linux #yaml #yq #automation #cicd #скрипты #гайд
Боль: Вам нужно в CI/CD-скрипте "вытащить" версию image: из docker-compose.yml или kubernetes-deployment.yml.
Реакция админа: cat docker-compose.yml | grep "image:" | awk -F': ' '{print $2}' (Это "хрупкий" скрипт. Он сломается от одного лишнего пробела или комментария).
Реакция архитектора: yq '.services.my-app.image' docker-compose.yml
yq — это jq (для JSON), но для YAML. Это "швейцарский нож" для парсинга *.yml файлов в bash.
Почему это киллер-фича:
* Надежность: Он понимает структуру YAML. Ему плевать на пробелы и комментарии.
* Чтение: yq '.spec.replicas' deployment.yml
* Запись: yq -i '.spec.replicas = 3' deployment.yml (Изменить файл "на лету"!)
* Merge: yq eval-all '. as $item ireduce ({}; . * $item)' file1.yml file2.yml (Склеить два YAML-файла).
Взгляд архитектора: Это надежная автоматизация (Reliable Automation). Ваши bash-скрипты в CI/CD (GitLab, Jenkins) становятся предсказуемыми. Вы можете безопасно читать и модифицировать ваши IaC-конфиги "на лету".
#devops #linux #yaml #yq #automation #cicd #скрипты #гайд
❤2🔥2
🛡️ Фишинг: Почему "тренировка" — это полдела, а "Zero Trust" — это всё
Боль: 90% всех кибератак начинаются с одного: фишинг. Админ "тренирует" пользователей не нажимать на ссылки. Архитектор исходит из того, что пользователь уже нажал на ссылку.
Обучение пользователей (Layer 😍 — это наш первый, но самый "хрупкий" рубеж обороны.
1. Обучаем (Ресурсы): Вот подборка топ-ресурсов, которые помогут вам и вашим пользователям научиться распознавать угрозы:
KnowBe4 (Лидеры в Security Awareness)
https://www.knowbe4.com/phishing
IT Governance UK (5 способов детекта)
https://www.itgovernance.co.uk/blog/5-ways-to-detect-a-phishing-email
CheapSSLSecurity (10 примеров)
https://cheapsslsecurity.com/blog/10-phishing-email-examples-you-need-to-see/
Google Phishing Quiz (Проверь себя)
https://phishingquiz.withgoogle.com/
2. Строим "бетонную комнату" (Взгляд архитектора): Наша настоящая работа — минимизировать "взрывную волну" после клика. Хакер, получив Initial Access, должен "приземлиться" в изоляции.
Именно поэтому мы внедряем:
* LAPS (чтобы он не украл локального админа).
* AppLocker (чтобы он не запустил свой .exe из Downloads).
* MFA (чтобы он не использовал украденный пароль).
* Admin Tier Model (чтобы он не "прыгнул" на DC).
#security #phishing #cybersecurity #zerotrust #гайд #architect
Боль: 90% всех кибератак начинаются с одного: фишинг. Админ "тренирует" пользователей не нажимать на ссылки. Архитектор исходит из того, что пользователь уже нажал на ссылку.
Обучение пользователей (Layer 😍 — это наш первый, но самый "хрупкий" рубеж обороны.
1. Обучаем (Ресурсы): Вот подборка топ-ресурсов, которые помогут вам и вашим пользователям научиться распознавать угрозы:
KnowBe4 (Лидеры в Security Awareness)
https://www.knowbe4.com/phishing
IT Governance UK (5 способов детекта)
https://www.itgovernance.co.uk/blog/5-ways-to-detect-a-phishing-email
CheapSSLSecurity (10 примеров)
https://cheapsslsecurity.com/blog/10-phishing-email-examples-you-need-to-see/
Google Phishing Quiz (Проверь себя)
https://phishingquiz.withgoogle.com/
2. Строим "бетонную комнату" (Взгляд архитектора): Наша настоящая работа — минимизировать "взрывную волну" после клика. Хакер, получив Initial Access, должен "приземлиться" в изоляции.
Именно поэтому мы внедряем:
* LAPS (чтобы он не украл локального админа).
* AppLocker (чтобы он не запустил свой .exe из Downloads).
* MFA (чтобы он не использовал украденный пароль).
* Admin Tier Model (чтобы он не "прыгнул" на DC).
#security #phishing #cybersecurity #zerotrust #гайд #architect
☣️ Windows: Скрипт-аудит "Кто может сбросить пароль Domain Admin?"
Боль: Вы думаете, что только Domain Admins могут менять пароли. Но в AD есть "темные" права, как GenericAll, WriteDacl или User-Force-Change-Password.
Проблема: Учетка HelpDesk (которую взломали) может иметь право сбросить пароль SQL-Admin, а тот, в свою очередь, — пароль Domain Admin. Это "теневые" админы (Shadow Admins).
Этот PowerShell-скрипт (на модуле DSInternals) — ваш аудитор. Он покажет всех, кто имеет "опасные" права на ваших Domain Admins.
Код скрипта:
Взгляд архитектора: Это — аудит путей атаки (Attack Paths). Вы должны знать каждую учетку, которая может сбросить пароль DA.
#windows #powershell #security #activedirectory #audit #скрипты #cybersecurity
Боль: Вы думаете, что только Domain Admins могут менять пароли. Но в AD есть "темные" права, как GenericAll, WriteDacl или User-Force-Change-Password.
Проблема: Учетка HelpDesk (которую взломали) может иметь право сбросить пароль SQL-Admin, а тот, в свою очередь, — пароль Domain Admin. Это "теневые" админы (Shadow Admins).
Этот PowerShell-скрипт (на модуле DSInternals) — ваш аудитор. Он покажет всех, кто имеет "опасные" права на ваших Domain Admins.
Код скрипта:
# 1. Установка модуля (один раз)
# Install-Module DSInternals -Scope CurrentUser
Import-Module DSInternals
Write-Host "--- Начинаю аудит 'опасных' ACL на Admin-группах ---" -ForegroundColor Cyan
# 2. Список "целей" (кого проверяем)
$CriticalGroups = @(
"Domain Admins",
"Enterprise Admins",
"Administrators",
"Schema Admins"
)
# 3. Список "опасных" прав
$DangerousRights = @(
'GenericAll',
'WriteDacl',
'WriteOwner',
'Self',
'WriteProperty',
'GenericWrite',
'User-Force-Change-Password'
)
$Report = foreach ($Group in $CriticalGroups) {
Get-ADACL -Identity $Group | Where-Object {
($_.ActiveDirectoryRights -in $DangerousRights) -and
($_.IdentityReference -notin @("NT AUTHORITY\SYSTEM", "BUILTIN\Administrators", "CORP\Domain Admins", "CORP\Enterprise Admins")) # Исключаем "ожидаемых"
}
}
if ($Report) {
Write-Host "`n[!!!] ОБНАРУЖЕНЫ 'ТЕНЕВЫЕ' АДМИНЫ:" -ForegroundColor Red
$Report | Format-Table ObjectDN, IdentityReference, ActiveDirectoryRights
} else {
Write-Host "`n[OK] 'Лишних' прав на критических группах не найдено." -ForegroundColor Green
}
Взгляд архитектора: Это — аудит путей атаки (Attack Paths). Вы должны знать каждую учетку, которая может сбросить пароль DA.
#windows #powershell #security #activedirectory #audit #скрипты #cybersecurity
👍1
🔒 Linux: Скрипт-аудит "неизменяемых" (immutable) файлов
Боль: Команда chattr +i (immutable) — это и "оружие", и "щит".
Хакеры используют ее, чтобы "зацементировать" свой rootkit (его не может удалить даже root).
Админы используют ее, чтобы защитить /etc/hosts или sshd_config от случайных изменений.
Проблема: Как найти все "неизменяемые" файлы в системе?
Реакция админа: "Надеюсь, их нет".
Реакция архитектора: "Я запущу аудит".
Этот Bash-скрипт использует lsattr для рекурсивного сканирования системы.
Код скрипта:
Взгляд архитектора: Это — аудит целостности (Integrity Audit). Вы должны знать о каждом файле, который "заморожен". Если вы видите ----i- на /tmp/x.sh — у вас огромные проблемы. Если на sshd_config — это ваша (или чужая) работа.
#linux #bash #security #audit #forensics #скрипты #гайд
Боль: Команда chattr +i (immutable) — это и "оружие", и "щит".
Хакеры используют ее, чтобы "зацементировать" свой rootkit (его не может удалить даже root).
Админы используют ее, чтобы защитить /etc/hosts или sshd_config от случайных изменений.
Проблема: Как найти все "неизменяемые" файлы в системе?
Реакция админа: "Надеюсь, их нет".
Реакция архитектора: "Я запущу аудит".
Этот Bash-скрипт использует lsattr для рекурсивного сканирования системы.
Код скрипта:
#!/bin/bash
# --- Поиск 'immutable' файлов (атрибут 'i') ---
echo "--- Начинаю поиск 'неизменяемых' файлов (chattr +i)... ---"
echo "Это может занять много времени."
# -R: Рекурсивно
# /: Начиная с корня
# 2>/dev/null: Игнорируем ошибки (типа 'Permission denied' для /proc)
# grep '----i-': Ищем ТОЛЬКО файлы, где установлен 'i' (immutable)
lsattr -R / 2>/dev/null | grep '----i-'
echo "--- Поиск завершен ---"
Взгляд архитектора: Это — аудит целостности (Integrity Audit). Вы должны знать о каждом файле, который "заморожен". Если вы видите ----i- на /tmp/x.sh — у вас огромные проблемы. Если на sshd_config — это ваша (или чужая) работа.
#linux #bash #security #audit #forensics #скрипты #гайд
Windows (Storage): Убейте "Mapped Drives". Внедряем DFS Namespaces
Боль: У вас есть файловый сервер \\OLD-SRV. Вы купили новый, мощный \\NEW-SRV. Теперь вам нужно перенастроить GPO, скрипты и (самое страшное) переучить 500 пользователей, которые привыкли к "Диску Z:".
Решение: DFS Namespaces (DFSN) Это слой абстракции. Вы создаете виртуальное дерево папок, которое не зависит от физических имен серверов.
Как это выглядит для пользователя: \\Corp.local\Data\Docs
Как это выглядит для админа: \\Corp.local\Data\Docs -> ссылается на -> \\SRV-01\Share
Когда SRV-01 устареет, вы скопируете данные на SRV-02 и просто переключите ссылку в консоли DFS. Пользователи даже не заметят подмены.
Настройка (PowerShell):
Взгляд архитектора: Никогда не привязывайтесь к именам "железа". Абстракция — это ключ к миграции без простоев. DFSN позволяет вам менять бэкенд (серверы), не меняя фронтенд (пути доступа пользователей).
#windows #dfs #storage #sysadmin #powershell #architect #гайд
Боль: У вас есть файловый сервер \\OLD-SRV. Вы купили новый, мощный \\NEW-SRV. Теперь вам нужно перенастроить GPO, скрипты и (самое страшное) переучить 500 пользователей, которые привыкли к "Диску Z:".
Решение: DFS Namespaces (DFSN) Это слой абстракции. Вы создаете виртуальное дерево папок, которое не зависит от физических имен серверов.
Как это выглядит для пользователя: \\Corp.local\Data\Docs
Как это выглядит для админа: \\Corp.local\Data\Docs -> ссылается на -> \\SRV-01\Share
Когда SRV-01 устареет, вы скопируете данные на SRV-02 и просто переключите ссылку в консоли DFS. Пользователи даже не заметят подмены.
Настройка (PowerShell):
# 1. Устанавливаем роль
Install-WindowsFeature FS-DFS-Namespace, RSAT-DFS-Mgmt-Con
# 2. Создаем корень пространства имен (Namespace Root)
# \\Corp.local\Public
New-DfsnRoot -Path "\\Corp.local\Public" -TargetPath "\\FILE-SRV-01\PublicRoot" -Type DomainV2
# 3. Создаем папку (ссылку) внутри
# \\Corp.local\Public\Sales -> ведет на реальную шару
New-DfsnFolder -Path "\\Corp.local\Public\Sales" -TargetPath "\\FILE-SRV-01\SalesData"
Взгляд архитектора: Никогда не привязывайтесь к именам "железа". Абстракция — это ключ к миграции без простоев. DFSN позволяет вам менять бэкенд (серверы), не меняя фронтенд (пути доступа пользователей).
#windows #dfs #storage #sysadmin #powershell #architect #гайд
Linux (Storage): "Undo" для сервера. LVM Snapshots перед обновлением
Боль: Вы обновляете ядро или критически важную базу данных на Linux. Что-то пошло не так. Система не грузится.
Реакция админа: Восстанавливать из бэкапа (часы простоя).
Реакция архитектора: Сделать LVM Snapshot за 1 секунду до обновления и откатиться за 1 секунду в случае сбоя.
LVM (Logical Volume Manager) — это стандарт де-факто в Linux, но многие используют его только для расширения дисков, забывая про снапшоты.
Сценарий: Опасное обновление
1. Создаем снапшот: Мы выделяем место (например, 1GB) под изменения.
Теперь состояние системы "заморожено".
2. Делаем опасное действие: apt upgrade, rm -rf /etc/nginx, ломаем всё.
3. Откат (Merge): Если всё сломалось:
После перезагрузки сервер будет в ТОМ ЖЕ состоянии, что и до снапшота.
4.Удаление (если всё прошло хорошо):
Взгляд архитектора: Это страховка. Снапшоты LVM — это не бэкап (они живут на том же диске), это инструмент управления рисками при изменениях.
#linux #lvm #storage #backup #sysadmin #команды #гайд
Боль: Вы обновляете ядро или критически важную базу данных на Linux. Что-то пошло не так. Система не грузится.
Реакция админа: Восстанавливать из бэкапа (часы простоя).
Реакция архитектора: Сделать LVM Snapshot за 1 секунду до обновления и откатиться за 1 секунду в случае сбоя.
LVM (Logical Volume Manager) — это стандарт де-факто в Linux, но многие используют его только для расширения дисков, забывая про снапшоты.
Сценарий: Опасное обновление
1. Создаем снапшот: Мы выделяем место (например, 1GB) под изменения.
# Создаем снапшот 'root_snap' для тома 'root'
lvcreate -L 1G -s -n root_snap /dev/vg0/root
Теперь состояние системы "заморожено".
2. Делаем опасное действие: apt upgrade, rm -rf /etc/nginx, ломаем всё.
3. Откат (Merge): Если всё сломалось:
# Говорим системе: "Верни всё как было при загрузке"
lvconvert --merge /dev/vg0/root_snap
reboot
После перезагрузки сервер будет в ТОМ ЖЕ состоянии, что и до снапшота.
4.Удаление (если всё прошло хорошо):
lvremove /dev/vg0/root_snap
Взгляд архитектора: Это страховка. Снапшоты LVM — это не бэкап (они живут на том же диске), это инструмент управления рисками при изменениях.
#linux #lvm #storage #backup #sysadmin #команды #гайд
❤2👍2
Инфраструктура (General): "Почему Kerberos не работает?" Фундамент NTP
Боль: Пользователи не могут войти в домен. Логи сыплют ошибками аутентификации. 2FA-коды "не подходят". Кластер баз данных развалился. Причина: Рассинхронизация времени (Time Drift).
В распределенных системах (Active Directory, Kerberos, Ceph, Kubernetes) время — это не просто "часы", это механизм защиты от повторного воспроизведения пакетов. Если разница между сервером и клиентом > 5 минут (для AD), всё ломается.
Классическая иерархия NTP (Network Time Protocol):
1. Stratum 0: Атомные часы, GPS.
2. Stratum 1: Серверы, подключенные к Stratum 0 напрямую.
3. PDC Emulator (в Windows AD): Должен синхронизироваться с надежным внешним источником (pool.ntp.org).
4. Все остальные DC: Синхронизируются с PDC.
5. Рядовые серверы/ПК: Синхронизируются с любым DC (автоматически).
Как настроить и проверить:
Windows (на PDC Emulator):
Linux (modern way - Chrony):
Взгляд архитектора: Настройка NTP — это нулевой шаг при развертывании любой инфраструктуры. "Вроде бы правильное" время не подходит. Оно должно быть синхронным.
#networking #ntp #time #windows #linux #sysadmin #troubleshooting
Боль: Пользователи не могут войти в домен. Логи сыплют ошибками аутентификации. 2FA-коды "не подходят". Кластер баз данных развалился. Причина: Рассинхронизация времени (Time Drift).
В распределенных системах (Active Directory, Kerberos, Ceph, Kubernetes) время — это не просто "часы", это механизм защиты от повторного воспроизведения пакетов. Если разница между сервером и клиентом > 5 минут (для AD), всё ломается.
Классическая иерархия NTP (Network Time Protocol):
1. Stratum 0: Атомные часы, GPS.
2. Stratum 1: Серверы, подключенные к Stratum 0 напрямую.
3. PDC Emulator (в Windows AD): Должен синхронизироваться с надежным внешним источником (pool.ntp.org).
4. Все остальные DC: Синхронизируются с PDC.
5. Рядовые серверы/ПК: Синхронизируются с любым DC (автоматически).
Как настроить и проверить:
Windows (на PDC Emulator):
# Указать внешний источник
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org" /syncfromflags:manual /reliable:YES /update
# Проверить статус
w32tm /query /status
Linux (modern way - Chrony):
# Показать источники и рассинхрон
chronyc sources -v
chronyc tracking
Взгляд архитектора: Настройка NTP — это нулевой шаг при развертывании любой инфраструктуры. "Вроде бы правильное" время не подходит. Оно должно быть синхронным.
#networking #ntp #time #windows #linux #sysadmin #troubleshooting
Security (Infrastructure): Смерть authorized_keys. Переходим на SSH-сертификаты
Боль: У вас 100 серверов и 10 админов. Вы копируете их публичные ключи (id_rsa.pub) в файл ~/.ssh/authorized_keys на каждый сервер.
Проблема 1: Админ уволился. Нужно удалить его ключ со 100 серверов.
Проблема 2: Админ потерял ноутбук. Его ключ скомпрометирован навсегда.
Решение: SSH Certificate Authority (CA) Netflix, Facebook и Uber не используют статические ключи. Они используют сертификаты. Это встроенная функция OpenSSH, о которой мало кто знает.
Как это работает:
Вы создаете CA: Генерируете "мастер-ключ" (храните его в сейфе/Vault).
На серверах: В sshd_config прописываете одну строчку: "Доверяй всем ключам, подписанным этим CA". (Файл authorized_keys больше не нужен!).
Вход админа:
Админ кидает свой pub-ключ в ваш Vault (или подписывающий сервис).
Вы (или SSO) проверяете его личность.
Вы подписываете его ключ своим CA со сроком жизни 1 час.
Админ заходит на серверы.
Через час: Сертификат "протухает". Доступа нет.
Взгляд архитектора: Это переход от статического доступа к эфемероному. Вам больше не нужно "ротировать" ключи или чистить серверы. Доступ выдается Just-in-Time (JIT).
#security #ssh #linux #zerotrust #architect #vault #гайд
Боль: У вас 100 серверов и 10 админов. Вы копируете их публичные ключи (id_rsa.pub) в файл ~/.ssh/authorized_keys на каждый сервер.
Проблема 1: Админ уволился. Нужно удалить его ключ со 100 серверов.
Проблема 2: Админ потерял ноутбук. Его ключ скомпрометирован навсегда.
Решение: SSH Certificate Authority (CA) Netflix, Facebook и Uber не используют статические ключи. Они используют сертификаты. Это встроенная функция OpenSSH, о которой мало кто знает.
Как это работает:
Вы создаете CA: Генерируете "мастер-ключ" (храните его в сейфе/Vault).
На серверах: В sshd_config прописываете одну строчку: "Доверяй всем ключам, подписанным этим CA". (Файл authorized_keys больше не нужен!).
Вход админа:
Админ кидает свой pub-ключ в ваш Vault (или подписывающий сервис).
Вы (или SSO) проверяете его личность.
Вы подписываете его ключ своим CA со сроком жизни 1 час.
Админ заходит на серверы.
Через час: Сертификат "протухает". Доступа нет.
Взгляд архитектора: Это переход от статического доступа к эфемероному. Вам больше не нужно "ротировать" ключи или чистить серверы. Доступ выдается Just-in-Time (JIT).
#security #ssh #linux #zerotrust #architect #vault #гайд
Linux (Архитектура): Почему epoll устарел? Революция io_uring
Боль: Высоконагруженные базы данных (PostgreSQL, Redis) и веб-серверы тратят до 30% времени CPU просто на "общение" с ядром (System Calls). Старый механизм асинхронного ввода-вывода (epoll) требует постоянных переключений контекста.
Революция: io_uring Это новый интерфейс ядра Linux (появился в 5.1, стал стандартом сейчас), который меняет всё.
В чем суть (на пальцах):
epoll: Приложение: "Ядро, есть данные?" -> Ядро: "Нет" -> Приложение ждет -> Ядро: "Есть" -> Приложение: "Дай". (Куча системных вызовов).
io_uring: Приложение и Ядро создают два кольцевых буфера (Ring Buffers) в общей памяти.
Приложение кладет запрос в буфер "Submission".
Ядро забирает его, делает работу и кладет результат в буфер "Completion".
Ноль системных вызовов (Zero Syscall overhead).
Взгляд архитектора: Если вы видите, что ваш Nginx или MySQL после обновления ядра стали работать на 20-40% быстрее — это io_uring. Архитектор должен знать: для I/O-intensive задач (файловые хранилища, БД) выбор дистрибутива с новым ядром (5.10+) — это бесплатный прирост производительности.
#linux #kernel #performance #iouring #epoll #architect #highload
Боль: Высоконагруженные базы данных (PostgreSQL, Redis) и веб-серверы тратят до 30% времени CPU просто на "общение" с ядром (System Calls). Старый механизм асинхронного ввода-вывода (epoll) требует постоянных переключений контекста.
Революция: io_uring Это новый интерфейс ядра Linux (появился в 5.1, стал стандартом сейчас), который меняет всё.
В чем суть (на пальцах):
epoll: Приложение: "Ядро, есть данные?" -> Ядро: "Нет" -> Приложение ждет -> Ядро: "Есть" -> Приложение: "Дай". (Куча системных вызовов).
io_uring: Приложение и Ядро создают два кольцевых буфера (Ring Buffers) в общей памяти.
Приложение кладет запрос в буфер "Submission".
Ядро забирает его, делает работу и кладет результат в буфер "Completion".
Ноль системных вызовов (Zero Syscall overhead).
Взгляд архитектора: Если вы видите, что ваш Nginx или MySQL после обновления ядра стали работать на 20-40% быстрее — это io_uring. Архитектор должен знать: для I/O-intensive задач (файловые хранилища, БД) выбор дистрибутива с новым ядром (5.10+) — это бесплатный прирост производительности.
#linux #kernel #performance #iouring #epoll #architect #highload
❤4
🛠️ Security: "Defender's Toolkit". 4 инструмента для анализа фишинга
Ручной разбор заголовков — это база. Но архитектор безопасности не работает в вакууме. Он использует внешнюю разведку (Threat Intelligence) и автоматизацию, чтобы подтвердить свои гипотезы.
Вот 4 инструмента, которые должны быть в закладках у каждого, кто защищает почту:
MXToolbox (https://mxtoolbox.com)
Зачем: "Аудит инфраструктуры отправителя".
Как использовать: Проверьте IP отправителя в черных списках (Blacklists). Проверьте его SPF, DKIM и DMARC записи. Если у "банка" не настроен DMARC — это красный флаг.
PhishTank (https://phishtank.com)
Зачем: "Коллективный разум".
Как использовать: Это открытая база фишинговых ссылок. Прежде чем открывать подозрительный URL в песочнице, проверьте, не знает ли о нем уже сообщество.
The Spamhaus Project (https://www.spamhaus.org)
Зачем: "Репутация IP и Доменов".
Как использовать: Это золотой стандарт IP-репутации. Если IP отправителя есть в SBL (Spamhaus Block List) — блокируйте не глядя.
eml_analyzer (https://github.com/ninoseki/eml_analyzer)
Зачем: "Локальный парсинг".
Как использовать: Утилита на Python для командной строки. Она "разбирает" .eml файл на части: извлекает вложения, ссылки, структуру HTML и заголовки. Идеально для автоматизации анализа без открытия письма в почтовом клиенте.
Взгляд архитектора: Не полагайтесь только на интуицию ("выглядит подозрительно"). Опирайтесь на факты: репутацию IP, валидность DNS-записей и структуру файла.
Happy Hunting! 🏹
#security #phishing #forensics #tools #blueteam #musthave
Ручной разбор заголовков — это база. Но архитектор безопасности не работает в вакууме. Он использует внешнюю разведку (Threat Intelligence) и автоматизацию, чтобы подтвердить свои гипотезы.
Вот 4 инструмента, которые должны быть в закладках у каждого, кто защищает почту:
MXToolbox (https://mxtoolbox.com)
Зачем: "Аудит инфраструктуры отправителя".
Как использовать: Проверьте IP отправителя в черных списках (Blacklists). Проверьте его SPF, DKIM и DMARC записи. Если у "банка" не настроен DMARC — это красный флаг.
PhishTank (https://phishtank.com)
Зачем: "Коллективный разум".
Как использовать: Это открытая база фишинговых ссылок. Прежде чем открывать подозрительный URL в песочнице, проверьте, не знает ли о нем уже сообщество.
The Spamhaus Project (https://www.spamhaus.org)
Зачем: "Репутация IP и Доменов".
Как использовать: Это золотой стандарт IP-репутации. Если IP отправителя есть в SBL (Spamhaus Block List) — блокируйте не глядя.
eml_analyzer (https://github.com/ninoseki/eml_analyzer)
Зачем: "Локальный парсинг".
Как использовать: Утилита на Python для командной строки. Она "разбирает" .eml файл на части: извлекает вложения, ссылки, структуру HTML и заголовки. Идеально для автоматизации анализа без открытия письма в почтовом клиенте.
Взгляд архитектора: Не полагайтесь только на интуицию ("выглядит подозрительно"). Опирайтесь на факты: репутацию IP, валидность DNS-записей и структуру файла.
Happy Hunting! 🏹
#security #phishing #forensics #tools #blueteam #musthave
🔥2
⚡ Linux: nice — для слабаков. Управляем Real-Time приоритетами с chrt
Боль: У вас есть критически важный процесс (например, VoIP-шлюз, база данных или процесс сбора метрик), который "заикается" или тормозит, когда сервер нагружен архивацией логов.
Реакция админа: renice -n -20 <PID>. (Это не поможет, если CPU загружен на 100%. Планировщик всё равно будет "честно" делить время).
Реакция архитектора: Использовать Real-Time Scheduler (SCHED_FIFO или SCHED_RR).
chrt — это утилита для управления планировщиком процессов.
Как это работает: Обычные процессы работают в классе SCHED_OTHER. Real-Time процессы (RT) имеют абсолютный приоритет. Если RT-процесс хочет CPU, ядро останавливает всё остальное, чтобы дать ему ресурсы.
Команды:
1. Посмотреть текущую политику процесса:
2. Сделать процесс "Бессмертным" (SCHED_FIFO): Внимание! Если этот процесс "зависнет" и съест 100% CPU, ваша система намертво зависнет.
Взгляд архитектора: Это инструмент для Low Latency систем. Но с великой силой приходит великая ответственность. Архитектор использует chrt только тогда, когда понимает риски и изолирует такие процессы (например, через isolcpus в параметрах ядра).
#linux #performance #kernel #realtime #sre #chrt #гайд
Боль: У вас есть критически важный процесс (например, VoIP-шлюз, база данных или процесс сбора метрик), который "заикается" или тормозит, когда сервер нагружен архивацией логов.
Реакция админа: renice -n -20 <PID>. (Это не поможет, если CPU загружен на 100%. Планировщик всё равно будет "честно" делить время).
Реакция архитектора: Использовать Real-Time Scheduler (SCHED_FIFO или SCHED_RR).
chrt — это утилита для управления планировщиком процессов.
Как это работает: Обычные процессы работают в классе SCHED_OTHER. Real-Time процессы (RT) имеют абсолютный приоритет. Если RT-процесс хочет CPU, ядро останавливает всё остальное, чтобы дать ему ресурсы.
Команды:
1. Посмотреть текущую политику процесса:
chrt -p 1234
# pid 1234's current scheduling policy: SCHED_OTHER
# pid 1234's current scheduling priority: 0
2. Сделать процесс "Бессмертным" (SCHED_FIFO): Внимание! Если этот процесс "зависнет" и съест 100% CPU, ваша система намертво зависнет.
# -f: FIFO (First In, First Out)
# -p 10: Приоритет 10 (от 1 до 99)
sudo chrt -f -p 10 1234
Взгляд архитектора: Это инструмент для Low Latency систем. Но с великой силой приходит великая ответственность. Архитектор использует chrt только тогда, когда понимает риски и изолирует такие процессы (например, через isolcpus в параметрах ядра).
#linux #performance #kernel #realtime #sre #chrt #гайд
🔒 Windows: WinRM over HTTPS. Почему TrustedHosts="*" — это дыра
Боль: Вы управляете серверами через PowerShell Remoting (Enter-PSSession). Серверы не в домене (DMZ) или в другой рабочей группе.
Реакция админа: Set-Item WSMan:\localhost\Client\TrustedHosts -Value *. Перевод: "Я доверяю любому серверу, к которому подключаюсь. Если хакер перехватит DNS и подставит свой сервер, я отдам ему свои пароли".
Реакция архитектора: Настроить WinRM over HTTPS.
Это не про шифрование (WinRM и так шифруется по HTTP). Это про аутентификацию сервера. Вы должны быть уверены, что подключаетесь именно к SRV-01.
Настройка (на целевом сервере):
1. Создаем сертификат (если нет PKI):
2. Создаем HTTPS-листенер:
3. Открываем порт 5986:
Теперь подключаемся:
Если сертификат самоподписанный, на клиенте нужно один раз добавить его в доверенные или использовать -SkipCACheck (для тестов).
Взгляд архитектора: TrustedHosts — это костыль. HTTPS — это стандарт безопасности. В недоверенных сетях (DMZ, Cloud) вы обязаны проверять подлинность хоста.
#windows #powershell #security #winrm #https #sysadmin #гайд
Боль: Вы управляете серверами через PowerShell Remoting (Enter-PSSession). Серверы не в домене (DMZ) или в другой рабочей группе.
Реакция админа: Set-Item WSMan:\localhost\Client\TrustedHosts -Value *. Перевод: "Я доверяю любому серверу, к которому подключаюсь. Если хакер перехватит DNS и подставит свой сервер, я отдам ему свои пароли".
Реакция архитектора: Настроить WinRM over HTTPS.
Это не про шифрование (WinRM и так шифруется по HTTP). Это про аутентификацию сервера. Вы должны быть уверены, что подключаетесь именно к SRV-01.
Настройка (на целевом сервере):
1. Создаем сертификат (если нет PKI):
$Cert = New-SelfSignedCertificate -DnsName "srv-01.dmz.local" -CertStoreLocation Cert:\LocalMachine\My
2. Создаем HTTPS-листенер:
New-Item -Path WSMan:\localhost\Listener -Transport HTTPS -Address * -CertificateThumbprint $Cert.Thumbprint -Force
3. Открываем порт 5986:
New-NetFirewallRule -DisplayName "WinRM HTTPS" -Direction Inbound -LocalPort 5986 -Protocol TCP -Action Allow
Теперь подключаемся:
Enter-PSSession -ComputerName srv-01.dmz.local -UseSSL
Если сертификат самоподписанный, на клиенте нужно один раз добавить его в доверенные или использовать -SkipCACheck (для тестов).
Взгляд архитектора: TrustedHosts — это костыль. HTTPS — это стандарт безопасности. В недоверенных сетях (DMZ, Cloud) вы обязаны проверять подлинность хоста.
#windows #powershell #security #winrm #https #sysadmin #гайд
🗄️ Storage: Почему локальные диски умерли. Встречаем S3 (MinIO)
Боль: Ваше приложение (на PHP, Python, Go) позволяет пользователям загружать аватарки.
* Вариант 1: Сохранять в папку /var/www/uploads. (Проблема: Как масштабировать на 2 сервера? Нужен NFS или rsync — это медленно и сложно).
* Вариант 2: Сохранять в базу данных (BLOB). (Проблема: БД раздувается, бэкапы становятся огромными).
Решение: Object Storage (S3 API). Архитектор отделяет хранение (Storage) от вычислений (Compute).
MinIO — это самый популярный self-hosted S3-совместимый сервер.
Почему это круто:
1. Стандарт: S3 API поддерживают все (Veeam, Terraform, все языки программирования).
2. Масштабируемость: MinIO легко собирается в кластер.
3. Простота: Одно приложение для всех файлов.
Запуск (Docker):
Теперь ваше приложение просто шлет PUT запрос на http://minio:9000. И ему всё равно, на каком сервере оно запущено.
Взгляд архитектора: Использование локальной файловой системы для данных приложения — это антипаттерн в современном IT (12-Factor App). Переход на S3 API делает ваши приложения Cloud Native (готовыми к облаку) сразу.
#devops #storage #s3 #minio #docker #architect #гайд
Боль: Ваше приложение (на PHP, Python, Go) позволяет пользователям загружать аватарки.
* Вариант 1: Сохранять в папку /var/www/uploads. (Проблема: Как масштабировать на 2 сервера? Нужен NFS или rsync — это медленно и сложно).
* Вариант 2: Сохранять в базу данных (BLOB). (Проблема: БД раздувается, бэкапы становятся огромными).
Решение: Object Storage (S3 API). Архитектор отделяет хранение (Storage) от вычислений (Compute).
MinIO — это самый популярный self-hosted S3-совместимый сервер.
Почему это круто:
1. Стандарт: S3 API поддерживают все (Veeam, Terraform, все языки программирования).
2. Масштабируемость: MinIO легко собирается в кластер.
3. Простота: Одно приложение для всех файлов.
Запуск (Docker):
docker run -d \
-p 9000:9000 -p 9001:9001 \
--name minio \
-v /mnt/data:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=SuperSecretPassword" \
minio/minio server /data --console-address ":9001"
Теперь ваше приложение просто шлет PUT запрос на http://minio:9000. И ему всё равно, на каком сервере оно запущено.
Взгляд архитектора: Использование локальной файловой системы для данных приложения — это антипаттерн в современном IT (12-Factor App). Переход на S3 API делает ваши приложения Cloud Native (готовыми к облаку) сразу.
#devops #storage #s3 #minio #docker #architect #гайд
❤2
🎂 40 лет Windows: От плиточного интерфейса до AI-помощников
Ровно 40 лет назад, 20 ноября 1985 года, Microsoft выпустила Windows 1.0.
Сейчас сложно представить, но тогда идея графического интерфейса на IBM PC была революцией. Это была не ОС, а графическая надстройка над MS-DOS за $99.
Интересные факты о "прабабушке":
Никакого перекрытия: Окна не могли накладываться друг на друга. Только "плитка" (Tiled windows).
Железо: Требовалось 256 КБ памяти и два дисковода. На 512 КБ система уже "летала" (по меркам того времени), хотя критики сравнивали её скорость с "патокой в Арктике".
Наследие: Paintbrush (предок Paint), Notepad, Calculator, Clipboard — эти приложения с нами уже 40 лет.
Рынок встретил её прохладно, но Билл Гейтс не сдался. Через пару лет вышли Windows 2.0 и легендарная 3.0, которые сделали GUI стандартом.
Взгляд архитектора: История Windows 1.0 учит нас главному принципу IT: Инновации редко бывают идеальными с первого раза. Важно не то, как продукт стартовал, а то, как он развивался. Windows 1.0 была "сырой", но она заложила фундамент экосистемы, в которой мы работаем сегодня.
#windows #history #microsoft #anniversary #it #tech
Ровно 40 лет назад, 20 ноября 1985 года, Microsoft выпустила Windows 1.0.
Сейчас сложно представить, но тогда идея графического интерфейса на IBM PC была революцией. Это была не ОС, а графическая надстройка над MS-DOS за $99.
Интересные факты о "прабабушке":
Никакого перекрытия: Окна не могли накладываться друг на друга. Только "плитка" (Tiled windows).
Железо: Требовалось 256 КБ памяти и два дисковода. На 512 КБ система уже "летала" (по меркам того времени), хотя критики сравнивали её скорость с "патокой в Арктике".
Наследие: Paintbrush (предок Paint), Notepad, Calculator, Clipboard — эти приложения с нами уже 40 лет.
Рынок встретил её прохладно, но Билл Гейтс не сдался. Через пару лет вышли Windows 2.0 и легендарная 3.0, которые сделали GUI стандартом.
Взгляд архитектора: История Windows 1.0 учит нас главному принципу IT: Инновации редко бывают идеальными с первого раза. Важно не то, как продукт стартовал, а то, как он развивался. Windows 1.0 была "сырой", но она заложила фундамент экосистемы, в которой мы работаем сегодня.
#windows #history #microsoft #anniversary #it #tech
🔥2
🐧 Linux: LD_PRELOAD — Руткит для бедных (и для админов)
Знаете ли вы, что можно перехватить и подменить любую функцию в Linux-программе, не перекомпилируя её?
Это делает переменная окружения LD_PRELOAD. Она говорит динамическому линковщику: "Сначала загрузи мою библиотеку, а потом всё остальное".
Как это используют:
Хакеры (Userland Rootkits): Создают библиотеку, которая переопределяет функцию readdir(). Когда админ пишет ls, команда вызывает подмененную функцию, которая показывает все файлы, кроме вредоносных.
Админы (Отладка и Фиксы): Можно подменить time(), чтобы протестировать поведение программы в "будущем", или перехватить connect(), чтобы перенаправить трафик без изменения конфигов.
Как обнаружить (Аудит): Проверьте переменные окружения запущенных процессов.
Также проверьте файл /etc/ld.so.preload. Если там есть незнакомые библиотеки — у вас проблемы.
Взгляд архитектора: Механизмы, созданные для гибкости (LD_PRELOAD), часто становятся векторами атак. Архитектор должен знать "темную сторону" своих инструментов.
#linux #security #rootkit #ldpreload #hack #sysadmin #гайд
Знаете ли вы, что можно перехватить и подменить любую функцию в Linux-программе, не перекомпилируя её?
Это делает переменная окружения LD_PRELOAD. Она говорит динамическому линковщику: "Сначала загрузи мою библиотеку, а потом всё остальное".
Как это используют:
Хакеры (Userland Rootkits): Создают библиотеку, которая переопределяет функцию readdir(). Когда админ пишет ls, команда вызывает подмененную функцию, которая показывает все файлы, кроме вредоносных.
Админы (Отладка и Фиксы): Можно подменить time(), чтобы протестировать поведение программы в "будущем", или перехватить connect(), чтобы перенаправить трафик без изменения конфигов.
Как обнаружить (Аудит): Проверьте переменные окружения запущенных процессов.
# Ищем процессы с установленным LD_PRELOAD
sudo grep -a "LD_PRELOAD" /proc/*/environ
Также проверьте файл /etc/ld.so.preload. Если там есть незнакомые библиотеки — у вас проблемы.
Взгляд архитектора: Механизмы, созданные для гибкости (LD_PRELOAD), часто становятся векторами атак. Архитектор должен знать "темную сторону" своих инструментов.
#linux #security #rootkit #ldpreload #hack #sysadmin #гайд
🌐 Инструмент: gping — Пинг с графиком в терминале
Обычный ping скучен. Вы видите только цифры и не чувствуете "пульс" сети.
gping — это тот же пинг, но с живым ASCII-графиком прямо в консоли.
Почему это круто:
* Вы визуально видите "спайки" (скачки задержки).
* Вы видите джиттер (разброс).
* Можно пинговать несколько хостов одновременно и сравнивать графики.
Установка:
Использование:
Взгляд архитектора: Визуализация — ключ к быстрому пониманию проблемы. Когда вы видите график, ваш мозг находит аномалии быстрее, чем когда вы читаете колонки цифр.
#tools #cli #networking #ping #gping #devops #musthave
Обычный ping скучен. Вы видите только цифры и не чувствуете "пульс" сети.
gping — это тот же пинг, но с живым ASCII-графиком прямо в консоли.
Почему это круто:
* Вы визуально видите "спайки" (скачки задержки).
* Вы видите джиттер (разброс).
* Можно пинговать несколько хостов одновременно и сравнивать графики.
Установка:
# Linux (через snap или пакетный менеджер)
sudo snap install gping
# macOS
brew install gping
Использование:
# Пингуем Google и Яндекс одновременно
gping google.com ya.ru
Взгляд архитектора: Визуализация — ключ к быстрому пониманию проблемы. Когда вы видите график, ваш мозг находит аномалии быстрее, чем когда вы читаете колонки цифр.
#tools #cli #networking #ping #gping #devops #musthave
🎲 Пятничная пасхалка: "Режим Бога" в Windows
Хотите получить доступ ко всем настройкам Windows в одной папке? Старый трюк, который работает даже в Windows 11.
God Mode (Режим Бога) — это специальная папка, которая собирает ссылки на все элементы Панели управления и Администрирования.
Как сделать:
1. Создайте новую папку на рабочем столе.
2. Назовите её (скопируйте целиком):
3. Иконка папки изменится.
Откройте её — и у вас под рукой более 200 инструментов настройки, от "Учетных записей" до "Дефрагментации", в виде удобного списка с поиском.
Взгляд архитектора: Это не магия, а использование CLSID (идентификаторов классов) Windows. Знание того, как система устроена под капотом (реестр, GUID, COM-объекты), позволяет делать вещи, недоступные через обычный GUI.
#windows #tricks #godmode #lifehack #sysadmin #friday
Хотите получить доступ ко всем настройкам Windows в одной папке? Старый трюк, который работает даже в Windows 11.
God Mode (Режим Бога) — это специальная папка, которая собирает ссылки на все элементы Панели управления и Администрирования.
Как сделать:
1. Создайте новую папку на рабочем столе.
2. Назовите её (скопируйте целиком):
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
3. Иконка папки изменится.
Откройте её — и у вас под рукой более 200 инструментов настройки, от "Учетных записей" до "Дефрагментации", в виде удобного списка с поиском.
Взгляд архитектора: Это не магия, а использование CLSID (идентификаторов классов) Windows. Знание того, как система устроена под капотом (реестр, GUID, COM-объекты), позволяет делать вещи, недоступные через обычный GUI.
#windows #tricks #godmode #lifehack #sysadmin #friday
👍2
🦀 Linux: nethogs — хорошо, а bandwhich — красивее. Сетевой мониторинг на Rust
Мы уже говорили про nethogs для поиска процессов, забивающих канал. Но прогресс не стоит на месте.
Встречайте bandwhich (ранее what). Это современный, написанный на Rust инструмент, который показывает использование сети по процессам, соединениям и удаленным IP в реальном времени.
Почему он крут:
Детализация: Он показывает не только "какой процесс", но и "куда" (DNS-имя или IP) он стучится.
UI: Адаптивный и очень наглядный интерфейс в терминале.
Rust: Работает быстро и безопасно.
Установка:
Запуск:
Взгляд архитектора: Инструменты должны эволюционировать. Использование современного софта на Rust снижает накладные расходы на мониторинг. bandwhich — это отличный пример инструмента, который дает максимум контекста (Процесс -> IP -> Скорость) за одну секунду взгляда на экран.
#linux #rust #networking #monitoring #bandwhich #tools #гайд
Мы уже говорили про nethogs для поиска процессов, забивающих канал. Но прогресс не стоит на месте.
Встречайте bandwhich (ранее what). Это современный, написанный на Rust инструмент, который показывает использование сети по процессам, соединениям и удаленным IP в реальном времени.
Почему он крут:
Детализация: Он показывает не только "какой процесс", но и "куда" (DNS-имя или IP) он стучится.
UI: Адаптивный и очень наглядный интерфейс в терминале.
Rust: Работает быстро и безопасно.
Установка:
# Arch Linux
pacman -S bandwhich
# Ubuntu/Debian (через snap, если нет в репо)
sudo snap install bandwhich
# Или через Cargo (если вы уже осваиваете Rust)
cargo install bandwhich
Запуск:
sudo bandwhich
Взгляд архитектора: Инструменты должны эволюционировать. Использование современного софта на Rust снижает накладные расходы на мониторинг. bandwhich — это отличный пример инструмента, который дает максимум контекста (Процесс -> IP -> Скорость) за одну секунду взгляда на экран.
#linux #rust #networking #monitoring #bandwhich #tools #гайд
❤2