Обновить
512K+

Системное администрирование *

Лишь бы юзер был доволен

668,19
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Двадцать третий пуш в 02:40: как MFA-усталость выглядит в логах и почему number matching реально помогает

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.9K

Атакующий уже знает логин и пароль — купил, подобрал по утечке, вытащил стилером с домашнего ноутбука. Второй фактор — пуш в приложении с кнопками «Одобрить» и «Отклонить». И вот он просто начинает логиниться. Раз за разом. Телефон жертвы звенит в двадцать третий раз в 02:40, человек спросонок жмёт зелёную кнопку — не потому что глупый, а потому что это самый быстрый известный ему способ прекратить вибрацию. Всё, второй фактор пройден.

Так вынесли Uber в сентябре 2022-го — там пушам ещё помогло сообщение в мессенджере от «айтишника»: мол, одобрите, чтобы это прекратилось. Примерно так же заходили в Cisco несколькими месяцами раньше.

Читать далее

Два сервера дома: аварийная инфраструктура на списанном железе

Время на прочтение10 мин
Охват и читатели12K

У меня два физических сервера на списанном железе — Xeon E5 и старый IBM, суммарно 112 потоков и 754 гигабайта памяти. На них 55 виртуальных машин, и на этом живёт онлайн-школа, платформа с курсами, мессенджер, игровой движок и майнкрафт-серверы для учеников. При этом я не девопс и не системный администратор. Разбираю технически: как поделены машины, как устроена репликация баз между площадками, что происходит при падении основной и какие вещи я сделал неправильно.

Читать далее

Как разобрать файлы на Mac за 10–15 минут и удалить дубли фото, видео и документов + готовый скрипт

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели8.2K

На Mac накопилось 860 ГБ файлов, среди которых одни и те же фото, видео и документы лежали в разных папках под разными именами. Я собрал Python-скрипт, который ищет точные дубли по SHA-256, переносит лишние копии в карантин и готовит план сортировки с возможностью отката. На первой проверке 108,5 ГБ нашлось 26,8 ГБ дублей.

В статье показываю весь процесс и даю готовый код.

Читать статью

VPN'ы в упряжке: собираем VPN box с несколькими VPN‑провайдерами на Mikrotik

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели15K

Как повысить надежность VPN доступа для домашней сети, если в случае блокировки VPN нет возможности в разумный срок обновить конфиг и восстановить доступ?

Решение ― multi‑VPN резервированием VPN‑провайдеров, использующих разные VPN‑протоколы. Собственный опыт, собранный в виде гайда.

В этом гайде мы настроим сразу два клиента VPN, AmneziaWG и VLESS+Reality, работающих одновременно как основной и резерв на одном Mikrotik роутере с общим раздельным туннелированием (split‑routing). Хотя таких каналов может быть столько, сколько позволят ресурсы роутера. Этакий VPN‑box, но с резервированием.

Читать далее

Когда конфигов стало слишком много. Как я впервые в жизни собрал панель для Xray и AmneziaWG

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели10K

Мне никогда не нравились тарифы и массовые VPN‑сервисы. Они периодически отваливаются, известные IP быстро получают плохую репутацию, а нормальный VPS на год можно найти немногим дороже тысячи рублей.

Проблема начинается, когда сервер уже не только для себя. Появляются родственники, друзья, разные устройства, сроки доступа, Xray, AmneziaWG и полноценная бухгалтерия конфигов без зарплаты и отпускных.

Я впервые в жизни полез делать панель и собрал SBP: self-hosted-панель для свежей Ubuntu, которая устанавливает компоненты, выдаёт профили, считает трафик и обновляется с проверкой и откатом. Simple здесь только для пользователя. Разработка простой не была.

В статье покажу архитектуру, интерфейс, собранные грабли и замеры, где XHTTP выплёвывает почти 200 Мбит/с.

Что получилось

Создаём простейший киоск при помощи Yocto

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели15K

Я уже рассказывал, как можно собрать минимальный Linux под различные архитектуры. Также я описывал свой эмулятор известной игры «Ну, Погоди!». В этой статье я хочу рассказать, как создать дистрибутив Linux с моим эмулятором, который будет работать в режиме киоска.

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

Читать далее

Как сайт клиента захватил японский магазин дронов и как мы это исправили

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.1K

Суббота, клиент вернулся из отпуска, открыл свой сайт и написал мне: «сайт лежит, вижу только белый экран, что случилось?». Код ответа при этом 200, мониторинг зелёный, хостинг жив, база данных на месте.

