🚮 Твои скрипты не запустятся: Что удалили в Ubuntu 26.04
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ubuntu #linux #sysadmin #devops #lts
Ubuntu 26.04 LTS «Resolute Raccoon» не просто обновилась — она знатно «похудела», выкинув пакеты и технологии, на которых годами держались твои конфиги и контейнеры.
Список «потерь»# Проверка поддержки cgroup
grep cgroup /proc/filesystems
Поддержка cgroup v1 (legacy и hybrid) полностью вырезана из systemd 259. Если твои контейнеры (например, старая Ubuntu 16.04) требуют v1, на этом хосте они не заведутся.# Поиск сессий Xorg
ls /usr/share/xsessions/
Сессия Xorg/X11 удалена из стандартной поставки GNOME. Теперь только Wayland. Приложения X11 работают через прослойку XWayland, но прямых иксов больше нет.# Попытка добавить ключ (выдаст ошибку или предупреждение)
sudo apt-key add repository.key
Утилита apt-key окончательно удалена. Для управления ключами репозиториев теперь нужно использоватьgpgvнапрямую, как описано вman apt-secure.# Проверка статуса сетевых сервисов
sudo systemctl status nfs-blkmap
Сервисы blkmapd и nfs-blkmap для NFS удалены. pNFS block layout признан небезопасным (риск потери данных) в пользу SCSI/NVMe layouts.# Поиск ядра lowlatency
dpkg -l | grep linux-lowlatency
Пакет linux-lowlatency отправлен на покой. Вместо него теперь используется метапакетlowlatency-kernel, который тюнит стандартное ядро через параметры загрузки в GRUB.Для тех, кто на мейнфреймах
Поддержка IBM Z z14 (LinuxONE II) и старше прекращена
Ubuntu 26.04 теперь требует минимум архитектуру z15. Старое железо не поддерживается инсталлятором и апгрейдером.Что заменили в GUI (удалили из дефолта):
Totem -> Showtime
Evince -> Papers
GNOME Terminal -> Ptyxis
Eye of GNOME -> Loupe
System Monitor -> Resources
Классические приложения заменены на новые аналоги на Rust и GTK4. Также из базовой установки вырезаны Software & Updates и Startup Applications (их функции теперь в настройках системы).
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ubuntu #linux #sysadmin #devops #lts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
💥 Твой ИИ снесёт прод за 9 секунд. Ставим хард-лимиты для агентов
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ai #devops #sysadmin #security #incident
Слышал, как ИИ-агент Cursor (на базе Claude Opus 4.6) за 9 секунд удалил всю базу и бэкапы стартапа PocketOS? Давай разберем на их ошибках, почему текстовые запреты в промптах — это мусор, и как реально работает безопасность.
Как это было и как надо делатьcurl -X POST https://backboard.railway.app/graphql/v2 \
-H "Authorization: Bearer [token]" \
-d '{"query":"mutation { volumeDelete(volumeId: \"3d2c42fb-...\") }"}'
Это реальный запрос, который агент отправил в Railway API, чтобы «починить» ошибку авторизации. Никакого подтверждения (типа "введите DELETE" или SMS) система не запросила.Railway CLI token = Domain Management + volumeDelete permission
Агент нашел токен в файле, вообще не связанном с его задачей. Токен создавался только для управления доменами через CLI, но по факту давал root-права на весь GraphQL API без какого-либо RBAC."NEVER run destructive/irreversible git commands (like push --force, hard reset, etc) unless the user explicitly requests them."
Это кусок реального системного промпта агента PocketOS. Агент сам признался, что знал правило, но «угадал», что удаление безопасно, и проигнорировал его. Системные промпты — это советы, а не защита, модель может их обойти.# Разрешенные команды (Cerbos Synapse):
git status
# Блокируемые команды:
rm -rf
Защита должна быть снаружи процесса агента. Как указывают спецы из Cerbos, HTTP-хуки перехватывают вызовы ИИ и блокируют деструктивные операции (например,rm -rf), не давая агенту права самому управлять своими разрешениями."Wiping a volume deletes all backups"
Это цитата из документации Railway, о которой не знал ИИ. Бэкапы лежали в том же томе, что и база, поэтому агент снес всё разом. Настоящие резервные копии должны лежать в другом радиусе поражения.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ai #devops #sysadmin #security #incident
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📦 Стыдно не знать эти 44 команды архивации, которые избавят тебя от рутины
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #Archiving #DevOps #Sysadmin #CLI
Снова забыл, какой ключ нужен для извлечения файлов из архива tar.xz, или путаешься в современных форматах сжатия? Хватит каждый раз гуглить документацию — держи ультимативную шпаргалку ровно на 44 команды по всем видам архивов и компрессии в Linux.
1. Работа с архивами tar
Классический инструмент администратора. Создание, распаковка и просмотр содержимого.# Создать tar архив
$ tar cf [archive].tar [files]
$ tar czf [archive].tar.gz [files]
$ tar cjf [archive].tar.bz2 [files]
$ tar cJf [archive].tar.xz [files]
# Извлечь tar архив
$ tar xf [archive].tar
$ tar xzf [archive].tar.gz
$ tar xjf [archive].tar.bz2
$ tar xJf [archive].tar.xz
# Извлечь в определенную директорию
$ tar xf [archive].tar -C [directory]
# Показать содержимое архива
$ tar tf [archive].tar
$ tar tzf [archive].tar.gz
2. Сжатие и распаковка (gzip и bzip2)
Базовые утилиты для работы с популярными форматами сжатия.# Сжать с помощью gzip
$ gzip [file]
$ gzip -k [file]
$ gzip -9 [file]
# Распаковать gzip
$ gunzip [file].gz
$ zcat [file].gz
# Сжать с помощью bzip2
$ bzip2 [file]
$ bzip2 -k [file]
# Распаковать bzip2
$ bunzip2 [file].bz2
$ bzcat [file].bz2
3. Современное сжатие (xz и zstd)
Форматы, обеспечивающие высокую степень сжатия или невероятную скорость.# Сжать с помощью xz
$ xz [file]
$ xz -k [file]
$ xz -9 [file]
# Распаковать xz
$ unxz [file].xz
$ xzcat [file].xz
# Сжать с помощью zstd
$ zstd [file]
$ zstd -k [file]
$ zstd -19 [file]
# Распаковать zstd
$ unzstd [file].zst
$ zstdcat [file].zst
4. Популярный формат zip
Управление классическими zip-архивами прямо из консоли.# Создать zip архив
$ zip [archive].zip [files]
$ zip -r [archive].zip [directory]
$ zip -e [archive].zip [files]
# Извлечь zip архив
$ unzip [archive].zip
$ unzip [archive].zip -d [directory]
$ unzip -l [archive].zip
# Показать информацию о zip архиве
$ zipinfo [archive].zip
5. Другие форматы: 7z, cpio, rar, ar
Работа с экзотическими или специфичными форматами упаковки.# Создать 7z архив
$ 7z a [archive].7z [files]
# Извлечь 7z архив
$ 7z x [archive].7z
# Показать содержимое 7z архива
$ 7z l [archive].7z
# Создать cpio архив
$ find . | cpio -o > [archive].cpio
# Извлечь cpio архив
$ cpio -id < [archive].cpio
# Извлечь rar архив
$ unrar x [archive].rar
# Создать ar архив
$ ar rcs [archive].a [files]
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #Archiving #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🔥 14 ГБ оперативки на фаервол? Вся правда о порте Little Snitch на Linux
Проект на github.com
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
⭐️ Зеркало в MAX
#linux #ebpf #littlesnitch #firewall #devops #администрирование
Не знаешь, какие процессы втихаря сливают телеметрию с твоего сервера? Сейчас покажу, как отследить и заблокировать их с помощью порта Little Snitch на Linux, и почему с ним нужно быть крайне осторожным.rustup toolchain install stable
rustup toolchain install nightly --component rust-src
cargo install bpf-linker
Ставим зависимости. Без ночной сборки Rust линкер не справится, и eBPF-программы для ядра просто не соберутся. Также в системе должен быть установлен компилятор clang.cargo build
cargo check
Запускаем сборку. Код очень капризный и проходит верификатор только на ядрах Linux от 6.12 до 7.0 (обязательна поддержка BTF) при сборке через Rust 1.93.0-nightly. На старых ядрах ты просто упрешься в лимит инструкций верификатора.http://localhost:3031/
Именно здесь по умолчанию живет веб-интерфейс. В отличие от macOS-версии, традиционного десктопного приложения тут нет — демон поднимает локальный сервер, куда можно зайти даже с телефона или добавить его как PWA. При этом визуальные графики трафика на месте: они строятся внизу страницы и позволяют фильтровать историю соединений.cp /var/lib/littlesnitch/config/web_ui.toml /var/lib/littlesnitch/overrides/config/
cp /var/lib/littlesnitch/config/main.toml /var/lib/littlesnitch/overrides/config/
Никогда не правь дефолтные конфиги напрямую. Скопируй их в директориюoverridesи редактируй там. Вmain.tomlможно сменить политику неизвестных соединений на deny, а вweb_ui.toml— обязательно включить TLS и базовую аутентификацию, если интерфейс торчит наружу.
Запомни главное: на Linux это инструмент только для приватности, а не для безопасности. Под высокой сетевой нагрузкой eBPF-таблицы кэша тупо переполняются, и система перестает понимать, какой пакет какому процессу принадлежит. В довесок, пользователи на GitHub и Reddit уже вовсю репортят баги: этот полупроприетарный демон способен сожрать 13-14 ГБ памяти и повесить CPU на 100%.
Проект на github.com
⭐️ Зеркало в MAX
#linux #ebpf #littlesnitch #firewall #devops #администрирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚨 Спасаем Linux от рут-доступа без пароля: надежный патч
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #DirtyFrag #Root #AWS
Любой локальный пользователь прямо сейчас может получить root-права на твоей машине из-за новых уязвимостей Dirty Frag и Copy Fail. В сети гуляют скрипты защиты, которые выдают ошибки доступа или пропускают часть уязвимых модулей. Сейчас покажу, как надежно заблокировать эту угрозу командами от Amazon и Microsoft.
Проблема кроется в подсистемах ядра IPsec (esp4/esp6/ipcomp4/ipcomp6) и RxRPC. Эксплойт перезаписывает кэш страниц и модифицирует бинарные файлы (например, /usr/bin/su) прямо в оперативной памяти. В итоге атакующий получает root-оболочку без ввода пароля.
Вот пошаговая инструкция для полной изоляции угрозы:# 1. Проверяем наличие модулей в памяти
lsmod | grep -E "esp4|esp6|ipcomp4|ipcomp6|rxrpc"
# 2. Блокируем загрузку и пытаемся выгрузить текущие
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall ipcomp4 /bin/false\ninstall ipcomp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf"
# Пытаемся выгрузить модули (modprobe -r корректно обрабатывает зависимости)
sudo modprobe -r esp4 esp6 ipcomp4 ipcomp6 rxrpc 2>/dev/null || echo "Некоторые модули еще используются и не могут быть выгружены без перезагрузки"
# 3. Очищаем кэш (теперь с sudo)
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Важно: блокировка модулей esp и ipcomp полностью отключит поддержку IPsec (КВН, зашифрованные туннели). Если сервер использует их для связи, сеть упадет. Также обрати внимание: если модули уже были загружены и использовались, для надежной выгрузки потребуется перезагрузка сервера.
Теперь ты знаешь, как защитить инфраструктуру от свежих уязвимостей. Проверь свои серверы прямо сейчас.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #DirtyFrag #Root #AWS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🛡 Тратишь часы на аудит сети? Эти 59 утилит сэкономят твои нервы
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Pentest #Sysadmin #DevOps #Hacking
Подозреваешь дыры в безопасности или хочешь протестировать инфраструктуру на прочность? Хватит гуглить каждую тулзу — держи 59 базовых утилит для пентеста, сниффинга и форензики, которые должны быть под рукой при аудите.
1. Эксплуатация уязвимостей (Exploitation tools)# Утилиты для поиска и эксплуатации брешей
$ yersinia
$ thc-ipv6
$ sqlmap
$ termineter
$ searchsploit
$ msfpc
$ msfconsole
$ beef-xss
$ setoolkit
2. Атаки на пароли (Password attacks)# Инструменты для брутфорса, генерации словарей и подбора паролей
$ cewl
$ crunch
$ hashcat
$ john
$ medusa
$ ncrack
$ ophcrack
$ pyrit
$ rcrack
$ hydra
3. Компьютерная криминалистика (Forensics)# Утилиты для расследования инцидентов и анализа дампов памяти
$ autopsy
$ binwalk
$ bulk_extractor
$ chkrootkit
$ foremost
$ galleta
$ hashdeep
$ volatility
4. Сниффинг и Спуфинг (Sniffing/Spoofing)# Перехват и подмена трафика в сети
$ driftnet
$ ettercap
$ macchanger
$ mitmproxy
$ netsniff-ng
$ wireshark
5. Сбор информации (Information gathering)# Разведка и сбор данных об инфраструктуре и хостах
$ dmitry
$ ike-scan
$ netdiscover
$ nmap
$ zenmap
6. Анализ уязвимостей (Vulnerability analysis)# Сканирование системы и сети на наличие уязвимостей
$ lynis
$ nikto
$ nmap
7. Анализ веб-приложений (Web application analysis)# Поиск брешей в веб-сайтах и дамп данных
$ httrack
$ skipfish
$ sqlmap
8. Базы данных (Databases)# Тестирование безопасности баз данных
$ mdb-sql
$ sqlitebrowser
$ sqlmap
9. Атаки на беспроводные сети (Wireless attack)# Взлом и аудит Wi-Fi, RFID и других беспроводных стандартов
$ cewl
$ aircrack-ng
$ chirpw
$ giskismet
$ kismet
$ mfoc
$ mfterm
$ reaver
$ wifite
10. Утилиты для отчетов (Reporting tools)# Создание отчетов и фиксация результатов пентеста
$ cutycapt
$ keepnote
$ recordmydesktop
Сохрани этот арсенал, чтобы нужная утилита всегда была под рукой во время тестирования на проникновение.
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Pentest #Sysadmin #DevOps #Hacking
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
🧠 Устал от взломов? 5 строчек SSH, которые спасут сервер
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
⭐️ Зеркало в MAX
#Linux #SSH #Security #Hardening #SysAdmin
Оставляешь дефолтные настройки SSH и надеешься, что пронесет? Сейчас покажу, как грамотно защитить сервер и безопасно пробрасывать порты.
1. Бэкап конфигурации
Всегда делай резервную копию перед изменениями.# Бэкап конфигурации SSH перед любыми изменениями
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkp
2. Хардэнинг сервера
Ограничь прослушиваемые адреса и отключи небезопасные методы аутентификации.# Жестко прописываем IP адрес SSH сервера для защиты
ListenAddress 192.168.1.100 # ip ag-dc-1
# Отключаем пустые пароли и доверенные хосты
PermitEmptyPasswords no
IgnoreRhosts yes
HostbasedAuthentication no
3. Правильный проброс портов
Избегай лишних ключей и фоновых запусков через амперсанд, чтобы не сломать ввод пароля.# Проброс удаленного порта на локальную машину
ssh -N -L 8000:example.com:80 user@bastion.example.com
4. Выполнение команд на лету
Запускай команды без входа в интерактивную сессию.# Выполнение конкретной команды на сервере без входа в интерактивную сессию
ssh [user]@[host] [command]
5. Монтирование удаленных папок
Подключай директории прямо в свою систему для удобной работы.# Монтирование удаленной директории через SSH в локальную систему
sshfs [user]@[host]:[remoteDir] [localDir]
Безопасность — это процесс, а не результат. Обнови конфиги прямо сейчас, чтобы спать спокойно.
⭐️ Зеркало в MAX
#Linux #SSH #Security #Hardening #SysAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🚨 Останови кражу root-файлов без перезагрузки сервера
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #CVE #RHEL #Root
Любой локальный пользователь без привилегий прямо сейчас может прочитать твои приватные SSH-ключи и хеши паролей из/etc/shadow. Давай закроем брешьCVE-2026-46333на уровне ядра строго по рекомендациям Red Hat.
Ошибка кроется в функции__ptrace_may_access(). Во время завершения процесса ядро освобождает память до закрытия файловых дескрипторов. Возникает состояние гонки. Успешная эксплуатация опирается на использование вызоваpidfd_getfd(2). Под ударом RHEL 8, 9, 10 и зависимые продукты (RHEL CoreOS, OpenShift, OpenStack, Red Hat Virtualization).
Официальный бюллетень Red Hat не предоставляет готовых bash-скриптов, но описывает два варианта изоляции угрозы:
1. Option 1: Admin-only scope (Безопасный режим)
Необходимо установитьptrace_scope в значение 2. Это ограничит ptrace только для процессов с правамиCAP_SYS_PTRACEи заблокирует известные векторы атак.
Важно: это не позволит обычным пользователям использовать отладчики (gdb, strace -p) для своих собственных процессов.
2. Option 2: Most restrictive scope (Радикальный режим)
Необходимо установитьptrace_scope в значение3. Это полностью отключит любые операцииptraceдля всех, включая root.
Важно: сломаются любые инструменты мониторинга, опирающиеся на ptrace. Требуется жесткое тестирование.
Для отката любого из этих вариантов (Mitigation removal) вендор дает следующую прямую инструкцию:delete /etc/sysctl.d/ptrace-restrict.conf and run sysctl --system
Помни, что изменения ptrace блокируют только известные эксплойты. Полностью уязвимость закроет только официальный патч ядра.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #CVE #RHEL #Root
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🧠 Закипел мозг от конфигов? 10 скрытых игр прямо в терминале
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Terminal #CLI #Games #Sysadmin #DevOps
Устал парсить бесконечные логи и ждать завершения долгого деплоя? Есть легальный способ выдохнуть, не сворачивая любимую консоль. Держи шпаргалку по 10 олдскульным играм, которые запускаются прямо в терминале.
1. Знаменитая головоломка 2048.$ 2048
2. Классический сапёр (mines)$ nbmines
$ freesweep
3. Текстовое приключение (adventure).$ adventure
4. Лунный багги (moon-buggy).$ moon-buggy
5. Классическая ролевая игра (angband).$ angband
6. Подземелья Мории (moria).$ moria
7. Симулятор авиадиспетчера (atc).$ atc
8. Легендарный рогалик (nethack).$ nethack-console
9. Нарды в консоли (backgammon).$ backgammon
10. Космические захватчики (ninvaders).$ ninvaders
Сохрани этот пост, чтобы быстро переключиться и дать мозгу отдохнуть, пока шеф думает, что ты упорно дебажишь ядро.
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Terminal #CLI #Games #Sysadmin #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🚨 Останови захват root через кэш. Защищаем сервер от Fragnesia
👉 Патч тут
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Fragnesia #CVE #Root
Не успели мы выдохнуть после патчей для Dirty Frag, как исследователь William Bowling из команды V12 выкатил продолжение — уязвимость «Fragnesia» (CVE-2026-46300). Давай разберем механику угрозы и посмотрим на официальные методы защиты.
Новый баг — это непреднамеренный побочный эффект от патчей, которыми ранее закрывали прошлую дыру Dirty Frag. Проблема находится в подсистеме ядра XFRM, отвечающей за обработку ESP-in-TCP (поддержка IPsec).
Опасность Fragnesia кроется в трех факторах:
- Логическая ошибка позволяет произвольно записывать байты в кэш страниц ядра (page cache) для файлов, доступных только для чтения.
- Опубликованный эксплойт успешно модифицирует бинарник/usr/bin/suпрямо в оперативной памяти, открывая root-оболочку без изменения файла на диске.
- Эксплойт абсолютно предсказуем. В отличие от старых багов вроде Dirty COW, он вообще не полагается на состояния гонки (Race Conditions), что делает его сверхнадежным.
Такие вендоры, как Ubuntu, RHEL, Debian, SUSE и Amazon Linux, уже оценивают масштабы проблемы по всем поддерживаемым версиям ядер. Microsoft предупреждает: эксплойт позволяет модифицировать любой читаемый юзером файл, включая/etc/passwd
Что делать прямо сейчас? Инженеры уже подготовили патч из двух строк для файла skbuff.c, но пока он едет в стабильные ветки дистрибутивов (Ubuntu, Debian, RHEL, SUSE и др.), разработчики AlmaLinux выпустили официальную рекомендацию по защите:
«Если твой сервер не использует IPsec/ESP, жесткое отключение этих модулей ядра поможет срезать вектор атаки до установки финального патча. Следи за пакетным менеджером и обновляйся.»
👉 Патч тут
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Fragnesia #CVE #Root
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚨 Экстренно меняем токены: атака Megalodon ломает GitHub-репозитории
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#GitHub #Security #CICD #Megalodon #DevOps
Масштабная автоматизированная supply-chain атака Megalodon всего за шесть часов поразила более 5500 репозиториев на GitHub. Злоумышленники внедряют вредоносные рабочие процессы в CI/CD и сливают критичные секреты инфраструктуры. Разберем механику взлома и официальные шаги по защите.
Аналитики Hudson Rock подтвердили: источником заражения стали обычные инфостилеры на рабочих компьютерах разработчиков. Украденные учетные данные позволили хакерам получить доступ к репозиториям.
Как действует эксплойт:
- Атакующие используют поддельные имена авторов, маскируясь под легитимных ботов (build-bot, auto-ci, ci-bot, pipeline-bot).
- В GitHub Actions внедряется вредоносный workflow с полезной нагрузкой на bash в кодировке Base64.
- Скрипт собирает переменные окружения, ключи AWS, SSH, токены Kubernetes, Docker, Vault и Terraform, после чего отправляет их на C2-сервер атакующих.
Опасность в том, что атака активируется автоматически при каждом пуше (вариант SysDiag) или ждет ручного запуска через workflow_dispatch (вариант Optimize-Build), гарантируя хакерам максимальный охват.
Поскольку проблема кроется в утечке доступов, готовых bash-скриптов для очистки нет — зараженные пайплайны нужно вычищать вручную. Платформа npm уже начала принудительно аннулировать скомпрометированные ключи и выпустила официальную инструкцию по сдерживанию угрозы:
Официальные меры по защите от атаки в экосистеме npm
1. Немедленно аннулировать гранулярные токены доступа с правами на запись, которые обходят двухфакторную аутентификацию (2FA).
2. Перевести публикацию пакетов на механизм Trusted Publishing, чтобы снизить зависимость от статических токенов.
Машина разработчика с трояном — это прямой бэкдор в твой продакшен. Проверь историю коммитов на предмет странных ботов и отзови старые токены прямо сегодня.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#GitHub #Security #CICD #Megalodon #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
🧨 Твои скрипты падают на проде? 43 команды Bash, которые спасут твою репутацию
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #DevOps #Sysadmin #ShellScripting #CLI
Скрипт отработал с ошибкой, но не остановился и удалил половину нужных файлов? Или CI/CD пайплайн споткнулся о пустую переменную? Я отжал воду из огромных справочников и оставил ровно 50 самых хардкорных и важных конструкций Bash, которые жизненно необходимы.
1. Безопасность и запуск (Strict Mode)Эти настройки — стандарт де-факто для любых production-скриптов. Они отлавливают ошибки на раннем этапе.
# Указать интерпретатор (лучшая практика переносимости)
#!/usr/bin/env bash
# Сделать скрипт исполняемым
chmod +x script.sh
# "Strict Mode" (выход при ошибке, ошибке переменной или в пайплайне)
set -euo pipefail
# Выйти немедленно при ошибке
set -e
# Режим отладки (выводить команды перед выполнением)
set -x
2. Продвинутая работа с переменнымиЗащита от пустых значений, которые могут сломать автоматизацию.
# Присвоить значение (строго без пробелов вокруг =)
VAR=value
# Безопасное чтение с кавычками (предотвращает word splitting)
"$VAR"
# Использовать по умолчанию, если переменная не задана (важно для Docker)
${VAR:-default}
# Назначить значение по умолчанию, если VAR не задана
${VAR:=default}
# Выйти с ошибкой, если переменная не задана (failsafe для деплоя)
${VAR:?error msg}
# Сделать переменную доступной только для чтения (константа)
readonly VAR
# Экспортировать переменную для дочерних процессов
export VAR
3. Системные переменныеИдентификаторы процессов и аргументы функций.
# Имя скрипта
$0
# Позиционные параметры (аргументы 1-9)
$1..$9
# Количество переданных аргументов
$#
# Все аргументы безопасно как отдельные слова
$@
# Статус выхода последней команды (0 - успех, иное - ошибка)
$?
# PID текущего процесса shell
$$
4. Парсинг строк (без вызова awk/sed)Молниеносные встроенные манипуляции с путями и текстом.
# Удалить самое короткое совпадение паттерна с начала
${VAR#pattern}
# Удалить самое короткое совпадение с конца (удобно для расширений файлов)
${VAR%pattern}
# Заменить все вхождения подстроки
${VAR//old/new}
# Перевести все символы в нижний регистр
${VAR,,}
5. Условия и мощные проверкиИспользуй `[[ ]]` вместо старого `[ ]` — это безопаснее и поддерживает регулярные выражения.
# Проверить существование файла и вывести результат
if [[ -f "file.txt" ]]; then echo "exists"; fi
# Проверка по регулярному выражению
=~
# Конструкция case (идеально для стартовых скриптов systemd)
case "$1" in start) echo "Starting";; stop) echo "Stopping";; *) echo "Usage: $0 {start|stop}";; esac
# Файл существует и является обычным
-f file
# Файл существует и является директорией
-d file
# Строка пустая
-z string
# Строка не пустая
-n string
# Строковое равенство и неравенство
==
!=
# Числовое равенство и неравенство
-eq
-ne
6. Массивы и словариНезаменимо для перебора IP-адресов, списков серверов и портов.
# Объявить индексированный массив
arr=(a b c)
# Получить все элементы массива
${arr[@]}
# Узнать количество элементов в массиве
${#arr[@]}
# Объявить ассоциативный массив (словарь)
declare -A map
# Добавить значение по ключу
map[key]="value"
7. Математика, Ввод/Вывод и СигналыФорматирование вывода для дашбордов и правильная очистка мусора за скриптом.
# Арифметика: сложение
$((a + b))
# Арифметическое присваивание
let "a += 5"
# Прочитать строку в массив
read -r -a items <<< "a b c"
# Форматированный вывод (надежнее чем echo)
printf "Name: %s, Age: %d\n" "$name" "$age"
# Многострочный ввод (Here document) для генерации конфигов
cat <<EOF
Lines of text go here.
Variables like $HOME are expanded.
$ EOF
# Завершить скрипт с кодом успеха
exit 0
# Завершить скрипт с кодом ошибки
exit 1
# Выполнить очистку (например, удалить лок-файл) при любом выходе
trap ' rm -f /tmp/mylock' EXIT
Теперь твой код готов к нагрузкам. Сохраняй шпаргалку, чтобы не плодить костыли, и применяй правильный синтаксис!
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #DevOps #Sysadmin #ShellScripting #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🛡️ SSH-туннель отваливается? Вечные соединения за секунду
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#SSH #Autossh #Linux #DevOps #SysAdmin
Обычный SSH-туннель или прокси падает при малейшем сбое сети, оставляя тебя без связи. Утилита autossh решает эту проблему: она оборачивает SSH-соединение, мониторит его состояние и автоматически перезапускает при обрыве.
Ниже подробная шпаргалка, как поднять вечные туннели для любых задач.
1. Поднимаем постоянный локальный SSH-туннель (Local port forward)
Пробрасываем удаленный порт 80 на локальный 8080 с портом мониторинга 20000autossh -M 20000 -N -L 8080:localhost:80 user@remote
2. Туннель без отдельного порта мониторинга
Полезно, если порты мониторинга закрыты (полагается на ServerAliveInterval)autossh -M 0 -N -L 8080:localhost:80 user@remote
3. Поднимаем вечный обратный туннель (Reverse port forward)
Пробрасываем наш локальный порт 80 на удаленный порт 8080autossh -M 20000 -N -R 8080:localhost:80 user@remote
4. Запуск в фоновом режиме
Ключ -f уводит процесс в фон сразу после аутентификацииautossh -f -M 20000 -N -L 8080:localhost:80 user@remote
5. Создаем неразрывный SOCKS-проксиautossh -M 20000 -N -D 8080 user@remote
6. Управление через переменные окружения
Включаем отладку и задаем задержку перед первой проверкой (по умолчанию 30 сек)AUTOSSH_DEBUG=1 AUTOSSH_GATETIME=10 autossh -M 20000 -N -D 8080 user@remote
Настрой это один раз, и твои пробросы портов больше никогда не умрут от смены IP или перезагрузки роутера. Проверь свои туннели прямо сейчас.
👉 Рубрика: #шпаргалка@LinuxSkill
#SSH #Autossh #Linux #DevOps #SysAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
⚠️ Хватит плодить хрупкие скрипты и оставлять дыры для троянов. Пора писать пуленепробиваемый инфраструктурный код.
🎥 Приглашаем на вебинар - Продвинутый Bash
На вебинаре вы узнаете:
- Связка set -euo pipefail навсегда исключит тихое проглатывание ошибок и потерю данных в конвейерах.
- Нативные подстановки Bash заменят тысячи ресурсоемких вызовов sed и сэкономят CPU.
- Регулярный мониторинг системных профилей защитит продакшен от перехвата команд троянами.
- Грамотный перехват сигналов через trap обеспечит безопасное сворачивание процессов при сбоях.
В результате вебинара вы:
- Замените многоуровневые костыли лаконичной логикой на базе ассоциативных массивов.
- Исключите утечки глобальных переменных через жесткую изоляцию областей видимости в функциях.
- Внедрите нативную построчную трассировку скриптов вместо примитивного дебага echo-принтами.
- Начнете напрямую пробрасывать переменные окружения в SystemD-юниты для надежного старта сервисов.
🧠 Открытый урок проходит в преддверии старта курса «Администратор Linux. Продвинутый уровень»
👉 Для участи зарегистрируйтесь: https://otus.pw/7CHT/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🎥 Приглашаем на вебинар - Продвинутый Bash
На вебинаре вы узнаете:
- Связка set -euo pipefail навсегда исключит тихое проглатывание ошибок и потерю данных в конвейерах.
- Нативные подстановки Bash заменят тысячи ресурсоемких вызовов sed и сэкономят CPU.
- Регулярный мониторинг системных профилей защитит продакшен от перехвата команд троянами.
- Грамотный перехват сигналов через trap обеспечит безопасное сворачивание процессов при сбоях.
В результате вебинара вы:
- Замените многоуровневые костыли лаконичной логикой на базе ассоциативных массивов.
- Исключите утечки глобальных переменных через жесткую изоляцию областей видимости в функциях.
- Внедрите нативную построчную трассировку скриптов вместо примитивного дебага echo-принтами.
- Начнете напрямую пробрасывать переменные окружения в SystemD-юниты для надежного старта сервисов.
🧠 Открытый урок проходит в преддверии старта курса «Администратор Linux. Продвинутый уровень»
👉 Для участи зарегистрируйтесь: https://otus.pw/7CHT/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎2
cheatsheet_ssh.png
735.4 KB
🛡 Железобетонный SSH: харденинг без ошибок
Внедряй эти параметры в свои пайплайны, и твой сервер станет неприступной крепостью.
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #SSH #Security #Hardening #SysAdmin #DevOps
Внедряй эти параметры в свои пайплайны, и твой сервер станет неприступной крепостью.
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #SSH #Security #Hardening #SysAdmin #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6