Admin Future
242 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
Linux: grep — это не анализ. Считаем ошибки в логах как SRE с помощью awk

Ваш лог-файл access.log весит 5 ГБ. grep "ERROR" выдает 50 000 строк. Как понять, какая ошибка самая частая? Прокручивать less — это не работа.

awk — это не просто "еще один grep". Это полноценный язык обработки текста.

Задача: Найти ТОП-10 самых частых ошибок в error.log.
Решение в одну строку:
Bash
# Ищем строки со словом "error", вытаскиваем текст ошибки (предполагаем, что он после 5-го поля),
# считаем уникальные строки и сортируем по количеству.
grep -i "error" /var/log/nginx/error.log | \
awk -F' ' '{ $1=""; $2=""; $3=""; $4=""; $5=""; print $0 }' | \
sort | \
uniq -c | \
sort -nr | \
head -n 10

Эта команда — ваш персональный анализатор логов. Она мгновенно покажет, какая именно ошибка "флудит" в логах, позволяя вам сфокусироваться на причине, а не на поиске.

Взгляд архитектора: Админ ищет одну ошибку. Архитектор ищет паттерны. awk в связке с sort и uniq — это базовый инструмент SRE-инженера для агрегации данных. Он позволяет превратить гигабайты хаотичных логов в осмысленную статистику для принятия решений.

#linux #awk #logging #sre #bash #команды #cli
Linux: "Я случайно дал chmod 777". Восстанавливаем права одной командой

Каждый делал это. На эмоциях chmod -R 777 /var/www — и теперь ваш веб-сервер зияет дырами, а файлы исполняются из ниоткуда. Ручное исправление — ад.
Архитектор не исправляет вручную. Он автоматизирует восстановление.

Как быстро восстановить стандартные права для всей системы:
Bash
# Для Debian/Ubuntu-подобных систем
sudo apt-get install debsums
sudo debsums -c | xargs -r sudo apt-get --reinstall install

# Для RHEL/CentOS-подобных систем
sudo rpm -Va | grep '^..5' | awk '{print $NF}' | xargs -r sudo yum reinstall

Что делают эти команды:

debsums -c (для Debian/Ubuntu) или rpm -Va (для RHEL/CentOS) проверяют все установленные пакеты на соответствие контрольным суммам и правам файлов из базы пакетов.

grep '^..5' (для RPM) и awk фильтруют только те файлы, у которых изменены права.

xargs -r sudo apt-get --reinstall install (или sudo yum reinstall) переустанавливает только те пакеты, чьи файлы были изменены. Важно: переустанавливаются только изменённые пакеты, а не вся ОС.

Взгляд архитектора: Эта команда — не просто "фикс". Это часть стратегии восстановления после инцидентов (IR) и управления конфигурацией (CM). Вы не "чините", вы возвращаете систему в известное, безопасное состояние. Это фундаментальный принцип отказоустойчивых систем.

#linux #security #commands #sysadmin #recovery #гайд
Автоматизация: Хватит копипастить! Укрощаем git alias для быстрой работы

Вы пишете git status, git commit -m "...", git push origin develop по 100 раз в день. Это рутина, которая отнимает время и силы.

git alias
— это ваша личная "горячая клавиша" для Git-команд. С его помощью можно сократить самые длинные и сложные команды до пары символов.

Как настроить (файл ~/.gitconfig):
Ini, TOML
[alias]
st = status -sb # git st покажет статус кратко
co = checkout # git co branch_name
br = branch # git br
ci = commit # git ci -m "msg"
ps = push # git ps
pl = pull # git pl
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # git lg - красивый лог
undo = reset HEAD~ # git undo - отменить последний коммит (локально)
amend = commit --amend --no-edit # git amend - обновить последний коммит без изменения сообщения

Как использовать: Просто вводите git st, git lg, git undo вместо длинных команд.

Взгляд архитектора: Эффективность — это краеугольный камень работы архитектора. git alias — это микрооптимизация, которая влияет на производительность команды. Меньше опечаток, быстрее работа, больше времени на проектирование, а не на рутину.

