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

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


Админ - @maksimshap
Download Telegram
🦖 Linux: Neofetch умер, да здравствует Fastfetch!

Воскресенье — время навести красоту в терминале. Мы все любили neofetch за тот самый скриншот с логотипом дистрибутива, который не стыдно показать в чате. Но проект давно заброшен.

В 2025 году стандартом стал Fastfetch. Он написан на C, работает мгновенно и поддерживает все современные OS (включая Windows 11 и macOS Sequoia).

Установка:


# Ubuntu / Debian
sudo apt install fastfetch

# macOS
brew install fastfetch

# Windows (Winget)
winget install fastfetch

Зачем? Кроме эстетики, это самый быстрый способ глянуть сводку: ядро, аптайм, кол-во пакетов, разрешение экрана и тему оболочки.

Добавьте fastfetch в свой .bashrc или .zshrc — и каждый вход на сервер будет радовать глаз.

#linux #tools #customization #fun #cli
🧪 Зачем админу HomeLab?

На собеседованиях на позиции Senior/Lead часто спрашивают: «Что крутится у вас дома?». Почему? Потому что HomeLab — это полигон, где вы учитесь быстрее, чем на работе. На проде страшно ломать, дома — весело.

Starter Pack для админа 2025: Если у вас есть старый ноутбук или Raspberry Pi, вот что нужно поднять (в Docker, конечно):

Pi-hole / AdGuard Home: Режем рекламу на уровне DNS для всей квартиры. Семья скажет спасибо.

WireGuard / Headscale: Свой VPN. Безопасный доступ домой из любой точки мира.

Home Assistant: Умный дом без привязки к облакам вендоров.

Uptime Kuma: Красивый мониторинг внешних ресурсов.

Vaultwarden: Свой менеджер паролей (аналог Bitwarden).

Это не просто игрушки. Это опыт настройки сетей, контейнеризации, безопасности и Nginx Proxy Manager в безопасной среде.

#homelab #selfhosted #docker #learning #petproject
3
🌐 DNS: Шпаргалка архитектора. Не только A-записи
На картинке — база, которую должен знать любой Junior. Но архитектор отличается тем, что знает не только «что это», но и «как это не сломать».

Разберем основные типы записей с точки зрения граблей и Best Practices.

🔹 A / AAAA (Address) Классика. Связь имени и IP.

Pro Tip: Если внедряете IPv6, всегда следите за паритетом. Если есть A, но нет AAAA, некоторые клиенты могут «тупить» при попытке подключения по v6, ожидая таймаута.

🔹 CNAME (Canonical Name) Алиас. Одно имя ссылается на другое.

⚠️ Главное табу: Никогда не вешайте CNAME на корневой домен (APEX / @). Это ломает почту (MX) и другие записи.

Исключение: CNAME Flattening (или ALIAS records) у продвинутых провайдеров типа Cloudflare, которые «притворяются» A-записью.

🔹 MX (Mail Exchange)
Указывает, куда слать почту.

Pro Tip: Цифра приоритета (10, 20) важна. Чем меньше число, тем выше приоритет. Резервный сервер всегда должен иметь число больше.

🔹 SRV (Service) Самая загадочная запись для новичков, но критическая для Windows-админов.

Зачем: Указывает не только хост, но и порт + вес сервиса.

Где живет: Active Directory держится на SRV. Если клиенты «теряют» домен, а пинги ходят — 99% проблема в битых SRV-записях в _msdcs.

🔹 TXT (Text) На слайде нет, но в 2025 году это маст-хэв.

Зачем: Это уже не просто заметки. Это безопасность почты (SPF, DKIM, DMARC) и верификация владения доменом для SSL/Google/Microsoft.

🛠 Инструмент для проверки: Забудьте про nslookup. Используйте мощь:

Windows (PowerShell):
Resolve-DnsName -Name domain.com -Type ALL

Linux / macOS:
dig domain.com ANY +noall +answer

Сохраняй шпаргалку, чтобы не путать CNAME с A-записью в пятницу вечером. 😉

