🗑 Bash: Правильная ротация бэкапов
Сделать бэкап легко. Сложно сделать так, чтобы через полгода диск не забился старыми архивами. Многие пишут сложные скрипты на Python, но старый добрый find умеет это делать одной строкой.
Задача:
Оставить бэкапы за последние 7 дней.
Всё, что старше — удалить.
Скрипт (cleanup.sh):
🔥 Pro-Tip: Перед тем как ставить флаг -delete в cron, запустите команду без него (просто с -print), чтобы убедиться, что find нашел именно то, что вы хотите удалить. rm в Linux не прощает ошибок.
#linux #bash #backup #scripting #automation #чеклисты
Сделать бэкап легко. Сложно сделать так, чтобы через полгода диск не забился старыми архивами. Многие пишут сложные скрипты на Python, но старый добрый find умеет это делать одной строкой.
Задача:
Оставить бэкапы за последние 7 дней.
Всё, что старше — удалить.
Скрипт (cleanup.sh):
#!/bin/bash
BACKUP_DIR="/var/backups/db"
DAYS_TO_KEEP=7
# Проверяем, что директория существует (защита от дурака)
if [ -d "$BACKUP_DIR" ]; then
echo "🧹 Очистка старых бэкапов в $BACKUP_DIR..."
# Находим файлы старше N дней и удаляем
# -mtime +$DAYS_TO_KEEP -> старше дней
# -name "*.gz" -> только архивы (чтобы не удалить лишнее!)
# -delete -> удаляет без вопросов
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +$DAYS_TO_KEEP -print -delete
echo "✅ Готово."
else
echo "❌ Ошибка: Директория $BACKUP_DIR не найдена."
exit 1
fi
🔥 Pro-Tip: Перед тем как ставить флаг -delete в cron, запустите команду без него (просто с -print), чтобы убедиться, что find нашел именно то, что вы хотите удалить. rm в Linux не прощает ошибок.
#linux #bash #backup #scripting #automation #чеклисты
👍2
🏗 Архитектура: Как НЕ нужно называть домен Active Directory
Вы поднимаете новый контроллер домена. Рука тянется написать company.local? Остановитесь. Имя домена AD выбирается один раз, а последствия вы будете разгребать годами. Миграция/переименование домена — это ад, которого лучше избежать на старте.
Вот 3 главные ошибки и одно правильное решение.
❌ Ошибка 1: Зона .local (company.local) Классика 2000-х, которая в 2025 году стала проблемой.
Почему плохо: Конфликтует с протоколом mDNS (Bonjour), который используют macOS, Linux и IoT-устройства для поиска соседей.
Последствия: Глюки при подключении маков, принтеров и Linux-серверов. Плюс — вы никогда не купите доверенный SSL-сертификат для .local.
❌ Ошибка 2: Совпадение с публичным сайтом (company.ru) Называете AD так же, как ваш внешний сайт.
Почему плохо: Привет, Split-Brain DNS. Контроллеры домена считают, что company.ru — это они.
Последствия: Юзеры внутри офиса вводят company.ru, чтобы попасть на сайт фирмы, а попадают на страницу входа IIS контроллера домена (или получают ошибку). Приходится костылить www и мучаться с записями.
❌ Ошибка 3: Однословные имена (CORP) Single Label Domains (SLD).
Почему плохо: Устарело. Многие современные приложения (включая продукты Microsoft) просто откажутся работать с таким доменом корректно.
✅ Как сделать правильно (Best Practice)
Используйте субдомен от вашего реального публичного домена.
Пример: если ваш сайт future-admin.ru, назовите AD: 👉 corp.future-admin.ru 👉 ad.future-admin.ru 👉 int.future-admin.ru
В чем профит:
SSL: Вы можете купить Wildcard-сертификат *.corp.future-admin.ru и он будет валиден везде.
DNS: Никаких конфликтов с внешним сайтом.
Azure/Entra ID: Идеальная синхронизация с облаком без лишних суффиксов.
Собственность: Вы гарантированно владеете этим пространством имен в интернете.
💡 Совет архитектора: Даже если у вас маленькая фирма «Рога и Копыта», стройте AD так, будто завтра вы будете интегрироваться с Azure или поглощать конкурентов.
#activedirectory #windows #architecture #bestpractice #dns #security
Вы поднимаете новый контроллер домена. Рука тянется написать company.local? Остановитесь. Имя домена AD выбирается один раз, а последствия вы будете разгребать годами. Миграция/переименование домена — это ад, которого лучше избежать на старте.
Вот 3 главные ошибки и одно правильное решение.
❌ Ошибка 1: Зона .local (company.local) Классика 2000-х, которая в 2025 году стала проблемой.
Почему плохо: Конфликтует с протоколом mDNS (Bonjour), который используют macOS, Linux и IoT-устройства для поиска соседей.
Последствия: Глюки при подключении маков, принтеров и Linux-серверов. Плюс — вы никогда не купите доверенный SSL-сертификат для .local.
❌ Ошибка 2: Совпадение с публичным сайтом (company.ru) Называете AD так же, как ваш внешний сайт.
Почему плохо: Привет, Split-Brain DNS. Контроллеры домена считают, что company.ru — это они.
Последствия: Юзеры внутри офиса вводят company.ru, чтобы попасть на сайт фирмы, а попадают на страницу входа IIS контроллера домена (или получают ошибку). Приходится костылить www и мучаться с записями.
❌ Ошибка 3: Однословные имена (CORP) Single Label Domains (SLD).
Почему плохо: Устарело. Многие современные приложения (включая продукты Microsoft) просто откажутся работать с таким доменом корректно.
✅ Как сделать правильно (Best Practice)
Используйте субдомен от вашего реального публичного домена.
Пример: если ваш сайт future-admin.ru, назовите AD: 👉 corp.future-admin.ru 👉 ad.future-admin.ru 👉 int.future-admin.ru
В чем профит:
SSL: Вы можете купить Wildcard-сертификат *.corp.future-admin.ru и он будет валиден везде.
DNS: Никаких конфликтов с внешним сайтом.
Azure/Entra ID: Идеальная синхронизация с облаком без лишних суффиксов.
Собственность: Вы гарантированно владеете этим пространством имен в интернете.
💡 Совет архитектора: Даже если у вас маленькая фирма «Рога и Копыта», стройте AD так, будто завтра вы будете интегрироваться с Azure или поглощать конкурентов.
#activedirectory #windows #architecture #bestpractice #dns #security
👍1
⛔ Read-Only Friday: Манифест спокойных выходных
Коллеги, напоминаем золотое правило: В пятницу мы ничего не трогаем. Сервер работает? Не дыши на него. Клиент просит «быстренько обновить сертификат»? Переносим на понедельник.
Почему? Потому что закон Мерфи работает без выходных: если что-то может упасть после патча, оно упадет в 18:00 пятницы, когда вы уже открываете пиво.
Чем заняться админу в пятницу (Safe List):
1. 🧹 Документация. Опишите ту схему сети, которую держите в голове полгода.
2. 👀 Мониторинг. Посмотрите на красивые графики в Grafana. Не настраивайте, просто смотрите.
3. 🗑 Чистка. Удалите старые логи или снапшоты (аккуратно!).
4. 🎓 Обучение. Почитайте про Docker или новый Windows Server.
Соблюдаешь Read-Only Friday — спишь спокойно в субботу. Согласны? Ставь 🔥.
#readonlyfriday #adminlife #humor #bestpractice #stressmanagement
Коллеги, напоминаем золотое правило: В пятницу мы ничего не трогаем. Сервер работает? Не дыши на него. Клиент просит «быстренько обновить сертификат»? Переносим на понедельник.
Почему? Потому что закон Мерфи работает без выходных: если что-то может упасть после патча, оно упадет в 18:00 пятницы, когда вы уже открываете пиво.
Чем заняться админу в пятницу (Safe List):
1. 🧹 Документация. Опишите ту схему сети, которую держите в голове полгода.
2. 👀 Мониторинг. Посмотрите на красивые графики в Grafana. Не настраивайте, просто смотрите.
3. 🗑 Чистка. Удалите старые логи или снапшоты (аккуратно!).
4. 🎓 Обучение. Почитайте про Docker или новый Windows Server.
Соблюдаешь Read-Only Friday — спишь спокойно в субботу. Согласны? Ставь 🔥.
#readonlyfriday #adminlife #humor #bestpractice #stressmanagement
🔥10
💅 Linux: Хватит использовать df -h. Поставь duf
Мы привыкли к черно-белым таблицам df, в которых всё сливается. В 2025 году терминал может быть красивым и понятным.
Встречайте duf (Disk Usage/Free Utility). Это современная замена стандартной утилите, написанная на Go.
Почему это круто: ✅ Цветные графики: Визуальные бары занятого места. ✅ Группировка: Сам отделяет локальные диски, сетевые шары, флешки и псевдо-ФС (tmpfs). ✅ JSON-вывод: Удобно парсить скриптами.
Установка:
Просто наберите duf и почувствуйте разницу. Глаз архитектора должен радоваться.
#linux #cli #tools #opensource #ui
Мы привыкли к черно-белым таблицам df, в которых всё сливается. В 2025 году терминал может быть красивым и понятным.
Встречайте duf (Disk Usage/Free Utility). Это современная замена стандартной утилите, написанная на Go.
Почему это круто: ✅ Цветные графики: Визуальные бары занятого места. ✅ Группировка: Сам отделяет локальные диски, сетевые шары, флешки и псевдо-ФС (tmpfs). ✅ JSON-вывод: Удобно парсить скриптами.
Установка:
# Ubuntu/Debian
sudo apt install duf
# MacOS (Brew)
brew install duf
# Arch
pacman -S duf
Просто наберите duf и почувствуйте разницу. Глаз архитектора должен радоваться.
#linux #cli #tools #opensource #ui
🦖 Linux: Neofetch умер, да здравствует Fastfetch!
Воскресенье — время навести красоту в терминале. Мы все любили neofetch за тот самый скриншот с логотипом дистрибутива, который не стыдно показать в чате. Но проект давно заброшен.
В 2025 году стандартом стал Fastfetch. Он написан на C, работает мгновенно и поддерживает все современные OS (включая Windows 11 и macOS Sequoia).
Установка:
Зачем? Кроме эстетики, это самый быстрый способ глянуть сводку: ядро, аптайм, кол-во пакетов, разрешение экрана и тему оболочки.
Добавьте fastfetch в свой .bashrc или .zshrc — и каждый вход на сервер будет радовать глаз.
#linux #tools #customization #fun #cli
Воскресенье — время навести красоту в терминале. Мы все любили 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
На собеседованиях на позиции 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):
Linux / macOS:
Сохраняй шпаргалку, чтобы не путать CNAME с A-записью в пятницу вечером. 😉
#dns #network #basics #troubleshooting #шпаргалка #adminfuture
На картинке — база, которую должен знать любой 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
Коллеги, на календаре 1 декабря. В мире IT это означает одно: Code Freeze близко.
Если вы планировали: — Мигрировать почтовик; — Обновлять ядро корп-файервола; — Переезжать на новый Kubernetes-кластер;
...то у вас есть максимум 2 недели. После 15-20 декабря наступает негласный (или гласный) режим Read-Only.
Правила выживания в декабре:
1. Завершаем, а не начинаем. Доделываем хвосты, закрываем тикеты. Новые глобальные проекты — в бэклог на январь.
2. Закупка железа/лицензий. Бюджеты закрываются. Если вам нужен новый сервер — счет должен быть оплачен вчера.
3. График дежурств. Утвердите, кто будет "трезвым водителем" инфраструктуры в новогоднюю ночь, уже сейчас.
Не станьте тем админом, который деплоит продакшен 30 декабря. Чудес не бывает, бывают только факапы.
#adminlife #planning #codefreeze #management #bestpractice
🔥3
🕵️♂️ Linux: Что случилось, пока я спал?
Утро понедельника начинается не с кофе, а с вопроса: «Почему этот сервис лежит?». Читать весь лог за выходные — долго. Используем фильтры времени в journalctl.
Задача: Показать все ошибки, случившиеся с момента ухода с работы в пятницу (например, с 18:00).
Команда:
Если нужно посмотреть конкретный сервис:
Одной командой вы отсекаете 99% информационного шума и видите только проблемы выходных.
#linux #systemd #logs #troubleshooting #команды
Утро понедельника начинается не с кофе, а с вопроса: «Почему этот сервис лежит?». Читать весь лог за выходные — долго. Используем фильтры времени в 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
«Всё тормозит» — худшая заявка от пользователя. С чего начать диагностику? Не тыкайте наугад в 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, запускаем скрипт.
Скрипт проверяет статус и аптайм служб:
Если видите STOPPED или Uptime 0d 0h (значит, перезапускался утром) — это повод копнуть глубже.
#windows #powershell #monitoring #scripting #automation
В понедельник важно убедиться, что критические службы 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
Если вы проведете аудит безопасности (или пригласите пентестеров), первое, за что они скажут «спасибо» — это включенные протоколы 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. Размер: Было 800 МБ → Стало 20 МБ.
2. Безопасность: В проде нет компиляторов и исходного кода — хакеру сложнее развернуться.
3. Скорость: Быстрее пушится в Registry и скачивается на сервер.
Если ваши образы весят гигабайты — сегодня самое время их переписать.
#docker #devops #optimization #bestpractice #architecture
Типичная ошибка новичка: в 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) + процессы:
(t - tcp, u - udp, l - listening, p - processes, n - numeric ports)
Показать только установленные соединения с IP 192.168.1.10:
Статистика по сокетам (сколько в TIME-WAIT и т.д.):
Привыкайте к хорошему. Два символа сэкономят вам секунды каждый день.
#linux #networking #cli #tools #deprecated
Если вы все еще набираете 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 на удаленных ПК.
Код:
Что искать в отчете:
Доменных пользователей (кроме админов домена и техподдержки).
Левые локальные учетки.
Чистота прав доступа — залог спокойного сна.
#powershell #security #audit #windows #scripting
Банальная, но критичная задача. Часто техподдержка дает права локального админа пользователю "на 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): Чтобы узнать текущий пароль конкретного компа (если у вас есть права):
Итог: Админу удобно (пароли в AD), хакеру больно (пароль от одного ПК не подходит к другому).
#windows #security #laps #activedirectory #bestpractice
Если у вас на 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 (чтобы не замусорить дамп).
Команда:
Что дальше?
Ждем воспроизведения проблемы.
Жмем Ctrl+C.
Забираем файл через scp:
Открываем в Wireshark и видим красивые графики, ошибки TCP Retransmission и содержимое пакетов.
Это единственный способ доказать сетевикам, что пакеты теряются на их файерволе.
#linux #network #tcpdump #wireshark #troubleshooting
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. Она перезаписывает файл случайным мусором несколько раз перед удалением.
Команда:
Для параноиков: Добавьте это в алиасы для удаления чувствительных данных. alias rmsecure='shred -u -z -n 3'
⚠️ Важно: На SSD с функцией Wear Leveling и в облаках это не дает 100% гарантии, но это намного лучше, чем просто rm.
#linux #security #privacy #commands #cli
Команда 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