#git #automation #productivity #cli #devops #скрипты
Хватит использовать cp! rsync — швейцарский нож админа для бэкапов

Команда cp -r /source /dest — это первое, чему учат. Но для реальных задач админа (бэкапы, синхронизация) она не годится: она медленная, неэффективная и не работает по сети.

rsync — это не просто "remote copy". Это инструмент дельта-синхронизации. Он копирует только изменения, а не все файлы целиком.

Почему rsync — это уровень архитектора:
Флаг -a (Archive): Это магия. Он заменяет кучу флагов (-rlptgoD) и означает "сделать точную копию", сохраняя:

recursive (рекурсию)
links (симлинки)
perms (права доступа)
times (время модификации)
group (группу)
owner (владельца)

Флаг -z (Compress): Сжимает трафик "на лету" при передаче по сети.

Флаг --delete: Удаляет из цели те файлы, которых больше нет в источнике. Так создается точное зеркало.

Работа через SSH: Встроен по умолчанию.

Три команды, которые закроют 90% ваших задач по бэкапу:
Локальный бэкап (зеркалирование папки):
Bash
# Копируем www, сжимая, сохраняя права, и удаляя лишнее в бэкапе
rsync -avz --delete /var/www/ /mnt/backup/www_mirror/

Внимание! /www/ (слэш) и /www (без слэша) — это разные вещи для rsync!

PUSH-бэкап на удаленный сервер:
Bash
# Отправляем наши данные на бэкап-сервер
rsync -avz -e ssh /path/to/local/data user@backup.server:/path/to/remote/storage

DRY-RUN (Сухой прогон): Самый важный флаг для новичков. Ничего не делает, но показывает, что бы он сделал.
Bash
rsync -avzn --delete /source/ /dest/

Взгляд архитектора: rsync — это идемпотентный инструмент. Его можно запускать в cron каждую минуту — и он не создаст нагрузки, если файлы не менялись. Это основа для построения эффективных, быстрых и надежных стратегий бэкапа и репликации данных.

#linux #rsync #backup #automation #команды #sysadmin #гайд
👍3
Мы рады видеть здесь каждого.
Наша цель — не просто собрать аудиторию, а построить сильное сообщество инженеров, которые готовы расти от админов до архитекторов.

Канал "Admin Future" — это системная библиотека, а не поток случайных советов. Мы ценим ваш вклад и хотим делать контент, который будет максимально полезен именно вам.

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

Это поможет нам держать правильный баланс между #windows, #linux, #security и #devops.
👍5🤝2
Linux: "Какой процесс держит этот файл?" Магия lsof
Классическая ситуация: вы пытаетесь отмонтировать диск, а система говорит: "Resource busy". Или порт занят, а netstat/ss не показывают, кем. Вместо перезагрузки архитектор использует скальпель.

lsof (List Open Files) — это фундаментальная утилита, которая показывает, какой процесс какой файл (или сокет, или библиотеку) держит открытым. В мире *nix "всё есть файл", поэтому lsof видит всё.

Три команды, которые решают 90% проблем:
Узнать, кто "держит" файл или папку:
Bash
# Кто мешает отмонтировать /mnt/data?
lsof /mnt/data

Узнать, какой процесс слушает порт (альтернатива ss -tlpn):
Bash
# Кто занял 80-й порт?
sudo lsof -i :80

Посмотреть, что делает конкретный пользователь или процесс:
Bash
# Что открыл пользователь 'www-data'?
sudo lsof -u www-data
# Какие файлы и сокеты открыты у процесса с PID 1234?
sudo lsof -p 1234

Взгляд архитектора: lsof — это инструмент диагностики и отладки. Он позволяет понять внутренние связи в системе. Умение им пользоваться — это не просто "починить", а понять коренную причину (root cause) проблемы, будь то утечка файловых дескрипторов или конфликт портов.

