Путь Архитектора: 3 ступени от "Исполнителя" к "Стратегу"
Воскресенье — идеальное время, чтобы посмотреть на свою карьеру "сверху". Что отличает "Админа" от "Архитектора"? Это не знание 1000 команд, а способ мышления.
Уровень 1: Исполнитель (Реактивное мышление)
Что делает: Решает проблемы по мере их поступления. "Упал сервер — я его поднял". "Закончилось место — я почистил".
Инструменты: rm, reboot, RDP.
Цель: Закрыть тикет.
Уровень 2: Инженер (Проактивное мышление)
Что делает: Автоматизирует рутину, чтобы проблемы не повторялись. "Написал PowerShell-скрипт для чистки логов". "Настроил LAPS, чтобы пароли были уникальны".
Инструменты: PowerShell, Bash, Ansible, Zabbix.
Цель: Снизить количество тикетов и повысить стабильность.
Уровень 3: Архитектор (Стратегическое мышление)
Что делает: Проектирует системы так, чтобы класс проблем не мог возникнуть в принципе. Он не просто автоматизирует, он задает вопросы "Зачем?".
Пример: Не "как нам бэкапить эту БД?", а "Почему эта БД — единая точка отказа? Не нужна ли нам Geo-репликация, и как это решение повлияет на бизнес-SLA?".
Инструменты: Принципы (IaC, Zero Trust, 12-Factor App), диаграммы, экономическое обоснование (TCO).
Цель: Обеспечить достижение бизнес-целей (рост, отказоустойчивость, безопасность) с помощью технологий.
Взгляд архитектора: "Admin Future" создан, чтобы помочь вам пройти путь с 1-го уровня на 3-й. Мы верим, что каждый админ может стать архитектором, если начнет задавать правильные вопросы.
#architect #career #devops #sre #стратегия #гайд
Воскресенье — идеальное время, чтобы посмотреть на свою карьеру "сверху". Что отличает "Админа" от "Архитектора"? Это не знание 1000 команд, а способ мышления.
Уровень 1: Исполнитель (Реактивное мышление)
Что делает: Решает проблемы по мере их поступления. "Упал сервер — я его поднял". "Закончилось место — я почистил".
Инструменты: rm, reboot, RDP.
Цель: Закрыть тикет.
Уровень 2: Инженер (Проактивное мышление)
Что делает: Автоматизирует рутину, чтобы проблемы не повторялись. "Написал PowerShell-скрипт для чистки логов". "Настроил LAPS, чтобы пароли были уникальны".
Инструменты: PowerShell, Bash, Ansible, Zabbix.
Цель: Снизить количество тикетов и повысить стабильность.
Уровень 3: Архитектор (Стратегическое мышление)
Что делает: Проектирует системы так, чтобы класс проблем не мог возникнуть в принципе. Он не просто автоматизирует, он задает вопросы "Зачем?".
Пример: Не "как нам бэкапить эту БД?", а "Почему эта БД — единая точка отказа? Не нужна ли нам Geo-репликация, и как это решение повлияет на бизнес-SLA?".
Инструменты: Принципы (IaC, Zero Trust, 12-Factor App), диаграммы, экономическое обоснование (TCO).
Цель: Обеспечить достижение бизнес-целей (рост, отказоустойчивость, безопасность) с помощью технологий.
Взгляд архитектора: "Admin Future" создан, чтобы помочь вам пройти путь с 1-го уровня на 3-й. Мы верим, что каждый админ может стать архитектором, если начнет задавать правильные вопросы.
#architect #career #devops #sre #стратегия #гайд
❤2
nmap: Сканер, который должен быть у каждого. Аудит сети глазами админа
Для многих nmap — это "хакерская" утилита. Для инженера — это скальпель для аудита сети. Он нужен, чтобы ответить на вопрос: "Что на самом деле происходит в моей сети?". Это касается и Windows, и Linux админов.
3 команды nmap, которые должен знать каждый:
1. Инвентаризация: "Кто живёт в моей подсети?" Выдайте новый IP-адрес вручную? А вы уверены, что он свободен? nmap найдет все "живые" хосты быстрее, чем ping.
Bash
Идеально, чтобы найти "левые" устройства, подключившиеся к сети.
2. Аудит портов: "Какие службы у меня открыты?" Вы "уверены", что отключили Telnet на всех серверах? Давайте проверим.
Bash
Вывод 23/tcp open telnet — это ваш critical alert.
3. Проверка файрвола: "Мои правила работают?" Это уровень архитектора. Как понять, файрвол дропает (DROP) пакет или отклоняет (REJECT)?
Bash
filtered: Файрвол "тихо" дропает пакет.
unfiltered: Порт доступен, но закрыт.
closed: Пакет дошел, но порт закрыт (вы получили RST в ответ).
Взгляд архитектора: nmap — это инструмент валидации. Вы не "надеетесь", что ваши GPO и iptables работают. Вы проверяете это, глядя на систему "снаружи", глазами злоумышленника.
#linux #windows #networking #security #nmap #audit #команды #гайд
Для многих nmap — это "хакерская" утилита. Для инженера — это скальпель для аудита сети. Он нужен, чтобы ответить на вопрос: "Что на самом деле происходит в моей сети?". Это касается и Windows, и Linux админов.
3 команды nmap, которые должен знать каждый:
1. Инвентаризация: "Кто живёт в моей подсети?" Выдайте новый IP-адрес вручную? А вы уверены, что он свободен? nmap найдет все "живые" хосты быстрее, чем ping.
Bash
# Быстрый "пинг-скан" всей подсети, без сканирования портов
nmap -sn 192.168.1.0/24
Идеально, чтобы найти "левые" устройства, подключившиеся к сети.
2. Аудит портов: "Какие службы у меня открыты?" Вы "уверены", что отключили Telnet на всех серверах? Давайте проверим.
Bash
# Сканируем ТОП-1000 портов на сервере и пытаемся определить версию службы
nmap -sV 192.168.1.10
Вывод 23/tcp open telnet — это ваш critical alert.
3. Проверка файрвола: "Мои правила работают?" Это уровень архитектора. Как понять, файрвол дропает (DROP) пакет или отклоняет (REJECT)?
Bash
# ACK-скан. Помогает понять логику работы файрвола
sudo nmap -sA -p 22,80,443 192.168.1.10
filtered: Файрвол "тихо" дропает пакет.
unfiltered: Порт доступен, но закрыт.
closed: Пакет дошел, но порт закрыт (вы получили RST в ответ).
Взгляд архитектора: nmap — это инструмент валидации. Вы не "надеетесь", что ваши GPO и iptables работают. Вы проверяете это, глядя на систему "снаружи", глазами злоумышленника.
#linux #windows #networking #security #nmap #audit #команды #гайд
👍3
Windows: "Кладбище" GPO. Наводим порядок в Active Directory
Судя по нашему опросу, Windows и AD — ядро нашей аудитории. И вот одна из самых частых "болей": со временем AD превращается в свалку из пустых, отключенных и не прилинкованных групповых политик (GPO).
Это замедляет вход в систему, усложняет аудит и создает хаос.
Этот PowerShell-скрипт — ваша "метла". Он найдет весь этот мусор за вас.
Что делает скрипт:
Получает все GPO в домене.
Находит пустые GPO (в которых нет настроек).
Находит отключенные GPO (которые не применяются).
Находит "сирот" (GPO, которые не прилинкованы ни к одному OU).
Код скрипта:
PowerShell
Взгляд архитектора: Гигиена Active Directory — это фундамент безопасности и производительности. Архитектор не допускает "цифрового мусора". Этот скрипт — ваш первый шаг к автоматизированному аудиту GPO, который должен выполняться по расписанию, а не когда "всё упало".
#windows #powershell #gpo #activedirectory #audit #скрипты #security
Судя по нашему опросу, Windows и AD — ядро нашей аудитории. И вот одна из самых частых "болей": со временем AD превращается в свалку из пустых, отключенных и не прилинкованных групповых политик (GPO).
Это замедляет вход в систему, усложняет аудит и создает хаос.
Этот PowerShell-скрипт — ваша "метла". Он найдет весь этот мусор за вас.
Что делает скрипт:
Получает все GPO в домене.
Находит пустые GPO (в которых нет настроек).
Находит отключенные GPO (которые не применяются).
Находит "сирот" (GPO, которые не прилинкованы ни к одному OU).
Код скрипта:
PowerShell
Import-Module GroupPolicy
Import-Module ActiveDirectory
Write-Host "--- Начинаю аудит GPO в домене... ---" -ForegroundColor Cyan
# 1. Получаем все GPO
$AllGpos = Get-GPO -All
# 2. Ищем пустые GPO (версии User и Computer = 0)
$EmptyGpos = $AllGpos | Where-Object { $_.User.Version -eq 0 -and $_.Computer.Version -eq 0 }
if ($EmptyGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ ПУСТЫЕ GPO (Empty):" -ForegroundColor Yellow
$EmptyGpos | Select-Object DisplayName, Owner
}
# 3. Ищем отключенные GPO
$DisabledGpos = $AllGpos | Where-Object { $_.GpoStatus -ne 'AllSettingsEnabled' }
if ($DisabledGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ ОТКЛЮЧЕННЫЕ GPO (Disabled):" -ForegroundColor Yellow
$DisabledGpos | Select-Object DisplayName, GpoStatus
}
# 4. Ищем GPO без линков (сироты)
$LinkedGpoGuids = (Get-ADOrganizationalUnit -Filter * | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$LinkedGpoGuids += (Get-ADDomain | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$LinkedGpoGuids += (Get-ADSite | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$UnlinkedGpos = $AllGpos | Where-Object { $_.Id -notin $LinkedGpoGuids }
if ($UnlinkedGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ НЕ ПРИЛИНКОВАННЫЕ GPO (Unlinked):" -ForegroundColor Yellow
$UnlinkedGpos | Select-Object DisplayName
}
Write-Host "`n--- Аудит завершен ---"
Взгляд архитектора: Гигиена Active Directory — это фундамент безопасности и производительности. Архитектор не допускает "цифрового мусора". Этот скрипт — ваш первый шаг к автоматизированному аудиту GPO, который должен выполняться по расписанию, а не когда "всё упало".
#windows #powershell #gpo #activedirectory #audit #скрипты #security
👍3🔥2
AD-Безопасность: "У вас zero-day до Domain Admin". Смотрим на свою сеть глазами хакера
Вы думаете, что ваша Active Directory защищена. Вы уверены, что у "Helpdesk" нет прав на контроллере домена.
Злоумышленник так не думает. Он не гадает. Он строит граф атаки.
BloodHound — это не просто "еще один сканер". Это самый мощный и страшный инструмент для аудита AD. Он использует теорию графов, чтобы найти кратчайший путь к правам Domain Admin от любого пользователя в сети.
Как это работает (и почему это страшно):
1. Сбор данных (SharpHound): На целевой машине запускается сборщик, который собирает метаданные: "Кто в какой группе?", "Кто где залогинен?", "Кто имеет права локального админа на каком сервере?".
2. Визуализация (BloodHound GUI): Вы загружаете эти данные и видите... всё.
Типичный путь атаки, который находит BloodHound:
(например)
Ваш Helpdesk-User (низкие права)...
...имеет права RDP на SRV-PRINT...
...на SRV-PRINT сейчас активна сессия SQL-Admin...
...SQL-Admin является локальным админом на WEB-SRV01...
...на WEB-SRV01 в планировщике висит скрипт, который запускается от Domain-Admin.
БИНГО. Путь: Helpdesk -> SRV-PRINT -> SQL-Admin -> WEB-SRV01 -> Domain Admin.
Злоумышленнику остается только пройти по этому пути, собирая учетные данные (Pass-the-Hash, Kerberoasting).
Взгляд архитектора: Вы не можете защитить то, что вы не видите. Архитектор не "надеется", что его модель прав доступа "чистая". Он верифицирует её.
Скачайте BloodHound (https://github.com/BloodHoundAD/BloodHound).
Запустите сборщик SharpHound.
Загрузите данные и найдите свой "кратчайший путь" к Domain Admin.
Это лучшее, что вы можете сделать для безопасности своего AD на этой неделе.
#security #windows #activedirectory #bloodhound #cybersecurity #pentest #architect
Вы думаете, что ваша Active Directory защищена. Вы уверены, что у "Helpdesk" нет прав на контроллере домена.
Злоумышленник так не думает. Он не гадает. Он строит граф атаки.
BloodHound — это не просто "еще один сканер". Это самый мощный и страшный инструмент для аудита AD. Он использует теорию графов, чтобы найти кратчайший путь к правам Domain Admin от любого пользователя в сети.
Как это работает (и почему это страшно):
1. Сбор данных (SharpHound): На целевой машине запускается сборщик, который собирает метаданные: "Кто в какой группе?", "Кто где залогинен?", "Кто имеет права локального админа на каком сервере?".
2. Визуализация (BloodHound GUI): Вы загружаете эти данные и видите... всё.
Типичный путь атаки, который находит BloodHound:
(например)
Ваш Helpdesk-User (низкие права)...
...имеет права RDP на SRV-PRINT...
...на SRV-PRINT сейчас активна сессия SQL-Admin...
...SQL-Admin является локальным админом на WEB-SRV01...
...на WEB-SRV01 в планировщике висит скрипт, который запускается от Domain-Admin.
БИНГО. Путь: Helpdesk -> SRV-PRINT -> SQL-Admin -> WEB-SRV01 -> Domain Admin.
Злоумышленнику остается только пройти по этому пути, собирая учетные данные (Pass-the-Hash, Kerberoasting).
Взгляд архитектора: Вы не можете защитить то, что вы не видите. Архитектор не "надеется", что его модель прав доступа "чистая". Он верифицирует её.
Скачайте BloodHound (https://github.com/BloodHoundAD/BloodHound).
Запустите сборщик SharpHound.
Загрузите данные и найдите свой "кратчайший путь" к Domain Admin.
Это лучшее, что вы можете сделать для безопасности своего AD на этой неделе.
#security #windows #activedirectory #bloodhound #cybersecurity #pentest #architect
Linux: Больше чем 755. Разбираем setuid, sgid и sticky bit
Каждый админ знает chmod 755. Но настоящий контроль над системой начинается там, где заканчиваются rwx — на специальных битах. Непонимание их работы — прямая дорога к уязвимостям.
1. setuid (SUID): Запуск от имени владельца
Что это: chmod 4755 или chmod u+s
Как работает: При запуске исполняемого файла, он выполняется не от имени пользователя, который его запустил, а от имени владельца файла (обычно root).
Классический пример: passwd. Обычный пользователь запускает passwd и меняет свой пароль, хотя сам файл /etc/shadow ему недоступен. Это SUID-бит дает passwd права root на время выполнения.
Опасность: chmod u+s /bin/bash. Это = мгновенный root-shell для любого.
2. sgid (SGID): Наследование группы
Что это: chmod 2755 или chmod g+s
Как работает (на директории): Самый частый кейс! Все новые файлы и папки, созданные внутри этой директории, автоматически наследуют группу директории, а не пользователя.
Пример: У вас есть /var/www/html с группой www-data. Вы ставите chmod g+s /var/www/html, и теперь любой файл, который туда кидает разработчик, будет принадлежать www-data.
3. sticky bit (Sticky): Только владелец может удалить
Что это: chmod 1777 или chmod +t
Как работает: Применяется к папкам с правами 777. Даже если у всех есть права на запись, удалить файл может только владелец этого файла (или root).
Классический пример: /tmp и /var/tmp.
Взгляд архитектора: Архитектор использует sgid для проектирования безопасных общих папок, избегая chmod 777. И он проактивно ищет SUID-файлы с помощью find / -perm -u=s -type f, потому что знает — каждый такой файл является потенциальной точкой повышения привилегий.
#linux #security #chmod #sysadmin #гайд #команды
Каждый админ знает chmod 755. Но настоящий контроль над системой начинается там, где заканчиваются rwx — на специальных битах. Непонимание их работы — прямая дорога к уязвимостям.
1. setuid (SUID): Запуск от имени владельца
Что это: chmod 4755 или chmod u+s
Как работает: При запуске исполняемого файла, он выполняется не от имени пользователя, который его запустил, а от имени владельца файла (обычно root).
Классический пример: passwd. Обычный пользователь запускает passwd и меняет свой пароль, хотя сам файл /etc/shadow ему недоступен. Это SUID-бит дает passwd права root на время выполнения.
Опасность: chmod u+s /bin/bash. Это = мгновенный root-shell для любого.
2. sgid (SGID): Наследование группы
Что это: chmod 2755 или chmod g+s
Как работает (на директории): Самый частый кейс! Все новые файлы и папки, созданные внутри этой директории, автоматически наследуют группу директории, а не пользователя.
Пример: У вас есть /var/www/html с группой www-data. Вы ставите chmod g+s /var/www/html, и теперь любой файл, который туда кидает разработчик, будет принадлежать www-data.
3. sticky bit (Sticky): Только владелец может удалить
Что это: chmod 1777 или chmod +t
Как работает: Применяется к папкам с правами 777. Даже если у всех есть права на запись, удалить файл может только владелец этого файла (или root).
Классический пример: /tmp и /var/tmp.
Взгляд архитектора: Архитектор использует sgid для проектирования безопасных общих папок, избегая chmod 777. И он проактивно ищет SUID-файлы с помощью find / -perm -u=s -type f, потому что знает — каждый такой файл является потенциальной точкой повышения привилегий.
#linux #security #chmod #sysadmin #гайд #команды
👍4
Чек-лист: 10-минутный аудит "пульса" инфраструктуры
Понедельник. Прежде чем нырнуть в поток тикетов, потратьте 10 минут на этот быстрый чек-лист. Он поможет поймать 90% ночных и "выходных" проблем до того, как о них сообщат пользователи.
□ Проверить Бэкапы (Главное!)
Win: Get-WBJob -Previous 1 -> JobState должен быть Completed.
Lin: Проверить лог вашего rsync/cron скрипта.
□ Проверить Место на Диске
Lin: df -hT | grep -E '(/|/var)$' -> Use% не > 90%.
Win: Get-PSDrive C, D | ? { $_.Free -lt 20GB } -> должен быть пустой вывод.
□ Найти "Красные" Ошибки в Логах
Lin: journalctl -p err -b (ошибки с последней загрузки).
Win: Get-WinEvent -LogName System -Level 2 -MaxEvents 50 --Since (Get-Date).AddDays(-1)
□ Проверить Неудачные Входы
Lin: sudo lastb (попытки брутфорса).
Win: Get-WinEvent -Filter @{LogName='Security'; ID=4625} -MaxEvents 50
□ Проверить Статус Репликации AD
Win: repadmin /replsummary (искать fails и errors).
□ Проверить Uptime
uptime / (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
Была ли незапланированная перезагрузка ночью?
Взгляд архитектора: Этот чек-лист — идеальное техническое задание (ТЗ) для вашего собственного "утреннего" скрипта. Архитектор не делает это вручную. Он автоматизирует этот чек-лист и настраивает отправку отчета ему в Telegram/почту к 9:00 утра.
#чеклисты #security #audit #windows #linux #sysadmin #гайд
Понедельник. Прежде чем нырнуть в поток тикетов, потратьте 10 минут на этот быстрый чек-лист. Он поможет поймать 90% ночных и "выходных" проблем до того, как о них сообщат пользователи.
□ Проверить Бэкапы (Главное!)
Win: Get-WBJob -Previous 1 -> JobState должен быть Completed.
Lin: Проверить лог вашего rsync/cron скрипта.
□ Проверить Место на Диске
Lin: df -hT | grep -E '(/|/var)$' -> Use% не > 90%.
Win: Get-PSDrive C, D | ? { $_.Free -lt 20GB } -> должен быть пустой вывод.
□ Найти "Красные" Ошибки в Логах
Lin: journalctl -p err -b (ошибки с последней загрузки).
Win: Get-WinEvent -LogName System -Level 2 -MaxEvents 50 --Since (Get-Date).AddDays(-1)
□ Проверить Неудачные Входы
Lin: sudo lastb (попытки брутфорса).
Win: Get-WinEvent -Filter @{LogName='Security'; ID=4625} -MaxEvents 50
□ Проверить Статус Репликации AD
Win: repadmin /replsummary (искать fails и errors).
□ Проверить Uptime
uptime / (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
Была ли незапланированная перезагрузка ночью?
Взгляд архитектора: Этот чек-лист — идеальное техническое задание (ТЗ) для вашего собственного "утреннего" скрипта. Архитектор не делает это вручную. Он автоматизирует этот чек-лист и настраивает отправку отчета ему в Telegram/почту к 9:00 утра.
#чеклисты #security #audit #windows #linux #sysadmin #гайд
👍2
Windows: Кто "главный" в домене? Разбираем FSMO-роли
Active Directory — это не монархия, а "феодальная" система. Все контроллеры домена (DC) равны, но 5 из них — "равнее". Это владельцы FSMO-ролей (Flexible Single Master Operations) — уникальных задач, которые может выполнять только один DC во всем лесу.
Если сервер с FSMO-ролью "упал" и не вернулся — ваш домен ждут большие проблемы (нельзя создавать пользователей, менять схемы, и т.д.). Каждый Windows-админ обязан знать, где "лежат" эти роли.
Всего 5 ролей:
На уровне леса (уникальны для всего леса):
1. Schema Master: Отвечает за изменение схемы AD (добавление новых атрибутов).
2. Domain Naming Master: Отвечает за добавление/удаление доменов в лесу.
На уровне домена (уникальны для каждого домена): 3. PDC Emulator: "Эмулятор" старого PDC. Главный по синхронизации времени, блокировкам паролей, и "босс" для GPO. Самая нагруженная роль. 4. RID Master: Раздает "пачки" уникальных ID (RID) другим контроллерам, чтобы они могли создавать пользователей и группы. 5. Infrastructure Master: Отвечает за синхронизацию объектов между доменами.
Как узнать, где лежат роли (2 команды):
PowerShell
Взгляд архитектора: Архитектор не просто "знает", где роли. Он планирует их размещение.
Правило 1: Schema Master и Domain Naming Master должны быть на одном DC (желательно, Global Catalog).
Правило 2: PDC Emulator и RID Master — почти всегда на одном, самом мощном DC.
Правило 3: Infrastructure Master не должен быть на Global Catalog (если у вас не один домен).
Правило 4: Все FSMO-роли должны быть исключены из агрессивных политик бэкапа/восстановления (чтобы не сломать USN Rollback).
#windows #activedirectory #fsmo #sysadmin #гайд #architect
Active Directory — это не монархия, а "феодальная" система. Все контроллеры домена (DC) равны, но 5 из них — "равнее". Это владельцы FSMO-ролей (Flexible Single Master Operations) — уникальных задач, которые может выполнять только один DC во всем лесу.
Если сервер с FSMO-ролью "упал" и не вернулся — ваш домен ждут большие проблемы (нельзя создавать пользователей, менять схемы, и т.д.). Каждый Windows-админ обязан знать, где "лежат" эти роли.
Всего 5 ролей:
На уровне леса (уникальны для всего леса):
1. Schema Master: Отвечает за изменение схемы AD (добавление новых атрибутов).
2. Domain Naming Master: Отвечает за добавление/удаление доменов в лесу.
На уровне домена (уникальны для каждого домена): 3. PDC Emulator: "Эмулятор" старого PDC. Главный по синхронизации времени, блокировкам паролей, и "босс" для GPO. Самая нагруженная роль. 4. RID Master: Раздает "пачки" уникальных ID (RID) другим контроллерам, чтобы они могли создавать пользователей и группы. 5. Infrastructure Master: Отвечает за синхронизацию объектов между доменами.
Как узнать, где лежат роли (2 команды):
PowerShell
# Показать роли уровня ДОМЕНА (PDC, RID, Infrastructure)
netdom query fsmo
# Показать роли уровня ЛЕСА (Schema, Domain Naming)
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
Взгляд архитектора: Архитектор не просто "знает", где роли. Он планирует их размещение.
Правило 1: Schema Master и Domain Naming Master должны быть на одном DC (желательно, Global Catalog).
Правило 2: PDC Emulator и RID Master — почти всегда на одном, самом мощном DC.
Правило 3: Infrastructure Master не должен быть на Global Catalog (если у вас не один домен).
Правило 4: Все FSMO-роли должны быть исключены из агрессивных политик бэкапа/восстановления (чтобы не сломать USN Rollback).
#windows #activedirectory #fsmo #sysadmin #гайд #architect
👍2
Linux: "Служба" своими руками. Пишем systemd unit-файл
Хватит запускать важные скрипты "руками" через nohup ./script.sh &. Путь инженера — превратить любой скрипт или приложение в управляемую службу. В современном Linux это делается через systemd unit-файлы.
Задача: Превратим простой Python веб-сервер в службу my-app.service.
1. Ваш скрипт (для примера /opt/my-app/app.py):
Python
2. Создаем unit-файл: sudo nano /etc/systemd/system/my-app.service
Ini, TOML
3. Запускаем и "включаем" службу:
Bash
Взгляд архитектора: Вы не просто "запустили скрипт". Вы декларативно описали его жизненный цикл. Теперь ОС сама следит за ним, перезапускает при сбоях (Restart=on-failure), запускает в нужном порядке (After=network.target) и от имени нужного пользователя. Это первый шаг к построению отказоустойчивых (self-healing) систем.
#linux #systemd #python #automation #devops #гайд #скрипты
Хватит запускать важные скрипты "руками" через nohup ./script.sh &. Путь инженера — превратить любой скрипт или приложение в управляемую службу. В современном Linux это делается через systemd unit-файлы.
Задача: Превратим простой Python веб-сервер в службу my-app.service.
1. Ваш скрипт (для примера /opt/my-app/app.py):
Python
#!/usr/bin/env python3
# Простой веб-сервер
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello from Admin Future!')
httpd = HTTPServer(('0.0.0.0', 8000), SimpleHandler)
httpd.serve_forever()
2. Создаем unit-файл: sudo nano /etc/systemd/system/my-app.service
Ini, TOML
[Unit]
Description=My Simple Python Web App
After=network.target
[Service]
Type=simple
# Запускаем от имени 'www-data' для безопасности
User=www-data
Group=www-data
# Указываем путь к нашему скрипту
ExecStart=/usr/bin/python3 /opt/my-app/app.py
# Автоматический перезапуск в случае сбоя
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
3. Запускаем и "включаем" службу:
Bash
# Перечитать конфиги, чтобы systemd увидел новый файл
sudo systemctl daemon-reload
# Запускаем службу
sudo systemctl start my-app
# Проверяем статус
sudo systemctl status my-app
# Включаем автозапуск при загрузке ОС
sudo systemctl enable my-app
Взгляд архитектора: Вы не просто "запустили скрипт". Вы декларативно описали его жизненный цикл. Теперь ОС сама следит за ним, перезапускает при сбоях (Restart=on-failure), запускает в нужном порядке (After=network.target) и от имени нужного пользователя. Это первый шаг к построению отказоустойчивых (self-healing) систем.
#linux #systemd #python #automation #devops #гайд #скрипты
👍4
Скрипт-спасатель: Быстрый поиск "пожирателей" места в Linux
Проблема: На сервере закончилось место. «Админ» запускает du -sh / и уходит пить кофе на 40 минут. «Архитектор» запускает скрипт, который за 30 секунд находит 10 самых больших файлов, исключая системные пути.
Решение: Вот быстрый bash-скрипт, который использует find вместо медленного du. Он ищет только файлы размером более 100 МБ и сортирует их.
Bash
Как использовать:
Сохраните как find-big-files.sh
chmod +x find-big-files.sh
sudo ./find-big-files.sh
#АрхитекторскийЛайфхак: Добавьте в -printf формат %A@ (время последнего доступа) и отсортируйте, чтобы найти не просто большие, а большие и старые файлы, которые никто не трогал год.
#linux #bash #automation #script #sysadmin
Проблема: На сервере закончилось место. «Админ» запускает du -sh / и уходит пить кофе на 40 минут. «Архитектор» запускает скрипт, который за 30 секунд находит 10 самых больших файлов, исключая системные пути.
Решение: Вот быстрый bash-скрипт, который использует find вместо медленного du. Он ищет только файлы размером более 100 МБ и сортирует их.
Bash
#!/bin/bash
#
# find-big-files.sh
# Быстрый поиск больших файлов, исключая /proc, /sys, /dev
#
echo "Ищу 20 самых больших файлов (>100M) в системе..."
echo "Это может занять минуту..."
# -path: исключаем системные ФС, которые могут тормозить поиск
# -type f: ищем только файлы
# -size +100M: файлы размером строго больше 100 Мегабайт
# -printf: кастомный формат вывода (размер в МБ, путь)
# -sort -nr: сортируем по первому полю (размер) в числовом (-n) и обратном (-r) порядке
# -head -n 20: берем первые 20 строк
find / \
-path "/proc" -prune -o \
-path "/sys" -prune -o \
-path "/dev" -prune -o \
-type f \
-size +100M \
-printf "%M %k M\t%p\n" | sort -nr | head -n 20
echo "Поиск завершен."
Как использовать:
Сохраните как find-big-files.sh
chmod +x find-big-files.sh
sudo ./find-big-files.sh
#АрхитекторскийЛайфхак: Добавьте в -printf формат %A@ (время последнего доступа) и отсортируйте, чтобы найти не просто большие, а большие и старые файлы, которые никто не трогал год.
#linux #bash #automation #script #sysadmin
Аудит локальных админов на 1000 машинах (PowerShell)
Проблема: Вы уверены, что знаете, кто имеет права локального администратора на рабочих станциях? Вася из бухгалтерии, добавленный "на 5 минут" 2 года назад, — это огромная дыра в безопасности.
Решение: Этот PowerShell-скрипт берет список компьютеров (из файла или AD) и опрашивает их, вытаскивая состав группы "Администраторы".
PowerShell
#АрхитекторскийЛайфхак: Запускайте этот скрипт по расписанию и используйте Compare-Object, чтобы сравнивать новый отчет со вчерашним. Так вы будете получать мгновенные алерты об изменениях в привилегированных группах.
#powershell #activedirectory #security #automation #windows
Проблема: Вы уверены, что знаете, кто имеет права локального администратора на рабочих станциях? Вася из бухгалтерии, добавленный "на 5 минут" 2 года назад, — это огромная дыра в безопасности.
Решение: Этот PowerShell-скрипт берет список компьютеров (из файла или AD) и опрашивает их, вытаскивая состав группы "Администраторы".
PowerShell
#
# Get-RemoteLocalAdmins.ps1
# Аудит группы "Администраторы" на удаленных машинах
#
# --- НАСТРОЙКА ---
# 1. Либо получаем список компов из файла:
# $computers = Get-Content -Path "C:\temp\computers.txt"
# 2. Либо (лучше!) получаем из Active Directory (например, все W10 машины)
$computers = Get-ADComputer -Filter 'OperatingSystem -like "*Windows 10*"' | Select-Object -ExpandProperty Name
# --- КОНЕЦ НАСТРОЙКИ ---
$GroupName = "Администраторы" # Или "Administrators" для англ. версий
$Results = @()
Write-Host "Начинаю аудит $(computers.Count) машин..."
foreach ($computer in $computers) {
if (Test-Connection -ComputerName $computer -Count 1 -Quiet) {
Write-Host "Проверяю: $computer" -ForegroundColor Cyan
try {
# Используем CIM (современная замена WMI)
# Сначала получаем саму группу
$group = Get-CimInstance -ClassName Win32_Group -Filter "Name='$GroupName' AND LocalAccount='True'" -ComputerName $computer -ErrorAction Stop
# Затем получаем ее членов
$members = Get-CimInstance -ClassName Win32_GroupUser -Filter "GroupComponent='$($group.Path)'" -ComputerName $computer -ErrorAction Stop
foreach ($member in $members) {
$part = $member.PartComponent.Replace('"',"") # Очищаем путь
$domain = $part.Split("=")[1].Split(",")[0]
$name = $part.Split("=")[2].Split(",")[0]
$Results += [PSCustomObject]@{
Computer = $computer
Member = "$domain\$name"
}
}
} catch {
Write-Warning "Не удалось подключиться к $computer (WMI/CIM): $($_.Exception.Message)"
}
} else {
Write-Warning "Хост $computer не в сети."
}
}
Write-Host "--- РЕЗУЛЬТАТ АУДИТА ---" -ForegroundColor Green
# Группируем для удобного отчета
$Results | Group-Object -Property Member | Sort-Object -Property Count -Descending | Format-Table Name, Count
# Выгружаем полный CSV для анализа в Excel
$Results | Export-Csv -Path "C:\temp\LocalAdmin_Audit.csv" -NoTypeInformation -Encoding UTF8
Write-Host "Полный отчет сохранен в C:\temp\LocalAdmin_Audit.csv"
#АрхитекторскийЛайфхак: Запускайте этот скрипт по расписанию и используйте Compare-Object, чтобы сравнивать новый отчет со вчерашним. Так вы будете получать мгновенные алерты об изменениях в привилегированных группах.
#powershell #activedirectory #security #automation #windows
👍2
AI-ассистент для анализа логов (Концепт + Промпт)
Проблема: В auth.log (Linux) или Security (Windows) валятся тысячи событий. "Админ" ищет глазами Failed password. "Архитектор" просит AI найти аномалии, о которых он даже не подумал.
Решение: Мы не будем писать сложный парсер. Мы используем AI как интеллектуальный grep.
Концепт скрипта (Python/PowerShell):
Берем последние 2000 строк лога (/var/log/auth.log или Get-WinEvent -LogName Security -MaxEvents 2000).
Отправляем этот текст в API (Gemini, ChatGPT, Claude и т.д.).
Используем "архитекторский" промпт.
Промпт для AI (ваш копи-паст для экспериментов):
Plaintext
#АрхитекторскийЛайфхак: Это — будущее администрирования. Мы не тратим время на парсинг, мы делегируем рутинный анализ машине, а сами принимаем решения на основе ее выводов.
#ai #security #logs #automation #ai4admin #devops
Проблема: В auth.log (Linux) или Security (Windows) валятся тысячи событий. "Админ" ищет глазами Failed password. "Архитектор" просит AI найти аномалии, о которых он даже не подумал.
Решение: Мы не будем писать сложный парсер. Мы используем AI как интеллектуальный grep.
Концепт скрипта (Python/PowerShell):
Берем последние 2000 строк лога (/var/log/auth.log или Get-WinEvent -LogName Security -MaxEvents 2000).
Отправляем этот текст в API (Gemini, ChatGPT, Claude и т.д.).
Используем "архитекторский" промпт.
Промпт для AI (ваш копи-паст для экспериментов):
Plaintext
Ты — старший аналитик по кибербезопасности (SOC L3). Твоя задача — проанализировать предоставленный фрагмент лог-файла.
Игнорируй обычный "информационный шум" (например, успешные входы, плановые задачи).
Твоя цель — выявить **аномалии и потенциальные векторы атак**.
Ищи, но не ограничивайся этим:
- Атаки Brute-force (множественные неудачные входы с одного IP или для одного пользователя).
- Горизонтальное перемещение (успешный вход сразу после неудачного с другого хоста).
- Использование нестандартных портов или протоколов.
- Попытки повышения привилегий (su, sudo).
- Любые паттерны, которые выглядят подозрительно для эксперта.
Предоставь краткую сводку (Summary) и список (List) найденных угроз с указанием IP-адресов или имен пользователей. Если угроз нет, напиши: "Аномалий не выявлено".
Вот лог:
[...сюда вставляем 2000 строк вашего лога...]
#АрхитекторскийЛайфхак: Это — будущее администрирования. Мы не тратим время на парсинг, мы делегируем рутинный анализ машине, а сами принимаем решения на основе ее выводов.
#ai #security #logs #automation #ai4admin #devops
Windows: "Почему папка WinSxS весит 20 ГБ?!" Разбираемся с Component Store
Это главный "пожиратель" места на диске C:. И первая мысль админа: "Можно я это удалю?". Короткий ответ: НЕТ!
Архитектурный ответ: Папка WinSxS (Component Store) — это не просто "папка". Это база данных всех компонентов, обновлений и версий DLL вашей Windows. Файлы, которые вы видите в System32, — это в основном жесткие ссылки (hard links) на файлы внутри WinSxS.
Почему она растет? Каждое обновление (KB) добавляет новые версии компонентов, но старые не удаляются сразу. Они нужны для совместимости и возможности отката.
Как её чистить? Забудьте про cleanmgr.exe. Архитектор использует Dism.exe.
Две команды, которые вам нужны:
Анализ (Что можно удалить?): Запустите и посмотрите на строку "Component Store Cleanup Recommended".
PowerShell
Глубокая очистка (Удалить старые версии обновлений): Эта команда удаляет все предыдущие версии компонентов, которые больше не нужны. После нее вы не сможете откатить последние обновления!
PowerShell
Взгляд архитектора: Вы не просто "чистите диск". Вы управляете жизненным циклом компонентов ОС. Настройка StartComponentCleanup как запланированной задачи (Scheduled Task) — это часть проактивной стратегии по поддержанию "здоровья" парка серверов, а не реактивное тушение пожара "на диске C: кончилось место".
#windows #dism #winsxs #sysadmin #гайд
Это главный "пожиратель" места на диске C:. И первая мысль админа: "Можно я это удалю?". Короткий ответ: НЕТ!
Архитектурный ответ: Папка WinSxS (Component Store) — это не просто "папка". Это база данных всех компонентов, обновлений и версий DLL вашей Windows. Файлы, которые вы видите в System32, — это в основном жесткие ссылки (hard links) на файлы внутри WinSxS.
Почему она растет? Каждое обновление (KB) добавляет новые версии компонентов, но старые не удаляются сразу. Они нужны для совместимости и возможности отката.
Как её чистить? Забудьте про cleanmgr.exe. Архитектор использует Dism.exe.
Две команды, которые вам нужны:
Анализ (Что можно удалить?): Запустите и посмотрите на строку "Component Store Cleanup Recommended".
PowerShell
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Глубокая очистка (Удалить старые версии обновлений): Эта команда удаляет все предыдущие версии компонентов, которые больше не нужны. После нее вы не сможете откатить последние обновления!
PowerShell
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Взгляд архитектора: Вы не просто "чистите диск". Вы управляете жизненным циклом компонентов ОС. Настройка StartComponentCleanup как запланированной задачи (Scheduled Task) — это часть проактивной стратегии по поддержанию "здоровья" парка серверов, а не реактивное тушение пожара "на диске C: кончилось место".
#windows #dism #winsxs #sysadmin #гайд
👍5
Linux: "Закрываем дверь". Автоматическая блокировка Brute-Force атак с fail2ban
Вы открыли SSH-порт (22) в мир. Поздравляем, через 5 минут вас начнут брутфорсить — боты будут подбирать пароль к root 24/7. Смотреть на это в auth.log больно.
fail2ban — это не антивирус. Это автоматизированный парсер логов, который на лету обновляет ваш файрвол (iptables/firewalld).
Как это работает:
Следит: fail2ban в реальном времени читает лог (например, /var/log/auth.log).
Находит: Он видит 3-5-10 неудачных попыток входа с одного IP (вы сами задаете число).
Блокирует: Он немедленно выполняет команду iptables -I INPUT -s <IP_АТАКУЮЩЕГО> -j DROP, блокируя IP на 10 минут, час или навсегда.
План внедрения "на пальцах":
Bash
Что добавить в jail.local:
Ini, TOML
3. Перезапускаем: sudo systemctl restart fail2ban
Взгляд архитектора: Это активная защита. Вы не просто надеетесь на сложный пароль. Вы строите эшелонированную оборону (Defense in Depth). fail2ban — это "сторожевой", который автоматически отсекает 99% низкоуровневого "шума", позволяя вам сосредоточиться на реальных угрозах.
#linux #security #fail2ban #automation #cybersecurity #гайд
Вы открыли SSH-порт (22) в мир. Поздравляем, через 5 минут вас начнут брутфорсить — боты будут подбирать пароль к root 24/7. Смотреть на это в auth.log больно.
fail2ban — это не антивирус. Это автоматизированный парсер логов, который на лету обновляет ваш файрвол (iptables/firewalld).
Как это работает:
Следит: fail2ban в реальном времени читает лог (например, /var/log/auth.log).
Находит: Он видит 3-5-10 неудачных попыток входа с одного IP (вы сами задаете число).
Блокирует: Он немедленно выполняет команду iptables -I INPUT -s <IP_АТАКУЮЩЕГО> -j DROP, блокируя IP на 10 минут, час или навсегда.
План внедрения "на пальцах":
Bash
1. Установка
sudo apt install fail2ban -y
2. Создаем свой конфиг (НИКОГДА не правьте jail.conf)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Что добавить в jail.local:
Ini, TOML
[DEFAULT]
# Баним на 1 час
bantime = 1h
# 5 неудачных попыток
maxretry = 5
[sshd]
# Включаем защиту для SSH
enabled = true
port = ssh
logpath = %(sshd_log)s
3. Перезапускаем: sudo systemctl restart fail2ban
Взгляд архитектора: Это активная защита. Вы не просто надеетесь на сложный пароль. Вы строите эшелонированную оборону (Defense in Depth). fail2ban — это "сторожевой", который автоматически отсекает 99% низкоуровневого "шума", позволяя вам сосредоточиться на реальных угрозах.
#linux #security #fail2ban #automation #cybersecurity #гайд
👍3
Docker на Windows: Зачем админу Linux-контейнеры? Разбираем WSL2
Для многих Windows-админов Docker — это что-то чуждое из мира Linux. Но Docker Desktop на Windows — это революция для вашего рабочего процесса.
Как это работает (под капотом): Docker Desktop использует WSL2 (Windows Subsystem for Linux). Он запускает настоящее ядро Linux в легкой виртуальной машине, интегрированной с Windows. Когда вы пишете docker run ubuntu, вы запускаете нативный Linux-контейнер внутри этого WSL2.
Зачем это Windows-админу?
Тестирование "как в бою": Вам нужно проверить, как ваш PowerShell-скрипт отработает на CentOS? docker run -it centos:7 pwsh. Вы получите чистую среду за 3 секунды.
Идеальное Dev-окружение: Разработчик принес вам приложение (Python, Node.js)? Не надо ставить 100500 библиотек себе в Windows. docker-compose up — и вы подняли точную копию его окружения у себя.
Доступ к Linux-экосистеме: Нужно быстро поднять Nginx, Redis, PostgreSQL или Gitea (как мы писали)? Вам больше не нужен отдельный Linux-сервер. Все это запускается в Docker на вашей Windows-машине.
Взгляд архитектора: WSL2 + Docker стирают границы между ОС. Архитектор получает универсальную, воспроизводимую среду. Проблема "у меня на машине работает, а на сервере нет" исчезает. Это первый шаг от "админа Windows" к "Full-stack DevOps-инженеру".
#windows #docker #wsl #devops #linux #гайд
Для многих Windows-админов Docker — это что-то чуждое из мира Linux. Но Docker Desktop на Windows — это революция для вашего рабочего процесса.
Как это работает (под капотом): Docker Desktop использует WSL2 (Windows Subsystem for Linux). Он запускает настоящее ядро Linux в легкой виртуальной машине, интегрированной с Windows. Когда вы пишете docker run ubuntu, вы запускаете нативный Linux-контейнер внутри этого WSL2.
Зачем это Windows-админу?
Тестирование "как в бою": Вам нужно проверить, как ваш PowerShell-скрипт отработает на CentOS? docker run -it centos:7 pwsh. Вы получите чистую среду за 3 секунды.
Идеальное Dev-окружение: Разработчик принес вам приложение (Python, Node.js)? Не надо ставить 100500 библиотек себе в Windows. docker-compose up — и вы подняли точную копию его окружения у себя.
Доступ к Linux-экосистеме: Нужно быстро поднять Nginx, Redis, PostgreSQL или Gitea (как мы писали)? Вам больше не нужен отдельный Linux-сервер. Все это запускается в Docker на вашей Windows-машине.
Взгляд архитектора: WSL2 + Docker стирают границы между ОС. Архитектор получает универсальную, воспроизводимую среду. Проблема "у меня на машине работает, а на сервере нет" исчезает. Это первый шаг от "админа Windows" к "Full-stack DevOps-инженеру".
#windows #docker #wsl #devops #linux #гайд
Windows: "Призраки" в Active Directory. Охота на Lingering Objects
Это один из самых коварных и трудноуловимых багов репликации AD.
Что это: "Зависший объект" (Lingering Object) — это объект (например, пользователь), который был удален на одном контроллере домена (DC), но остался на другом DC, который был в оффлайне дольше, чем "время жизни" удаленного объекта (Tombstone Lifetime, обычно 60-180 дней).
Чем опасно: Ваш HelpDesk не может создать пользователя с именем ivanov (потому что "призрак" ivanov еще существует на одном из DC), Exchange падает с ошибками, GPO не применяются.
Как найти и уничтожить "призраков":
1. Включить строгую проверку репликации (Strict Replication Consistency): Это обязательно на всех DC! Это не ищет, а предотвращает появление новых "призраков".
PowerShell
2. Найти "призраков": Эта команда — ваш сканер. Ее нужно запустить на каждом DC, используя в качестве "эталона" самый авторитетный DC.
PowerShell
Проанализируйте dcdiag.log, который будет создан. Если там есть "lingering objects" — переходим к шагу 3.
3. Уничтожить (если найдены на шаге 2):
PowerShell
Взгляд архитектора: Архитектор не просто чинит. Он строит надежную топологию репликации. Проблема "призраков" — это симптом. Коренная причина — плохая связность, выключенные на месяц DC или неправильное восстановление из бэкапа. repadmin — ваш скальпель, но лечить нужно саму архитектуру.
#windows #activedirectory #ad #replication #powershell #security #гайд #architect
Это один из самых коварных и трудноуловимых багов репликации AD.
Что это: "Зависший объект" (Lingering Object) — это объект (например, пользователь), который был удален на одном контроллере домена (DC), но остался на другом DC, который был в оффлайне дольше, чем "время жизни" удаленного объекта (Tombstone Lifetime, обычно 60-180 дней).
Чем опасно: Ваш HelpDesk не может создать пользователя с именем ivanov (потому что "призрак" ivanov еще существует на одном из DC), Exchange падает с ошибками, GPO не применяются.
Как найти и уничтожить "призраков":
1. Включить строгую проверку репликации (Strict Replication Consistency): Это обязательно на всех DC! Это не ищет, а предотвращает появление новых "призраков".
PowerShell
repadmin /regkey * +strict
2. Найти "призраков": Эта команда — ваш сканер. Ее нужно запустить на каждом DC, используя в качестве "эталона" самый авторитетный DC.
PowerShell
# Запускаем в режиме "Advisory Mode" (только отчет)
# DC-Source - это ваш "чистый" DC (например, владелец FSMO)
# DC-Dest - это DC, который мы проверяем на "призраков"
repadmin /removelingeringobjects DC-Dest.corp.local DC-Source.corp.local-GUID corp.local /ADVISORY_MODE
Проанализируйте dcdiag.log, который будет создан. Если там есть "lingering objects" — переходим к шагу 3.
3. Уничтожить (если найдены на шаге 2):
PowerShell
# Убираем /ADVISORY_MODE, чтобы запустить реальное удаление
repadmin /removelingeringobjects DC-Dest.corp.local DC-Source.corp.local-GUID corp.local
Взгляд архитектора: Архитектор не просто чинит. Он строит надежную топологию репликации. Проблема "призраков" — это симптом. Коренная причина — плохая связность, выключенные на месяц DC или неправильное восстановление из бэкапа. repadmin — ваш скальпель, но лечить нужно саму архитектуру.
#windows #activedirectory #ad #replication #powershell #security #гайд #architect
👍2
Linux: "Кто трогал этот файл?" Настраиваем auditd — ваш черный ящик
fail2ban блокирует атаки. auditd — записывает всё, что происходит в системе. Это "бортовой самописец", который нужен для любого серьезного расследования инцидентов (IR).
auditd позволяет вам поставить "жучок" на любой файл, системный вызов или событие.
План внедрения "на пальцах":
1. Установка: sudo apt install auditd audispd-plugins (Ubuntu/Debian)
2. Настройка правил: Правила — это "что слушать". Они живут в /etc/audit/rules.d/. Создайте sudo nano /etc/audit/rules.d/99-custom.rules
Ini, TOML
3. Перезапуск: sudo systemctl restart auditd
4. Поиск событий: ausearch — это ваш grep для логов аудита.
Bash
Взгляд архитектора: auditd — это не "просто логи". Это доказательная база для ИБ. Архитектор не просто включает его, он интегрирует его (audispd) с централизованным SIEM (Splunk, ELK). Когда auditd на 100 серверах шлет события в одну точку, вы можете в реальном времени видеть, как атака (например, Lateral Movement) движется по вашей сети.
#linux #security #auditd #sre #cybersecurity #гайд #команды
fail2ban блокирует атаки. auditd — записывает всё, что происходит в системе. Это "бортовой самописец", который нужен для любого серьезного расследования инцидентов (IR).
auditd позволяет вам поставить "жучок" на любой файл, системный вызов или событие.
План внедрения "на пальцах":
1. Установка: sudo apt install auditd audispd-plugins (Ubuntu/Debian)
2. Настройка правил: Правила — это "что слушать". Они живут в /etc/audit/rules.d/. Создайте sudo nano /etc/audit/rules.d/99-custom.rules
Ini, TOML
# --- 99-custom.rules ---
# 1. Отслеживать ЛЮБЫЕ изменения в /etc/passwd и /etc/shadow
-w /etc/passwd -p wa -k 'identity_changes'
-w /etc/shadow -p wa -k 'identity_changes'
# 2. Отслеживать изменения в конфиге SSH
-w /etc/ssh/sshd_config -p wa -k 'ssh_config_changes'
# 3. Отслеживать вход пользователей с правами root (uid=0)
-a always,exit -F arch=b64 -S execve -F uid=0 -k 'root_activity'
# -w = watch file, -p wa = on write/attribute change, -k = key (для поиска)
3. Перезапуск: sudo systemctl restart auditd
4. Поиск событий: ausearch — это ваш grep для логов аудита.
Bash
# Показать все события, помеченные нашим ключом 'identity_changes'
sudo ausearch -k 'identity_changes'
# Показать, что делал root
sudo ausearch -k 'root_activity' | sudo aureport -f -i
Взгляд архитектора: auditd — это не "просто логи". Это доказательная база для ИБ. Архитектор не просто включает его, он интегрирует его (audispd) с централизованным SIEM (Splunk, ELK). Когда auditd на 100 серверах шлет события в одну точку, вы можете в реальном времени видеть, как атака (например, Lateral Movement) движется по вашей сети.
#linux #security #auditd #sre #cybersecurity #гайд #команды
🔥2
AI-промпт: "Напиши и ОБЪЯСНИ мне этот RegEx"
Регулярные выражения (RegEx) — это язык, на котором 90% админов не говорят, а 10% — думают. Это чистая магия для парсинга логов, Nginx-конфигов или валидации данных. Но писать их — боль.
AI — идеальный переводчик с "человеческого" на "RegEx".
Плохой промпт: регулярка для IP-адреса Результат: \b(?:\d{1,3}\.){3}\d{1,3}\b (А почему? А 256.999.1.1 подойдет?)
Архитектурный промпт (для ChatGPT/Gemini/Copilot):
Взгляд архитектора: AI не просто дал вам "рыбу". Он научил вас. Вы получили не просто RegEx, а полную документацию к нему. Архитектор не использует "черные ящики", которые он скопировал со Stack Overflow. Он понимает, как работает каждый компонент его системы, даже если это RegEx, сгенерированный AI.
#ai4admin #regex #bash #python #automation #промпты #sre
Регулярные выражения (RegEx) — это язык, на котором 90% админов не говорят, а 10% — думают. Это чистая магия для парсинга логов, Nginx-конфигов или валидации данных. Но писать их — боль.
AI — идеальный переводчик с "человеческого" на "RegEx".
Плохой промпт: регулярка для IP-адреса Результат: \b(?:\d{1,3}\.){3}\d{1,3}\b (А почему? А 256.999.1.1 подойдет?)
Архитектурный промпт (для ChatGPT/Gemini/Copilot):
Выступи в роли эксперта по RegEx и инженера по парсингу логов.
Мне нужен RegEx-паттерн, который находит и извлекает (captures) IPv4-адреса.
Требования:
1. Паттерн должен валидировать каждый октет (от 0 до 255).
2. Он НЕ должен находить невалидные адреса (например, 999.999.999.999).
Формат ответа:
1. Паттерн: [Сам RegEx-паттерн]
2. Объяснение: Предоставь построчное объяснение, что делает каждая группа и каждый символ в паттерне (`\b`, `(?:`, `(25[0-5]|... )` и т.д.).
3. Пример для `grep`: Как использовать этот паттерн с `grep -E`.
4. Пример для `Python`: Как использовать этот паттерн в Python-скрипте.
Взгляд архитектора: AI не просто дал вам "рыбу". Он научил вас. Вы получили не просто RegEx, а полную документацию к нему. Архитектор не использует "черные ящики", которые он скопировал со Stack Overflow. Он понимает, как работает каждый компонент его системы, даже если это RegEx, сгенерированный AI.
#ai4admin #regex #bash #python #automation #промпты #sre
❤2
База знаний: Огромный сборник шпаргалок по кибербезопасности
Админ не может знать всё. Архитектор знает, где найти всё.
Перед вами — сокровищница знаний по кибербезопасности в одном GitHub-репозитории.
Взгляд архитектора:
Архитектор строит системы, которые невозможно взломать. Но для этого нужно постоянно учиться и быть в курсе всех возможных векторов атак. Этот репозиторий — ваша личная база знаний, которая поможет закрыть пробелы и всегда иметь под рукой нужную информацию.
Забираем себе в закладки: https://github.com/Ignitetechnologies/Mindmap
#security #cybersecurity #pentest #osint #forensics #musthave #гайд #обучение
Админ не может знать всё. Архитектор знает, где найти всё.
Перед вами — сокровищница знаний по кибербезопасности в одном GitHub-репозитории.
Взгляд архитектора:
Архитектор строит системы, которые невозможно взломать. Но для этого нужно постоянно учиться и быть в курсе всех возможных векторов атак. Этот репозиторий — ваша личная база знаний, которая поможет закрыть пробелы и всегда иметь под рукой нужную информацию.
Забираем себе в закладки: https://github.com/Ignitetechnologies/Mindmap
#security #cybersecurity #pentest #osint #forensics #musthave #гайд #обучение
❤3
AD: FSMO-роли — Ваш "Генштаб" домена. Передача и Захват ролей
О ролях FSMO (Flexible Single Master Operations) вспоминают, когда становится по-настоящему жарко: при восстановлении домена, миграции или когда "любимый" DC внезапно вышел из строя. И да, про них очень любят спрашивать на собеседованиях.
Архитектор не просто знает 5 ролей, он умеет ими управлять.
Напомним 5 главных ролей (и их "хозяев"):
Уровень леса (один на весь лес):
Schema Master: Изменение схемы AD (добавление новых атрибутов).
Domain Naming Master: Добавление/удаление доменов в лесу.
Уровень домена (один на каждый домен): 3. PDC Emulator: Синхронизация времени, блокировки паролей, "босс" для GPO. Самая нагруженная. 4. RID Master: Раздает уникальные ID (RID) для создания пользователей и групп. 5. Infrastructure Master: Синхронизация объектов между доменами.
Как узнать текущих владельцев (2 команды):
PowerShell
1. Передача FSMO-ролей (планово): Это штатная процедура. Когда вы повышаете новый DC и хотите перенести роли со старого, или перед выводом DC из эксплуатации.
PowerShell
2. Захват FSMO-ролей (аварийно): Это аварийная процедура (Seizing). Используется, когда DC-владелец роли полностью и безвозвратно вышел из строя. Старый DC никогда не должен быть запущен снова!
PowerShell
Взгляд архитектора: Архитектор не просто "передает" или "захватывает" роли. Он планирует Disaster Recovery (DR).
Где хранятся FSMO-роли? Это часть вашего DR-плана.
Как часто проверяется статус ролей? Автоматический аудит repadmin /replsummary и netdom query fsmo должен быть в мониторинге.
Какое DC будет следующим владельцем FSMO-ролей при сбое? Это должно быть задокументировано и готово к выполнению по скрипту.
#windows #activedirectory #fsmo #powershell #sysadmin #гайд #musthave
О ролях FSMO (Flexible Single Master Operations) вспоминают, когда становится по-настоящему жарко: при восстановлении домена, миграции или когда "любимый" DC внезапно вышел из строя. И да, про них очень любят спрашивать на собеседованиях.
Архитектор не просто знает 5 ролей, он умеет ими управлять.
Напомним 5 главных ролей (и их "хозяев"):
Уровень леса (один на весь лес):
Schema Master: Изменение схемы AD (добавление новых атрибутов).
Domain Naming Master: Добавление/удаление доменов в лесу.
Уровень домена (один на каждый домен): 3. PDC Emulator: Синхронизация времени, блокировки паролей, "босс" для GPO. Самая нагруженная. 4. RID Master: Раздает уникальные ID (RID) для создания пользователей и групп. 5. Infrastructure Master: Синхронизация объектов между доменами.
Как узнать текущих владельцев (2 команды):
PowerShell
# Роли уровня ДОМЕНА (PDC, RID, Infrastructure)
netdom query fsmo
# Роли уровня ЛЕСА (Schema, Domain Naming)
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster
1. Передача FSMO-ролей (планово): Это штатная процедура. Когда вы повышаете новый DC и хотите перенести роли со старого, или перед выводом DC из эксплуатации.
PowerShell
# Передаем роль Schema Master на DC с именем target-dc01
Move-ADDirectoryServerOperationMasterRole -Identity target-dc01 -OperationMasterRole SchemaMaster
# Можно передать сразу несколько ролей
Move-ADDirectoryServerOperationMasterRole -Identity target-dc01 -OperationMasterRole DomainNamingMaster, SchemaMaster, RIDMaster, PDCEmulator, InfrastructureMaster
2. Захват FSMO-ролей (аварийно): Это аварийная процедура (Seizing). Используется, когда DC-владелец роли полностью и безвозвратно вышел из строя. Старый DC никогда не должен быть запущен снова!
PowerShell
# Захватываем роль PDC Emulator на DC с именем targetDC2
Move-ADDirectoryServerOperationMasterRole -Identity targetDC2 -OperationMasterRole PDCEmulator –Force
Взгляд архитектора: Архитектор не просто "передает" или "захватывает" роли. Он планирует Disaster Recovery (DR).
Где хранятся FSMO-роли? Это часть вашего DR-плана.
Как часто проверяется статус ролей? Автоматический аудит repadmin /replsummary и netdom query fsmo должен быть в мониторинге.
Какое DC будет следующим владельцем FSMO-ролей при сбое? Это должно быть задокументировано и готово к выполнению по скрипту.
#windows #activedirectory #fsmo #powershell #sysadmin #гайд #musthave
👍2
Внимание: Фишеры "переворачивают" URL в вашем браузере!
Исследователи снова бьют тревогу из-за техники фишинга "BiDi Swap". Она не требует взлома, а просто обманывает ваши глаза.
Суть атаки: Злоумышленники используют специальные Unicode-символы (для языков с письмом справа-налево, как арабский). Из-за этого браузер визуально "переворачивает" домен.
Пример:
Вы видите в строке: www.microsoft.com/login
Реальная ссылка: www.com-evil-site/login
Взгляд архитектора: Это не баг сервера, это атака на UI/UX. Злоумышленники эксплуатируют то, как браузер отображает текст. Это доказывает, что технические средства защиты (файрволы, антивирусы) бессильны, если не защищен "слой 8" — человек.
Решение:
Никогда не доверяйте отображаемой ссылке.
Всегда наводите курсор и смотрите на реальный URL в левом нижнем углу браузера.
Обучайте пользователей.
Подробности: https://www.securitylab.ru/news/565259.php
#security #phishing #cybersecurity #гайд #zero_trust
Исследователи снова бьют тревогу из-за техники фишинга "BiDi Swap". Она не требует взлома, а просто обманывает ваши глаза.
Суть атаки: Злоумышленники используют специальные Unicode-символы (для языков с письмом справа-налево, как арабский). Из-за этого браузер визуально "переворачивает" домен.
Пример:
Вы видите в строке: www.microsoft.com/login
Реальная ссылка: www.com-evil-site/login
Взгляд архитектора: Это не баг сервера, это атака на UI/UX. Злоумышленники эксплуатируют то, как браузер отображает текст. Это доказывает, что технические средства защиты (файрволы, антивирусы) бессильны, если не защищен "слой 8" — человек.
Решение:
Никогда не доверяйте отображаемой ссылке.
Всегда наводите курсор и смотрите на реальный URL в левом нижнем углу браузера.
Обучайте пользователей.
Подробности: https://www.securitylab.ru/news/565259.php
#security #phishing #cybersecurity #гайд #zero_trust