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: Почему SSD тормозит? Проверь выравнивание (Alignment)

Вы купили супер-быстрый NVMe диск. Поставили базу данных. А скорость записи удручает. В 90% случаев проблема в выравнивании разделов (Partition Alignment).

Современные диски имеют физический сектор 4KB. Если ваш раздел начинается не с начала физического сектора (а, например, со смещением в 512 байт), то одна запись операционной системы превращается в две операции на диске (Read-Modify-Write). Это убивает производительность (Write Amplification).

Как проверить за 1 секунду:

lsblk -t

Куда смотреть:

1. Колонка PHY-SEC : Должна быть 4096 (или больше).

2. Колонка Min-IO : Минимальный размер ввода-вывода.

3. Главное: Если стартовый сектор (можно глянуть в fdisk -l ) не делится на 8 без остатка — у вас проблемы.

Если видите Alignment offset отличный от 0 — пересоздавайте разделы правильно. Это "бесплатный" прирост скорости до 30%.

#linux #storage #ssd #performance #alignment #tuning #lsblk
🎯 WMI Filters: Групповые политики с лазерным прицелом

Вам нужно применить политику только к ноутбукам с Windows 11. Создавать отдельную OU (Organizational Unit) и переносить туда компьютеры? Долго и ломает структуру.

Используйте WMI-фильтры. Это SQL-запросы к железу перед применением политики.

Сценарий: Применить GPO только к Windows 11/Server 2025.

1. В Group Policy Management идем в раздел WMI Filters -> New .

2. Пишем запрос:

SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0.26%" AND ProductType="1"

(Где ProductType="1" — это рабочие станции, а не серверы).

3. Привязываем фильтр к нужной GPO.

Теперь политика "постучится" на Windows 10, увидит несоответствие версии и пройдет мимо. Чисто, красиво, профессионально.

#windows #gpo #wmi #activedirectory #sysadmin #automation #filtering
📦 TCP vs UDP: Почему VoIP и игры выбирают ненадежность?

Джуниор спрашивает: "TCP гарантирует доставку, а UDP теряет пакеты. Почему мы вообще используем UDP для звонков и YouTube?"

Ответ в Заголовках (Overhead).

1. TCP (Тяжеловес):
* Заголовок 20-60 байт.
* Рукопожатие, подтверждение каждого пакета (ACK), контроль порядка, повторная отправка.
* Результат: Если пакет потерялся, видео "замрет" и будет ждать его. Вы увидите лаг.

2. UDP (Спринтер):
* Заголовок всего 8 байт.
* Отправил и забыл. Никаких проверок.
* Результат: Если пакет с куском голоса потерялся — вы услышите микро-щелчок, но разговор продолжится в реальном времени.

Суть: В разговоре лучше пропустить букву, чем замолчать на 2 секунды, вспоминая её. Поэтому SIP, RTP и стриминг — это всегда UDP. Не блокируйте его на фаерволах!

#network #tcp #udp #protocols #theory #voip #streaming #basics
📊 Linux: Хватит щуриться в df -h. Ставь duf

Вы пишете df -h , чтобы проверить место. И видите кривую таблицу, где заголовки съехали, а tmpfs перемешана с реальными дисками. В 2026 году это несерьезно.

Поставьте duf (Disk Usage/Free).

Почему это мастхэв:
1. Красота: Рисует цветные бары (сколько занято/свободно). Глаз считывает инфо за 0.1 сек.
2. Группировка: Сам отделяет локальные диски, сетевые шары и псевдо-ФС (tmpfs).
3. JSON: Умеет отдавать вывод в JSON для скриптов мониторинга.

Установка:

sudo apt install duf

Один раз увидите — и удалите алиас на df .

#linux #storage #duf #cli #tools #visualization #diskusage
2
📶 CMD: Твой Wi-Fi врет тебе (netsh)

Значок Wi-Fi в трее показывает "3 палочки". Но интернет тормозит. Почему? Потому что "палочки" — это маркетинг. Они не показывают ни уровень шума, ни реальную скорость линка.

Посмотрите правде в глаза через консоль.

Команда:

netsh wlan show interfaces

Куда смотреть в выводе:
1. Signal: Точное значение в % (например, 80%).
2. Radio type: Вы сидите на старом 802.11n или современном 802.11ax?
3. Receive/Transmit Rate: Реальная скорость канала в Мбит/с. Если там "54 Mbps", то гигабитный интернет вам не поможет.

Лайфхак: Запустите это в цикле, ходя по офису с ноутбуком, чтобы найти "мертвые зоны", где сигнал падает ниже 60%.

#windows #wifi #cmd #troubleshooting #network #netsh #wireless
2👏1
💾 Правило 3-2-1

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

Существует только один стандарт надежности бэкапов. Правило 3-2-1.

Разбор:

1. 3 копии данных: Одна боевая (оригинал) + Две резервных.

* Почему: Вероятность смерти одного диска — 1/100. Трех сразу — 1/1 000 000.

2. 2 разных носителя: Не храните все копии на одном RAID-массиве или одном типе дисков.

* Пример: HDD сервера + Ленточная библиотека (или NAS другого бренда).

3. 1 копия оффсайт: Одна копия должна лежать физически в другом здании (или облаке).

* Почему: Пожар, потоп или кража в офисе уничтожат и сервер, и локальный бэкап.

Если у вас нет пункта №3 — считайте, у вас нет бэкапов.

#backup #security #theory #321rule #bestpractice #disasterrecovery #adminlife
Сегодня Пятница:
Всем хороших выходных! Пусть ваш Signal будет 100%, а Disk Usage не превышает 50%! 🍻
6👍1🔥1
🛡️ SSH: Защита от Bruteforce без Fail2Ban? Используем SSH ProxyJump и внутренние лимиты

Многие по привычке ставят Fail2Ban, который парсит логи и забивает таблицу iptables тысячами правил. Но в современных дистрибутивах можно ограничить количество попыток соединений на уровне самого демона или использовать «прыжковый» сервер.

Если вам нужно быстро ограничить аппетиты ботов, обратите внимание на параметр MaxStartups в sshd_config.

Как настроить:

В файле /etc/ssh/sshd_config: MaxStartups 10:30:60

Что это значит:

1. 10: До 10 одновременных неавторизованных подключений разрешены.

2. 30: Если их больше 10, SSH начнет сбрасывать новые попытки с вероятностью 30%.

3. 60: Если попыток больше 60, все новые подключения будут блокироваться до завершения старых.

Это защищает от перегрузки процесса SSH и делает атаку методом перебора бессмысленной.

#security #ssh #linux #devops #hardening #admin
3
🪟 Windows Server: Почему тормозит RDP? Отключаем UDP.

Замечали, что иногда курсор в RDP-сессии двигается рывками, а текст печатается с задержкой? По умолчанию современный RDP (начиная с версии 8.0) пытается использовать протокол UDP для ускорения графики. Но на нестабильных каналах или при наличии определенных файерволов это дает обратный эффект.

Как «вылечить» и сделать сессию плавной: Нужно принудительно заставить RDP работать только через TCP.

1. Нажмите Win + R, введите gpedit.msc.

2. Путь: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Удаленная сессия.

3. Найдите: «Выбор протоколов передачи данных удаленного рабочего стола».

4. Установите: «Включено» и выберите «Только TCP».

После этого задержки (input lag) обычно пропадают.

#windows #server #rdp #sysadmin #troubleshooting #it
👍2
🌐 Networking: MTU и «загадочные» проблемы с загрузкой сайтов

Бывает так: пинг идет, SSH работает, но как только вы пытаетесь открыть тяжелый сайт или передать файл — соединение обрывается. В 99% случаев это проблема MTU (Maximum Transmission Unit). Пакет слишком велик для какого-то узла в цепочке, а ICMP-сообщения о фрагментации заблокированы (PMTUD failure).

Как найти идеальный MTU вручную: Используйте пинг с запретом фрагментации (-f в Windows, -M do в Linux):

Windows:

ping google.com -f -l 1472 Linux: ping google.com -M do -s 1472

Если пишет «Требуется фрагментация», уменьшайте число 1472 на 10, пока пинг не пройдет. К полученному числу прибавьте 28 байт (заголовки IP/ICMP) — это и будет ваш идеальный MTU.

#networking #tcpip #mtu #ping #troubleshooting #network
👍2
🧠 Skills: Триада системного администратора в 2026 году

Просто «уметь переустанавливать ОС» уже недостаточно. Чтобы не остаться на зарплате эникейщика, фокус в обучении должен сместиться с инструментов на принципы.

Что качать сейчас:

1. Infrastructure as Code (IaC): Перестаньте настраивать серверы руками. Если вы не знаете Terraform или Ansible (хотя бы базу), вы тратите свое время.

2. Observability: Умение не просто смотреть в top, а настраивать алертинг в Prometheus/Grafana так, чтобы знать о проблеме до того, как позвонит директор.

3. Soft Skills (умение договариваться): Технари часто это игнорируют. Но умение обосновать бюджет на новые диски или объяснить бизнесу, почему «бэкап — это не роскошь», ценится дороже, чем знание флагов компиляции ядра.

Инструменты меняются раз в 3 года, фундаментальные навыки управления системами — остаются.

#career #skills #devops #sysadmin #it #learning
👍41🔥1
🐧 Linux: Спасаем диск от Ghost Files (удаленные, но занятые файлы)

Бывает так: df -h говорит, что диск забит на 100%, но du -sh показывает, что папки занимают всего пару гигабайт. Куда делось место? Скорее всего, какой-то процесс (например, nginx или база данных) держит открытым файл, который вы уже удалили командой rm. В Linux файл не удалится физически, пока его держит процесс.

Как найти этих "призраков":

lsof +L1

Что делать: Вы увидите список файлов с пометкой (deleted). Вместо того чтобы убивать процесс (что критично для продакшена), можно просто "обнулить" дескриптор файла:

truncate -s 0 /proc/[PID]/fd/[FD_NUMBER]

Место освободится мгновенно без рестарта сервиса.

#linux #sysadmin #troubleshooting #storage #lsof #filesystems
👍2
🛡️ Security: SSH Fingerprinting — как не стать жертвой Man-in-the-Middle

Когда вы первый раз подключаетесь к серверу, SSH спрашивает: "Are you sure you want to continue connecting?". 99% админов просто пишут yes. Но если кто-то подменил IP или перехватил трафик, вы отдадите свои ключи или пароль злоумышленнику.

Как проверить отпечаток сервера (Fingerprint) по-умному: Перед подключением запросите отпечаток ключа на самом сервере (через консоль ДЦ или KVM):

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Как проверить его локально: Если вы уже подключались и хотите убедиться, что ключ не изменился втихую:

ssh-keygen -l -f ~/.ssh/known_hosts -F [IP_ADDRESS]

Если отпечатки не совпадают — кабель вон из розетки, вас пытаются взломать.

#security #ssh #mitm #linux #infosec #hardening
🚀 Networking: Забытый протокол BFD — детекция падения линка за миллисекунды

Стандартные таймеры в протоколах маршрутизации (OSPF, BGP) довольно медленные. Если упадет промежуточный коммутатор, ваш роутер может ждать до 30-90 секунд, прежде чем поймет, что связи нет, и переключит трафик на резерв.

Решение: BFD (Bidirectional Forwarding Detection). Это легкий протокол, который работает в паре с OSPF/BGP и проверяет связность каждые 50-100 миллисекунд.

Пример настройки (Cisco/Quagga стиль):

interface GigabitEthernet0/1 bfd interval 100 min_rx 100 multiplier 3

Теперь, если линк моргнет, переключение на бэкап произойдет быстрее, чем пользователь успеет заметить лаг в Zoom.

#networking #bfd #cisco #bgp #highavailability #ospf #network
🐧 Linux: Load Average врёт. Смотри на PSI (Pressure Stall Information)

Админы десятилетиями смотрели на load average.
Но что значит LA 4.0 на 4-ядерном CPU?
Это процессы, которые считают?
Или те, которые ждут диск?
Или ждут память?

Load Average смешивает всё в кучу.

В современных ядрах (Linux 4.20+) есть PSI — метрика, которая показывает реальную боль системы.
Она говорит: «Процессы тупили 15% времени, потому что ждали, пока диск прочитает данные».

Куда смотреть:

/proc/pressure/cpu
/proc/pressure/io
/proc/pressure/memory

Как читать:

cat /proc/pressure/io

Вывод: some avg10=0.00 avg60=0.00 avg300=0.00 total=0 Если avg10 (среднее за 10 сек) равно 20.00, значит, 20% времени ваши задачи просто висели и ждали ввода-вывода. Это точный диагноз тормозов, в отличие от размытого Load Avg.

#linux #performance #psi #kernel #monitoring #troubleshooting #sysadmin
2
🪟 Windows: Pktmon — встроенный «Wireshark», о котором молчит Microsoft

Вам нужно срочно отследить сетевые пакеты на сервере, но ставить Wireshark запрещено политиками безопасности? Начиная с Windows 10/Server 2019, в системе уже есть мощный сниффер — Pktmon.

Он работает на уровне драйверов и видит трафик даже внутри виртуального свитча Hyper-V и контейнеров, где обычный Wireshark слеп.

Как пользоваться:

1. Добавить фильтр (например, порт 443): pktmon filter add -p 443
2. Запустить захват: pktmon start --etw -p 0 -c 0 (пишет в реальном времени)
3. Остановить: pktmon stop
4. Конвертировать лог в понятный формат (txt или pcapng): pktmon etl2pcap pktmon.etl

Теперь полученный файл можно открыть в Wireshark на своей машине. Никакого стороннего софта на проде!

#windows #networking #pktmon #sniffer #security #troubleshooting #powershell
🧠 Skills: Метод USE — священный грааль диагностики

Когда сервер «ложится», паника заставляет админа тыкать во все команды подряд: top , free , ping . Остановитесь. Брендан Грегг (гуру производительности) придумал метод USE, который работает для любой системы, будь то Linux, Windows, SQL или микроволновка.

Для каждого ресурса (CPU, Диск, Память, Сеть) вы должны проверить три параметра:

1. Utilization (Утилизация): Насколько ресурс занят? (в 😵
* Пример: Диск занят на 90%.
2. Saturation (Насыщение): Есть ли очередь из тех, кто не может получить ресурс?
* Пример: Очередь диска (await) выросла.
3. Errors (Ошибки): Есть ли аппаратные или логические сбои?
* Пример: I/O errors в логах контроллера.

Если вы будете идти по этому чеклисту, вы найдете проблему за 2 минуты, а не за 2 часа хаотичного поиска.

#skills #troubleshooting #brendangregg #performance #methodology #admin #career
🐚 Bash: Шаблон «Пуленепробиваемого» скрипта

90% админских скриптов падают молча.
Например, cd /wrong/path не сработал, а следующая команда rm -rf * удалила всё в корне (утрирую, но суть ясна). В 2026 году мы используем Bash Strict Mode и Traps.

Код для начала любого скрипта:

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

# Функция очистки при выходе (даже аварийном)
cleanup() {
echo "🧹 Убираем мусор..."
rm -f /tmp/temp_*.txt
}

# Trap ловит сигналы выхода (EXIT, ошибка, Ctrl+C)
trap cleanup EXIT

echo "🚀 Начинаем работу..."
# Ваш код

Разбор магии:

1. set -e: Скрипт умрет сразу, если любая команда вернет ошибку.
2. set -u: Запрещает использовать пустые переменные (спасает от rm -rf /$UNDEFINED_VAR).
3. set -o pipefail: Ловит ошибки даже в середине конвейера (grep | awk).
4. trap: Гарантированно выполнит функцию cleanup, даже если скрипт упадет с ошибкой.

Это база. Не пишите в прод без этого хедера.

#linux #bash #scripting #devops #bestpractices #automation
PowerShell: Настоящая многопоточность с -Parallel

В старых версиях PowerShell (5.1) мы страдали с Start-Job (медленно) или Runspaces (сложно).
В PowerShell 7+ (который к 2026 году должен стоять везде) циклы ускоряются в 10-50 раз одной опцией.

Задача: Пингaнуть 100 серверов или проверить службу.
Обычный foreach будет делать это последовательно 5 минут.

Решение 2026 года:

$servers = 1..100 | ForEach-Object { "Server-$_" }

# Запускаем в 10 потоков одновременно
$results = $servers | ForEach-Object -Parallel {
# Внутри этого блока - отдельный поток
$s = $_
$check = Test-NetConnection -ComputerName $s -Port 443 -WarningAction SilentlyContinue

# Возвращаем объект (а не текст!)
[PSCustomObject]@{
Server = $s
Port443 = $check.TcpTestSucceeded
Time = (Get-Date).ToString("HH:mm:ss")
}
} -ThrottleLimit 10

# Красивый вывод
$results | Format-Table -AutoSize

Фишка: Параметр -ThrottleLimit регулирует нагрузку на вашу машину.
Это самый простой способ ускорить рутину админа.

#windows #powershell #scripting #performance #automation #sysadmin
🧠 Skill: JSON — универсальный клей админа

Раньше мы грепали текст (grep | awk).
В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON.
Парсить JSON как текст — это путь к ошибкам.

Учимся работать с объектами, а не строками:

🐧 Linux (jq): Не делайте grep "status", делайте:

curl -s https://api.site.com/health | jq '.services[] | select(.status=="down") | .name'

(Выведет имена только упавших сервисов).

🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:

$data = curl https://api.site.com/health | ConvertFrom-Json $data.services | Where-Object { $_.status -eq 'down' } | Select-Object name

Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками.

#skills #json #jq #powershell #bash #devops #api
👍2🔥2👏1
🐧 Bash: Умная очистка логов без риска убить систему

Частая ошибка админа — удалять логи командой rm. Если сервис продолжает писать в файл, место на диске не освободится (файл останется "призраком"), пока сервис не рестартанут. 👻 Правильный путь — обнуление через перенаправление.

Скрипт-однострочник для безопасной очистки:

#!/bin/bash
# Находим все логи больше 500Мб в /var/log и обнуляем их содержимое
find /var/log -type f -name "*.log" -size +500M -exec sh -c '> "{}"' \;

echo " Тяжелые логи обнулены, дескрипторы сохранены!"

Почему это OK:

1. > "{}" — очищает содержимое файла, но оставляет сам файл на месте.
2. Сервис (nginx, mysql) не теряет связь с файлом и продолжает писать в него без рестарта.
3. Система мгновенно видит свободное место. 📦

#linux #bash #sysadmin #automation #storage #server_cleanup 🛠️
1