Docker для параноика: организация SSH‑доступа для rootless‑контейнера без передачи приватного ключа
Примонтировать
В этом разборе на Хабре рассказывают о том, как дать rootless-контейнеру SSH-доступ через
Rootless Docker имеет свои нюансы: UID пользователя внутри контейнера преобразуется в другой UID на хосте, поэтому просто пробросить сокет агента недостаточно.
Оказывается, доступ к сокету всё ещё позволяет пользоваться загруженным ключом. Если контейнер взломали, злоумышленник сможет выполнять доступные этой SSH-идентичности операции, пока имеет доступ к агенту. Сам приватный ключ через штатный протокол агента при этом не выдаётся.
@usr_bin_linux
Примонтировать
~/.ssh в контейнер с флагом :ro — и вроде как позаботился о безопасности. Только приватный ключ при этом всё ещё можно прочитать и утащить. От этого read-only не спасает.В этом разборе на Хабре рассказывают о том, как дать rootless-контейнеру SSH-доступ через
ssh-agent, оставив сам ключ на хосте. Пригодится для автоматизации, работы с приватными репозиториями и ИИ-агентов, которым нужен Git.Rootless Docker имеет свои нюансы: UID пользователя внутри контейнера преобразуется в другой UID на хосте, поэтому просто пробросить сокет агента недостаточно.
Оказывается, доступ к сокету всё ещё позволяет пользоваться загруженным ключом. Если контейнер взломали, злоумышленник сможет выполнять доступные этой SSH-идентичности операции, пока имеет доступ к агенту. Сам приватный ключ через штатный протокол агента при этом не выдаётся.
@usr_bin_linux
🔥8👍4⚡2
webtop
Интересный проект от LinuxServer.io. Поднимаешь контейнер на сервере и заходишь через браузер в графическое окружение: окна, терминал, файловый менеджер и приложения. Всё выполняется на сервере, а в браузер транслируется рабочий стол через Selkies.
Есть образы на базе Alpine, Ubuntu, Debian, Fedora и Arch с разными окружениями: XFCE, KDE, MATE, i3 и LXQt. Поддерживаются x86-64 и ARM64. По умолчанию тег
Из приятного — передача файлов, общий буфер обмена, звук и возможность подключить GPU для аппаратного ускорения. Домашний каталог можно сохранить в volume, чтобы настройки и файлы переживали пересоздание контейнера.
Интересен сценарий удалённого рабочего места для периодических задач: открыть GUI-утилиту, поработать с файлами или держать отдельное окружение для демонстраций. На клиентской машине достаточно браузера.
Как обычно, есть нюанс: по умолчанию аутентификация отключена, а внутри доступен терминал с беспарольным
Репыч на Гитхаб
@usr_bin_linux
Интересный проект от LinuxServer.io. Поднимаешь контейнер на сервере и заходишь через браузер в графическое окружение: окна, терминал, файловый менеджер и приложения. Всё выполняется на сервере, а в браузер транслируется рабочий стол через Selkies.
Есть образы на базе Alpine, Ubuntu, Debian, Fedora и Arch с разными окружениями: XFCE, KDE, MATE, i3 и LXQt. Поддерживаются x86-64 и ARM64. По умолчанию тег
latest запускает Alpine с XFCE.Из приятного — передача файлов, общий буфер обмена, звук и возможность подключить GPU для аппаратного ускорения. Домашний каталог можно сохранить в volume, чтобы настройки и файлы переживали пересоздание контейнера.
Интересен сценарий удалённого рабочего места для периодических задач: открыть GUI-утилиту, поработать с файлами или держать отдельное окружение для демонстраций. На клиентской машине достаточно браузера.
Как обычно, есть нюанс: по умолчанию аутентификация отключена, а внутри доступен терминал с беспарольным
sudo. Поэтому перед публикацией такого рабочего стола в интернете нужно настроить защищённый доступ.Репыч на Гитхаб
@usr_bin_linux
🔥6👍3❤2
Уже завтра! Приходите на наш вебинар. Вместе с Александром Тварадзе расскажем про Pandora FMS платформы для мониторинга IT-инфраструктуры
Если вы используете (или использовали) PRTG, WhatsUp Gold или SolarWinds и рассматриваете альтернативные решения для мониторинга IT-инфраструктуры — приходите на вебинар.
📅 30 сентября
⏰ 10:00 МСК
📍 Онлайн
👉 Зарегистрируйтесь, чтобы получить напоминание и ссылку на вебинар.
Ссылка на подключение придёт в Telegram-бот за 40 минут до начала вебинара.
Если вы используете (или использовали) PRTG, WhatsUp Gold или SolarWinds и рассматриваете альтернативные решения для мониторинга IT-инфраструктуры — приходите на вебинар.
📅 30 сентября
⏰ 10:00 МСК
📍 Онлайн
👉 Зарегистрируйтесь, чтобы получить напоминание и ссылку на вебинар.
Ссылка на подключение придёт в Telegram-бот за 40 минут до начала вебинара.
❤3🔥3⚡2👍2
Семь привычек Linux-инженера, которые спасают прод
Внутри — семь разборов сбоев: от прав на домашнюю директорию до деградации производительности после обновления ядра.
Интересный кейс про бэкапы между дата-центрами. Скорость упиралась примерно в 1 Гбит/с, и ровная полка на графике выглядела как сетевое ограничение. Но отдельный тест показал, что канал спокойно отдаёт свои 5 Гбит/с. Дальше выяснилось, что rsync поверх SSH упирался в производительность одного ядра, а сжатие и дедупликация добавляли дополнительную нагрузку.
Читать дальше на Хабре →
@usr_bin_linux
Внутри — семь разборов сбоев: от прав на домашнюю директорию до деградации производительности после обновления ядра.
Интересный кейс про бэкапы между дата-центрами. Скорость упиралась примерно в 1 Гбит/с, и ровная полка на графике выглядела как сетевое ограничение. Но отдельный тест показал, что канал спокойно отдаёт свои 5 Гбит/с. Дальше выяснилось, что rsync поверх SSH упирался в производительность одного ядра, а сжатие и дедупликация добавляли дополнительную нагрузку.
Читать дальше на Хабре →
@usr_bin_linux
👍6🔥6⚡3
PatchMon
Серверы работают, мониторинг зелёный, а обновления пакетов ждут своего часа. Желательно понимать, на каких машинах и сколько уже ждут.
PatchMon — open-source-проект для учёта пакетов и управления обновлениями на серверах. В одном интерфейсе можно посмотреть установленные версии, доступные обновления, подключённые репозитории и состояние хостов.
На машины устанавливается агент, который сам подключается к серверу PatchMon. Открывать входящие порты на наблюдаемых хостах для его работы не требуется. Поддерживаются
С обновлениями тоже есть чем управлять: сначала посмотреть план изменений через dry-run, затем одобрить запуск и назначить окно обслуживания. Можно выбирать отдельные пакеты, наблюдать за выполнением в браузере и потом поднять историю — что обновляли, кто согласовал и чем всё закончилось.
Дополнительно есть проверки через OpenSCAP и Docker Bench for Security, инвентаризация Docker, роли доступа и вход через OIDC. Развернуть у себя можно через Docker Compose, лицензия — AGPLv3.
В PatchMon можно собрать весь процесс обновления в одном месте: от списка отставших серверов до результата установки.
Репыч на Гитхаб
@usr_bin_linux
Серверы работают, мониторинг зелёный, а обновления пакетов ждут своего часа. Желательно понимать, на каких машинах и сколько уже ждут.
PatchMon — open-source-проект для учёта пакетов и управления обновлениями на серверах. В одном интерфейсе можно посмотреть установленные версии, доступные обновления, подключённые репозитории и состояние хостов.
На машины устанавливается агент, который сам подключается к серверу PatchMon. Открывать входящие порты на наблюдаемых хостах для его работы не требуется. Поддерживаются
apt, dnf, yum, apk, pacman и FreeBSD pkg.С обновлениями тоже есть чем управлять: сначала посмотреть план изменений через dry-run, затем одобрить запуск и назначить окно обслуживания. Можно выбирать отдельные пакеты, наблюдать за выполнением в браузере и потом поднять историю — что обновляли, кто согласовал и чем всё закончилось.
Дополнительно есть проверки через OpenSCAP и Docker Bench for Security, инвентаризация Docker, роли доступа и вход через OIDC. Развернуть у себя можно через Docker Compose, лицензия — AGPLv3.
В PatchMon можно собрать весь процесс обновления в одном месте: от списка отставших серверов до результата установки.
Репыч на Гитхаб
@usr_bin_linux
👍5🔥4❤3
Чем заменить MinIO?
Многие команды ищут альтернативу MinIO после изменений вокруг Community Edition. Но выбрать S3-совместимое хранилище по описанию на сайте сложно: одинаковые галочки в таблице возможностей ещё ничего не говорят о поведении системы под реальной нагрузкой.
Коллеги из РСХБ протестировали сразу три варианта — SeaweedFS, RustFS и российское решение «Закрома». Причём проверяли не только скорость чтения и записи, но и кластерную работу, заполнение диска, восстановление загрузки, удаление больших объектов, поддержку STS, шифрования, Object Lock и интеграцию с Keycloak.
В статье не пытаются назвать универсального победителя. SeaweedFS показывает сильные результаты на чтении и больших объёмах,
RustFS привлекает простотой миграции и скоростью, а «Закрома» — промышленной поддержкой и возможностью влиять на развитие продукта. Но у каждого варианта есть свои ограничения, которые важно учитывать до начала миграции.
Полезный материал для тех, кто уже ищет замену MinIO или хочет заранее оценить возможные варианты.
Читать дальше на Хабре →
P.S. В комментах к статье рекомендуют посмотреть также на silo.
@usr_bin_linux
Многие команды ищут альтернативу MinIO после изменений вокруг Community Edition. Но выбрать S3-совместимое хранилище по описанию на сайте сложно: одинаковые галочки в таблице возможностей ещё ничего не говорят о поведении системы под реальной нагрузкой.
Коллеги из РСХБ протестировали сразу три варианта — SeaweedFS, RustFS и российское решение «Закрома». Причём проверяли не только скорость чтения и записи, но и кластерную работу, заполнение диска, восстановление загрузки, удаление больших объектов, поддержку STS, шифрования, Object Lock и интеграцию с Keycloak.
В статье не пытаются назвать универсального победителя. SeaweedFS показывает сильные результаты на чтении и больших объёмах,
RustFS привлекает простотой миграции и скоростью, а «Закрома» — промышленной поддержкой и возможностью влиять на развитие продукта. Но у каждого варианта есть свои ограничения, которые важно учитывать до начала миграции.
Полезный материал для тех, кто уже ищет замену MinIO или хочет заранее оценить возможные варианты.
Читать дальше на Хабре →
P.S. В комментах к статье рекомендуют посмотреть также на silo.
@usr_bin_linux
🔥7❤3⚡2
Перенос Docker-контейнера между двумя Linux-хостами
В статье описано как убедиться в том, что все правильно перенесено →
@usr_bin_linux
При смене Docker-хостов мы часто думаем: «Я копирую, перезапускаю — и всё». Но Docker-сервис — это не только образ: есть ещё тома, переменные окружения, порты, иногда база данных… и именно здесь всё ломается, если действовать слишком быстро.
В статье описано как убедиться в том, что все правильно перенесено →
@usr_bin_linux
Teletype
Перенос Docker-контейнера между двумя Linux-хостами
Это перевод оригинальной статьи Migrating a Docker container between two Linux hosts.
🔥6👍3⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
Логи Linux
В этом переводе разобраны типы логов, существующих в Linux и где их искать.
Читать →
@usr_bin_linux
В этом переводе разобраны типы логов, существующих в Linux и где их искать.
Читать →
@usr_bin_linux
🔥7👍1👎1
«У меня CSV-файл размером 10 ГБ и всего 512 МБ оперативной памяти» — вопрос на собеседовании, который поставил меня в тупик
Продолжение читайте в статье →
@usr_bin_linux
Я проходил собеседование на позицию Java-разработчика. Всё шло хорошо — я ответил на вопросы по Spring Boot, микросервисам и даже решил несколько задач в стиле LeetCode.
Затем интервьюер откинулся назад и спросил:
«Представьте, что у вас есть очень большой файл — допустим, CSV размером 10 ГБ. При этом вычислительные ресурсы сильно ограничены — например, всего 512 МБ оперативной памяти и одно ядро процессора. Как бы вы обработали этот файл, чтобы выполнить предварительную обработку данных и сохранить их в другом формате?»
Я замер. Мысли в голове сменяли друг друга.
Продолжение читайте в статье →
@usr_bin_linux
👍6🔥4
📁 lf — быстрый файловый менеджер для терминала
lf расшифровывается как list files. Это минималистичный файловый менеджер на Go, ориентированный на управление с клавиатуры в стиле Vim.
Проект запускается из одного бинарного файла, не требует дополнительных зависимостей и экономно расходует память. Асинхронные файловые операции не блокируют интерфейс даже при копировании или перемещении больших объёмов данных.
Горячие клавиши, цвета и команды можно полностью настроить под себя, а недостающие функции — добавить с помощью обычных shell-команд. Клиент-серверная архитектура позволяет управлять несколькими запущенными экземплярами lf.
Работает в Linux, macOS, BSD и Windows. Особенно пригодится тем, кто проводит большую часть времени в терминале и предпочитает клавиатуру мыши.
Репыч на GitHub →
@usr_bin_linux
lf расшифровывается как list files. Это минималистичный файловый менеджер на Go, ориентированный на управление с клавиатуры в стиле Vim.
Проект запускается из одного бинарного файла, не требует дополнительных зависимостей и экономно расходует память. Асинхронные файловые операции не блокируют интерфейс даже при копировании или перемещении больших объёмов данных.
Горячие клавиши, цвета и команды можно полностью настроить под себя, а недостающие функции — добавить с помощью обычных shell-команд. Клиент-серверная архитектура позволяет управлять несколькими запущенными экземплярами lf.
Работает в Linux, macOS, BSD и Windows. Особенно пригодится тем, кто проводит большую часть времени в терминале и предпочитает клавиатуру мыши.
Репыч на GitHub →
@usr_bin_linux
👍7🔥4❤2⚡1
🐧 Microsoft представила WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows
Microsoft представила WSL 3.0: подсистема перешла на ядро Linux 6.18 и получила встроенный инструментарий WSL Containers для создания, сборки и запуска Linux-контейнеров.
Новая утилита
Исходный код компонентов WSL опубликован на GitHub под лицензией MIT.
Читать подробности на Хабре →
@usr_bin_linux
Microsoft представила WSL 3.0: подсистема перешла на ядро Linux 6.18 и получила встроенный инструментарий WSL Containers для создания, сборки и запуска Linux-контейнеров.
Новая утилита
wslc умеет управлять жизненным циклом контейнеров и образов, ограничивать потребление CPU и памяти, настраивать виртуальные сети и проброс портов, работать с VHD и предоставлять контейнерам доступ к GPU. Для автоматизации предусмотрен API для C++ и C#, а для разработки — интеграции с MSBuild, CMake, VS Code Dev Containers и Aspire.Исходный код компонентов WSL опубликован на GitHub под лицензией MIT.
Читать подробности на Хабре →
@usr_bin_linux
🔥11👍4⚡2