Оказалось, что пока мы этой ночью крепко спали, сайт клиента захватил японский магазин игрушек и дронов. Теперь по этому адресу Google видит витрину магазина на 244 килобайта, а живые посетители — пустую страницу.

В этом кейсе я расскажу, через какую уязвимость всё это залезло на сервер, почему легли сразу три сайта на одном аккаунте (включая наш свежесозданный, который мы отдали пару дней назад), как выглядели восемь с лишним тысяч подложенных файлов.htaccess и закладка, обёрнутая вокруг настоящего движка сайта.

А ещё честно расскажу, где мы сами ошиблись. Одна ошибка стоила ещё десяти часов спама в Google уже после того, как мы решили, что всё закончилось.

В конце — 5 способов за 5 минут проверить ваш собственный сайт.

Читать далее

Абьюзивные отношения с Ceph: почему мы всё ещё не разводимся с ним

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7K

«Нам нужен Ceph» — эту фразу хотя бы раз слышал каждый, кто работает с инфраструктурой. И почти всегда за ней следует вопрос: «А нет ли на рынке альтернатив попроще?» Ночные дежурства, CRUSH, поиск инженеров, которые реально умеют его эксплуатировать… Но когда снова нужно серьёзное хранилище — в обсуждении опять появляется он. Разбираемся, почему мы двадцать лет не можем с ним расстаться, хотя иногда очень хочется.

Разобраться в причинах

OpenRouter vs BotHub: сравнение API-платформ для работы с LLM

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.7K

Если вы хоть раз пытались подключить к продукту одновременно GPT, Claude и Gemini, вы знаете это чувство: три личных кабинета, три способа биллинга, три разных формата API и ньюанса интеграции и один разработчик, который в пятницу вечером выясняет, почему у Anthropic лимит токенов считается иначе, чем у OpenAI. Именно эту боль решают LLM-агрегаторы — сервисы, которые дают один API-ключ, один base URL и единый счёт на все модели сразу.

Два заметных игрока в этой нише — российский BotHub и американский OpenRouter с похожим УТП: «один ключ — сотни моделей». Разница начинается там, где заканчивается маркетинг и приходится считать реальную стоимость inference.

В этой статье я не буду убеждать вас, что один сервис однозначно лучше другого — это было бы нечестно. Вместо этого мы возьмём официальные прайсы обеих платформ, посчитаем стоимость одинаковой нагрузки на одинаковых моделях и посмотрим, где цифры действительно расходятся и пройдемся по основным функциям.

Читать далее

Доменные объекты Check Point: почему «то работает, то нет» и как это чинить

Время на прочтение10 мин
Охват и читатели6.1K

Привет, Хабр! Делюсь ниже статьей моего коллеги, Алексея Евсеева, который работает инженером технической поддержки в К2 Кибербезопасность в составе Центра экспертизы по комплексному сервису К2Тех и занимается администрированием средств защиты информации. Уже несколько лет он поддерживает Check Point в самых разных инсталляциях, от офисных шлюзов до крупных кластеров, и примерно раз в два-три месяца решает тикеты типа: «правило с доменом не работает», «сайт открывается через раз».

Свежий случай — месяц мучений из-за прерывистого доступа к одному крупному государственному сервису — сподвиг его написать отдельную статью про доменные объекты. Так что давайте разберемся, как устроены изнутри доменные объекты Check Point, чем FQDN отличается от non-FQDN, при чем тут DNS Passive Learning и почему штатная работа этих механизмов порой вызывает массу проблем на практике. Передаю слово Алексею.

Читать далее

А кто-нибудь знает как и почему это работает?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.1K

Инфраструктура может работать годами, хотя никто уже толком не понимает, как именно она устроена и от чего зависит. Разбираемся, что такое «топологический долг» и можно ли вообще измерить, насколько хорошо мы понимаем собственную инфраструктуру.

Ну давай попробуем...

Wake‑on‑LAN наоборот: как я сделал Windows‑службу для удалённого выключения ПК

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6K

Я искал простое решение, которое позволяло бы одной кнопкой удалённо включать и выключать компьютер. С включением всё давно решено: отправляешь Wake‑on‑LAN magic packet — и компьютер запускается. Но удобного способа выключать его тем же пакетом я не нашёл.

В итоге я решил по‑быстрому накидать решение с помощью нейросети. Получилась Windows‑служба, которая работает в фоне, принимает стандартный WoL‑пакет и, если компьютер уже включён, запускает его штатное выключение. Проект проверен в работе, поэтому решил привести его в порядок и поделиться со всеми.