#dns #network #basics #troubleshooting #шпаргалка #adminfuture
🔥3
❄️ 1 Декабря: Начало конца (года)

Коллеги, на календаре 1 декабря. В мире IT это означает одно: Code Freeze близко.

Если вы планировали: — Мигрировать почтовик; — Обновлять ядро корп-файервола; — Переезжать на новый Kubernetes-кластер;

...то у вас есть максимум 2 недели. После 15-20 декабря наступает негласный (или гласный) режим Read-Only.

Правила выживания в декабре:

1. Завершаем, а не начинаем. Доделываем хвосты, закрываем тикеты. Новые глобальные проекты — в бэклог на январь.

2. Закупка железа/лицензий. Бюджеты закрываются. Если вам нужен новый сервер — счет должен быть оплачен вчера.

3. График дежурств. Утвердите, кто будет "трезвым водителем" инфраструктуры в новогоднюю ночь, уже сейчас.

Не станьте тем админом, который деплоит продакшен 30 декабря. Чудес не бывает, бывают только факапы.

#adminlife #planning #codefreeze #management #bestpractice
🔥3
🕵️‍♂️ Linux: Что случилось, пока я спал?

Утро понедельника начинается не с кофе, а с вопроса: «Почему этот сервис лежит?». Читать весь лог за выходные — долго. Используем фильтры времени в journalctl.

Задача: Показать все ошибки, случившиеся с момента ухода с работы в пятницу (например, с 18:00).

Команда:


# --since принимает дату и время
# -p err (priority error) покажет только ошибки и хуже
# -x добавит пояснения к ошибкам (если есть в каталоге)

journalctl --since "2025-11-28 18:00:00" -p err -xb

Если нужно посмотреть конкретный сервис:


journalctl -u nginx --since "2 days ago"

Одной командой вы отсекаете 99% информационного шума и видите только проблемы выходных.

#linux #systemd #logs #troubleshooting #команды
🐢 Сервер тормозит: Метод USE

«Всё тормозит» — худшая заявка от пользователя. С чего начать диагностику? Не тыкайте наугад в top. Используйте методологию USE, разработанную Бренданом Греггом (гуру производительности).

Shutterstock

Для каждого ресурса (CPU, Memory, Disk, Network) проверяем три параметра:

U — Utilization (Утилизация): Сколько времени ресурс был занят работой? (Например, диск загружен на 90%).

S — Saturation (Насыщение): Есть ли очередь задач, которые не могут обработаться? (Высокий Load Average при низкой утилизации CPU).

E — Errors (Ошибки): Есть ли явные ошибки оборудования или драйвера? (Dropped packets, I/O errors).

Шпаргалка команд для Linux:

CPU: vmstat 1, top (Utilization), uptime (Saturation).

Memory: free -m (Utilization), vmstat 1 (si/so - Saturation/Swapping).

Disk: iostat -xz 1 (%util, await).

Network: sar -n DEV 1, ip -s link (Errors/Drops).

Сначала ищем узкое место, потом лечим.

#performance #linux #troubleshooting #architecture #brendangregg
🔥2
📋 PowerShell: Утренний репорт сервисов

В понедельник важно убедиться, что критические службы Active Directory и Exchange (или ваши бизнес-приложения) живы. Вместо того чтобы кликать по оснасткам services.msc, запускаем скрипт.

Скрипт проверяет статус и аптайм служб:


$Services = "DNS", "ADWS", "LanmanServer", "Spooler" # Добавьте свои

Get-Service -Name $Services | Select-Object Name, Status, @{
Name="Uptime";
Expression={
if ($_.Status -eq 'Running') {
# Получаем PID и время старта процесса
$proc = Get-CimInstance Win32_Process -Filter "ProcessId = $((Get-CimInstance Win32_Service -Filter "Name='$($_.Name)'").ProcessId)"
if ($proc) {
$span = New-TimeSpan -Start $proc.CreationDate -End (Get-Date)
"{0}d {1}h" -f $span.Days, $span.Hours
} else { "N/A" }
} else { "STOPPED" }
}
} | Format-Table -AutoSize

Если видите STOPPED или Uptime 0d 0h (значит, перезапускался утром) — это повод копнуть глубже.

#windows #powershell #monitoring #scripting #automation
☠️ Windows Hardening: Убиваем LLMNR и NBT-NS

Если вы проведете аудит безопасности (или пригласите пентестеров), первое, за что они скажут «спасибо» — это включенные протоколы LLMNR и NBT-NS.

В чем суть: Когда Windows не может найти компьютер через DNS, она кричит на всю локальную сеть: «Эй, кто-нибудь знает этот адрес?». Злоумышленник (или утилита Responder) отвечает: «Да, это я, давай свои хеши паролей». И Windows их отдает. Это классическая атака LLMNR Poisoning.

Как закрыть дыру (GPO): Вам не нужны эти протоколы в современной сети с настроенным DNS.

1. LLMNR: Computer Configuration -> Administrative Templates -> Network -> DNS Client 👉 Turn off multicast name resolution = Enabled

2. NBT-NS (NetBIOS): Раздавайте через DHCP опцию: 👉 001 Microsoft Disable Netbios Option = 0x2

Или в свойствах TCP/IP v4 вручную: Disable NetBIOS over TCP/IP.

Результат: Сеть становится тише, а вектор атаки Man-in-the-Middle внутри периметра закрывается.

#windows #security #gpo #hardening #activedirectory
👍1
🏗 Docker: Multistage Build — худеем в 10 раз

Типичная ошибка новичка: в Docker-образе лежат исходники, компиляторы (GCC, Go), кэши и сам бинарник. Образ весит 800 МБ. Архитектор использует Multistage Build.

Суть: в одном Dockerfile мы сначала собираем приложение, а потом копируем только результат в чистый, крошечный образ.

Пример (Go/C++/Rust):


# Этап 1: Сборка (Builder)
FROM golang:1.21 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp main.go

# Этап 2: Финал (Production)
# Берем Alpine (5 МБ) или Distroless
FROM alpine:latest
WORKDIR /root/
# Копируем ТОЛЬКО бинарник из первого этапа
COPY --from=builder /app/myapp .

CMD ["./myapp"]

Профит:

1. Размер: Было 800 МБ → Стало 20 МБ.

2. Безопасность: В проде нет компиляторов и исходного кода — хакеру сложнее развернуться.

3. Скорость: Быстрее пушится в Registry и скачивается на сервер.

Если ваши образы весят гигабайты — сегодня самое время их переписать.

#docker #devops #optimization #bestpractice #architecture
👍1
🚀 Linux: ss вместо netstat

Если вы все еще набираете netstat -tulpn, чтобы посмотреть открытые порты — вы живете в прошлом. Утилита netstat считается deprecated (устаревшей) уже много лет.

Король умер, да здравствует ss (Socket Statistics).

Почему ss круче:

Она берет данные напрямую из ядра (через Netlink), а не парсит /proc.

На высоконагруженных серверах (тысячи соединений) netstat может тормозить, ss работает мгновенно.

Шпаргалка:

Все слушающие порты (TCP/UDP) + процессы:

ss -tulpn

(t - tcp, u - udp, l - listening, p - processes, n - numeric ports)

Показать только установленные соединения с IP 192.168.1.10:

ss -dst 192.168.1.10

Статистика по сокетам (сколько в TIME-WAIT и т.д.):

ss -s

Привыкайте к хорошему. Два символа сэкономят вам секунды каждый день.

#linux #networking #cli #tools #deprecated
👮‍♂️ PowerShell: Кто в админах?

Банальная, но критичная задача. Часто техподдержка дает права локального админа пользователю "на 5 минут, чтобы поставить программу", и забывает убрать. Через полгода у вас половина офиса — админы.

Скрипт для инвентаризации группы Administrators на удаленных ПК.

Код:


$Computers = Get-Content "C:\servers.txt" # Или список из AD

foreach ($PC in $Computers) {
Try {
$Admins = Invoke-Command -ComputerName $PC -ScriptBlock {
Get-LocalGroupMember -Group "Administrators" |
Select-Object -ExpandProperty Name
} -ErrorAction Stop

[PSCustomObject]@{
Server = $PC
LocalAdmins = ($Admins -join ", ")
}
} Catch {
Write-Warning "Не удалось подключиться к $PC"
}
}

Что искать в отчете:

Доменных пользователей (кроме админов домена и техподдержки).

Левые локальные учетки.

Чистота прав доступа — залог спокойного сна.

#powershell #security #audit #windows #scripting
🔥2
🔐 Windows LAPS: Хватит ставить один пароль на всех

Если у вас на 100 компьютерах одинаковый пароль локального администратора — поздравляю, один взломанный ноутбук компрометирует всю сеть. Это называется Lateral Movement (горизонтальное перемещение).

Решение — Windows LAPS (Local Administrator Password Solution). В 2025 году это уже не отдельный MSI-пакет, а встроенная функция Windows 10/11 и Server 2022/2025.

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

Компьютер сам генерирует сложный пароль для локального админа.

Отправляет его в Active Directory (в защищенный атрибут) или в Azure AD.

Меняет его по расписанию (например, каждые 30 дней) или после использования.

Как включить (Modern Way): Вам не нужно качать софт. Просто настройте GPO или Intune: Computer Configuration > Administrative Templates > System > LAPS

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

Get-LapsADPassword -Identity "PC-ACCOUNTING-01" -AsPlainText

Итог: Админу удобно (пароли в AD), хакеру больно (пароль от одного ПК не подходит к другому).

#windows #security #laps #activedirectory #bestpractice
🔥1
🦈 Linux + Wireshark: Анализ трафика как PRO

tcpdump — лучший друг админа, когда на уровне логов ничего не понятно. Но смотреть «сырой» вывод в консоли — глаза сломаешь. Архитектор делает иначе: он снимает дамп на сервере, а анализирует его в Wireshark на своем ноутбуке.

Сценарий: Нужно поймать трафик веб-сервера (порт 80 или 443), кроме нашего SSH (чтобы не замусорить дамп).

Команда:


# -i any : слушать все интерфейсы
# -w capture.pcap : писать в файл, а не на экран
# port not 22 : исключить наш SSH
# host 192.168.1.50 : фильтр по конкретному клиенту (опционально)

tcpdump -i any -w /tmp/capture.pcap port 80 or port 443 and port not 22

Что дальше?

Ждем воспроизведения проблемы.

Жмем Ctrl+C.

Забираем файл через scp:


scp user@server:/tmp/capture.pcap ./Desktop/

Открываем в Wireshark и видим красивые графики, ошибки TCP Retransmission и содержимое пакетов.

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

#linux #network #tcpdump #wireshark #troubleshooting
🔥2
🗑 Linux: Удаляем файлы навсегда (shred)

Команда rm не удаляет файл. Она просто стирает ссылку на него в файловой системе. Сами данные лежат на диске, пока их не перезапишут чем-то другим. Для конфигов с паролями или ключей SSH это опасно.

Используем утилиту shred. Она перезаписывает файл случайным мусором несколько раз перед удалением.

Команда:


# -u : удалить файл после перезаписи
# -z : в конце перезаписать нулями (чтобы скрыть сам факт шреддинга)
# -n 3 : перезаписать мусором 3 раза

shred -u -z -n 3 private_key.pem

Для параноиков: Добавьте это в алиасы для удаления чувствительных данных. alias rmsecure='shred -u -z -n 3'

⚠️ Важно: На SSD с функцией Wear Leveling и в облаках это не дает 100% гарантии, но это намного лучше, чем просто rm.

#linux #security #privacy #commands #cli
🔄 Идемпотентность: Главное слово в словаре архитектора

Если вы пишете скрипты или Ansible-плейбуки, вы обязаны понимать концепцию Идемпотентности. Без этого автоматизация превращается в хаос.

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

Пример на Bash:
Не идемпотентно:

# Если запустить 2 раза, в файле будет две записи
echo "127.0.0.1 myapp.local" >> /etc/hosts

Идемпотентно:

# Проверяем, есть ли запись, и добавляем только если нет
grep -q "myapp.local" /etc/hosts || echo "127.0.0.1 myapp.local" >> /etc/hosts

Почему это важно: В современном мире (Ansible, Terraform, Kubernetes) агент запускается каждые 15-30 минут. Если ваш скрипт не идемпотентен, он каждый раз будет ломать конфиги, дублировать строки или перезапускать сервисы без причины.

Правило: Пишите любой скрипт так, будто он будет запускаться каждую минуту.

#devops #architecture #coding #bestpractice #theory #automation
🌳 Linux: lsblk — ваша карта дисков

Многие по старинке используют fdisk -l, чтобы посмотреть диски. Но вывод этой команды громоздкий и не показывает связи. Инструмент современного админа — lsblk.

Почему он круче: Он строит дерево. Вы сразу видите: Физический диск → Раздел → LVM слой → Точка монтирования.

Полезные ключи:
Показать файловые системы и UUID (для fstab):

lsblk -f

Вывод в JSON (для скриптов и парсинга):

lsblk -J

Показать топологию (кто чей "раб"):

lsblk -t

Перестаньте гадать, какой раздел смонтирован в /var. Просто наберите lsblk.

#linux #storage #cli #tools #sysadmin
share PowerShell: Найди "забытые" сетевые папки

Сетевые шары (Shares) — любимый путь вирусов-шифровальщиков. Часто бывает так: админ расшарил папку "temp" для передачи дистрибутива и забыл. Спустя год там лежит архив с базой 1С, доступный всем (Everyone: Full Control).

Давайте найдем все не-системные шары одной командой.

Скрипт:

# Получаем все шары
Get-SmbShare |
# Исключаем дефолтные (C$, IPC$, ADMIN$ и т.д.)
Where-Object { $_.Special -eq $false } |
# Смотрим путь и описание
Select-Object Name, Path, Description |
Format-Table -AutoSize

Задача: Запустите на файловом сервере. Если увидите шару с именем Distrib, Scan или Obmen — проверьте права доступа немедленно (Get-SmbShareAccess -Name "Obmen").

#windows #powershell #security #audit #network
🧠 AI-Лайфхак: Regex больше не проблема

Давайте честно: никто не любит писать регулярные выражения с нуля. Это долго и больно. В 2025 году стыдно тратить на это час времени. Делегируйте это AI, но делайте это правильно.

Плохой промпт:

"Напиши регекс для email".

Хороший промпт (для админа):

"Напиши регулярное выражение (PCRE) для поиска IP-адресов в логах Nginx, которые пытались получить доступ к admin.php. Формат лога: $remote_addr - $remote_user [$time_local] "$request". Дай команду grep, которая использует этот регекс и выводит только уникальные IP".

Результат, который выдаст бот:

grep -P '(?<=^)\d{1,3}(\.\d{1,3}){3}(?=.*GET /admin\.php)' access.log | sort | uniq

Используйте нейронки как генератор синтаксиса sed, awk и regex. Это освобождает мозг для архитектурных задач.

#ai4admin #regex #productivity #chatgpt #troubleshooting
🧊 Read-Only Friday: Ловушка «на 5 минут»

Коллеги, напоминаем: пятница — день для чтения, обучения и документации. Самая страшная фраза, которую можно услышать в 16:00 пятницы:

«Да там делов на 5 минут, просто конфиг поправить».

Почему это ловушка:

Закон Мерфи: Если что-то может пойти не так, оно пойдет не так именно после перезагрузки сервиса в пятницу вечером.

Усталость: К концу недели концентрация падает. Вы можете не заметить лишний пробел в YAML или запятую в JSON.

Поддержка:
Если всё упадет в субботу утром, вендоры и коллеги будут недоступны.

Что можно делать сегодня:
Писать документацию в Confluence/Wiki.
Наводить порядок в стойке (кабель-менеджмент).
Чистить старые тикеты в Jira.
Изучать новые инструменты в песочнице (не на проде!).

Берегите свои выходные.

#readonlyfriday #adminlife #devops #culture #safety
🔥3