#linux #lsof #diagnostics #sre #команды
Windows: perfmon — это не просто график. Находим узкие места
Когда сервер тормозит, админ открывает Диспетчер задач и видит 100% CPU.
Архитектор открывает Performance Monitor (perfmon), чтобы понять, почему.

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

Как найти реальную причину (План):
Не смотрите на графики. Создайте "Группу сборщиков данных" (Data Collector Set).
perfmon -> "Группы сборщиков данных" -> "Создать... вручную".

Добавьте нужные счетчики.
Какие счетчики добавить? (Стартовый набор SRE):
Processor\% Processor Time (Общая загрузка)
System\Processor Queue Length (Очередь к процессору. Если стабильно > 2 на ядро — беда).
Memory\Available MBytes (Свободная память)
Paging File\% Usage (Если используется активно — нехватка RAM).
LogicalDisk\Avg. Disk sec/Read (и /Write) (Время отклика диска. Если > 20ms — диски не справляются).
LogicalDisk\Current Disk Queue Length (Очередь к диску. Если стабильно > 2 — дисковый bottleneck).

Запустите сбор на 1-2 часа во время пиковой нагрузки.
Проанализируйте лог: Откройте .blg-файл. Теперь вы можете в ретроспективе увидеть, что сначала выросла очередь к диску, а потом процессор ушел в 100%, ожидая I/O.

Взгляд архитектора: perfmon — это рентгеновский аппарат. Вы перестаете гадать и начинаете видеть факты. Это позволяет вам принять правильное решение: нужно не "добавить CPU", а "оптимизировать запросы к БД" или "вынести логи на отдельный, более быстрый диск".

#windows #perfmon #performance #sre #гайд
👏1
Ansible для Windows: Хватит "кликать". Управляем Windows-серверами из Linux

Для многих "Ansible" — это что-то про Linux. Но что, если я скажу, что вы можете управлять всем вашим парком Windows-серверов так же, как и Linux-машинами? Без RDP, без ручных кликов.

Это — Ansible for Windows. Он работает не через SSH, а через WinRM (Windows Remote Management), который уже встроен в вашу систему. Это мост между мирами.

План для "Full-stack админа":

На Windows-машинах (целях): Нужно один раз настроить WinRM. Проще всего — запустить официальный скрипт от Ansible.
https://github.com/ansible/ansible-documentation/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
PowerShell
# Запускаем PowerShell от имени администратора
.\ConfigureRemotingForAnsible.ps1

На Linux-машине (контроллере):
Устанавливаем pywinrm: pip install pywinrm
Настраиваем inventory (список хостов), указывая, что это Windows:
Ini, TOML
[windows]
web-srv01.corp.local

[windows:vars]
ansible_user = "CORP\Administrator"
ansible_password = "YourSecretPassword" # Временно! (Лучше использовать Vault)
ansible_connection = winrm
ansible_winrm_server_cert_validation = ignore # Для тестовой среды

Ваш первый плейбук (установить IIS):
YAML
---
- name: Configure Windows Web Server
hosts: windows
tasks:
- name: Install IIS (Web-Server)
ansible.windows.win_feature:
name: Web-Server
state: present

- name: Start IIS Service
ansible.windows.win_service:
name: W3Svc
state: startedhttps://chatgpt.com/backend-api/estuary/content?id=file_000000005a986246808fbe7208d0cb2f&ts=489227&p=fs&cid=1&sig=e9b5ebaf47d24352dc6bba33f22b0781df239f5f55614f6cd89fd856db308bb6&v=0
start_mode: auto

Запуск: ansible-playbook -i inventory setup_iis.yml

Взгляд архитектора: Это Infrastructure as Code (IaC) в чистом виде. Вы получаете идемпотентность (можно запускать 100 раз) и масштабируемость (на 1 или 1000 серверов). Вы начинаете управлять Windows-парком как DevOps-инженер, а не как "эникейщик".

#windows #linux #ansible #automation #devops #powershell #гайд
🔥2
Wireshark: "Это не сеть, это приложение!" Как доказать это за 60 секунд

Классическая война админа и разработчика. "Ваш сервер тормозит!" — "Нет, это ваша сеть лагает!". Вместо споров, архитектор открывает Wireshark.
Wireshark — это не "страшный" инструмент для сетевиков. Это микроскоп, который видит всё. Он нужен каждому "фулл-стек" админу и ИБ-специалисту.

Три фильтра, которые решат 90% ваших споров:
"Я не вижу сервер" (Проблемы DNS):
Фильтр: dns
Что ищем: Видите ли вы AAAA (IPv6) или A (IPv4) запросы? Приходит ли ответ? Если видите NXDOMAIN — проблема в DNS, а не в сервере.
"Connection Refused / Timeout" (Проблемы с портом):
Фильтр: tcp.port == 80 (или 443, 3389...)
Что ищем:
[SYN] -> [SYN, ACK] -> [ACK] = OK, соединение установлено.
[SYN] -> [RST, ACK] = Connection Refused. Порт закрыт (приложение не запущено, или файрвол его режет).
[SYN] -> ... (тишина) ... -> [SYN] (повтор) = Timeout. Пакет теряется (проблема с маршрутизацией или файрвол его тихо дропает).

"Приложение тормозит" (Медленный ответ):
Фильтр: ip.addr == 192.168.1.50 (IP вашего сервера)
Что ищем: Кликните правой кнопкой по пакету -> Follow -> TCP Stream. Вы увидите весь диалог. Если ваш запрос ушел, а сервер "думал" 5 секунд, прежде чем ответить, — проблема 100% в приложении. Вы только что сэкономили день споров.

Взгляд архитектора: Вы перестаете гадать и начинаете видеть. Wireshark — это инструмент "земной правды" (ground truth). Он дает неоспоримые, основанные на данных доказательства, позволяя находить коренную причину (root cause) проблемы, а не её симптомы.

#networking #security #wireshark #windows #linux #diagnostics #гайд
Windows: Ваш "швейцарский нож". Вышло обновление PowerToys

Microsoft обновила PowerToys — бесплатный набор утилит, который прокачивает Windows до уровня PRO. Это must-have для каждого админа.

Что внутри (самое важное для нас):

FancyZones: Создайте сложные сетки окон. Идеально, чтобы разместить RDP, PowerShell и perfmon на одном экране.

PowerRename: Массовое переименование файлов (логов, скриптов) с поддержкой RegEx прямо в "Проводнике".

Always on Top: Win+Ctrl+T, чтобы окно с мониторингом или логами всегда было поверх всех.

Crop and Lock: Новинка! "Вырежьте" график из Диспетчера задач и закрепите его на рабочем столе как виджет.

Взгляд архитектора: Ваша рабочая станция — это инструмент. Эти утилиты "затачивают" его, экономя вам часы на рутинных операциях и переключении окон.

Забираем бесплатно с официального GitHub: https://github.com/microsoft/PowerToys

#windows #powertoys #productivity #гайд #musthave
🔥5
Проект на выходные: Запускаем свой GitHub! Ставим Gitea в Docker

Хватит хранить скрипты и Ansible-плейбуки в папке C:\Scripts_Final_v2. Путь архитектора начинается с контроля версий.

Gitea — это сверхлегкий, быстрый и простой self-hosted Git-сервер. Он написан на Go, потребляет минимум ресурсов и запускается за 30 секунд. Идеально для Home Lab или небольшой команды.

Зачем он вам?

* IaC: Хранить код Terraform, Ansible, PowerShell DSC.
* Документация: Вести свою Wiki по инфраструктуре в Markdown.
* Скрипты: Создать центральный репозиторий для всех ваших PowerShell/Bash скриптов.

Готовый docker-compose.yml для старта:
YAML
version: '3.8'

services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
volumes:
- ./gitea-data:/data
ports:
# Веб-интерфейс (HTTP)
- "3000:3000"
# SSH для Git
- "2222:22"
environment:
- USER_UID=1000
- USER_GID=1000

1. Сохраните как docker-compose.yml.
2. Запустите docker-compose up -d.
3. Откройте http://<ваш_ip>:3000 и пройдите простую веб-установку (можно использовать SQLite, чтобы не поднимать отдельную БД).
4. Важно: В настройках укажите, что SSH-сервер работает на порту 2222.

Взгляд архитектора: Это не просто "удобно". Это фундамент для GitOps и CI/CD. Когда ваш код инфраструктуры лежит в Git, вы можете автоматизировать его тестирование и развертывание. Вы получаете историю изменений, ревью кода и возможность отката.

#linux #docker #selfhosted #git #devops #weekendproject #гайд
Windows: "DNS-кладбище". Чистим Active Directory от "мёртвых" записей

Одна из самых частых и тихих проблем в AD — устаревшие (stale) DNS-записи. Старый сервер вывели из эксплуатации, а его A-запись осталась. В итоге сервисы пытаются подключиться к "призраку", и всё ломается.

Ручной поиск — ад. Этот PowerShell-скрипт — ваш аудитор.

Что делает скрипт:
1. Берёт все A-записи из вашей DNS-зоны.
2. Пытается "пингануть" каждую (быстрая проверка Test-Connection).
3. Выводит список тех IP, которые не ответили — это ваши главные кандидаты на удаление.

Код скрипта:
PowerShell
# Укажите имя вашего DNS-сервера и зоны
$DnsServer = "DC01.corp.local"
$DnsZone = "corp.local"

Write-Host "--- Начинаю поиск 'мёртвых' A-записей в зоне $DnsZone ---" -ForegroundColor Cyan

# Получаем все A-записи
$AllARecords = Get-DnsServerResourceRecord -ComputerName $DnsServer -ZoneName $DnsZone -RRType "A"

$StaleRecords = foreach ($Record in $AllARecords) {
$IpAddress = $Record.RecordData.IPv4Address.IPAddressToString
Write-Host "Проверяю: $($Record.HostName) -> $IpAddress" -ForegroundColor Gray

# Пытаемся быстро пингануть хост. Count 1, Timeout 1 секунда.
if (-not (Test-Connection -ComputerName $IpAddress -Count 1 -Quiet -ErrorAction SilentlyContinue)) {
# Если пинг не прошел, выводим как потенциально "мёртвую" запись
[PSCustomObject]@{
HostName = $Record.HostName
IPAddress = $IpAddress
Timestamp = $Record.Timestamp
Status = "NO_RESPONSE"
}
}
}

Write-Host "`n--- ОБНАРУЖЕНЫ ПОТЕНЦИАЛЬНО УСТАРЕВШИЕ ЗАПИСИ ---" -ForegroundColor Red
$StaleRecords | Format-Table

Write-Host "`nРекомендация: Проверьте эти хосты и включите Scavenging (очистку) на DNS-сервере."

Взгляд архитектора: Гигиена DNS — это фундамент стабильной сети. Этот скрипт — ваш инструмент для аудита. Правильное архитектурное решение — настроить Scavenging (очистку) на DNS-сервере, чтобы этот процесс был полностью автоматическим.

#windows #powershell #dns #activedirectory #automation #скрипты #security
👍2
Чек-лист: 5 PM Friday. С чем админ уходит на выходные?

Спокойные выходные — это не удача, а результат подготовки.
Прежде чем закрыть ноутбук, каждый админ (а особенно Full-stack) должен потратить 10 минут на этот чек-лист.

1. □ Проверить Бэкапы.
Win: Get-WBJob -Previous 1 -> JobState должен быть Completed.
Lin: Проверить лог вашего скрипта rsync или cron.

2. □ Проверить Место на Диске.
Win: Get-PSDrive C, D -> Free (GB).
Lin: df -hT -> Use%.
Ни один критический раздел не должен быть заполнен > 90%.

3. □ Проверить Журналы на Критические Ошибки.
Win: Get-WinEvent -LogName System -Level 2 -MaxEvents 20 --Since (Get-Date).AddHours(-1)
Lin: journalctl -p err -b --since "1 hour ago"
Нет ли "красных" записей, которых не было утром?

4. □ Проверить Подозрительные Входы.
Win: Get-WinEvent -Filter @{LogName='Security'; ID=4625} -MaxEvents 50
Lin: sudo lastb
Нет ли аномального брутфорса с одного IP?

5. □ Проверить Uptime Kuma (или вашу систему мониторинга).
Все сервисы "зеленые"? Все сертификаты SSL действительны?

Взгляд архитектора: Это называется проактивный аудит. Вы не ждете звонка в субботу. Вы тратите 10 минут в пятницу, чтобы предотвратить проблему. Это основа SRE-подхода к стабильности.

#чеклисты #security #windows #linux #audit #sre #sysadmin
👍2
5 Pentest-инструментов, о которых вы могли не знать

Metasploit и Nmap — это классика.
Архитектор безопасности должен знать, чем дышит атакующий.
Вот 5 тулзов, которые стоит добавить в свой арсенал:

Snaffler (https://github.com/SnaffCon/Snaffler) "Пылесос" для конфиденциальных файлов (web.config, скрипты с паролями) в Windows-доменах.

Infoga (https://github.com/m4ll0k/Infoga) Мощный OSINT-инструмент для сбора информации о почтовых адресах.

Sn1per (https://github.com/1N3/Sn1per) Автоматизированный "комбайн" для разведки и сканирования на уязвимости.

Sliver (https://github.com/BishopFox/sliver) Open-source C2-фреймворк. Гибкая и опасная альтернатива Cobalt Strike.

linPEAS (https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS) Лучший скрипт для поиска путей повышения привилегий (Privilege Escalation) в Linux.

Взгляд архитектора:
Лучшая защита — думать как атакующий.

#security #pentest #cybersecurity #linux #windows #гайд
👍2
Критическая RCE-уязвимость в WSUS. Эксплоит уже в сети.

Напарники, все дела на паузу.
Microsoft выпустила внеплановые (out-of-band) обновления для устранения критической уязвимости в Windows Server Update Services (WSUS).

Уязвимость: CVE-2025-59287

Статус: Критический (RCE).

Угроза: Публично доступный PoC-эксплоит.

Что происходит: Удалённый, неаутентифицированный злоумышленник может выполнить произвольный код с правами SYSTEM на вашем WSUS-сервере. Уязвимость "червеобразная" (wormable), то есть может распространяться по сети самостоятельно.

Кого касается: Только тех серверов, где активирована роль WSUS Server Role. Если роли нет — вы в безопасности.

Что делать НЕМЕДЛЕННО: Установить соответствующие кумулятивные обновления. Они уже доступны. Требуется перезагрузка.

Windows Server 2025: KB5070881
Windows Server 23H2: KB5070879
Windows Server 2022: KB5070884
Windows Server 2019: KB5070883
Windows Server 2016: KB5070882
Windows Server 2012 R2: KB5070886
Windows Server 2012: KB5070887

Временные меры (если не можете обновиться ПРЯМО СЕЙЧАС):

Заблокируйте порты 8530 и 8531 на файрволе для всех, кроме доверенных хостов.
Или отключите роль WSUS (крайняя мера). В обоих случаях клиенты перестанут получать обновления.

Взгляд архитектора: Это кошмарный сценарий. Компрометация WSUS — это атака на цепочку поставок (supply chain attack) внутри вашего периметра.

Злоумышленник, получивший SYSTEM на WSUS, может:
Не обновлять ваши ПК, оставляя их уязвимыми.
Хуже: Подсовывать свои "обновления" (вредоносные) всем клиентам в домене.
Этот инцидент — повод для архитектурного аудита: почему к портам управления (8530/8531) вашего WSUS-сервера есть доступ с рабочих станций, а не только из выделенной подсети управления? Сегментация сети — это не опция, а необходимость.

#windows #security #wsus #cybersecurity #musthave #гайд #architect
🔥2🤯2
Путь Архитектора: 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 #стратегия #гайд
2
nmap: Сканер, который должен быть у каждого. Аудит сети глазами админа

Для многих 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

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