1. Следи за сторис канала. Теперь в сторис будет вся жизнь проекта https://t.me/gradeliftbot чтобы не засорять ленту.
2. Каждое воскресенье в сторис будет опубликован свежий "🏆 ТОП ИНЖЕНЕРОВ" из @gradeliftbot.
3. Обновил ссылки на вебинар. Допустили ошибку в прошлом посте. Всем кто хочет посетить вебинар предлагаю зарегистрироваться через этот пост, чтобы точно получить ссылку на трансляцию и все уведомления, чтобы не пропустить вебинар.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
GradeLift - Linux Simulator
🚀 Прокачай навыки Linux! Решай реальные инциденты, спасай продакшн, повышай свой грейд
📩 По всем вопросам: @chorapov
📩 По всем вопросам: @chorapov
👎2🔥1
LinuxSkill - Сводки с прода и Шпаргалки pinned «❗️ ❗️ ❗️ обновление в канале. 1. Следи за сторис канала. Теперь в сторис будет вся жизнь проекта https://t.me/gradeliftbot чтобы не засорять ленту. 2. Каждое воскресенье в сторис будет опубликован свежий "🏆 ТОП ИНЖЕНЕРОВ" из @gradeliftbot. 3. Обновил ссылки…»
🧠 17 команд управления системой, ускорь работу в разы
Постоянно забываешь, как заблокировать экран из консоли или правильно выключить Bluetooth? Я собрал все основные команды управления системой в одну удобную шпаргалку.
💡 Сохраняй этот список, чтобы команды всегда были под рукой!
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #SystemControl #Sysadmin #Terminal #CheatSheet #DevOps
Постоянно забываешь, как заблокировать экран из консоли или правильно выключить Bluetooth? Я собрал все основные команды управления системой в одну удобную шпаргалку.
1. Блокировка экрана:$ gnome-screensaver-command -l$ dbus-send --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
Команда для немедленной блокировки текущей сессии.
2. Разблокировка экрана:$ gnome-screensaver-command -a$ dbus-send --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive boolean:false
Возвращает экран в рабочее состояние.
3. Перезагрузка системы:$ reboot$ shutdown -r$ systemctl reboot
Все способы отправить машину в ребут.
4. Выключение питания:$ poweroff$ shutdown -h now$ reboot -p$ systemctl poweroff$ haltShutdown the system at a specific time
Немедленное завершение работы.
5. Выключение по расписанию:$ shutdown -h 18:45 "Server is going down for maintenance"
Установка времени выключения с уведомлением пользователей.
6. Остановка Bluetooth:$ service bluetooth stop$ systemctl stop bluetooth
Выключение службы беспроводной связи.
7. Запуск Bluetooth:$ service bluetooth start$ systemctl start bluetooth
Включение службы обратно.
8. Отключение Wi-Fi:$ nmcli nm wifi off
Мгновенное отключение беспроводного интерфейса.
9. Включение Wi-Fi:$ nmcli nm wifi on
Активация сетевого интерфейса.
10. Выключение монитора:$ xset dpms force off
Принудительно гасит экран через управление питанием.
11. Режим ожидания:$ systemctl suspend$ pm-suspendHibernate the system
Перевод системы в спящий режим.
12. Гибернация:$ systemctl hibernate
Полное сохранение состояния на диск и выключение.
13. Список активных сервисов:$ systemctl list-units --type=service$ service --status-all
Просмотр всех запущенных служб.
14. Запуск службы:$ systemctl start [serviceName]$ service [serviceName] start
Запуск конкретного юнита в системе.
15. Остановка службы:$ systemctl stop [serviceName]$ service [serviceName] stop
Принудительное завершение работы сервиса.
16. Автозагрузка сервиса:$ systemctl enable [serviceName]
Включение запуска службы при старте системы.
17. Просмотр логов:$ journalctl -u [serviceName]
Чтение журналов конкретной службы через journald.
💡 Сохраняй этот список, чтобы команды всегда были под рукой!
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #SystemControl #Sysadmin #Terminal #CheatSheet #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🐧 Твой чек-лист по серверу: 6 гайдов по настройке сервера
Настройка нового сервера — это ритуал. Чтобы ничего не забыть и сделать всё по фэншую (best practices, а не просто "лишь бы заработало"), держи подборку наших лучших постов.
Подготовка и база
* Как узнать ВСЁ о железе и системе в Linux за 5 минут
* Лучшие практики для повышения производительности Linux-системы
Сеть и доступ
* Защита SSH-сервера: порты, ключи и iptables
* Как за 1 минуту определить, чем управляется сеть в Linux?
* Подними свой DNS-сервер и забудь про Google DNS
Безопасность и автоматизация
* Защити свои данные: Автоматическое резервное копирование на Linux
Теперь ты упакован по полной. Делись подборкой с коллегами, пусть тоже настраивают по уму!
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #SysAdmin #ServerSetup #Nginx #Security #LVM #Bash #LinuxSkill
Настройка нового сервера — это ритуал. Чтобы ничего не забыть и сделать всё по фэншую (best practices, а не просто "лишь бы заработало"), держи подборку наших лучших постов.
Подготовка и база
* Как узнать ВСЁ о железе и системе в Linux за 5 минут
* Лучшие практики для повышения производительности Linux-системы
Сеть и доступ
* Защита SSH-сервера: порты, ключи и iptables
* Как за 1 минуту определить, чем управляется сеть в Linux?
* Подними свой DNS-сервер и забудь про Google DNS
Безопасность и автоматизация
* Защити свои данные: Автоматическое резервное копирование на Linux
Теперь ты упакован по полной. Делись подборкой с коллегами, пусть тоже настраивают по уму!
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #SysAdmin #ServerSetup #Nginx #Security #LVM #Bash #LinuxSkill
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎1🔥1
Думали, что ваш локальный сервер — это неприступная гавань без лишних глаз? Калифорния решила иначе и приняла закон, который заставит разработчиков ОС внедрить на уровне системы сбор данных о возрасте пользователя и раздавать их сторонним приложениям.
В октябре был подписан закон AB 1043, также известный как Digital Age Assurance Act, который вступает в силу 1 января 2027 года. Документ кардинально меняет правила игры для всех операционных систем.
Суть проблемы
Закон напрямую обязывает провайдеров ОС внедрить специальный интерфейс, который при первоначальной настройке учетной записи будет запрашивать дату рождения или возраст пользователя.
Далее система должна работать как информатор. Любое загруженное приложение получает право запросить у ОС через специальный API цифровой сигнал с указанием возрастной категории текущего юзера (до 13 лет, 13–15, 16–17 или старше 18 лет). За отказ от соблюдения требований или умышленные нарушения грозят колоссальные штрафы — до 7500 долларов за каждого затронутого ребенка.
Как это ломает Open Source
Проблема в том, что закон писали люди, мыслящие категориями коммерческих корпораций вроде Apple и Google с их облачными аккаунтами. Как применить эти требования к децентрализованным Linux-дистрибутивам, где нет единой базы данных пользователей, а разработка ведется волонтерами по всему миру? Никак.
Некоторые проекты уже принимают радикальные меры самозащиты. Разработчики дистрибутива MidnightBSD официально изменили текст своей лицензии, прямо запретив использование системы на десктопах резидентам Калифорнии начиная с 2027 года.
В сообществе админов инициатива вызывает откровенный смех. Пользователи профильных форумов уже придумывают, как будут выглядеть привычные команды в новых реалиях.# Как чиновники представляют себе создание пользователя по новому закону
sudo adduser john --adult yes
# Заблаговременная блокировка потенциальных демонов верификации (заглушка на будущее)
sudo systemctl disable --now age-verifyd.service
# Изоляция локальных сервисов от внешних запросов к API
sudo iptables -A OUTPUT -d age-check-api.local -j REJECT
Если утилиты для проверки возраста все же попытаются внедрить как зависимость в системные пакеты, нам придется вручную вырезать эти модули или использовать форки без шпионских функций.
Оценка ситуации
Этот закон — попытка государства переложить ответственность за контент на разработчиков базовой инфраструктуры. Скорее всего, нас ждет волна блокировок функционала по географическому признаку и появление новых патчей для ядер, вырезающих любые подобные API на этапе компиляции. Внимательно следите за обновлениями лицензионных соглашений ваших любимых дистрибутивов.
👉 Рубрика: #News@LinuxSkill
#Linux #Security #Privacy #DevOps #Law
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
🧠 17 команд Linux, чтобы больше не спрашивать «а как добавить в sudo?»
Опять застрял на настройке прав и судорожно ищешь, как правильно закинуть юзера в группу? Не позорься перед логами, держи полную базу из 17 команд.
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Users #Groups #CheatSheet #Sysadmin #CLI
Опять застрял на настройке прав и судорожно ищешь, как правильно закинуть юзера в группу? Не позорься перед логами, держи полную базу из 17 команд.
1. Создание новой группы:$ groupadd [name]$ addgroup [name]
Добавляет группу в систему.
2. Удаление группы:$ groupdel [name]
Удаляет существующую группу.
3. Переименование группы:$ groupmod -n [newGroupname] [oldGroupname]
Меняет имя старой группы на новое.
4. Создание пользователя:$ useradd [name]$ adduser [name]
Базовые команды для добавления юзера.
5. Удаление пользователя:$ userdel [name]$ deluser [name]
Удаление учетной записи из системы.
6. Смена логина:$ usermod -l [newUsername] [oldUsername]
Переименовывает существующего пользователя.
7. Установка пароля:$ passwd [name]
Задает или меняет пароль юзера.
8. Выдача sudo-прав:$ usermod -a -G sudo [user]$ adduser [user] sudo
Добавляет пользователя в группу sudo.
9. Информация о пользователе:$ finger [user]
Выводит детальную информацию об аккаунте.
10. Добавление уже созданного юзера в группу:$ usermod -aG [groupName] [userName]$ adduser [userName] [groupName]$ gpasswd -a [userName] [groupName]
Три способа расширить права доступа.
11. Создание пользователя сразу в группе:$ useradd -G [group] [user]
Создает юзера и сразу привязывает к дополнительной группе.
12. Удаление пользователя из группы:$ gpasswd -d [user] [group]$ deluser [user] [group]
Лишает пользователя членства в группе.
13. Список всех групп:$ getent group $ cat /etc/group
Показывает все группы в системе.
14. Список всех пользователей:$ getent passwd $ cat /etc/passwd
Показывает всех зарегистрированных юзеров.
15. Текущий статус и смена аккаунта:#### $ whoamiSwitch user
$ su [user]
Показывает, под кем ты залогинен, и позволяет сменить личность.
16. Активные сессии и ID:#### $ who$ w$ usersShow user ID and groups
$ id [user]
Вывод информации о тех, кто в системе, и их идентификаторах.
17. История входов:#### $ last> TERMINAL_GEAR
Показывает последние входы в систему.
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Users #Groups #CheatSheet #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30
💻 База и фишки CLI: 5 постов которые ускорят твою работу в терминале
Это те самые шпаргалки и команды, которые стоит держать в закладках, чтобы не гуглить каждый раз.
* Как быстро запомнить базовые команды Linux
* Полная шпаргалка по Bash: команды, синтаксис и фишки
* 10 навыков командной строки, которые ускорят твою работу в Linux
* 11 SSH-команд, после которых ты удалишь половину скриптов
* Упала сеть? 17 команд для мгновенной диагностики
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #CLI #Bash #SSH #Сеть #Диагностика
Это те самые шпаргалки и команды, которые стоит держать в закладках, чтобы не гуглить каждый раз.
* Как быстро запомнить базовые команды Linux
* Полная шпаргалка по Bash: команды, синтаксис и фишки
* 10 навыков командной строки, которые ускорят твою работу в Linux
* 11 SSH-команд, после которых ты удалишь половину скриптов
* Упала сеть? 17 команд для мгновенной диагностики
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #CLI #Bash #SSH #Сеть #Диагностика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Думали, «национальный мессенджер» — это просто клон привычных нам приложух? Оказалось, это полноценный spyware под прикрытием, который палит ваши туннели, пингует конкурентов и светит личными файлами на весь интернет. Собрал для вас хронологию грандиозного провала ИБ в приложении MAX.
Хроника расследования на Хабре:
1. Месседжер MAX следит за пользователями VPN? Реверс инжиниринг говорит — да > https://habr.com/ru/articles/1006666/
Разработчики MAX встроили модуль проверки хостов, который пингует Telegram и WhatsApp, а также вычисляет использование VPN на уровне системы. Всё это управляется удалённо с сервера и позволяет точечно следить за конкретными аккаунтами.
2. Российский мессенджер MAX замечен в обращении к иностранным сервисам определения IP и серверам конкурентов > https://habr.com/ru/articles/1006394/
Первые звоночки с NTC-форума. Анализ трафика через PCAPdroid показал, что приложение постоянно дёргает зарубежные ресурсы (AWS и Cloudflare) для сверки внешнего IP-адреса. Цель — вычислить наличие раздельного туннелирования (split tunneling) и скомпрометировать адреса ваших личных прокси-серверов.
3. После заявления Max, что ссылки на фото нельзя подобрать или сгенерировать, в сети нашли контент из мессенджера > https://habr.com/ru/news/1007576/
Дырявая архитектура в стиле "нулевых". Все медиафайлы лежат в открытом доступе по прямым ссылкам без серверной проверки прав. Личный файл доступен даже после его "удаления" из чата. Пресс-служба заявляла, что подобрать ссылку нереально, но юзеры уже вовсю находят чужие документы и фотографии.
4. В Max пояснили Хабру: мессенджер не отправляет запросы на серверы WhatsApp и Telegram и не отслеживает использование VPN / Хабр > https://habr.com/ru/news/1006950/
Официальный ответ пресс-службы, заявившей, что приложение к VPN отношения не имеет и ничего не отслеживает. Однако практически сразу после этого они в тихом режиме выкатили патч (версия 26.7.1), отключающий отправку запросов к конкурентам, хотя сам шпионский класс в коде так и остался.
👉 Рубрика: #News@LinuxSkill
#MAX #Security #Spyware #VPN #Privacy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36👎7🔥3
💸Вакансия: Senior DevOps Engineers - от 450 000 ₽ за месяц, на руки
🌐 https://hh.ru/vacancy/130744867
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #вакансии@LinuxSkill
#вакансии #DevOps
🌐 https://hh.ru/vacancy/130744867
Инструкция для вас: на что смотреть, где подстелить соломку и какие неудобные вопросы задавать на собеседовании.
Деньги предлагают отличные (от 450 000 рублей), проект масштабный (100+ млн пользователей), но текст вакансии зияет дырами. Давайте разбираться.
1. Адекватность названия и задач: Ловушка "Человек-оркестр"
В заголовке висит Senior DevOps Engineer, но реальность куда суровее. От вас хотят гибрида классического DevOps, MLOps и... бэкендера.
Самый жирный красный флаг в задачах — требование экспертного владения Golang для backend-разработки и работы с gRPC/HTTP.
О чем это говорит нам:
Компания сама не до конца понимает, кто ей нужен. Вы либо будете 80% времени пилить продуктовый код и балансировать gRPC-трафик, а в оставшиеся 20% чинить пайплайны на коленке, либо наоборот. В любом случае, с вас будут спрашивать за две, а то и три разные роли.
2. Технологический стек: Что скрыто за фасадом?
Сам базовый стек выглядит зрелым: AWS или GCP, K8s (GKE), Docker, Terraform, Linux. Но дьявол кроется в том, чего в тексте нет:
• Где CI/CD? В описании нет ни слова про инструменты непрерывной интеграции. GitLab CI, Jenkins, GitHub Actions? Если этого нет в тексте, есть риск, что код в прод едет bash-скриптами со старого ноутбука техлида.
• Абстрактный мониторинг: Хотят "глубокий опыт настройки мониторинга". Какого? Prometheus + Grafana? Datadog? ELK? Вам нужно знать, будете ли вы писать PromQL-запросы или ковыряться в легаси-системах.
• Магия MLOps: Вас просят деплоить ML-модели в продакшен. При этом знание Python (база для MLOps) засунуто в раздел "Будет плюсом". Про специализированные инструменты (Kubeflow, MLflow, Triton) вообще тишина. Скорее всего, ML-инфраструктуры там еще нет, и строить ее с нуля придется вам.
3. Скрытые риски и "Красные флаги"
• «Атмосфера стартапа из Кремниевой Долины». Братцы, на нашем инженерном сленге это переводится однозначно: отсутствие внятной документации, хаос в процессах согласования, деплои по пятницам и переработки по ночам ради быстрого Time-to-Market.
• On-call и дежурства. Аудитория в 100 миллионов пользователей означает жесточайший трафик и неизбежные ночные инциденты. В вакансии ни слова про дежурства. Кто встает по алерту в 3 часа ночи? Как это оплачивается?
5. Резюме: Инструкция перед собеседованием
Если вас зацепила цифра в 450к и масштаб проекта, откликаться стоит. Но на техническом интервью снимайте розовые очки и жестко проясняйте следующие моменты:
1. Уточните баланс ролей. Прямо спросите: "Сколько процентов времени я буду писать бэкенд на Go, а сколько — заниматься чистой инфраструктурой и деплоем моделей?"
2. Сделайте аудит текущего стека. Требуйте назвать конкретные инструменты. Как устроен CI/CD прямо сейчас? Через что гоняется мониторинг? На чем крутятся ML-модели?
3. Проясните процессы On-call. Задайте вопрос в лоб: "Как часто падают системы, кто дежурит по ночам и как эти дежурства компенсируются (деньги/отгулы)?"
4. Выясните формат контракта. Узнайте юрисдикцию (компания международная), как именно будут переводить эти 450к (валюта, рубли, крипта) и какие налоги лягут на ваши плечи.
5. Требуйте инженерные бенефиты. Уточните про рабочий ноутбук, доступы и социальный пакет. Вы не джун, чтобы работать за идею и "атмосферу стартапа".
👉 Рубрика: #вакансии@LinuxSkill
#вакансии #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
hh.ru
Вакансия Senior DevOps Engineer в Москве, работа в компании Gradient
Зарплата: от 450000 ₽ за месяц. Москва. Требуемый опыт: 3–6 лет. Полная. Дата публикации: 24.03.2026.
👍10
🚀 Тратишь время на поиск? Эти 50 команд Linux решат 99% задач с файлами
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Bash #DevOps #Sysadmin #CLI
Снова забыл, как быстро отфильтровать логи, создать симлинк или разом поменять права на директорию? Хватит тратить время на StackOverflow — держи ультимативную шпаргалку, которая раз и навсегда закроет всю рутину в консоли. Сохраняй, чтобы не потерять!
1. Создание, удаление и чтение файлов# Создать файл
touch [fileName]
echo "" >> [fileName]
> [fileName]
# Удалить файл
rm [fileName]
# Отобразить содержимое файла
cat [fileName]
bat [fileName]
# Редактировать текстовый файл
vi [fileName]
nano [fileName]
2. Копирование и перемещение# Копировать файл или папку
cp [fileName] [newFileName]
cat [fileName] > [newFileName]
dd if=[fileName] of=[newFileName]
# Переместить или переименовать
mv [fileName] [newFileName]
3. Директории и навигация# Создать папку
mkdir [folderName]
# Удалить папку
rm -r [folderName]
# Список содержимого папки
ls
exa
lsd
# Сменить папку
cd [path]
# Домашняя директория пользователя
cd ~
# Родительская директория
cd ..
# Предыдущая директория
cd -
# Показать текущую директорию
pwd
# Дерево директорий
tree
4. Ссылки, поиск и тип файлов# Физическая ссылка на файл/папку
ln [fileOrigin] [linkDest]
# Символическая ссылка
ln -s [target] [linkName]
# Найти фразу внутри файла
grep [phrase] [fileName]
rg [phrase] [fileName]
# Показать тип файла
file [fileName]
# Сравнить два файла
diff [file1] [file2]
5. Фильтрация и просмотр# Посчитать строки, слова и символы
wc [fileName]
# Показать первые строки файла
head [fileName]
# Показать последние строки файла
tail [fileName]
# Просмотр содержимого с навигацией
less [fileName]
more [fileName]
# Отсортировать содержимое
sort [fileName]
6. Права, владельцы и размер# Просмотр прав доступа
ls -l [file]
stat [file]
# Установить права доступа
chmod [permission] [file]
# Сделать файл исполняемым
chmod +x [file]
# Изменить владельца файла
chown [user] [file]
# Изменить группу файла
chgrp [group] [file]
# Размер поддиректорий
du -h --max-depth=1
dust
7. Монтирование и Корзина# Монтировать файловую систему
mount /dev/[device] [path]
# Размонтировать
umount [path]
# Список файлов в корзине
ls -l ~/.local/share/Trash/files
trash-list
# Очистить корзину
rm -r ~/.local/share/Trash
trash-empty
# Переместить файл в корзину
gio trash [file]
Теперь ты во всеоружии. Перешли этот пост коллеге, который до сих пор гуглит базовые ключи!
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Bash #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Помните, мы разбирали, как мессенджер MAX сканирует сеть и наличие VPN? Энтузиасты провели реверс-инжиниринг протокола и выкатили полностью открытый бэкенд.
Сегодня у нас на разборе проект OpenMAX - эмулятор сервера для мессенджеров MAX и TamTam. Разберем архитектуру, посмотрим в исходники и учимся разворачивать независимую инфраструктуру.
Проект написан на Python 3.12+ с активным использованием асинхронности (asyncio). Разработчик под ником Alexey Polyakov проделал огромную работу по реверсу официального API (api.oneme.ru и api.tamtam.chat).
Стек технологий выглядит привычно и надежно для любого сисадмина:
- Сетевое взаимодействие строится на websockets и TCP.
- Для упаковки и сжатия трафика применяются msgpack и lz4.
- В качестве базы данных поддерживаются MySQL, MariaDB и легкий SQLite (через aiosqlite).
Судя по дампу SQL-таблиц, сервер локально хранит профили пользователей, токены авторизации, чаты, контакты и сами сообщения в формате JSON-объектов.
Интересная деталь: автор проекта жестко выступает против современных трендов вайбкодинга. В правилах проекта (CODE_OF_CONDUCT.md) прямо указано, что OpenMAX не принимает правки и Pull Requests, написанные с использованием искусственного интеллекта и нейросетей. Только ручной хардкор.
Как переключить на свой сервер?
Просто скачать официальное приложение из стора и вбить IP-адрес не выйдет. Сервер требует модификации клиента.
У вас есть два пути:
1. Использовать пропатченный мобильный клиент MAX для Android или iOS (в репозитории есть раздел с инструкциями по патчингу IPA и APK).
2. Собрать открытый клиент Komet из исходного кода, жестко заменив адреса серверов на свои локальные.
Развертывание и настройка
Проект пока находится на ранней стадии и не рекомендуется для сурового продакшена, но для тестирования закрытого корпоративного контура подходит.
Для старта серверу обязательно требуются SSL-сертификаты. Если у тебя нет валидных сертификатов от Let's Encrypt, можно сгенерировать самоподписанные прямо в терминале.# Генерация самоподписанного сертификата X.509 на 365 дней
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
Далее нужно настроить переменные окружения. Сервер слушает сразу несколько портов для совместимости с разными клиентами.# Пример минимальной конфигурации .env файла
host = "0.0.0.0"
oneme_tcp_port = "443"
tamtam_tcp_port = "4433"
oneme_ws_port = "81"
tamtam_ws_port = "82"
log_level = "debug"
db_type = "sqlite"
db_file = "openmax.db"
certfile = "cert.pem"
keyfile = "key.pem"
Что делать, если хочется попробовать?
Авторы сами предупреждают в README: проект находится на ранней стадии разработки, вероятно полон багов и категорически не рекомендован для профессиональной среды. На данный момент у сервера нет опубликованных релизов, стабильных версий и changelog-ов.
Под капотом:
- Весь код написан на Python и лежит в директории `src/`.
- Реализован собственный TCP/WS-стек через модули `oneme_tcp`, `tamtam_tcp` и `tamtam_ws`.
- Конфигурация задается через файл `.env` (шаблон доступен в `.env.example`).
- Схема базы данных описана в файле `tables.sql`.
Уже этого набора характеристик достаточно, чтобы понять: пускать этот код в контур, где критична безопасность, нельзя.
Вердикт: используйте проект исключительно как локальную песочницу в закрытой сети с тестовыми данными. Если очень хочется развернуть сервер — прячьте его в изолированный контейнер без доступа к боевым базам и вашей основной внутренней сети.
👉 Рубрика: #News@LinuxSkill
#MAX #OpenSource #Python #Security #SelfHosted #ReverseEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17👎2👀1
🖨 Завис принтер на сервере? 14 команд Linux для управления печатью
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Sysadmin #DevOps #Printing #CLI
Снова зависла очередь печати, а бухгалтерия требует документы? Хватит ковырять настройки в графическом интерфейсе или судорожно перезапускать службу. Держи консольную шпаргалку для базового управления принтерами прямо из терминала.
1. Отправка файлов на печать
Эти команды позволят быстро распечатать нужный документ без открытия сторонних программ.# Печать файла напрямую в устройство
$ cat [file] > /dev/lp
# Отправить файл в очередь печати
$ cat [file] | lpr
# Форматировать файл (по 60 строк) и отправить на печать
$ pr -l60 [file] | lpr
# Распечатать файл на конкретном принтере
$ lpr [printerName] [file]
2. Просмотр очереди печати
Перед тем как отменять задачи, полезно взглянуть, что именно застряло.# Показать текущую очередь задач
$ lpq
3. Отмена зависших задач
Самый важный блок, когда нужно экстренно сбросить неудачную печать и успокоить пользователей.# Отменить текущую задачу печати
$ lprm -
# Удалить конкретную задачу по ее ID
$ lprm [jobID]
# Очистить всю очередь печати
$ lprm -a all
# Отменить все задачи на конкретном принтере
$ cancel [printerName]
# Отменить задачи конкретного пользователя
$ cancel -u [user]
4. Статус и управление принтером
Используй эти ключи, чтобы проверить состояние устройства или принудительно его включить/выключить.# Отобразить подробный статус всех принтеров
$ lpstat -t
# Включить принтер
$ enable [name]
# Отключить принтер
$ disable [name]
Теперь зависшие документы тебе не страшны. Сохрани этот пост под рукой, чтобы быстро решать проблемы с печатью.
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Sysadmin #DevOps #Printing #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
☠️ Прощай, VLESS: реверс-инжиниринг новых блокировок ТСПУ и спасение серверов
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #DevOps #Security #VPN #Networking #DPI
Твой личный туннель начал отваливаться, а зарубежные сайты виснут после пары секунд загрузки? DPI перешел на новый уровень. В столице раскатали «белые списки», а системы анализа научились детектить популярные протоколы обхода по их поведению.
Я собрал для тебя выжимку из двух мощнейших технических разборов на Хабре. Пора обновлять конфиги, пока наши сервера окончательно не легли.
1. Белые списки добрались до Москвы: изучаем механику «отсечки» в 16 килобайт > https://habr.com/ru/articles/1008164/
Провайдеры начали жестко фильтровать трафик по SNI. Если ты обращаешься к зарубежному серверу, TCP-хендшейк проходит успешно, но ровно через 16-20 килобайт сессия принудительно обрывается. Выживают только домены из специального белого списка, которых осталось около тысячи на весь интернет.# Как проверить свой IP на блокировку с подменой SNI из белого списка
curl -v --connect-to ::<твой_заблокированный_ip> https://ok.ru
Если с поддельным разрешенным заголовком данные пролетают мгновенно, значит твой сервер жив, но попал под фильтрацию Продвинутого DPI. Спасают сложные схемы маршрутизации, например, проброс туннелей через промежуточные ноды у непопулярных хостеров.
2. Как ТСПУ ловит VLESS в 2026 и почему XHTTP — следующий шаг > https://habr.com/ru/articles/1009542/
Протокол Reality больше не спасает от блокировок. Он безупречно маскирует TLS-рукопожатие и справляется с активным зондированием, но системы фильтрации активно применяют поведенческий анализ. Туннель генерирует постоянный двунаправленный поток данных, который абсолютно не похож на реальный профиль веб-серфинга или запросы к API. Решение — переход на транспорт XHTTP, который бьет трафик на статистически нормальные пары HTTP запрос-ответ.# Фрагмент клиентского конфига для защиты от блокировки по числу хендшейков
"xmux": {
"maxConnections": 1
}
Этот параметр в связке с новым транспортом помогает от так называемой «сибирской блокировки», когда фильтр рубит соединения за множество рукопожатий за короткое время.
Что в итоге? Системы анализа пакетов научились проверять отпечатки библиотек, анализировать тайминги и выявлять аномалии в распределении трафика. Регулярно проверяй графики нагрузки на своих узлах и переводи критичную инфраструктуру на XHTTP, чтобы размыть поведенческий профиль соединения.
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #DevOps #Security #VPN #Networking #DPI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37👀3👎1
🪦 X11 вырезали под корень. Разбираем архитектуру и новые реалии GNOME 50
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
#GNOME #Wayland #Linux #DevOps #Security #Systemd
Думали, что всегда сможете переключить сессию на старый добрый Xorg, если новомодный Wayland снова залагает? Больше нет. Состоялся релиз GNOME 50 «Tokyo», и разработчики окончательно вырвали X11 с корнем. Выполняю работу над ошибками: разбираем архитектурные изменения строго без домыслов — только сухие факты из чейнджлогов.
Что именно вырезали:
Из композитного сервера Mutter и GNOME Shell полностью удален код поддержки протокола X11. Дисплейный менеджер GDM теперь запускает собственные сессии исключительно через Wayland, хотя запуск сторонних X11-оболочек через него пока сохранен. Старые X11-приложения продолжат работать благодаря интегрированной прослойке XWayland.-Dx11
Эта опция сборки, как и возможность настройки параметров X11, навсегда удалена из компонентаgnome-settings-daemon. Вернуть поддержку иксов в GNOME простой пересборкой пакета больше нельзя.
Архитектурный сдвиг к systemd:
Разработчики отказались от старых костылей в пользу жесткой интеграции с системным менеджером systemd. В GDM теперь задействована инфраструктураsystemd-userdbдля выделения учетных записей, а собственный встроенный менеджер сервисов GNOME отправлен на пенсию.run0
Это новая утилита из состава systemd 256, которая теперь используется по умолчанию вместоpkexecдля выполнения привилегированных действий в мастере начальной настройки (gnome-initial-setup).
Новый RDP и headless-режим:
Удаленный доступ получил аппаратное ускорение вывода видео через современные API Vulkan и VA-API. Добавлена аутентификация через Kerberos и даже возможность проброса локальной web-камеры в сеанс с удаленной системой.gnome-headless-session@.service
Новый systemd-сервис, специально добавленный в GDM для удобного запуска сеансов без подключенного физического экрана. Это долгожданное решение для комфортных RDP-подключений к headless-серверам.
Фикс NVIDIA и управление цветом:
Внедрен протокол Explicit Sync, который позволяет синхронизировать буферы напрямую и избавляет от графических артефактов и задержек на проприетарных драйверах NVIDIA. Variable Refresh Rate (VRR) и дробное (нецелое) масштабирование переведены из разряда экспериментальных функций и включены по умолчанию.color-management-v2
Новый поддерживаемый протокол Wayland, предоставляющий полноценные средства для управления цветом. В дополнение к этому появилась поддержка передачи HDR-метаданных при screen sharing (совместном доступе к экрану), чтобы транслируемые цвета не теряли насыщенность.
👉 Рубрика: #News@LinuxSkill
#GNOME #Wayland #Linux #DevOps #Security #Systemd
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🚀 19 готовых команд для JSON в терминале
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #JSON #CLI #DevOps #Bash
Устал парсить ответы от API нечитаемой простынёй текста или писать костыли? Сейчас покажу шпаргалку по базовым операциям с JSON прямо в консоли Linux.
1. Pretty print (Красивый вывод)
Команды для форматирования JSON в удобный структурированный вид.# Использование утилиты fx
$ echo '{"name": "Linux"}' | fx .
# Использование утилиты dasel
$ echo '{"name": "Linux"}' | dasel -r json
# Использование популярной утилиты jq
$ echo '{"name": "Linux"}' | jq "."
# Использование утилиты jshon
$ echo '{"name": "Linux"}' | jshon
# Использование утилиты jql
$ echo '{"name": "Linux"}' | jql '.'
# Использование утилиты emuto
$ echo '{"name": "Linux"}' | emuto
2. Select (Выборка данных)
Как вытащить конкретное значение по ключу из JSON-строки,.# Выборка через dasel
$ echo '{"name": "Linux"}' | dasel -r json '.name'
# Выборка через fx
$ echo '{"name": "Linux"}' | fx .name
# Выборка через jq
$ echo '{"name": "Linux"}' | jq ".name"
# Выборка через jshon
$ echo '{"name": "Linux"}' | jshon -e name
# Выборка через jql
$ echo '{"name": "Linux"}' | jql '.name'
# Выборка через emuto
$ echo '{"name": "Linux"}' | emuto "$.name"
3. Put (Добавление и изменение)
Команды для добавления новых ключей или изменения существующих значений.# Добавление строки через dasel
$ echo '{"name": "Linux"}' | dasel put string -r json '.year' '1991'
# Вставка значения через jshon
$ echo '{"name": "Linux"}' | jshon -s 1991 -i year
# Формирование нового объекта через emuto
$ echo '{"name": "Linux"}' | emuto "{'name': $.name,'year':1991}"
4. Delete (Удаление)
Быстрое удаление ненужных полей из переданного JSON.# Удаление ключа через dasel
$ echo '{"name": "Linux", "year": 1991}' | dasel delete -r json '.year'
# Удаление ключа через jshon
$ echo '{"name": "Linux", "year": 1991}' | jshon -d year
# Удаление ключа путем пересоздания объекта в emuto
$ echo '{"name": "Linux", "year": 1991}' | emuto "{'name': $.name}"
5. Create (Создание)
Генерация нового JSON-объекта из переданных параметров.# Создание JSON с помощью jo
$ jo -p name=Linux year=1991
Теперь ты знаешь, как быстро форматировать, изменять и парсить JSON без написания скриптов.
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #JSON #CLI #DevOps #Bash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🛡 От телетайпа до plocate. Два лонгрида, которые закроют все дыры в базе Linux
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #DevOps #Security #VPN #Networking #DPI
Задумывался, как ядро на самом деле обрабатывает твои нажатия в консоли, и почему опытные админы ставятplocateвместо обычногоlocate? Я собрал для тебя выжимку из двух отличных статей с Хабра. Одна для глубокого погружения во внутренности подсистемы ввода-вывода, а вторая, чтобы намертво закрепить фундаментальную базу.
1. Чёрное окошко Linux: погружение в подсистему TTY > https://habr.com/ru/companies/ruvds/articles/983240/
Отличный исторический и технический разбор того, что скрывается за привычным эмулятором терминала. Автор объясняет, что TTY - это драйвер символьного устройства, а не просто окошко интерфейса. Оказывается, за кулисами работает алгоритм Line Discipline. Именно он буферизирует ввод и превращает управляющие коды (например, нажатие Ctrl+C) в сигналыSIGINTдля процессов. В комментариях к статье также отлично дополнили тему аварийного управления ядром через консоль:# Разрешить использование Magic SysRq Keys для прямого управления ядром
echo "1" > /proc/sys/kernel/sysrq
Этот параметр позволяет посылать низкоуровневые команды (например, принудительную перезагрузку или убийство ресурсоемких процессов через OOM kill) напрямую в ядро при жестком зависании системы.
2. Учим Linux: Файлы, навигация и поиск > https://habr.com/ru/articles/1003550/
Мощный структурированный справочник по файловой системе и базовым утилитам. Подробно разбирается назначение виртуальных ФС/procи/sys, отличия жёстких ссылок от символических, а также нюансы работы с логами. Отдельное внимание уделено правильным флагам утилит для написания надежных скриптов:# Слежение за файлом лога в реальном времени с учётом его пересоздания (ротации)
tail -F file.txt
В отличие от обычного флага-f, заглавнаяFне даст команде отвалиться, когда системный демон пересоздаст свой лог-файл. Также автор рекомендует использовать пакетplocateдля поиска файлов в современных дистрибутивах (например, Ubuntu 22.04) - он работает значительно быстрее устаревшегоmlocateза счёт более эффективного индекса.
Пробегись по материалам и скинь коллегам, если они всё ещё путают консоль с терминалом.
👉 Рубрика: #SkillHunter@LinuxSkill
#Linux #DevOps #Security #VPN #Networking #DPI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Channel name was changed to «LinuxSkill - Сводки с прода и Шпаргалки»
💀 MITM-атака в кармане: почему «Телегу» нужно снести прямо сейчас
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#telega #mitm #infosec #telegram
Многие массово качают клиент «Telega» для обхода блокировок, не подозревая, что добровольно отдают свои сессии под перехват. Сейчас на уровне кода разберём, как устроена их MITM-атака и как защитить свою инфраструктуру.
Telega (АО «Телега», ранее «Даль») — это альтернативный клиент, разработчики которого 18 марта 2026 года активировали принудительный перехват трафика. Клиент обращается к серверу за списком подменённых дата-центров.curl -s https://api.telega.info/v1/dc-proxy
# Возвращает подменённые IP адреса дата-центров в формате JSON (например, 130.49.152.X)
Трафик перенаправляется на собственные серверы проекта, а проверка владельца подсети выдает прямую связь с экосистемой VK.whois 130.49.152.0 | grep AS
# Вывод покажет AS203502 JOINT STOCK COMPANY TELEGA
# Единственный апстрим: AS47764 LLC VK
Но подмена IP — это только половина атаки. Чтобы читать зашифрованный трафик, разработчики вшили дополнительный RSA-ключ в динамическую библиотеку клиента.strings libtmessages.49.so | grep -A 1 "BEGIN RSA PUBLIC KEY"
# Найдено 4 ключа. Ключ по адресу 0x15788E1 является подставным и отсутствует в официальном клиенте
Именно этот четвёртый ключ позволяет их серверам успешно завершать криптографическое рукопожатие, выступая "человеком посередине". Более того, клиент получает с сервера конфигурацию (Remote Config), которая принудительно ослабляет криптозащиту.// Принудительное отключение Perfect Forward Secrecy и секретных чатов
DcConfig.options.use_pfs = false;
FeatureManager.currentInstance().isSCEnabled() = false;
Секретные чаты (End-to-End) тихо игнорируются, а выключенный PFS позволяет злоумышленникам расшифровать весь записанный трафик в будущем, если ключи будут скомпрометированы. Просто удалить приложение с телефона недостаточно, так как активная сессия уже находится на их серверах.1. Принудительно отозвать сессии:
В официальном клиенте Telegram -> Настройки -> Устройства -> Завершить все другие сеансы
2. Заблокировать подсети злоумышленников на корпоративном фаерволе:
iptables -A OUTPUT -d 130.49.152.0/24 -j DROP
iptables -A OUTPUT -d 130.49.224.0/19 -j DROP
Если ты или твои коллеги обсуждали важные данные с пользователями Telega, считай эту информацию известной третьим лицам.
Источники:
Telega: как «удобный клиент Telegram» превратили в MITM с цензурой и ИИ-надзирателем
В интернете появился полный теханализ MITM-атаки в клиенте Telega от неизвестного источника
Остальные статьи по теме: habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#telega #mitm #infosec #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1
🌐 Полный контроль над сетью! Подборка из 42 сетевых команд которая должна быть у каждого
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Network #DevOps #Sysadmin #CLI
Упала сеть на сервере или нужно срочно проверить открытые порты, а нужные ключи вылетели из головы? Сейчас покажу ультимативную шпаргалку по сети в Linux. Только рабочие конструкции для траблшутинга и базовой настройки.
1. Внешний IP, пароли и сетевые интерфейсы
Быстрый сбор базовой информации о текущем подключении и железе.# Получить внешний IP-адрес
$ curl ifconfig.me
$ dig +short myip.opendns.com @resolver1.opendns.com
$ netcat icanhazip.com 80 <<< $'GET / HTTP/1.1\nHost: icanhazip.com\n' | tail -n1
# Получить пароль от Wi-Fi
$ cat /etc/NetworkManager/system-connections/[SSID] | grep psk=
# Вывести список сетевых интерфейсов
$ lspci | egrep -i --color 'network|ethernet'
$ ifconfig -a
$ ip a
$ ip link show
$ lshw -class network
$ cat /proc/net/dev
$ nmcli device status
2. Загрузка файлов и информация о домене
Утилиты для скачивания файлов прямо из консоли и проверки whois.# Скачать файл по ссылке
$ wget [url]
$ curl -O [url]
$ aria2c [url]
$ axel [url]
# Получить информацию о домене
$ whois [ip]
3. Диагностика узлов и маршрутов
Команды для проверки доступности соседних устройств и пути прохождения пакетов.# Пропинговать другое устройство
$ ping [ip]
$ mtr [ip]
# Отследить путь пакета до цели
$ traceroute [ip]
$ tracepath [ip]
# Установить Telnet подключение
$ telnet [ip] [port]
4. DNS, Hostname и настройки интерфейса
Управление именем машины, проверка резолва DNS и сброс IP-адреса.# Настроить сетевой интерфейс
$ ifconfig
# Показать hostname вашего сервера
$ hostname
$ hostnamectl
# DNS-запрос и отображение ответа сервера
$ dig [ip]
$ nslookup [ip]
$ host [ip]
# Освободить IP и получить новый от DHCP
$ dhclient -r
5. Порты, сокеты и маршрутизация
Главный арсенал для поиска открытых портов и проверки таблицы маршрутизации.# Вывести список открытых сокетов
$ netstat -l
$ lsof -i
$ ss -l
# Показать таблицу маршрутизации
$ ip route
$ route
# Показать открытые порты
$ ss -tuln
$ netstat -tuln
# Проверить доступность порта на хосте
$ nc -zv [host] [port]
6. Использование пропускной способности (Bandwidth)
Утилиты для мониторинга нагрузки на сеть в реальном времени.
# Показать использование канала
$ iftop
$ nethogs
$ vnstat
$ bmon
$ nload
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Network #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
