Security (Infrastructure): Смерть authorized_keys. Переходим на SSH-сертификаты
Боль: У вас 100 серверов и 10 админов. Вы копируете их публичные ключи (id_rsa.pub) в файл ~/.ssh/authorized_keys на каждый сервер.
Проблема 1: Админ уволился. Нужно удалить его ключ со 100 серверов.
Проблема 2: Админ потерял ноутбук. Его ключ скомпрометирован навсегда.
Решение: SSH Certificate Authority (CA) Netflix, Facebook и Uber не используют статические ключи. Они используют сертификаты. Это встроенная функция OpenSSH, о которой мало кто знает.
Как это работает:
Вы создаете CA: Генерируете "мастер-ключ" (храните его в сейфе/Vault).
На серверах: В sshd_config прописываете одну строчку: "Доверяй всем ключам, подписанным этим CA". (Файл authorized_keys больше не нужен!).
Вход админа:
Админ кидает свой pub-ключ в ваш Vault (или подписывающий сервис).
Вы (или SSO) проверяете его личность.
Вы подписываете его ключ своим CA со сроком жизни 1 час.
Админ заходит на серверы.
Через час: Сертификат "протухает". Доступа нет.
Взгляд архитектора: Это переход от статического доступа к эфемероному. Вам больше не нужно "ротировать" ключи или чистить серверы. Доступ выдается Just-in-Time (JIT).
#security #ssh #linux #zerotrust #architect #vault #гайд
Боль: У вас 100 серверов и 10 админов. Вы копируете их публичные ключи (id_rsa.pub) в файл ~/.ssh/authorized_keys на каждый сервер.
Проблема 1: Админ уволился. Нужно удалить его ключ со 100 серверов.
Проблема 2: Админ потерял ноутбук. Его ключ скомпрометирован навсегда.
Решение: SSH Certificate Authority (CA) Netflix, Facebook и Uber не используют статические ключи. Они используют сертификаты. Это встроенная функция OpenSSH, о которой мало кто знает.
Как это работает:
Вы создаете CA: Генерируете "мастер-ключ" (храните его в сейфе/Vault).
На серверах: В sshd_config прописываете одну строчку: "Доверяй всем ключам, подписанным этим CA". (Файл authorized_keys больше не нужен!).
Вход админа:
Админ кидает свой pub-ключ в ваш Vault (или подписывающий сервис).
Вы (или SSO) проверяете его личность.
Вы подписываете его ключ своим CA со сроком жизни 1 час.
Админ заходит на серверы.
Через час: Сертификат "протухает". Доступа нет.
Взгляд архитектора: Это переход от статического доступа к эфемероному. Вам больше не нужно "ротировать" ключи или чистить серверы. Доступ выдается Just-in-Time (JIT).
#security #ssh #linux #zerotrust #architect #vault #гайд
Linux (Архитектура): Почему epoll устарел? Революция io_uring
Боль: Высоконагруженные базы данных (PostgreSQL, Redis) и веб-серверы тратят до 30% времени CPU просто на "общение" с ядром (System Calls). Старый механизм асинхронного ввода-вывода (epoll) требует постоянных переключений контекста.
Революция: io_uring Это новый интерфейс ядра Linux (появился в 5.1, стал стандартом сейчас), который меняет всё.
В чем суть (на пальцах):
epoll: Приложение: "Ядро, есть данные?" -> Ядро: "Нет" -> Приложение ждет -> Ядро: "Есть" -> Приложение: "Дай". (Куча системных вызовов).
io_uring: Приложение и Ядро создают два кольцевых буфера (Ring Buffers) в общей памяти.
Приложение кладет запрос в буфер "Submission".
Ядро забирает его, делает работу и кладет результат в буфер "Completion".
Ноль системных вызовов (Zero Syscall overhead).
Взгляд архитектора: Если вы видите, что ваш Nginx или MySQL после обновления ядра стали работать на 20-40% быстрее — это io_uring. Архитектор должен знать: для I/O-intensive задач (файловые хранилища, БД) выбор дистрибутива с новым ядром (5.10+) — это бесплатный прирост производительности.
#linux #kernel #performance #iouring #epoll #architect #highload
Боль: Высоконагруженные базы данных (PostgreSQL, Redis) и веб-серверы тратят до 30% времени CPU просто на "общение" с ядром (System Calls). Старый механизм асинхронного ввода-вывода (epoll) требует постоянных переключений контекста.
Революция: io_uring Это новый интерфейс ядра Linux (появился в 5.1, стал стандартом сейчас), который меняет всё.
В чем суть (на пальцах):
epoll: Приложение: "Ядро, есть данные?" -> Ядро: "Нет" -> Приложение ждет -> Ядро: "Есть" -> Приложение: "Дай". (Куча системных вызовов).
io_uring: Приложение и Ядро создают два кольцевых буфера (Ring Buffers) в общей памяти.
Приложение кладет запрос в буфер "Submission".
Ядро забирает его, делает работу и кладет результат в буфер "Completion".
Ноль системных вызовов (Zero Syscall overhead).
Взгляд архитектора: Если вы видите, что ваш Nginx или MySQL после обновления ядра стали работать на 20-40% быстрее — это io_uring. Архитектор должен знать: для I/O-intensive задач (файловые хранилища, БД) выбор дистрибутива с новым ядром (5.10+) — это бесплатный прирост производительности.
#linux #kernel #performance #iouring #epoll #architect #highload
❤4
🛠️ Security: "Defender's Toolkit". 4 инструмента для анализа фишинга
Ручной разбор заголовков — это база. Но архитектор безопасности не работает в вакууме. Он использует внешнюю разведку (Threat Intelligence) и автоматизацию, чтобы подтвердить свои гипотезы.
Вот 4 инструмента, которые должны быть в закладках у каждого, кто защищает почту:
MXToolbox (https://mxtoolbox.com)
Зачем: "Аудит инфраструктуры отправителя".
Как использовать: Проверьте IP отправителя в черных списках (Blacklists). Проверьте его SPF, DKIM и DMARC записи. Если у "банка" не настроен DMARC — это красный флаг.
PhishTank (https://phishtank.com)
Зачем: "Коллективный разум".
Как использовать: Это открытая база фишинговых ссылок. Прежде чем открывать подозрительный URL в песочнице, проверьте, не знает ли о нем уже сообщество.
The Spamhaus Project (https://www.spamhaus.org)
Зачем: "Репутация IP и Доменов".
Как использовать: Это золотой стандарт IP-репутации. Если IP отправителя есть в SBL (Spamhaus Block List) — блокируйте не глядя.
eml_analyzer (https://github.com/ninoseki/eml_analyzer)
Зачем: "Локальный парсинг".
Как использовать: Утилита на Python для командной строки. Она "разбирает" .eml файл на части: извлекает вложения, ссылки, структуру HTML и заголовки. Идеально для автоматизации анализа без открытия письма в почтовом клиенте.
Взгляд архитектора: Не полагайтесь только на интуицию ("выглядит подозрительно"). Опирайтесь на факты: репутацию IP, валидность DNS-записей и структуру файла.
Happy Hunting! 🏹
#security #phishing #forensics #tools #blueteam #musthave
Ручной разбор заголовков — это база. Но архитектор безопасности не работает в вакууме. Он использует внешнюю разведку (Threat Intelligence) и автоматизацию, чтобы подтвердить свои гипотезы.
Вот 4 инструмента, которые должны быть в закладках у каждого, кто защищает почту:
MXToolbox (https://mxtoolbox.com)
Зачем: "Аудит инфраструктуры отправителя".
Как использовать: Проверьте IP отправителя в черных списках (Blacklists). Проверьте его SPF, DKIM и DMARC записи. Если у "банка" не настроен DMARC — это красный флаг.
PhishTank (https://phishtank.com)
Зачем: "Коллективный разум".
Как использовать: Это открытая база фишинговых ссылок. Прежде чем открывать подозрительный URL в песочнице, проверьте, не знает ли о нем уже сообщество.
The Spamhaus Project (https://www.spamhaus.org)
Зачем: "Репутация IP и Доменов".
Как использовать: Это золотой стандарт IP-репутации. Если IP отправителя есть в SBL (Spamhaus Block List) — блокируйте не глядя.
eml_analyzer (https://github.com/ninoseki/eml_analyzer)
Зачем: "Локальный парсинг".
Как использовать: Утилита на Python для командной строки. Она "разбирает" .eml файл на части: извлекает вложения, ссылки, структуру HTML и заголовки. Идеально для автоматизации анализа без открытия письма в почтовом клиенте.
Взгляд архитектора: Не полагайтесь только на интуицию ("выглядит подозрительно"). Опирайтесь на факты: репутацию IP, валидность DNS-записей и структуру файла.
Happy Hunting! 🏹
#security #phishing #forensics #tools #blueteam #musthave
🔥2
⚡ Linux: nice — для слабаков. Управляем Real-Time приоритетами с chrt
Боль: У вас есть критически важный процесс (например, VoIP-шлюз, база данных или процесс сбора метрик), который "заикается" или тормозит, когда сервер нагружен архивацией логов.
Реакция админа: renice -n -20 <PID>. (Это не поможет, если CPU загружен на 100%. Планировщик всё равно будет "честно" делить время).
Реакция архитектора: Использовать Real-Time Scheduler (SCHED_FIFO или SCHED_RR).
chrt — это утилита для управления планировщиком процессов.
Как это работает: Обычные процессы работают в классе SCHED_OTHER. Real-Time процессы (RT) имеют абсолютный приоритет. Если RT-процесс хочет CPU, ядро останавливает всё остальное, чтобы дать ему ресурсы.
Команды:
1. Посмотреть текущую политику процесса:
2. Сделать процесс "Бессмертным" (SCHED_FIFO): Внимание! Если этот процесс "зависнет" и съест 100% CPU, ваша система намертво зависнет.
Взгляд архитектора: Это инструмент для Low Latency систем. Но с великой силой приходит великая ответственность. Архитектор использует chrt только тогда, когда понимает риски и изолирует такие процессы (например, через isolcpus в параметрах ядра).
#linux #performance #kernel #realtime #sre #chrt #гайд
Боль: У вас есть критически важный процесс (например, VoIP-шлюз, база данных или процесс сбора метрик), который "заикается" или тормозит, когда сервер нагружен архивацией логов.
Реакция админа: renice -n -20 <PID>. (Это не поможет, если CPU загружен на 100%. Планировщик всё равно будет "честно" делить время).
Реакция архитектора: Использовать Real-Time Scheduler (SCHED_FIFO или SCHED_RR).
chrt — это утилита для управления планировщиком процессов.
Как это работает: Обычные процессы работают в классе SCHED_OTHER. Real-Time процессы (RT) имеют абсолютный приоритет. Если RT-процесс хочет CPU, ядро останавливает всё остальное, чтобы дать ему ресурсы.
Команды:
1. Посмотреть текущую политику процесса:
chrt -p 1234
# pid 1234's current scheduling policy: SCHED_OTHER
# pid 1234's current scheduling priority: 0
2. Сделать процесс "Бессмертным" (SCHED_FIFO): Внимание! Если этот процесс "зависнет" и съест 100% CPU, ваша система намертво зависнет.
# -f: FIFO (First In, First Out)
# -p 10: Приоритет 10 (от 1 до 99)
sudo chrt -f -p 10 1234
Взгляд архитектора: Это инструмент для Low Latency систем. Но с великой силой приходит великая ответственность. Архитектор использует chrt только тогда, когда понимает риски и изолирует такие процессы (например, через isolcpus в параметрах ядра).
#linux #performance #kernel #realtime #sre #chrt #гайд
🔒 Windows: WinRM over HTTPS. Почему TrustedHosts="*" — это дыра
Боль: Вы управляете серверами через PowerShell Remoting (Enter-PSSession). Серверы не в домене (DMZ) или в другой рабочей группе.
Реакция админа: Set-Item WSMan:\localhost\Client\TrustedHosts -Value *. Перевод: "Я доверяю любому серверу, к которому подключаюсь. Если хакер перехватит DNS и подставит свой сервер, я отдам ему свои пароли".
Реакция архитектора: Настроить WinRM over HTTPS.
Это не про шифрование (WinRM и так шифруется по HTTP). Это про аутентификацию сервера. Вы должны быть уверены, что подключаетесь именно к SRV-01.
Настройка (на целевом сервере):
1. Создаем сертификат (если нет PKI):
2. Создаем HTTPS-листенер:
3. Открываем порт 5986:
Теперь подключаемся:
Если сертификат самоподписанный, на клиенте нужно один раз добавить его в доверенные или использовать -SkipCACheck (для тестов).
Взгляд архитектора: TrustedHosts — это костыль. HTTPS — это стандарт безопасности. В недоверенных сетях (DMZ, Cloud) вы обязаны проверять подлинность хоста.
#windows #powershell #security #winrm #https #sysadmin #гайд
Боль: Вы управляете серверами через PowerShell Remoting (Enter-PSSession). Серверы не в домене (DMZ) или в другой рабочей группе.
Реакция админа: Set-Item WSMan:\localhost\Client\TrustedHosts -Value *. Перевод: "Я доверяю любому серверу, к которому подключаюсь. Если хакер перехватит DNS и подставит свой сервер, я отдам ему свои пароли".
Реакция архитектора: Настроить WinRM over HTTPS.
Это не про шифрование (WinRM и так шифруется по HTTP). Это про аутентификацию сервера. Вы должны быть уверены, что подключаетесь именно к SRV-01.
Настройка (на целевом сервере):
1. Создаем сертификат (если нет PKI):
$Cert = New-SelfSignedCertificate -DnsName "srv-01.dmz.local" -CertStoreLocation Cert:\LocalMachine\My
2. Создаем HTTPS-листенер:
New-Item -Path WSMan:\localhost\Listener -Transport HTTPS -Address * -CertificateThumbprint $Cert.Thumbprint -Force
3. Открываем порт 5986:
New-NetFirewallRule -DisplayName "WinRM HTTPS" -Direction Inbound -LocalPort 5986 -Protocol TCP -Action Allow
Теперь подключаемся:
Enter-PSSession -ComputerName srv-01.dmz.local -UseSSL
Если сертификат самоподписанный, на клиенте нужно один раз добавить его в доверенные или использовать -SkipCACheck (для тестов).
Взгляд архитектора: TrustedHosts — это костыль. HTTPS — это стандарт безопасности. В недоверенных сетях (DMZ, Cloud) вы обязаны проверять подлинность хоста.
#windows #powershell #security #winrm #https #sysadmin #гайд
🗄️ Storage: Почему локальные диски умерли. Встречаем S3 (MinIO)
Боль: Ваше приложение (на PHP, Python, Go) позволяет пользователям загружать аватарки.
* Вариант 1: Сохранять в папку /var/www/uploads. (Проблема: Как масштабировать на 2 сервера? Нужен NFS или rsync — это медленно и сложно).
* Вариант 2: Сохранять в базу данных (BLOB). (Проблема: БД раздувается, бэкапы становятся огромными).
Решение: Object Storage (S3 API). Архитектор отделяет хранение (Storage) от вычислений (Compute).
MinIO — это самый популярный self-hosted S3-совместимый сервер.
Почему это круто:
1. Стандарт: S3 API поддерживают все (Veeam, Terraform, все языки программирования).
2. Масштабируемость: MinIO легко собирается в кластер.
3. Простота: Одно приложение для всех файлов.
Запуск (Docker):
Теперь ваше приложение просто шлет PUT запрос на http://minio:9000. И ему всё равно, на каком сервере оно запущено.
Взгляд архитектора: Использование локальной файловой системы для данных приложения — это антипаттерн в современном IT (12-Factor App). Переход на S3 API делает ваши приложения Cloud Native (готовыми к облаку) сразу.
#devops #storage #s3 #minio #docker #architect #гайд
Боль: Ваше приложение (на PHP, Python, Go) позволяет пользователям загружать аватарки.
* Вариант 1: Сохранять в папку /var/www/uploads. (Проблема: Как масштабировать на 2 сервера? Нужен NFS или rsync — это медленно и сложно).
* Вариант 2: Сохранять в базу данных (BLOB). (Проблема: БД раздувается, бэкапы становятся огромными).
Решение: Object Storage (S3 API). Архитектор отделяет хранение (Storage) от вычислений (Compute).
MinIO — это самый популярный self-hosted S3-совместимый сервер.
Почему это круто:
1. Стандарт: S3 API поддерживают все (Veeam, Terraform, все языки программирования).
2. Масштабируемость: MinIO легко собирается в кластер.
3. Простота: Одно приложение для всех файлов.
Запуск (Docker):
docker run -d \
-p 9000:9000 -p 9001:9001 \
--name minio \
-v /mnt/data:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=SuperSecretPassword" \
minio/minio server /data --console-address ":9001"
Теперь ваше приложение просто шлет PUT запрос на http://minio:9000. И ему всё равно, на каком сервере оно запущено.
Взгляд архитектора: Использование локальной файловой системы для данных приложения — это антипаттерн в современном IT (12-Factor App). Переход на S3 API делает ваши приложения Cloud Native (готовыми к облаку) сразу.
#devops #storage #s3 #minio #docker #architect #гайд
❤2
🎂 40 лет Windows: От плиточного интерфейса до AI-помощников
Ровно 40 лет назад, 20 ноября 1985 года, Microsoft выпустила Windows 1.0.
Сейчас сложно представить, но тогда идея графического интерфейса на IBM PC была революцией. Это была не ОС, а графическая надстройка над MS-DOS за $99.
Интересные факты о "прабабушке":
Никакого перекрытия: Окна не могли накладываться друг на друга. Только "плитка" (Tiled windows).
Железо: Требовалось 256 КБ памяти и два дисковода. На 512 КБ система уже "летала" (по меркам того времени), хотя критики сравнивали её скорость с "патокой в Арктике".
Наследие: Paintbrush (предок Paint), Notepad, Calculator, Clipboard — эти приложения с нами уже 40 лет.
Рынок встретил её прохладно, но Билл Гейтс не сдался. Через пару лет вышли Windows 2.0 и легендарная 3.0, которые сделали GUI стандартом.
Взгляд архитектора: История Windows 1.0 учит нас главному принципу IT: Инновации редко бывают идеальными с первого раза. Важно не то, как продукт стартовал, а то, как он развивался. Windows 1.0 была "сырой", но она заложила фундамент экосистемы, в которой мы работаем сегодня.
#windows #history #microsoft #anniversary #it #tech
Ровно 40 лет назад, 20 ноября 1985 года, Microsoft выпустила Windows 1.0.
Сейчас сложно представить, но тогда идея графического интерфейса на IBM PC была революцией. Это была не ОС, а графическая надстройка над MS-DOS за $99.
Интересные факты о "прабабушке":
Никакого перекрытия: Окна не могли накладываться друг на друга. Только "плитка" (Tiled windows).
Железо: Требовалось 256 КБ памяти и два дисковода. На 512 КБ система уже "летала" (по меркам того времени), хотя критики сравнивали её скорость с "патокой в Арктике".
Наследие: Paintbrush (предок Paint), Notepad, Calculator, Clipboard — эти приложения с нами уже 40 лет.
Рынок встретил её прохладно, но Билл Гейтс не сдался. Через пару лет вышли Windows 2.0 и легендарная 3.0, которые сделали GUI стандартом.
Взгляд архитектора: История Windows 1.0 учит нас главному принципу IT: Инновации редко бывают идеальными с первого раза. Важно не то, как продукт стартовал, а то, как он развивался. Windows 1.0 была "сырой", но она заложила фундамент экосистемы, в которой мы работаем сегодня.
#windows #history #microsoft #anniversary #it #tech
🔥2
🐧 Linux: LD_PRELOAD — Руткит для бедных (и для админов)
Знаете ли вы, что можно перехватить и подменить любую функцию в Linux-программе, не перекомпилируя её?
Это делает переменная окружения LD_PRELOAD. Она говорит динамическому линковщику: "Сначала загрузи мою библиотеку, а потом всё остальное".
Как это используют:
Хакеры (Userland Rootkits): Создают библиотеку, которая переопределяет функцию readdir(). Когда админ пишет ls, команда вызывает подмененную функцию, которая показывает все файлы, кроме вредоносных.
Админы (Отладка и Фиксы): Можно подменить time(), чтобы протестировать поведение программы в "будущем", или перехватить connect(), чтобы перенаправить трафик без изменения конфигов.
Как обнаружить (Аудит): Проверьте переменные окружения запущенных процессов.
Также проверьте файл /etc/ld.so.preload. Если там есть незнакомые библиотеки — у вас проблемы.
Взгляд архитектора: Механизмы, созданные для гибкости (LD_PRELOAD), часто становятся векторами атак. Архитектор должен знать "темную сторону" своих инструментов.
#linux #security #rootkit #ldpreload #hack #sysadmin #гайд
Знаете ли вы, что можно перехватить и подменить любую функцию в Linux-программе, не перекомпилируя её?
Это делает переменная окружения LD_PRELOAD. Она говорит динамическому линковщику: "Сначала загрузи мою библиотеку, а потом всё остальное".
Как это используют:
Хакеры (Userland Rootkits): Создают библиотеку, которая переопределяет функцию readdir(). Когда админ пишет ls, команда вызывает подмененную функцию, которая показывает все файлы, кроме вредоносных.
Админы (Отладка и Фиксы): Можно подменить time(), чтобы протестировать поведение программы в "будущем", или перехватить connect(), чтобы перенаправить трафик без изменения конфигов.
Как обнаружить (Аудит): Проверьте переменные окружения запущенных процессов.
# Ищем процессы с установленным LD_PRELOAD
sudo grep -a "LD_PRELOAD" /proc/*/environ
Также проверьте файл /etc/ld.so.preload. Если там есть незнакомые библиотеки — у вас проблемы.
Взгляд архитектора: Механизмы, созданные для гибкости (LD_PRELOAD), часто становятся векторами атак. Архитектор должен знать "темную сторону" своих инструментов.
#linux #security #rootkit #ldpreload #hack #sysadmin #гайд
🌐 Инструмент: gping — Пинг с графиком в терминале
Обычный ping скучен. Вы видите только цифры и не чувствуете "пульс" сети.
gping — это тот же пинг, но с живым ASCII-графиком прямо в консоли.
Почему это круто:
* Вы визуально видите "спайки" (скачки задержки).
* Вы видите джиттер (разброс).
* Можно пинговать несколько хостов одновременно и сравнивать графики.
Установка:
Использование:
Взгляд архитектора: Визуализация — ключ к быстрому пониманию проблемы. Когда вы видите график, ваш мозг находит аномалии быстрее, чем когда вы читаете колонки цифр.
#tools #cli #networking #ping #gping #devops #musthave
Обычный ping скучен. Вы видите только цифры и не чувствуете "пульс" сети.
gping — это тот же пинг, но с живым ASCII-графиком прямо в консоли.
Почему это круто:
* Вы визуально видите "спайки" (скачки задержки).
* Вы видите джиттер (разброс).
* Можно пинговать несколько хостов одновременно и сравнивать графики.
Установка:
# Linux (через snap или пакетный менеджер)
sudo snap install gping
# macOS
brew install gping
Использование:
# Пингуем Google и Яндекс одновременно
gping google.com ya.ru
Взгляд архитектора: Визуализация — ключ к быстрому пониманию проблемы. Когда вы видите график, ваш мозг находит аномалии быстрее, чем когда вы читаете колонки цифр.
#tools #cli #networking #ping #gping #devops #musthave
🎲 Пятничная пасхалка: "Режим Бога" в Windows
Хотите получить доступ ко всем настройкам Windows в одной папке? Старый трюк, который работает даже в Windows 11.
God Mode (Режим Бога) — это специальная папка, которая собирает ссылки на все элементы Панели управления и Администрирования.
Как сделать:
1. Создайте новую папку на рабочем столе.
2. Назовите её (скопируйте целиком):
3. Иконка папки изменится.
Откройте её — и у вас под рукой более 200 инструментов настройки, от "Учетных записей" до "Дефрагментации", в виде удобного списка с поиском.
Взгляд архитектора: Это не магия, а использование CLSID (идентификаторов классов) Windows. Знание того, как система устроена под капотом (реестр, GUID, COM-объекты), позволяет делать вещи, недоступные через обычный GUI.
#windows #tricks #godmode #lifehack #sysadmin #friday
Хотите получить доступ ко всем настройкам Windows в одной папке? Старый трюк, который работает даже в Windows 11.
God Mode (Режим Бога) — это специальная папка, которая собирает ссылки на все элементы Панели управления и Администрирования.
Как сделать:
1. Создайте новую папку на рабочем столе.
2. Назовите её (скопируйте целиком):
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
3. Иконка папки изменится.
Откройте её — и у вас под рукой более 200 инструментов настройки, от "Учетных записей" до "Дефрагментации", в виде удобного списка с поиском.
Взгляд архитектора: Это не магия, а использование CLSID (идентификаторов классов) Windows. Знание того, как система устроена под капотом (реестр, GUID, COM-объекты), позволяет делать вещи, недоступные через обычный GUI.
#windows #tricks #godmode #lifehack #sysadmin #friday
👍2
🦀 Linux: nethogs — хорошо, а bandwhich — красивее. Сетевой мониторинг на Rust
Мы уже говорили про nethogs для поиска процессов, забивающих канал. Но прогресс не стоит на месте.
Встречайте bandwhich (ранее what). Это современный, написанный на Rust инструмент, который показывает использование сети по процессам, соединениям и удаленным IP в реальном времени.
Почему он крут:
Детализация: Он показывает не только "какой процесс", но и "куда" (DNS-имя или IP) он стучится.
UI: Адаптивный и очень наглядный интерфейс в терминале.
Rust: Работает быстро и безопасно.
Установка:
Запуск:
Взгляд архитектора: Инструменты должны эволюционировать. Использование современного софта на Rust снижает накладные расходы на мониторинг. bandwhich — это отличный пример инструмента, который дает максимум контекста (Процесс -> IP -> Скорость) за одну секунду взгляда на экран.
#linux #rust #networking #monitoring #bandwhich #tools #гайд
Мы уже говорили про nethogs для поиска процессов, забивающих канал. Но прогресс не стоит на месте.
Встречайте bandwhich (ранее what). Это современный, написанный на Rust инструмент, который показывает использование сети по процессам, соединениям и удаленным IP в реальном времени.
Почему он крут:
Детализация: Он показывает не только "какой процесс", но и "куда" (DNS-имя или IP) он стучится.
UI: Адаптивный и очень наглядный интерфейс в терминале.
Rust: Работает быстро и безопасно.
Установка:
# Arch Linux
pacman -S bandwhich
# Ubuntu/Debian (через snap, если нет в репо)
sudo snap install bandwhich
# Или через Cargo (если вы уже осваиваете Rust)
cargo install bandwhich
Запуск:
sudo bandwhich
Взгляд архитектора: Инструменты должны эволюционировать. Использование современного софта на Rust снижает накладные расходы на мониторинг. bandwhich — это отличный пример инструмента, который дает максимум контекста (Процесс -> IP -> Скорость) за одну секунду взгляда на экран.
#linux #rust #networking #monitoring #bandwhich #tools #гайд
❤2
♻️ AD: Кнопка "Отменить удаление". Почему у вас выключена AD Recycle Bin?
Сценарий: Утро субботы. HelpDesk "случайно" удалил целое OU с бухгалтерией. Вариант А (Плохой): Перезагружать DC в режим DSRM, восстанавливать ntds.dit из бэкапа, делать Authoritative Restore. Простой — часы. Вариант Б (Архитектурный): Восстановить объекты за 3 секунды через Active Directory Recycle Bin.
Эта фича появилась в Server 2008 R2, но она отключена по умолчанию.
Как проверить и включить (PowerShell):
Проверка статуса:
Если EnabledScopes пустое — корзина выключена!
Включение (Внимание! Это необратимо!):
Восстановление удаленного объекта (Пример):
Взгляд архитектора: Включение корзины — это нулевой шаг при настройке любого домена. Это превращает катастрофу (потерю данных) в мелкий инцидент. Если у вас она выключена — сделайте это прямо сейчас.
#windows #activedirectory #recovery #powershell #bestpractice #гайд
Сценарий: Утро субботы. HelpDesk "случайно" удалил целое OU с бухгалтерией. Вариант А (Плохой): Перезагружать DC в режим DSRM, восстанавливать ntds.dit из бэкапа, делать Authoritative Restore. Простой — часы. Вариант Б (Архитектурный): Восстановить объекты за 3 секунды через Active Directory Recycle Bin.
Эта фича появилась в Server 2008 R2, но она отключена по умолчанию.
Как проверить и включить (PowerShell):
Проверка статуса:
Get-ADOptionalFeature -Filter 'Name -like "Recycle Bin Feature"'
Если EnabledScopes пустое — корзина выключена!
Включение (Внимание! Это необратимо!):
Enable-ADOptionalFeature 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target 'corp.local'
Восстановление удаленного объекта (Пример):
Get-ADObject -Filter 'Name -like "Ivanov"' -IncludeDeletedObjects | Restore-ADObject
Взгляд архитектора: Включение корзины — это нулевой шаг при настройке любого домена. Это превращает катастрофу (потерю данных) в мелкий инцидент. Если у вас она выключена — сделайте это прямо сейчас.
#windows #activedirectory #recovery #powershell #bestpractice #гайд
🔥2
🛡 Проект на выходные: Свой VPN за 2 минуты. wg-easy
Иметь свой VPN — это гигиена. Подключаться к домашнему серверу, безопасно сидеть через Wi-Fi в кафе или обходить ограничения.
WireGuard — это стандарт. Быстрый, легкий, современный. Но настраивать конфиги и ключи вручную — это долго.
wg-easy — это Docker-контейнер, который дает вам:
1. WireGuard сервер.
2. Веб-интерфейс для управления клиентами.
3. QR-коды для мгновенного подключения с телефона.
Готовый docker-compose.yml:
Запуск: docker-compose up -d. Использование: Зайдите на http://<ip>:51821, создайте клиента, отсканируйте QR-код телефоном. Вы в безопасности.
Взгляд архитектора: Это пример Self-Service подхода. Сложная технология (VPN) упакована в удобный продукт. Идеально для Home Lab или предоставления доступа небольшой команде разработчиков.
#linux #docker #vpn #wireguard #wgeasy #selfhosted #weekendproject #гайд
Иметь свой VPN — это гигиена. Подключаться к домашнему серверу, безопасно сидеть через Wi-Fi в кафе или обходить ограничения.
WireGuard — это стандарт. Быстрый, легкий, современный. Но настраивать конфиги и ключи вручную — это долго.
wg-easy — это Docker-контейнер, который дает вам:
1. WireGuard сервер.
2. Веб-интерфейс для управления клиентами.
3. QR-коды для мгновенного подключения с телефона.
Готовый docker-compose.yml:
version: "3.8"
services:
wg-easy:
environment:
# Замените на ваш внешний IP или домен!
- WG_HOST=my.domain.com
- PASSWORD=super_secret_password
- WG_PORT=51820
- WG_DEFAULT_Address=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
volumes:
- ./wg-easy-data:/etc/wireguard
ports:
- "51820:51820/udp" # Трафик VPN
- "51821:51821/tcp" # Веб-интерфейс
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
Запуск: docker-compose up -d. Использование: Зайдите на http://<ip>:51821, создайте клиента, отсканируйте QR-код телефоном. Вы в безопасности.
Взгляд архитектора: Это пример Self-Service подхода. Сложная технология (VPN) упакована в удобный продукт. Идеально для Home Lab или предоставления доступа небольшой команде разработчиков.
#linux #docker #vpn #wireguard #wgeasy #selfhosted #weekendproject #гайд
❤5👎2
Linux (Сеть): Wireshark в терминале. Встречаем termshark
Боль: На удаленном сервере творится сетевая дичь. ping проходит, но сервис не отвечает. Нужно смотреть пакеты.
Проблема: Запускать tcpdump и читать сырой hex-дамп глазами — больно. Копировать .pcap на свою машину для Wireshark — долго и не всегда безопасно.
Решение: termshark
Это TUI (Terminal User Interface) для Wireshark. Вы получаете всю мощь визуального анализатора пакетов прямо в SSH-сессии.
Почему это топ:
Визуализация в консоли: Он рисует привычное трехпанельное окно (список пакетов, детализация, байт-код) прямо в терминале.
Фильтры Wireshark: Вы можете использовать привычные http.request.method == "POST" или ip.addr == 1.2.3.4 прямо там.
Не требует X11/GUI: Работает на любом headless-сервере.
Установка (статический бинарник, не требует зависимостей!):
Взгляд архитектора: Когда tcpdump слишком сложен, а GUI недоступен, termshark — спасение. Это инструмент, который превращает "я не понимаю, что с сетью" в "ага, вижу TCP Retransmission на порту 443".
#linux #networking #wireshark #termshark #cli #troubleshooting #гайд
Боль: На удаленном сервере творится сетевая дичь. ping проходит, но сервис не отвечает. Нужно смотреть пакеты.
Проблема: Запускать tcpdump и читать сырой hex-дамп глазами — больно. Копировать .pcap на свою машину для Wireshark — долго и не всегда безопасно.
Решение: termshark
Это TUI (Terminal User Interface) для Wireshark. Вы получаете всю мощь визуального анализатора пакетов прямо в SSH-сессии.
Почему это топ:
Визуализация в консоли: Он рисует привычное трехпанельное окно (список пакетов, детализация, байт-код) прямо в терминале.
Фильтры Wireshark: Вы можете использовать привычные http.request.method == "POST" или ip.addr == 1.2.3.4 прямо там.
Не требует X11/GUI: Работает на любом headless-сервере.
Установка (статический бинарник, не требует зависимостей!):
# Скачиваем и запускаем (пример для amd64)
wget https://github.com/gcla/termshark/releases/latest/download/termshark_linux_x64.tar.gz
tar -zxvf termshark_linux_x64.tar.gz
sudo mv termshark_linux_x64/termshark /usr/local/bin/
# Запуск (слушаем интерфейс eth0)
sudo termshark -i eth0
Взгляд архитектора: Когда tcpdump слишком сложен, а GUI недоступен, termshark — спасение. Это инструмент, который превращает "я не понимаю, что с сетью" в "ага, вижу TCP Retransmission на порту 443".
#linux #networking #wireshark #termshark #cli #troubleshooting #гайд
🥴2
Windows (Диагностика): "Что вчера сломалось?" Скрытый Монитор стабильности
Боль: Сервер начал глючить сегодня утром. Вы открываете Event Viewer — там 10 000 событий "Information" и пара непонятных ошибок. Вы пытаетесь понять: "Что изменилось вчера?".
Реакция админа: Час копаться в логах Windows Update и MSI Installer.
Реакция профи: Открыть Монитор стабильности системы (Reliability Monitor).
Это встроенная, но глубоко спрятанная оснастка, которая ведет визуальный таймлайн "здоровья" системы.
Что вы увидите: График стабильности от 1 до 10 по дням. И, самое главное, четкий список событий по датам:
🔴 Критические события: "Вчера в 15:30 упал процесс sqlservr.exe".
🟡 Предупреждения: "Неудачная попытка установки обновления".
ℹ️ Информационные (Самое важное!): "Вчера в 14:00 был установлен новый драйвер сетевой карты" или "Установлено приложение Х".
Взгляд архитектора: Это лучший ответ на вопрос "Кто что трогал?". Вместо копания в логах вы видите причину и следствие на одном экране. "Ага, вчера обновился драйвер (Info), а через час начал падать SQL (Error)".
#windows #troubleshooting #diagnostics #sysadmin #perfmon #logs #гайд
Боль: Сервер начал глючить сегодня утром. Вы открываете Event Viewer — там 10 000 событий "Information" и пара непонятных ошибок. Вы пытаетесь понять: "Что изменилось вчера?".
Реакция админа: Час копаться в логах Windows Update и MSI Installer.
Реакция профи: Открыть Монитор стабильности системы (Reliability Monitor).
Это встроенная, но глубоко спрятанная оснастка, которая ведет визуальный таймлайн "здоровья" системы.
Как открыть: Win + R -> perfmon /rel
Что вы увидите: График стабильности от 1 до 10 по дням. И, самое главное, четкий список событий по датам:
🔴 Критические события: "Вчера в 15:30 упал процесс sqlservr.exe".
🟡 Предупреждения: "Неудачная попытка установки обновления".
ℹ️ Информационные (Самое важное!): "Вчера в 14:00 был установлен новый драйвер сетевой карты" или "Установлено приложение Х".
Взгляд архитектора: Это лучший ответ на вопрос "Кто что трогал?". Вместо копания в логах вы видите причину и следствие на одном экране. "Ага, вчера обновился драйвер (Info), а через час начал падать SQL (Error)".
#windows #troubleshooting #diagnostics #sysadmin #perfmon #logs #гайд
🔥5
Ops (Повседневное): Мгновенная проверка SSL без браузера
Боль: Мониторинг "закричал", что сертификат на my-app.com протух. Вам нужно быстро проверить реальную дату окончания с консоли сервера, чтобы понять, обновился он или нет.
Реакция админа: Идти в браузер, нажимать на замочек, смотреть детали. (Долго и не всегда возможно из закрытого контура).
Решение: Однострочник на openssl
Эта команда стучится на сервер, забирает сертификат и выводит только дату его окончания.
Команда (запомните или запишите в алиас):
Замените google.com на свой домен.
Результат: notAfter=Nov 17 08:22:09 2025 GMT
Взгляд админа: Это база. Никаких сторонних сайтов-чекеров. Чистый, быстрый способ проверить SSL/TLS прямо из терминала, который легко встраивается в скрипты или используется для быстрой диагностики при авариях.
#linux #ssl #security #openssl #cli #sysadmin #troubleshooting #oneliner
Боль: Мониторинг "закричал", что сертификат на my-app.com протух. Вам нужно быстро проверить реальную дату окончания с консоли сервера, чтобы понять, обновился он или нет.
Реакция админа: Идти в браузер, нажимать на замочек, смотреть детали. (Долго и не всегда возможно из закрытого контура).
Решение: Однострочник на openssl
Эта команда стучится на сервер, забирает сертификат и выводит только дату его окончания.
Команда (запомните или запишите в алиас):
echo | openssl s_client -servername google.com -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate
Замените google.com на свой домен.
Результат: notAfter=Nov 17 08:22:09 2025 GMT
Взгляд админа: Это база. Никаких сторонних сайтов-чекеров. Чистый, быстрый способ проверить SSL/TLS прямо из терминала, который легко встраивается в скрипты или используется для быстрой диагностики при авариях.
#linux #ssl #security #openssl #cli #sysadmin #troubleshooting #oneliner
🛡 Linux Security: Базовый аудит SSH за 5 минут
SSH — главная дверь в ваш сервер. Если она открыта слишком широко, ждите гостей (ботов). Вот 5 настроек в /etc/ssh/sshd_config, которые нужно проверить прямо сейчас.
1. Запрещаем вход от root Администратор должен заходить под своим пользователем и повышать привилегии через sudo.
2. Отключаем вход по паролям Только SSH-ключи. Пароли брутфорсятся, ключи — нет (в разумные сроки).
3. Меняем стандартный порт (Опционально, но полезно) Это не защита от целенаправленной атаки, но снизит шум в логах от 99% скрипт-кидди и ботов.
4. Ограничиваем пользователей Если на сервере 10 юзеров, а по SSH ходить нужно только двоим — укажите их явно.
5. Отключаем X11 Forwarding Если вы не запускаете графические приложения удаленно (а на сервере вы этого делать не должны), закрываем вектор атаки.
📌 Финал: Проверяем конфиг и перезапускаем службу:
#linux #security #ssh #чеклисты #adminfuture
SSH — главная дверь в ваш сервер. Если она открыта слишком широко, ждите гостей (ботов). Вот 5 настроек в /etc/ssh/sshd_config, которые нужно проверить прямо сейчас.
1. Запрещаем вход от root Администратор должен заходить под своим пользователем и повышать привилегии через sudo.
PermitRootLogin no
2. Отключаем вход по паролям Только SSH-ключи. Пароли брутфорсятся, ключи — нет (в разумные сроки).
PasswordAuthentication no
PubkeyAuthentication yes
3. Меняем стандартный порт (Опционально, но полезно) Это не защита от целенаправленной атаки, но снизит шум в логах от 99% скрипт-кидди и ботов.
Port 2222 # Не забудьте открыть порт в firewall перед рестартом!
4. Ограничиваем пользователей Если на сервере 10 юзеров, а по SSH ходить нужно только двоим — укажите их явно.
AllowUsers admin_user deploy_bot
5. Отключаем X11 Forwarding Если вы не запускаете графические приложения удаленно (а на сервере вы этого делать не должны), закрываем вектор атаки.
X11Forwarding no
📌 Финал: Проверяем конфиг и перезапускаем службу:
sshd -t
systemctl restart sshd
#linux #security #ssh #чеклисты #adminfuture
🗿3
👻 PowerShell: Охота на «мертвые» души в AD
Одна из задач архитектора — гигиена инфраструктуры. Учетные записи уволенных сотрудников или забытые сервисные аккаунты — это дыра в безопасности.
Вот команда, которая найдет всех пользователей, не входивших в домен более 90 дней, и сразу отключит их (с подтверждением).
Команда:
Разбор:
* Search-ADAccount -AccountInactive: встроенный командлет для поиска неактивных объектов.
* -TimeSpan 90.00:00:00: задаем порог (90 дней).
* -UsersOnly: игнорируем компьютеры.
* Where-Object { $_.Enabled -eq $true }: фильтруем тех, кто еще активен (зачем отключать уже отключенных?).
* Disable-ADAccount: собственно, действие.
* -WhatIf: Важно! Уберите этот флаг только когда убедитесь, что скрипт не положит половину офиса.
💡 Совет: Поставьте это на Task Scheduler раз в месяц с выводом в лог, вместо автоматического отключения, чтобы сначала анализировать список.
#windows #powershell #activedirectory #security #команды
Одна из задач архитектора — гигиена инфраструктуры. Учетные записи уволенных сотрудников или забытые сервисные аккаунты — это дыра в безопасности.
Вот команда, которая найдет всех пользователей, не входивших в домен более 90 дней, и сразу отключит их (с подтверждением).
Команда:
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly |
Where-Object { $_.Enabled -eq $true } |
Disable-ADAccount -PassThru -WhatIf
Разбор:
* Search-ADAccount -AccountInactive: встроенный командлет для поиска неактивных объектов.
* -TimeSpan 90.00:00:00: задаем порог (90 дней).
* -UsersOnly: игнорируем компьютеры.
* Where-Object { $_.Enabled -eq $true }: фильтруем тех, кто еще активен (зачем отключать уже отключенных?).
* Disable-ADAccount: собственно, действие.
* -WhatIf: Важно! Уберите этот флаг только когда убедитесь, что скрипт не положит половину офиса.
💡 Совет: Поставьте это на Task Scheduler раз в месяц с выводом в лог, вместо автоматического отключения, чтобы сначала анализировать список.
#windows #powershell #activedirectory #security #команды
🆚 Битва мониторинга: Zabbix vs Prometheus
Выбор системы мониторинга — это архитектурное решение. Нет «плохого» инструмента, есть неподходящий под задачу. Разберем, когда и что выбирать.
1. Zabbix: Классический «Комбайн»
Модель: Push & Pull. Централизованный сервер, агенты на хостах.
Сила: «Все в одном». Графики, алерты, карты сети, инвентаризация — всё из коробки. Отлично мониторит "железо", OS, стандартные сервисы.
Слабость: Тяжеловесный. Сложнее масштабировать на тысячи микросервисов. Хранит данные в SQL (MySQL/PostgreSQL), что может стать узким местом.
Вердикт: Идеален для Enterprise, статической инфраструктуры (Pet-servers), мониторинга сетевого оборудования.
2. Prometheus: Герой Cloud-Native
Модель: Pull (в основном). Сервер сам ходит к сервисам и забирает метрики (scraping).
Сила: Работает с Time Series Database (TSDB) — невероятно быстр для метрик. Создан для динамических сред (Kubernetes, Docker), где контейнеры живут минуты. Язык запросов PromQL очень гибок.
Слабость: Сам по себе «голый». Для визуализации нужен Grafana, для алертов — Alertmanager. Не хранит долгие исторические данные без доп. настройки (Thanos/VictoriaMetrics).
Вердикт: Стандарт де-факто для DevOps, микросервисов и K8s.
🏆 Итог: Строите завод или офис с принтерами и свичами? Zabbix. Поднимаете HighLoad кластер в Kubernetes? Prometheus + Grafana. Умный админ часто использует связку: Zabbix для железа, Prometheus для приложений.
#monitoring #zabbix #prometheus #devops #architecture #сравнение
Выбор системы мониторинга — это архитектурное решение. Нет «плохого» инструмента, есть неподходящий под задачу. Разберем, когда и что выбирать.
1. Zabbix: Классический «Комбайн»
Модель: Push & Pull. Централизованный сервер, агенты на хостах.
Сила: «Все в одном». Графики, алерты, карты сети, инвентаризация — всё из коробки. Отлично мониторит "железо", OS, стандартные сервисы.
Слабость: Тяжеловесный. Сложнее масштабировать на тысячи микросервисов. Хранит данные в SQL (MySQL/PostgreSQL), что может стать узким местом.
Вердикт: Идеален для Enterprise, статической инфраструктуры (Pet-servers), мониторинга сетевого оборудования.
2. Prometheus: Герой Cloud-Native
Модель: Pull (в основном). Сервер сам ходит к сервисам и забирает метрики (scraping).
Сила: Работает с Time Series Database (TSDB) — невероятно быстр для метрик. Создан для динамических сред (Kubernetes, Docker), где контейнеры живут минуты. Язык запросов PromQL очень гибок.
Слабость: Сам по себе «голый». Для визуализации нужен Grafana, для алертов — Alertmanager. Не хранит долгие исторические данные без доп. настройки (Thanos/VictoriaMetrics).
Вердикт: Стандарт де-факто для DevOps, микросервисов и K8s.
🏆 Итог: Строите завод или офис с принтерами и свичами? Zabbix. Поднимаете HighLoad кластер в Kubernetes? Prometheus + Grafana. Умный админ часто использует связку: Zabbix для железа, Prometheus для приложений.
#monitoring #zabbix #prometheus #devops #architecture #сравнение
🤖 Python-скрипт: Проверяем сроки действия SSL-сертификатов
Забыть продлить SSL — классический факап, после которого "лежит" прод. Давайте автоматизируем проверку.
Этот скрипт проверяет список доменов и пишет в Telegram, если сертификат истекает меньше чем через 7 дней.
Код (ssl_checker.py):
Как запустить:
* Получите токен у @BotFather.
* Вставьте свои домены.
* Добавьте в Systemd Timer (как мы учили в прошлом посте 😉) или в Cron на ежедневный запуск.
Теперь вы узнаете о просроченном сертификате раньше, чем ваши пользователи.
#python #ssl #automation #scripting #ai4admin
Забыть продлить SSL — классический факап, после которого "лежит" прод. Давайте автоматизируем проверку.
Этот скрипт проверяет список доменов и пишет в Telegram, если сертификат истекает меньше чем через 7 дней.
Код (ssl_checker.py):
import ssl
import socket
import datetime
import requests
# Настройки
DOMAINS = ['google.com', 'yoursite.ru']
TG_TOKEN = 'ВАШ_ТОКЕН_БОТА'
CHAT_ID = 'ВАШ_CHAT_ID'
DAYS_ALERT = 7
def send_tg(message):
url = f"https://api.telegram.org/bot{TG_TOKEN}/sendMessage"
requests.post(url, data={"chat_id": CHAT_ID, "text": message})
def check_ssl(domain):
context = ssl.create_default_context()
conn = context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=domain)
conn.connect((domain, 443))
cert = conn.getpeercert()
expire_date = datetime.datetime.strptime(cert['notAfter'], r"%b %d %H:%M:%S %Y %Z")
days_left = (expire_date - datetime.datetime.now()).days
if days_left < DAYS_ALERT:
return f"⚠️ {domain}: осталось {days_left} дн!"
return None
report = []
for d in DOMAINS:
try:
res = check_ssl(d)
if res: report.append(res)
except Exception as e:
report.append(f"❌ Ошибка {d}: {str(e)}")
if report:
send_tg("\n".join(report))
Как запустить:
* Получите токен у @BotFather.
* Вставьте свои домены.
* Добавьте в Systemd Timer (как мы учили в прошлом посте 😉) или в Cron на ежедневный запуск.
Теперь вы узнаете о просроченном сертификате раньше, чем ваши пользователи.
#python #ssl #automation #scripting #ai4admin
🥴2