Читать далее

Сторож бюджета сработал ровно так, как я его написал. Поэтому за сутки ушло 225 евро при жёстком пороге 150

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4.9K

Я сам написал скрипт, который следит за расходом Telegram Ads и глушит кампании при превышении дневного лимита. Двадцать пятого июня он отработал ровно так, как был написан, — и именно поэтому за сутки открутилось 224,98 € при пороге 150. Разбираю по шагам, где именно я ошибся: почему проверка «раз в час» на самом деле проверяла не то, почему остановка кампании не остановила расход, и как алерт о проблеме ушёл туда, где его никто не читал. С кодом до и после.

Читать далее

Ближайшие события

NORA: лёгкий artifact registry для Kubernetes с карантином свежих пакетов и блокировкой CVE

Уровень сложностиПростой
Время на прочтение28 мин
Охват и читатели6.9K

Каждый разработчик сталкивался с проблемой хранения артефактов: Docker-образы, npm-пакеты, Maven-артефакты, Python wheels. Вариантов обычно два — использовать публичные реестры (Docker Hub, npmjs.org, PyPI) или поднимать Nexus / Artifactory / Harbor. Публичные реестры ненадёжны из-за rate limit и блокировок. А Nexus и Artifactory — это тяжёлая Java-платформа: JVM, отдельная СУБД (OrientDB/PostgreSQL), 2–4 ГБ RAM уже в простое и десятки минут на старт.

NORA — open-source реестр артефактов на Rust, созданный как прямая альтернатива этим гигантам. Вместо Java-стека — один бинарник < 27 МБ. Вместо 2–4 ГБ RAM — < 50 МБ в простое, т.е. на порядок меньше. Вместо десятков минут на старт — 3 секунды. Внешних зависимостей нет вообще: ни Java 11+, ни отдельной СУБД — метаданные хранятся на файловой системе, а артефакты сразу можно отправлять в S3, чего бесплатные версии Nexus и Artifactory не умеют. При этом поддерживается 15 форматов: Docker, Maven, npm, PyPI, Cargo, Go, Raw, RubyGems, Terraform, Ansible Galaxy, NuGet, Pub (Dart/Flutter), Conan (C/C++), RPM (yum/dnf), Debian/APT. Плюс Helm-чарты через OCI, карантин свежих пакетов (Min Release Age), блокировка уязвимых версий (CVE Blocking) и лицензия MIT.

В этой статье мы развернём NORA в Kubernetes на Yandex Managed Kubernetes, а затем попробуем все основные сценарии использования.

Читать далее

Когда «Просто добавь сайт в прокси» недостаточно или «В поисках внешних зависимостей»

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.5K

Когда используешь корпоративный VPN для рабочих сервисов и локальный прокси для “внешних” сайтов, то иногда просто добавить основной домен в прокси оказывается недостаточно:

YouTube может остаться без превью, Letterboxd — без постеров, а ChatGPT — без загрузки файлов.

Расскажу, как сделал свой велосипед сделал Chrome-расширение, которое ищет такие внешние зависимости в двух режимах: анализирует уже загруженную страницу или записывает домены, появившиеся во время конкретного действия. И почему отсеять аналитику и фоновый шум, выбрать безопасную область правила и при этом не запрашивать доступ ко всему трафику оказалось сложнее, чем просто собрать список доменов.

Читать далее

Декларативная разметка дисков в NixOS с помощью Disko: от конфига до готовой ФС

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели6.8K

Каждый, кто хоть раз устанавливал Linux вручную, знает этот ритуал: загрузиться с Live‑образа, запустить fdisk или parted, создать таблицу разделов, отформатировать их в btrfs/ext4, создать субтома, а затем вручную примонтировать всё это в /mnt.

Конечно, такой подход можно использовать и при установке NixOs. Но вопрос — зачем?

Это не только полностью противоречит самой сути NixOS — системы, где всё должно быть описано декларативно в коде, но и существенно влияет вообще на удобство использования этой системы в будущем. Стоит вам захотеть развернуть точно такую же конфигурацию на другом сервере или ноутбуке, и весь ручной процесс разметки приходится повторять заново, вспоминая точные флаги монтирования вместо того, чтобы написать всего лишь одну команду.

В этой статье мы этим вопросом и займёмся, а поможет нам в этом известная утилита disko. Мы напишем чистый декларативный конфигурационный файл в ДВУХ вариантах:

Читать далее

OpenTelemetry Filelog Receiver: руководство по приему лог‑файлов

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели8K

OpenTelemetry постепенно становится универсальным пылесосом для телеметрии. Осталось только научить его аккуратно засасывать всё то наследие, которое приложения десятилетиями складывали в файлы. В этом переводе статьи разбирается как использовать filelog receiver на практике — от простого чтения JSON‑логов до продакшен‑сценариев с настройкой производительности. Ещё больше полезных материалов я публикую у себя в авторском телеграм‑канале Мониторим ИТ. Всегда рад новым подписчикам.

Даже в эпоху облачных приложений и распределенного трейсинга обычные файлы логов остаются одним из самых ценных источников достоверной информации в любой системе. От корпоративных приложений и пакетных заданий до NGINX, баз данных и локальной инфраструктуры — критически важная диагностическая информация по‑прежнему записывается на диск.

Получатель filelog в OpenTelemetry Collector позволяет интегрировать эти логи в современный конвейер наблюдаемости. Он непрерывно отслеживает файлы, анализирует их содержимое и преобразует необработанный текст в структурированные записи логов OpenTelemetry.

В этой статье показано, как использовать эти возможности на практике, от базового чтения файла до построения готового к эксплуатации конвейера, который корректно обрабатывает ротацию логов, восстанавливает работу после перезапуска и не теряет ни одной строки.

Прежде чем углубляться: если вы контролируете приложения, записывающие эти логи, наилучшим решением будет настроить их на вывод структурированных JSON‑логов, размещённых в одной строке. Чтобы получатель filelog в этом случае стал простым и удобным уровнем приема данных.

Значительная часть этой статьи посвящена ситуациям, когда такой вариант невозможен. В подобных случаях получатель filelog предоставляет мощные инструменты для анализа, структурирования и обогащения любых получаемых логов, превращая их в полноценные данные наблюдаемости.

Начнём!

Читать далее

Docker Fundamentals: полный гайд по сетям и драйверам

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели15K

Разбираем сетевые драйверы Docker — bridge, host, overlay, macvlan, ipvlan — DNS, порты и плагины: от основ до продвинутых сценариев.

Читать

Когда бэкапа недостаточно: как мы добавили отказоустойчивость и балансировку в службу каталогов MULTIDIRECTORY

Время на прочтение5 мин
Охват и читатели7.9K

Есть довольно простой вопрос, который стоит задать ИТ-архитектору: «Что произойдёт, если сервер, на котором расположена служба каталогов, решит прилечь?». Если ответ начинается со слов «ну, вообще-то у нас есть бэкап», это не совсем отказоустойчивая архитектура.

Бэкап помогает восстановить систему. Но он не помогает пользователю войти в корпоративный сервис прямо сейчас.

Поэтому в новой версии MULTIDIRECTORY мы развиваем архитектуру службы каталогов в сторону мультиконтроллерной установки: несколько контроллеров домена, локальные (автономные) копии данных, репликация файлов и балансировка запросов.

В этой статье разберём, что происходит внутри такой системы и почему поставить второй сервер — ещё не значит получить отказоустойчивое решение.

Читать далее

Radar: Kubernetes UI, которого не хватало

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели12K

У каждого, кто работает с Kubernetes, рано или поздно возникает потребность «посмотреть на кластер глазами»: кто с кем связан, почему под в CrashLoopBackOff, что изменилось за ночь, какие сертификаты истекают. Вариантов обычно два — Kubernetes Dashboard (слишком бедный) или Lens / Headlamp (десктопное приложение или тяжёлый стек с зависимостями). А kubectl-специалисты откапывают причины инцидентов в простынях YAML, где сигнал тонет в managedFields и status.conditions.

Radar — open-source UI для Kubernetes от Skyhook (YC W23). Один бинарник на Go, без регистрации и аккаунта, бесплатный навсегда. Топология кластера, браузер ресурсов, timeline событий, менеджер Helm-релизов, GitOps для FluxCD, карта трафика, аудит безопасности, анализ impact'а перед апгрейдом K8s и даже встроенный MCP-сервер, чтобы ИИ-агенты могли смотреть кластер глазами Radar вместо сырого kubectl.

В этой статье мы развернём Radar в Yandex Managed Kubernetes через Helm — с ingress-nginx и доменом из публичного IP — и разберём все основные экраны. Разворачиваемый инстанс — общий для команды разработчиков, поэтому конфигурация строго read-only: все write-права выключены, ИИ-агенты подключаются к read-only MCP.

Читать далее