Обновить
512K+

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

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

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

Проверка паролей по базам утечек: как это устроено и почему пароль при этом не уходит наружу

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

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

Вопрос правильный. Ответ на него — нет, отправлять ничего не нужно, и это не обещание на словах, а свойство протокола, которое проверяется самостоятельно за пять минут. Механика там простая и красивая, а знают её почему-то немногие.

Читать далее

Работа с HTTP-заголовками запроса и ответа

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

Заголовки играют важную роль в работе веб-приложений. Они уточняют свойства запроса или ответа, управляют кэшированием, отвечают за безопасность и помогают отслеживать проблемы. В этой статье посмотрим, как можно управлять заголовками запросов и ответов в сервере Angie.

Читать далее

Кто зашёл на огонёк. Что мониторят люди в бесплатном сервисе

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

Сделал сервис по мониторингу. Через полгода заглянул кто им пользуется — а там думская партия, финансы целого региона, чужие прокси и один сайт из фотографии кота.

Почти половина того что люди ставят под наблюдение — вообще не сайты. Показываю что нашёл в ларце.

Взять глаз

Автоматическая установка Wordpress на чистый сервер Ubuntu или Debian

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

Ставить WordPress руками — занятие на полтора часа: веб‑сервер, PHP с десятком расширений, база данных, конфиг Nginx, права на файлы, лимиты загрузки, сертификат. Я устал повторять этот ритуал и собрал скрипт, который делает всё сам и спрашивает только то, что действительно зависит от меня.

Итог, к которому мы придём: работающий сайт с настроенной админкой, ЧПУ‑ссылками, русской локализацией, при желании — с сертификатом Let’s Encrypt, phpMyAdmin и защитой от подбора паролей. Все доступы будут лежать в одном файле на сервере.

Читать далее

tmux у сисадмина — разбивает терминал, реанимирует сессии, уносит хаос

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

Каждый, кто работает в терминале, держит открытыми сразу несколько вкладок: в первой смотрит логи, во второй следит за списком запущенных процессов через htop, в третьей работает с Git, в четвертой запускает миграции базы данных. При переключении между вкладками легко запутаться, закрыть нужную, а при обрыве связи — потерять запущенные процессы и сессии. 

Привет! Я Саломея, продуктовый технический писатель в Selectel. В этой статье поделюсь своим опытом, как с помощью tmux упорядочить этот хаос и сделать работу удобнее. Разделим окно терминала на панели, запустим сессию, которая не прервется при закрытии окна, автоматизируем настройку рабочего пространства. Посмотрим, как выполнять команду сразу на нескольких серверах.

Читать далее →

Двадцать третий пуш в 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.6K

Если вы хоть раз пытались подключить к продукту одновременно 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-расширение, которое ищет такие внешние зависимости в двух режимах: анализирует уже загруженную страницу или записывает домены, появившиеся во время конкретного действия. И почему отсеять аналитику и фоновый шум, выбрать безопасную область правила и при этом не запрашивать доступ ко всему трафику оказалось сложнее, чем просто собрать список доменов.

Читать далее