rxd_txd
299 subscribers
514 photos
31 videos
22 files
2.79K links
Download Telegram
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
Ты - самый счастливый человек на планете!

Почему? Потому, что сейчас узнаешь про ONLY.

Частенько возникала необходимость разрешить пользователю запускать только определенные команды по ssh. То есть явно указать ему белый список таких команд.

Городили мы конечно знатные велосипеды с помощью костылей, rbash, симлинков, chroot и т.п.

Кстати про chroot писал в этом посте, почитай на досуге, мож где применишь.


Все эти костыли были неудобные и какие-то пиздец сложно поддерживаемые. Но решение было найдено и вполне элегантное. Всё уже украдено придумано за нас.

Для затравки: /home/user/.ssh/authorized_keys

command="only rsync ls cat" ssh-rsa AAAAB3Nza


Думаю идею ты понял. Пользователь подключается по ssh и может выполнить только 3 команды rsync, ls, cat.

И тут большой плюс - пользователь не получает интерактивную оболочку, то есть всё сводится к выполнению подобной конструкции:

ssh user@bashdays.ru ls /home/user/


Команда ls находится в белом списке и успешно отработает при подключении по ssh, а дальше сессия завершится.

Нехер ему на сервере делать. Есть список команд, вот пусть ими и довольствуется без интерактива.

✔️ Теперь подробности

ONLY это НЕ какая-то встроенная команда в Linux, это Bash скрипт, который аккуратно лежит в /usr/local/sbin, положить его туда ты должен самостоятельно.

1. Берем only из репы
2. Кидаем его в /usr/local/sbin/only
3. Ставим chmod +x чтобы запускался
4. Делаем пару ключей для работы

ssh-keygen -P "" -f only


P = пустая парольная фраза
f = задаем имя ключа

Содержимое ключа only pub добавляем в authorized_keys нужному пользователю, а private key отдаем, тому кто будет подключаться к серверу.

Да, файл authorized_keys у меня выглядит примерно так:

command="only rsync cat ls", no-agent-forwarding, no-port-forwarding, no-pty, no-user-rc, no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA


То есть запрещаем всякую лишнюю хуйню. Ну и добавляем в белый список команды, которые будем позволять запускать этому пользователю.

Важная штука, потребуется файл с правилами, называется .onlyrules. Забирай тут.

Этот файл нужно также скопировать в папку, того пользователя, которого ограничиваем, например в /home/user/.onlyrules

Правила нужны, чтобы еще сильнее ограничить пользователя на ввод команд, этакие лимиты на регулярках и sed.

\:^ls$:{p;q}
\:^who$:{p;q}


Короче это фильтры на аргументы, ключи и т.п. Можно не заморачиваться и просто обернуть нужные команды между \:^ и $:{p;q}.

Бонусом, в папке пользователя можешь разместить файл .onlyrc и затюнить всякие информационные сообщения. Но автор не рекомендует этого делать и использовать only без этого файла.


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

Лично мне эта штука понравилась, раздал тестировщикам ключики, теперь они сами могут своих вонючих демонов перезапускать, без блуждания по серверу и фраз — да блядь, я что-то нажал и всё сломалось!

Такие дела. Увидимся!

tags: #bash #linux #utils

@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Нарыл (Pavel Sorokin)
Есть такая общеизвестная проблема когда делаешь non-root в k8s: контейнерам нужно биндить порты до 1024, что по умолчанию в Linux запрещено.

Лично по-моему само по себе такое ограничение - архитектурная ошибка в Linux, которая привела к куче проблем и сложностей: сервису, например nginx, нужно стартовать от рута, забиндить порт, а потом дропнуть лишние привилегии. Что уже само по себе звучит не безопасно и разумеется приводило к множеству LPE. А профит с точки зрения ИБ крайне сомнительный. Может быть он был когда на одном сервере одновременно крутился важный сайт на 80 порту и еще сидели руками какие-то непривилегированные пользователи, но сейчас это кажется бесполезным чуть более чем полностью (попробуйте меня переубедить :D)

