TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4853 894
🔒 Блокировка неиспользуемых модулей ядра Linux одним скриптом

ModuleJail — это shell-скрипт без зависимостей, демонов и initramfs-изменений. Он читает список загруженных модулей из /proc/modules, сравнивает его с полным деревом модулей в /lib/modules/, и для всего, что не используется, генерирует файл /etc/modprobe.d/modulejail-blacklist.conf с директивами install <mod> /bin/true.

Есть встроенный базовый набор модулей, которые никогда не попадут в блокировку: файловые системы, контроллеры хранилищ, сетевые драйверы. Плюс можно задать свой whitelist.

Зачем это нужно именно сейчас

Автор проекта исходит из того, что AI-инструменты для поиска уязвимостей скоро начнут массово находить скрытые баги в модулях ядра. Это хорошо в долгосрочной перспективе, но в краткосрочной означает поток CVE, за которыми сложно успевать.

Если модуль заблокирован и не загружается, очередная уязвимость в нём вас просто не касается.

Как запустить

Безопасный способ — скачать, проверить, запустить:
curl -fsSL https://raw.githubusercontent.com/jnuyens/modulejail/v1.1.4/modulejail -o /tmp/modulejail
less /tmp/modulejail
sudo sh /tmp/modulejail


Для Debian/Ubuntu и RHEL/Fedora/Rocky есть готовые пакеты:
# Debian / Ubuntu
curl -fsSLO https://github.com/jnuyens/modulejail/releases/download/v1.1.4/modulejail_1.1.4_all.deb
sudo dpkg -i modulejail_1.1.4_all.deb

# RHEL / Fedora / Rocky
curl -fsSLO https://github.com/jnuyens/modulejail/releases/download/v1.1.4/modulejail-1.1.4-1.noarch.rpm
sudo rpm -i modulejail-1.1.4-1.noarch.rpm


Профили

Скрипт поддерживает три профиля через флаг -p:
sudo sh modulejail -p conservative
sudo sh modulejail -p minimal
sudo sh modulejail -p desktop


conservative (по умолчанию) подходит для серверов и виртуалок. desktop сохраняет WiFi, Bluetooth, аудио и видео. minimal оставляет только ядро файловых систем и самое необходимое.

Модель безопасности

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

Откат тоже простой:
sudo rm /etc/modprobe.d/modulejail-blacklist.conf
sudo reboot


Или, если нужно вернуть конкретный модуль без ребута:
sudo modprobe <имя_модуля>


Что ещё полезно знать

Скрипт идемпотентен. Два запуска подряд на неизменённой системе дают побайтово идентичный результат. В заголовке файла генерируется sha256-отпечаток, рассчитанный по входным данным, а не по времени запуска. Это удобно для флотового управления через Ansible или другие CM-инструменты.

Работает на Ubuntu, Debian, Rocky, Arch, Alpine и openSUSE. Из зависимостей нужны только awk, comm, find и sha256sum, которые есть в любом базовом Linux, включая busybox.

➡️ GitHub-репозиторий

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
  • 👍 2
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →