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
🐧 Sed: Хирург для твоих конфигов

Вам нужно поменять порт в конфиге Nginx на 50 серверах. Заходить на каждый и открывать nano ? Нет. Используйте sed (Stream Editor). Он умеет находить и заменять текст прямо в файлах.

Синтаксис: s/что_искать/на_что_менять/g

Примеры из жизни:

1. Заменить слово во всем файле (безопасно):


# Создаст бэкап config.conf.bak перед изменением
sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.conf

2. Раскомментировать строку (удалить # в начале):

sed -i 's/^#PermitRootLogin/PermitRootLogin/' /etc/ssh/sshd_config

3. Удалить пустые строки (чистка мусора):

sed -i '/^$/d' filename.txt

Освойте sed , и Ansible вам станет понятнее, а скрипты — мощнее.

#linux #sed #bash #automation #config #cli
🪟 CMD: Почему политика не применилась? ( gpresult /h )

Пользователь жалуется: "У меня нет нужного принтера" или "Обои не поменялись". Вы смотрите в редактор GPO — всё настроено. В чем дело? Наследование? WMI-фильтр? Группа безопасности?

Не гадайте. Сделайте HTML-отчет прямо на машине пользователя.

Команда (запуск от Админа):

gpresult /h C:\report.html

Что это дает: Откройте report.html в браузере. Это красивый, цветной отчет, где показано:
* Какая политика победила (Winning GPO).
* Какая была отклонена и почему (Access Denied / Empty / Disabled).
* Время применения.

Это в 100 раз понятнее, чем сухой вывод консольного gpresult /r .

#windows #gpo #ad #troubleshooting #gpresult #cmd #sysadmin
2
🤝 Network: TCP 3-Way Handshake (База)

Мы говорим "установил соединение". А что происходит под капотом? Любое TCP-соединение (SSH, HTTP, RDP) начинается с Тройного рукопожатия. Если вы не понимаете этот процесс, вы не сможете траблшутить фаерволы.

Три шага:

1. SYN (Synchronize): Клиент шлет пакет серверу. "Привет, хочу поговорить. Мой номер очереди 100."
* Если здесь потеря — сервер недоступен или порт закрыт.

2. SYN-ACK (Synchronize-Acknowledge): Сервер отвечает. "Привет, слышу тебя (ACK 101). Давай говорить, мой номер 500 (SYN)."
* Если здесь потеря — сервер перегружен или блокирует обратный трафик.

3. ACK (Acknowledge): Клиент подтверждает. "Ок, твой номер 500 принял (ACK 501). Погнали передавать данные!"

Почему это важно: DDoS атака SYN Flood работает именно здесь: атакующий шлет миллионы SYN , сервер ждет, отвечает SYN-ACK , но ACK в ответ не получает. Память сервера забивается "полуоткрытыми" соединениями, и он умирает.

#network #tcp #theory #handshake #security #interview #basics
1
🦇 Linux: Хватит мучить глаза. Замени cat на bat

Команда cat (concatenate) была написана в 70-х. Она просто выплевывает текст. В 2026 году читать конфиги Nginx или Python-скрипты без подсветки синтаксиса — это боль.

Встречайте bat ("cat с крыльями").

Почему это мастхэв:

1. Подсветка синтаксиса: Он сам понимает, что это за файл (JSON, YAML, SH), и раскрашивает его.

2. Git-интеграция: Слева показывает плюсики + и минусы - , если файл изменен относительно коммита.

3. Нумерация строк: Удобно говорить коллеге: "Посмотри строку 15".

4. Пейджинг: Если файл длинный, он работает как less (не забивает терминал).

Установка:

sudo apt install bat
# В Debian/Ubuntu бинарник может называться batcat, поэтому делаем алиас:
alias cat='batcat'

Попробуйте один раз, и к черно-белому тексту вы не вернетесь.

#linux #tools #cli #bat #productivity #visualization
2
🟥 WizTree: Увидеть всё, что скрыто

Диск C: переполнен. Windows показывает красную полоску. Что именно сожрало место? Папка WinSxS ? Кэш Docker? Или пользователь загрузил 50 ГБ фоток на рабочий стол?

Старый WinDirStat работает вечность. Используйте WizTree.

Он не сканирует файлы по одному (как Проводник). Он читает напрямую MFT (Master File Table) файловой системы NTFS.
Результат: Сканирование диска на 1 ТБ занимает 2 секунды.

Визуализация (Treemap): Вы видите карту диска из цветных прямоугольников.

* Большой квадрат = Большой файл.

* Вы сразу видите "сироту" — файл подкачки pagefile.sys или забытый ISO-образ.

Удалять можно прямо из интерфейса. Лучший инструмент для быстрой очистки.

#windows #storage #wiztree #ntfs #troubleshooting #visualization #tools
💾 RAID: Геометрия надежности

Мы говорим: "Поставь в RAID 10". А вы помните физику процесса? Визуальное понимание того, как лежат блоки, спасает при восстановлении массива.

Быстрый рекап по картинке:

1. RAID 0 (Stripe): Данные "размазаны" по дискам (A1, A2).
🚀 Скорость: Максимальная (xN).
💀 Надежность: Ноль. Сдох один диск — потеряли всё.

2. RAID 1 (Mirror): Данные дублируются (A1 = A1).
🛡️ Надежность: Высокая.
📉 Цена: Платим за 2 диска, получаем место как за 1.

3. RAID 5 (Parity): Данные + Контрольная сумма (Parity) размазаны по всем дискам.
⚖️ Баланс: Если один диск умер, данные вычисляются по формуле из остальных.
🐢 Минус: Медленная запись (надо считать контрольную сумму).

4. RAID 10: Зеркало (1) внутри Страйпа (0). Лучшее из двух миров, но дорого.

Сохраните схему. Когда джун спросит, почему RAID 5 тормозит на запись, просто покажите блок Parity.

#storage #raid #theory #hardware #architecture #infographics #basics
3
🧟‍♂️ Linux: Атака зомби. Как убить то, что уже мертво?

Вы смотрите в top и видите: zombie: 5 . Новички пытаются сделать kill -9 <PID_ZOMBIE> .
Спойлер: Это бесполезно. Зомби нельзя убить, потому что он уже мертв.

Что такое Zombie Process: Это процесс, который завершил выполнение, освободил память, но его запись осталась в таблице процессов, потому что "Родитель" (Parent Process) не прочитал его код завершения (exit code).

Как починить правильно: Нужно найти родителя и "пнуть" его (или убить).

1. Ищем зомби и их родителей:

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

Вывод: Z 1050 1051 [php-fpm] <defunct> (Где 1050 — PPID родителя, 1051 — PID зомби).

2. Решение: Отправьте сигнал родителю, чтобы он "прибрался за детьми":



kill -SIGCHLD 1050


Если не помогло — убивайте родителя: kill -9 1050 . Зомби исчезнет вместе с ним (или его подберет процесс init ).

#linux #processes #zombie #troubleshooting #kernel #theory
🔐 BitLocker: Твой ноутбук украли. Данные утекли?

В 2026 году потеря корпоративного ноутбука — это не потеря железа ($1000), это потеря данных (миллионы). Если диск не зашифрован, пароль Windows сбрасывается за 2 минуты флешкой с Linux.

Убедитесь, что BitLocker включен и ключи надежно защищены TPM-чипом.

PowerShell-аудит (одной строкой):

Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, EncryptionMethod, ProtectionStatus, KeyProtector

Что искать в выводе:
1. VolumeStatus: FullyEncrypted (Обязательно!)
2. ProtectionStatus: On
3. KeyProtector: Должен быть Tpm (безопасно) или TpmPin. Если там Password или пусто — это дыра.

Если статус Off — включайте немедленно. Это база безопасности эндпоинтов.

#windows #security #bitlocker #powershell #encryption #audit #tpm
📶 Модель OSI: "Please Do Not Throw Sausage Pizza Away"

Когда сеть не работает, Джун говорит: "Интернет сломался". Сеньор говорит: "Проблема на L1 (физика) или L3 (маршрутизация)?".

Чтобы траблшутить как Бог, нужно думать слоями модели OSI.

Шпаргалка траблшутинга:

1. L1 Physical (Физический): Кабель включен? Линк горит? SFP-модуль сдох?

2. L2 Data Link (Канальный): MAC-адреса видны? VLAN настроен верно? STP не заблокировал порт?

3. L3 Network (Сети): IP-адрес есть? Пинг идет? Шлюз доступен? Маршруты прописаны?

4. L4 Transport (Транспортный): Порт открыт? Файрвол блокирует TCP/UDP?

5. L7 Application (Приложение): Nginx отдает 502? Сертификат протух?

Запомните: Всегда начинайте диагностику снизу вверх (от кабеля к софту). 90% проблем — это L1 (отошел патч-корд) или L3 (кривой IP).

#network #osi #theory #troubleshooting #basics #education #cisco
🔥3
🧹 ncdu: Уборка мусора с комфортом

Вы запускаете df -h и видите, что диск / занят на 95%. Что делать? Запускать du -sh /* и ждать полчаса? Это метод каменного века.

Используйте ncdu (NCurses Disk Usage).

Почему это топ:

1. Скорость: Она сканирует диск молниеносно.

2. Интерактивность: Вы ходите стрелочками по папкам, как в файловом менеджере. Сразу видно: "Ага, это логи Docker занимают 20 ГБ".

3. Удаление: Нашли мусор? Нажали d — подтвердили — удалили. Не нужно копировать пути и писать rm .

Установка:

apt install ncdu # Debian/Ubuntu
yum install ncdu # CentOS

Лайфхак: Чтобы не сканировать примонтированные сетевые шары (и не положить сеть), используйте флаг -x :

ncdu -x /

#linux #storage #ncdu #cleanup #tools #cli #sysadmin
🛡️ Active Directory: Группа "Protected Users"

Вы знаете, что если вы зашли Доменным Админом на компьютер пользователя (починить принтер), ваши хеши паролей остались в памяти этого ПК? Хакер запускает Mimikatz и крадет ваши права за секунду.

Есть штатное решение, про которое забывают: группа Protected Users.

Что она делает (для тех, кто в ней состоит):

1. Запрещает кэширование паролей.

2. Запрещает NTLM-аутентификацию (только Kerberos).

3. Запрещает делегирование (Constrained Delegation).

Задача на пятницу: Добавьте свою учетную запись администратора в группу Protected Users в AD. Это резко снизит риск компрометации домена, даже если вы случайно залогинитесь на зараженной машине.

P.S. Только не добавляйте туда сервис-аккаунты, пока не протестируете — старый софт может отвалиться.

#windows #security #activedirectory #hardening #mimikatz #bestpractice
2
🚚 MTU: Почему "большие" пакеты застревают?

Вы настроили VPN (WireGuard/OpenVPN), пинг идет, а сайты не открываются или RDP зависает. В 90% случаев виноват MTU (Maximum Transmission Unit).

Представьте, что сеть — это труба диаметром 1500 мм (байт). Это стандарт Ethernet. VPN добавляет свои заголовки, и полезная нагрузка становится 1420 байт. Если сервер пытается пропихнуть вам пакет размером 1500 байт через эту VPN-трубу, происходит одно из двух:

1. Фрагментация: Роутер рубит пакет на два куска (нагрузка на CPU, тормоза).

2. Drop: Если на пакете стоит флаг DF (Don't Fragment), роутер просто уничтожает его. Связь рвется.

Как найти идеальный размер (Ping Test): В Windows используем флаг -f (не фрагментировать) и -l (размер):

ping google.com -f -l 1472

(1472 + 28 байт заголовков = 1500. Если проходит — ок. Если "Packet needs to be fragmented" — уменьшайте число, пока не пройдет).

#network #mtu #vpn #troubleshooting #theory #fragmentation #ping
🧟‍♂️ Linux: Атака зомби. Как убить то, что уже мертво?

Вы смотрите в top и видите: zombie: 5. Новички пытаются сделать kill -9 <PID_ZOMBIE> . Спойлер: Это бесполезно. Зомби нельзя убить, потому что он уже мертв.

Что такое Zombie Process: Это процесс, который завершил выполнение, освободил память, но его запись осталась в таблице процессов, потому что "Родитель" (Parent Process) не прочитал его код завершения (exit code).

Как починить правильно: Нужно найти родителя и "пнуть" его (или убить).

1. Ищем зомби и их родителей:

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

Вывод: Z 1050 1051 [php-fpm] <defunct> (Где 1050 — PPID родителя, 1051 — PID зомби).

2. Решение: Отправьте сигнал родителю, чтобы он "прибрался за детьми":

kill -SIGCHLD 1050

Если не помогло — убивайте родителя: kill -9 1050. Зомби исчезнет вместе с ним (или его подберет процесс init).

#linux #processes #zombie #troubleshooting #kernel #theory
💿 Linux: CPU спит, а сервер тормозит? (iotop)

Ситуация: Сайт открывается медленно. Вы смотрите top — загрузка процессора (Load Average) высокая, но User и System CPU почти по нулям. Где затык? Смотрите на колонку wa (iowait). Если она высокая — процессор тупо ждет, пока диск запишет данные.

Чтобы найти виновника, используйте iotop.

Запуск:

sudo iotop -oPa

(Флаги: -o показывать только активных, -P группировать процессы, -a накапливать статистику).

Что вы увидите: Прямо как в диспетчере задач, вы увидите, кто именно насилует диск: MySQL, делающий тяжелый JOIN, или Logrotate, сжимающий гигабайты логов.

Нет утилиты? sudo apt install iotop / sudo yum install iotop. Это мастхэв на любом сервере с базой данных.

#linux #iotop #performance #disk #io #troubleshooting
👻 AD: Как найти действительно неактивных пользователей?

Вы хотите почистить домен от уволенных сотрудников. Вы смотрите свойство LastLogon. Но оно показывает старую дату. Вы удаляете юзера, а через час звонит директор: "Почему меня не пускает?".

Проблема: Атрибут LastLogon не реплицируется. Он обновляется только на том контроллере домена, через который прошел вход. Решение: Используйте LastLogonDate (это конвертированный LastLogonTimeStamp, который реплицируется, но с задержкой 9-14 дней).

PowerShell скрипт для поиска "мертвых душ" (> 90 дней):


$Date = (Get-Date).AddDays(-90)

Get-ADUser -Filter {LastLogonDate -lt $Date -and Enabled -eq $true} -Properties LastLogonDate |
Select-Object Name, LastLogonDate, SamAccountName |
Sort-Object LastLogonDate |
Format-Table -AutoSize

Используйте этот список для проверки. Если дата входа была 3 месяца назад — смело отключайте (Disable), а удаляйте еще через месяц.

#windows #powershell #activedirectory #cleanup #audit #sysadmin
2
📡 DHCP: Принцип DORA. Почему нет интернета?

Когда пользователь подключает кабель, происходит магия получения IP-адреса. Если магия не сработала, Windows пишет "Unidentified Network" (APIPA 169.254.x.x).

Чтобы чинить, нужно знать 4 шага процесса DORA:

D — Discover (Поиск): Клиент кричит на всю сеть (Broadcast): "Есть тут кто живой? Дайте IP!".

Ошибка здесь: Если VLAN настроен криво или нет DHCP Relay, крик никто не услышит.

O — Offer (Предложение): Сервер слышит и отвечает: "Я тут (10.0.0.1)! Могу дать тебе 10.0.0.50".

R — Request (Запрос): Клиент соглашается: "Ок, беру 10.0.0.50, подтверди!".

A — Acknowledge (Подтверждение): Сервер записывает клиента в базу и дает добро: "Забирай. Вот тебе еще шлюз и DNS".

Траблшутинг: Включите Wireshark и фильтр bootp.

Видите только Discover? 👉 Проблема с сетью (DHCP Relay / VLAN) или сервер лежит.

Видите Offer, но нет Request? 👉 Клиенту не нравится предложение (возможно, конфликт IP).

#network #dhcp #dora #theory #troubleshooting #basics #wireshark
🔗 Symlink vs Hard Link: В чем реальная разница?

Мы все постоянно пишем ln -s , создавая символические ссылки (Symlink). Но есть еще "Жесткие ссылки" (Hard Links). В чем соль? В Inode.

В Linux файл — это не имя. Файл — это набор данных на диске, у которого есть номер (Inode). А "Имя файла" — это просто указатель на этот номер.

Разница на пальцах:

1. Hard Link (ln file link): Это второе имя для того же самого Inode.

* Если удалить оригинальный файл — ссылка продолжит работать (данные не удалятся, пока на них указывает хоть одно имя).

* Ограничение: Нельзя делать на папки и между разными дисками.

2. Soft (Symbolic) Link (ln -s file link): Это новый файл, внутри которого написан путь к оригиналу.

* Если удалить оригинал — ссылка станет "битой" (указывает в пустоту).

* Плюс: Работает везде, даже между разными файловыми системами.

Как проверить: Команда ls -li покажет номер Inode в первом столбце. У хард-линков он одинаковый.

#linux #inodes #filesystem #theory #basics #interview
⏱️ PowerShell: Сколько сервер не перезагружался?

Босс спрашивает: "Когда последний раз патчили Exchange?" или "Почему сервер тормозит, может память утекла за месяц?". Заходить на каждый сервер по RDP, чтобы открыть диспетчер задач — это путь джуна.

Скрипт Архитектора, который покажет Uptime сразу по списку машин.

Скрипт:

$Servers = "SRV-DC01", "SRV-SQL01", "PC-Admin"

foreach ($S in $Servers) {
$OS = Get-CimInstance Win32_OperatingSystem -ComputerName $S -ErrorAction SilentlyContinue
if ($OS) {
$Uptime = (Get-Date) - $OS.LastBootUpTime
Write-Host "$S : $($Uptime.Days) дн. $($Uptime.Hours) ч." -ForegroundColor Green
} else {
Write-Host "$S : Недоступен" -ForegroundColor Red
}
}

Результат: SRV-DC01 : 45 дн. 12 ч. SRV-SQL01 : 0 дн. 4 ч.

Быстро, чисто, без лишних движений.

#windows #powershell #uptime #monitoring #scripting #adminlife
🕸️ CIDR: Магия слеша (/24, /32)

В конфигах сети мы пишем 192.168.1.0/24 . Но новички часто путаются: "А /30 — это больше адресов или меньше?".

Главное правило: Чем больше цифра после слеша, тем меньше сеть. Представьте пирог. Слэш — это на сколько кусков мы его режем.

Шпаргалка для Админа:

* /32 = 1 IP (Только сам хост). Используется для жесткой привязки в фаерволах.

* /30 = 2 IP (Всего 4, но 2 служебных). Идеально для линка "точка-точка" между роутерами.

* /29 = 6 IP. Обычно столько выдает провайдер на офис.

* /24 = 254 IP. Стандартная локалка (маска 255.255.255.0).

* /16 = 65 534 IP. Огромная сеть (маска 255.255.0.0).

Сохраните. Когда нужно будет нарезать VLAN-ы, спасет от перекрытия адресов.

#network #cidr #subnetting #ip #theory #basics #cheatsheet
👍2
🚀 Linux: Забудь про netstat. Используй ss

Если ваши пальцы по привычке набирают netstat -tulpn , остановитесь. Утилита netstat (пакет net-tools) официально устарела (deprecated) уже более 10 лет назад. Она медленная, потому что парсит файлы /proc построчно. Если у вас 10 000 соединений, netstat повесит консоль.

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

Почему ss лучше: Она берет данные напрямую из ядра через Netlink API. Это работает мгновенно.

Шпаргалка:

1. Показать все слушающие порты (аналог netstat):

ss -tulpn

2. Показать все установленные соединения SSH:

ss -o state established '( dport = :ssh or sport = :ssh )'

3. Показать статистику по памяти сокетов (важно при DDoS):

ss -s

Приучайте себя к новому стандарту.

#linux #networking #ss #netstat #performance #tools #cli
👍1