Параметр ядра net.ipv4.ip_unprivileged_port_start позволяет управлять этим поведением в Linux. Если его установить в значение 0, то любому пользователю будет доступен биндинг любых портов. Параметр net.ipv4.ip_unprivileged_port_start относится к сетевому неймспейсу и у каждого контейнера свой.

При внедрении non-root можно добавлять securityContext.sysctls (net.ipv4.ip_unprivileged_port_start=0) в манифесты, но это требует модификации всех манифестов.

И вот я тут обнаружил что есть другой путь - в конфиге containerd есть опция enable_unprivileged_ports, которая устанавливает net.ipv4.ip_unprivileged_port_start в 0 для всех создаваемых контейнеров.

Другими словами можно поменять один параметр на всех нодах и не возиться с манифестами.
Forwarded from GitHub'ненько
Robusta KRR
Robusta KRR (Kubernetes Resource Recommender) is a CLI tool for optimizing resource allocation in Kubernetes clusters. It gathers pod usage data from Prometheus and recommends requests and limits for CPU and memory. This reduces costs and improves performance.
#k8s #devops #cloud #resources
https://github.com/robusta-dev/krr
🔥1
@kvaps в подкасте навалил базы про Talos Linux (@ru_talos) и Cozystack (@cozystack)

00:00 - Вступление. Представление гостя
1:23 - Андрей Квапил немного о себе
3:19 - Про идею создания собственного облака
6:55 - Разбираемся как это работает
12:05 - Как получить доступ к кластеру?
15:14 - Bare metal infrastructure. Что нужно для настройки
19:09 - Talos-bootstrap- интерактивный установщик
21:12 - Про платформу Cozystack. Как работает и что нужно для установки.
24:38 - Как дебажить Талос?
26:28 - Подводим итоги презентации
28:03 - Благодарность каналам, которые поддерживают
31:01 - Вопросы от зрителей. Какой оператор postgress больше нравится?
31:46 - Будет ли сравнение с coreos?
33:56 - Вопрос про безопасность
34:51 - Где проходит разработка Cozystack?
37:13 - Какая альтернатива Helm лучше всего подойдет в продуктовой среде?
39:06 - Занимаетесь ли менторством?
42:49 - Большая ли команда у Cozystack?
46:26 - Как администрируете куб?
50:36 - Есть ли компания в РФ? Выступаете как подрядчик? Аутстафф предоставляете?
55:40 - Подводим итоги

mp3-версию скину в комменты

Talos Linux: вам не нужна операционная система, вам нужен Kubernetes
https://www.youtube.com/live/NNh8e8vYZEI
👎2
🛠 What is PID 0? Объёмный материал, в котором автор разбирается с вопросом - что же из себя представляет PID 0...

https://blog.dave.tf/post/linux-pid0/

#system #proc #pid
👎1
Forwarded from Useful Tools | Linux | GitOps | DevOps (Dmitry Malinin)
Кучно пошло на тему инфобеза, вернее нестандартных приемов!

Еще один забавный метод - прокси, которая разбирает хендшейки протоколов и в зависимости от - пробрасывает в нужный сервис. SSH и HTTPS на одном порту :) Эдакий черный вход "для своих" :)

https://github.com/yrutschle/sslh

Подсказаал: @infras123


#ssh #security #proxy
👍2👎1
Forwarded from linkmeup
Ещё одна попытка объяснить на пальцах, как контейнеры работают с сетью.
Но что именно здесь круто сделано – интерактивность объяснения. Слева читаешь – справа в консольке буковки бегают.
https://labs.iximiuz.com/tutorials/container-networking-from-scratch
👍2👎1
Forwarded from Код и Капуста
GoHome - это просто мастхев штука для хостинга #golang пакетов на своем домене.

Максимально актуальная тулза. Контора не очень хороших людей github взяла привычку блокировать разработчиков. С помошью GoHome можно хостить библиотеки независимо от github. Сейчас приходится заморочиться, чтобы сделать вот так, например https://gitflic.ru/project/getapp/boosty (там в ридми написано как устанавливать)

Звучит так, что нужно писать статью как это сделать правильно

https://petersanchez.com/easily-host-go-modules-on-your-domain/
👎2🤮1
Эта информация адресована тем, кто планирует деплоить в прод в ближайшее время. Специально для нашего ресурса астролог Ксения Тимуровна Рогова высчитала наиболее подходящие даты календаря для этой процедуры всем знакам зодиака (см. таблицу).
Forwarded from disasm.me channel
CVE-2024-6387 - regreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH server

Debian Security
Зарепортили Qualyz Threat Research Unit, новость от них

Уязвимость в openssh server, занесённая коммитом, который рефакторил систему логирования. Под угрозой версии, начиная с 8.5.p1 исключительно до 9.8p1 (вышла 7 часов назад) .

Проверить, какая у вас сейчас версия: sshd -V
Определить версию вашего удалённого сервера: nc ip-or-domain 22

Security-патчи уже есть в репозиториях Ubuntu и Debian:
apt update
sudo apt install --upgrade openssh-server openssh-client


Как пропатчиться из сорсов (используйте только в случае, если вы знаете, что до вас обновление не долетит, так как способ нарушает принцип управления пакетами):
На всякий случай сделал инструкцию по установке 9.8p1 на Debian-based (Debian, Ubuntu, Mint, ...):

apt-get update
apt-get install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev
wget
https://github.com/openssh/openssh-portable/archive/refs/tags/V_9_8_P1.tar.gz
tar -xzf V_9_8_P1.tar.gz
cd openssh-portable-V_9_8_P1
./configure
make
make install
mv /usr/sbin/sshd /usr/sbin/sshd.bak
ln -s /usr/local/sbin/sshd /usr/sbin/sshd
mkdir -p /usr/local/etc && for file in /etc/ssh/*; do [ -f "$file" ] && ln -s "$file" /usr/local/etc/; done
systemctl restart sshd



———
Сейчас гуляет архив с poc от 7etsuo, он лежал здесь: https://github.com/7etsuo/cve-2024-6387-poc/ - но сейчас тут 404. Один из последних коммитов гласил, что "poc нерабочий, но для начала сойдёт"

В статье Qualyz Threat Research Unit есть ссылка на технические детали эксплуатации, поэтому не затягивайте с апдейтом.
Forwarded from linkmeup
И снова о немного странном, но интересном и кому-то даже важном. ktunnel – тула, поднимающая туннельчик от кубового кластера до локальной машины и делай с ним что хочешь. Почувствуй себя нодой, так сказать.

https://github.com/omrikiei/ktunnel
Forwarded from linkmeup
От проектов странных к вещам понятным и полезным в хозяйстве: SSH over HTTPS. Особо великой науки в этом нет, просто пара ловких пассов руками на стороне клиента и сервера. Зато как только ты оказываешься в сети, где параноидально закрыто всё кроме 80/443 и 53, ты на коне.
P.S. Повесить SSH на 443 порт слишком просто. Нужно больше инкапсуляций!
https://trofi.github.io/posts/295-ssh-over-https.html
This media is not supported in your browser
VIEW IN TELEGRAM
📡 impala - интересный tui для настройки wifi в системе. Использует iwd для взаимодействия системы с беспроводными сетями...

https://github.com/pythops/impala

P. S. И да, я знаю что есть nmtui, но всё же.

#wifi #network #tui
Редактор Zed теперь и на linux

Самый быстрый хайповый смузи редактор, написанный на Rust теперь можно запустить на linux. Кто уже успел затестить?

https://zed.dev/linux

https://github.com/zed-industries/zed/releases/tag/v0.143.6