Linux разные версии ядра и модулей ядра

2022.04.15
Решаем проблему на VPS когда запущено ядро Linux одной версии, а модули ядра другой, а вообще нужно было настроить iptables

Поступил заказ на фрилансе - перенести сайты с вебхостинга на VPS, хостер hostland.ru. Ничего не обычного: перенести базы данных и файлы, развернуть веб-сервер, настроить сайты и сертификаты, обеспечить безопасность.

Но когда дело дошло до firewall (ufw), то внезапно получил такой ответ:

ERROR: problem running iptables: modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.19.0-18-amd64
iptables v1.8.4 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

В ядро 4.19.0-18 не установлены дополнительные модули, среди которых iptables.

Определение проблемы

Ладно, получим информацию о дистрибутиве:

$ lsb_release -a 
No LSB modules are available.
Distributor ID:  Ubuntu
Description:  Ubuntu 20.04 LTS
Release:  20.04
Codename:  focal

А теперь узнаем что за ядро:

$ uname -a
Linux hostXXX 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 x86_64 x86_64 GNU/Linux

Посмотрим пакеты с упоминанем linux:

$ dpkg -l | grep linux
ii  console-setup-linux             1.194ubuntu3                     all          Linux specific part of console-setup
ii  libselinux1:amd64               3.0-1build2                      amd64        SELinux runtime shared libraries
ii  linux-base                      4.5ubuntu3.7                     all          Linux image base package
ii  linux-image-5.4.0-107-generic   5.4.0-107.121                    amd64        Signed kernel image generic
ii  linux-image-virtual             5.4.0.107.111                    amd64        Virtual Linux kernel image
ii  linux-modules-5.4.0-107-generic 5.4.0-107.121                    amd64        Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
ii  util-linux                      2.34-0.1ubuntu9                  amd64        miscellaneous system utilities

И еще в /lib/modules/ другая версия модулей ядра, отличная от запущенного:

В /lib/modules/ другая версия модулей ядра, отличная от запущенного

Запущено ядро версии 4.19.0-18-amd64 без модулей, а установлено ядро версии 5.4.0-107.121-amd64.

Варианты решения

Установить модули ядра через apt:

$ sudo apt install linux-modules-4.19.0-18-amd64

В моем случае Unable to locate package.

Поискать пакет на www.debian.org или pkgs.org или kernel.ubuntu.com.

Не нашел.

Поискать решение в интернете, например вот.

Не помогло.

Написать хостеру. Техническая поддержка решила проблему (свою) в течении 10 минут:

Техническая поддержка решила проблему (свою) в течении 10 минут

Получилось!

В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps