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
🔑 CMD: Вспоминаем забытый пароль от Wi-Fi

Классика: Приходит начальник с новым айфоном. "Подключи меня к нашему Wi-Fi в переговорке". А вы этот пароль вводили 2 года назад и забыли. Он "зазвездочен" в настройках Windows.

Не надо лезть в админку роутера. Windows помнит всё в открытом виде.

Одна команда в консоли:

netsh wlan show profile name="Office_Guest" key=clear

(Где Office_Guest — имя вашей сети)

Листаем вниз до раздела Security settings -> Key Content. Там и лежит ваш пароль открытым текстом.

Совет: Если забыли точное название сети, сначала введите netsh wlan show profiles, чтобы увидеть весь список сохраненных сетей.

Работает на любом ноутбуке с Windows. Спасает в 10 случаях из 10.

#windows #wifi #cmd #hacks #adminlife #network
8
💀 Cron мертв. Да здравствуют Systemd Timers

Мы все привыкли писать crontab -e. Это просто, но убого: Если задача упала, вы узнаете об этом только если настроили почту. Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных».

В 2025 году Архитектор использует Systemd Timers.

Как это сделать:

Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh

Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.

[Timer]
OnCalendar=*-*-* 03:00:00 # Каждый день в 3 ночи
Persistent=true # Если сервер был выключен, запустить сразу при включении!

[Install]
WantedBy=timers.target

Активируем: systemctl enable --now backup.timer

Бонусы:
* systemctl list-timers — показывает, когда был последний запуск и когда следующий.
* journalctl -u backup.service — все логи из коробки.
* Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках.

#linux #systemd #cron #automation #modern #bestpractice
🚀 PowerShell: Ускоряем чтение логов в 100 раз (XPath)

Задача: Найти в Event Log событие блокировки пользователя (ID 4740) за последний час. Обычный админ пишет так:

# 🐢 Медленно (Client-side filtering)
Get-WinEvent -LogName Security |
Where-Object { $_.Id -eq 4740 -and $_.TimeCreated -gt (Get-Date).AddHours(-1) }

Проблема: PowerShell сначала выкачивает ВСЕ миллион событий из журнала к себе в память, и только потом отсеивает нужные. Это вешает сервер.

Сеньор использует Server-side filtering (XPath):

# 🐇 Быстро (Фильтрация на уровне движка Windows)
$XML = "*[System[(EventID=4740) and TimeCreated[timediff(@SystemTime) <= 3600000]]]"
Get-WinEvent -LogName Security -FilterXPath $XML

Результат: Вместо 2 минут команда отрабатывает за 0.3 секунды. Фильтруйте данные на источнике, а не в пайплайне.

#powershell #windows #performance #scripting #optimization #xml
💣 Bash: Защита от «Ой, я запустил это на Проде»

У вас есть скрипт cleanup.sh или reset-db.sh. Однажды вы, уставший, случайно запустите его не на тестовом сервере, а на srv-prod-01.

Добавьте этот Safety Check в начало любого опасного скрипта. Он спасет вам карьеру.

#!/bin/bash

# 1. Получаем имя хоста
CURRENT_HOST=$(hostname)

# 2. Проверяем, есть ли "prod" в имени
if [[ "$CURRENT_HOST" == *"prod"* ]]; then
echo "⚠️ ВНИМАНИЕ! Вы запускаете опасный скрипт на ПРОДАКШЕНЕ ($CURRENT_HOST)!"
echo "Введите 'YES', чтобы продолжить, или что угодно для отмены:"
read -r CONFIRM

if [ "$CONFIRM" != "YES" ]; then
echo " Отмена операции."
exit 1
fi
fi

echo "🚀 Поехали..."
# Дальше идет ваша логика

Этот простой if заставляет мозг проснуться перед тем, как нажать Enter.

#bash #scripting #safety #production #failsafe #devops
🔒 Linux: Как защитить файл от rm -rf (Даже от Root)

Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs.

Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit.

1. Делаем файл бессмертным:


sudo chattr +i /etc/critical_config.conf

Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root.

2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:


lsattr /etc/critical_config.conf
# Вывод: ----i---------e---- /etc/critical_config.conf

Видите букву i? Это оно.

3. Как вернуть всё назад:


sudo chattr -i /etc/critical_config.conf

Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками.

#linux #security #chattr #filesystem #hacks #root
🚀 Linux: Хватит ждать netstat. Используй ss

Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно.

В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API.

Маст-хэв команды:

Общая сводка (идеально для проверки на DDoS):


ss -s

Покажет мгновенно: "TCP: 50000 established".

Кто слушает порты (аналог netstat):


ss -tulpn

Киллер-фича: Показать самые "тяжелые" соединения по памяти:


ss -tm

Если вы все еще пишете netstat, вы теряете время.

#linux #network #performance #ss #netstat #troubleshooting
🧹 PowerShell: Чистим AD от "мертвых" компьютеров

Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах.

Найдем компьютеры, которые не входили в сеть более 180 дней.

Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна.

Скрипт:


$DaysInactive = 180
$TimeLimit = (Get-Date).AddDays(-$DaysInactive)

Get-ADComputer -Filter {LastLogonDate -lt $TimeLimit -and Enabled -eq $true} -Properties LastLogonDate, OperatingSystem |
Select-Object Name, LastLogonDate, OperatingSystem |
Sort-Object LastLogonDate |
Format-Table -AutoSize

# Хотите сразу отключить их? Раскомментируйте:
# | Disable-ADAccount -WhatIf

Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует.

#windows #activedirectory #powershell #cleanup #security #scripting
👍3
❄️ Read-Only Friday: Входим в "Зону смерти"

19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска.

Почему нельзя деплоить (даже "маленькие фиксы"):

1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%.

2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00.

3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов.

Манифест на сегодня: Читаем логи. Пишем документацию. Делаем бэкапы (и проверяем их!). Не обновляем ядра. Не меняем правила Firewall.

Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте.


#readonlyfriday #codefreeze #adminlife #devops #newyear #safety
22💯2
🐠 Linux: Превращаем сервер в аквариум

Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал.

Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь.

Установка (для релакса):


# Ubuntu/Debian (через Snap проще всего)
sudo snap install asciiquarium

# Или классика (требует perl-curses)
sudo apt install asciiquarium

Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите".

#linux #fun #cli #asciiquarium #friday #relax
📝 Git: "Что я вообще делал на этой неделе?"

Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались.

Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.


git log --all --since='7 days ago' --author="$(git config user.name)" --oneline --no-merges --date=short --pretty=format:"%ad: %s"

Сделаем красиво (добавьте в .gitconfig):


[alias]
standup = !git log --all --since='7 days ago' --author=\"$(git config user.name)\" --oneline --no-merges --date=short --pretty=format:\"%ad: %s\"

Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду.

#git #productivity #alias #cli #devops #reporting
🎭 Синдром самозванца: Ты не один

Конец года — время подведения итогов. И часто в голову лезет мысль:

"Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат."

Коллеги, это Синдром самозванца. Им страдают 70% сеньоров.

Факты, которые лечат:

1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных.

2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение.

3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи.

Выдохните. Вы проделали отличную работу в этом году.

#career #psychology #impostersyndrome #motivation #adminlife #softskills
5👍1
🗺 NextTrace: Трассировка, на которую приятно смотреть

Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк.

Встречайте NextTrace. Это traceroute нового поколения на Go.

Что он делает:

Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа.

Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере.

Параллельность: Работает быстрее классических утилит.

Запуск:


# Установка одной строкой (Linux/MacOS)
curl nxtrace.org/nt | bash

# Запуск с картой
nexttrace --map google.com

Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера.

#network #tools #nexttrace #visualization #cli #routing
👍2
🤯 Load Average: Почему 1.0 — это не всегда 100% CPU?

Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает".

В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях:

R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему.

D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS).

Аналогия с кассой:

Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ.

Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет!

Как отличить? Смотрите в vmstat 1.

Колонка r (run): Высокая? Проблема в CPU (код).

Колонка b (blocked): Высокая? Проблема в Диске/IO.

Не меняйте процессор, если у вас тормозит жесткий диск.

#linux #kernel #loadaverage #performance #theory #interview
🐻 Uptime Kuma: Твой личный Status Page

У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma.

Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io).

Что умеет: Пинговать HTTP(s), TCP, Ping, DNS. Проверять срок действия SSL-сертификатов (напомнит заранее!). Слать уведомления в Telegram, Discord, Slack. Рисовать красивые графики аптайма ("сердечный ритм").

Запуск в Docker (одной командой):


docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным.

#homelab #monitoring #uptimekuma #docker #selfhosted #tools
🐊 Croc: Передача файлов сквозь NAT и Firewalls

Ситуация: Нужно перекинуть файл с ноутбука на домашний сервер (или другу).

* scp? Нужен белый IP и SSH-доступ.
* Облако? Долго, и файл приватный.
* USB-флешка? Мы в 2025 году.

Используйте croc. Это утилита на Go, которая создает прямой зашифрованный туннель (P2P) между двумя компьютерами через Relay-сервер. Пробивает любой NAT.

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

На отправителе:


croc send secret-file.zip
# Вывод: Code is: 1234-abcd-xyz

На получателе (где угодно в мире):


croc 1234-abcd-xyz

Работает быстрее облака (использует всю ширину канала).
End-to-End шифрование (PAKE).
Возобновление прерванной закачки.

Поставьте один раз, и вы забудете про WeTransfer и мучения с FTP.

#tools #croc #filetransfer #p2p #security #musthave
👍2
🛡 Tmux: Искусство "Бессмертной сессии"

Вы запустили долгий скрипт (обновление базы, компиляция) по SSH. Мигнул интернет. VPN отвалился. Итог: SSH-сессия разорвана, скрипт убит, данные в базе повреждены.

Архитектор никогда не работает в "голом" SSH. Он работает в tmux (Terminal Multiplexer).

Суть: tmux запускает виртуальный терминал на сервере, который не зависит от вашего подключения.

Шпаргалка за 30 секунд:
1. Запуск: tmux (вы внутри).
2. Запускаем скрипт: ./long-script.sh.
3. Отключаемся (Detach): Нажимаем Ctrl+B, отпускаем, жмем D.

Вы вышли в обычную консоль. Можно закрыть ноутбук, уйти домой.

Возвращаемся (Attach):


tmux attach

Магия! Скрипт всё еще бежит, курсор там же, где вы его оставили.

Сделайте привычкой: зашли на сервер — сразу набрали tmux. Это ваша страховка от разрывов связи.

#linux #tmux #ssh #productivity #skill #terminal
👍2
🚌 Bus Factor: Почему быть "незаменимым" — это ловушка

Многие админы стремятся стать единственными, кто знает, как работает сеть или как деплоится бэкенд. Им кажется, что это гарантия безопасности: "Меня не уволят, потому что без меня всё рухнет".

Это карьерный тупик. Если ваш Bus Factor = 1 (если вас собьет автобус, проект умрет), то:

Вы не уйдете в отпуск. Вас будут дергать в горах и на пляже.

Вас не повысят. Руководство не может перевести вас на позицию Архитектора или CTO, потому что на текущем месте вас некем заменить. Вы становитесь заложником своей рутины.


Что делает Архитектор: Он стремится стать ненужным.

Автоматизирует всё, что можно.

Пишет документацию так, чтобы справился джун.

Делится знаниями.

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

#career #management #busfactor #softskills #growth #philosophy
📍 DNS: Зачем нужна точка в конце (google.com.)?

Вы наверняка видели в конфигах BIND или в старых учебниках домены с точкой на конце: example.com. Зачем она?

Это FQDN (Fully Qualified Domain Name) — полностью определенное имя домена.

Как это работает: Когда вы пишете в браузере google.com (без точки), ваш компьютер на самом деле пытается быть умным. Если вы находитесь в корпоративной сети corp.local, резолвер может сначала попробовать найти:

google.com.corp.local (А вдруг это внутренний сервер?)

И только потом google.com. (Корень интернета).

Точка в конце говорит системе жестко:

"Не пытайся подставить локальные суффиксы. Иди сразу в корневой DNS (Root Zone)."

Практика: В критических скриптах и конфигах серверов (особенно Nginx/Postfix) использование точки в конце (proxy_pass http://backend.local.;) ускоряет резолвинг и защищает от атак с подменой локальных доменов.

#network #dns #theory #fqdn #internet #basics
👍2
🐤 Canary Tokens: Ловушка для любопытного хакера

Как узнать, что злоумышленник (или любопытный инсайдер) проник в вашу сеть и шарится по папкам? Логи Windows Security читать сложно. SIEM стоит дорого.

Используйте Canary Tokens (Канарейку).

Суть: Вы создаете "фейковый" файл или ссылку, которая выглядит очень аппетитно. Например:

* Файл bitcoin_wallet_passwords.docx на рабочем столе.

* Запись в DNS.

* Ссылку в корпоративной Wiki "Зарплаты руководства".

Как только кто-то откроет этот файл, он "стукнет" на сервер, и вам придет письмо: "Кто-то с IP 192.168.1.55 открыл ловушку!".

Как попробовать бесплатно: Зайдите на canarytokens.org. Сгенерируйте токен (например, документ Word). Положите его в папку "Secrets". Ждите. Это лучшая сигнализация от скрытых угроз.

#security #canarytokens #hacking #defense #honeypot #tools
2
🛡 Linux: Как запретить системе убивать твою Базу Данных (OOM Killer)

Ситуация: На сервере кончилась память (RAM). Ядро Linux включает механизм OOM Killer (Out Of Memory Killer), который, как санитар леса, начинает убивать самые "жирные" процессы, чтобы спасти систему. Чаще всего под нож попадает MySQL, PostgreSQL или Java-приложение. И сервер падает.

Вы можете сказать ядру: "Не трогай этот процесс, убей лучше что-нибудь другое".

Как это сделать: У каждого процесса есть файл /proc/[PID]/oom_score_adj. Значения в нем: от -1000 (бессмертный) до 1000 (убить первым).

Защищаем процесс (например, SSH или БД):


# Находим PID (например, 1234)
# Записываем -1000 в score_adj
echo -1000 > /proc/1234/oom_score_adj

Как сделать это вечным (через Systemd): Добавьте в unit-файл сервиса (/etc/systemd/system/mysql.service.d/override.conf):


[Service]
OOMScoreAdjust=-1000

Теперь, даже если память кончится полностью, Linux убьет Apache, агенты мониторинга, cron, но Базу Данных будет держать до последнего байта.

#linux #kernel #oom #stability #systemd #bestpractice
🚑 Windows: Святая троица восстановления (DISM + SFC)

Когда Windows начинает глючить (ошибки обновлений, синие экраны, битые файлы), эникейщик переустанавливает систему. Сеньор запускает Repair Pipeline. Но важно делать это в правильном порядке.

Шаг 1. Проверяем хранилище компонентов (Component Store) Нет смысла проверять системные файлы (sfc), если сам "эталон" (образ восстановления) поврежден. Сначала чиним его.


DISM /Online /Cleanup-Image /RestoreHealth

Что делает: Скачивает целые версии системных файлов из Windows Update и кладет их в локальное хранилище.

Шаг 2. Чиним системные файлы Только теперь, когда эталон исправен, запускаем сверку:


sfc /scannow

Что делает: Сравнивает текущие файлы Windows (dll, exe) с эталоном из Шага 1 и заменяет битые.

Шаг 3. Проверяем диск (опционально, если есть подозрения)


chkdsk C: /f /r

Запомните: Сначала DISM , потом SFC . Наоборот — бессмысленно.

#windows #troubleshooting #repair #dism #sfc #cmd