Современные EFI/BIOS в последнее время порой идут с неотключаемым SecureBoot или же порой очень сложно найти, где оно отключается. Зачем он нужен и какую пользу приносит, об этом как-нибудь в другой раз. Слишком обширная тема.
Сейчас мы разберём, как подписывать сторонние модули ядра, не входящие в основную поставку, чтобы они работали с SecureBoot. для примера возьмём VirtualBox, модули которого, обычно идут в виде исходников и собираются с помощью DKMS.
Я использую Fedora 34, но это работает в любом современном дистрибутиве.
Для начала нам понадобится mokutil.
После чего необходимо добавить пароль. Этот пароль нам потребуется при следующей перезагрузке.
Теперь уже создаём скриптик, которым мы будем подписывать модули ядра:
На всякий случай можете проверить расположение signfile и если что, подправить пути в скрипте выше:
И пересобираем модуль:
Сейчас мы разберём, как подписывать сторонние модули ядра, не входящие в основную поставку, чтобы они работали с SecureBoot. для примера возьмём VirtualBox, модули которого, обычно идут в виде исходников и собираются с помощью DKMS.
Я использую Fedora 34, но это работает в любом современном дистрибутиве.
Для начала нам понадобится mokutil.
Затем создаём новый каталог и генерим пару RSA:
sudo dnf update
sudo dnf install mokutil
sudo -i
mkdir /root/signed-modules
cd /root/signed-modules
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
chmod 600 MOK.priv
После чего необходимо добавить пароль. Этот пароль нам потребуется при следующей перезагрузке.
sudo mokutil --import MOK.derЗатем перезагружаемся и на появившемся синем экране выбираем: Enroll MOK --> Continue --> вбиваем пароль из предыдущего шага
Теперь уже создаём скриптик, которым мы будем подписывать модули ядра:
cd /root/signed-modulesИ сам скрипт, собственно:
vim sign-virtual-box
#!/bin/bash
for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
echo "Signing $modfile"
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
/root/signed-modules/MOK.priv \
/root/signed-modules/MOK.der "$modfile"
done
На всякий случай можете проверить расположение signfile и если что, подправить пути в скрипте выше:
И далее:
find /usr/src -name signfile
chmod 700 sign-virtual-box
./sign-virtual-box
И пересобираем модуль:
modprobe vboxdrvВ дальнейшем скрипт НЕ УДАЛЯЕМ, как и сгенерированные ключи. Они нам потребуется при каждом обновлении ядра. А вот mokutil будет уже не обязателен.
Fedora 34: первая неделя использования
Oct. 16th, 2021 08:32 pm«О чём думаешь, Евгений?» вопрошает меня Фейсбук. А о том, что давно у меня не было рубрики «карма тестировщика».
Дано: Fedora 34 Workstation. Ванильная. Со всеми патчами и апдейтами из штатных репозиториев. Никаких RPM Fusion и иже с ними.
Дано: Fedora 34 Workstation. Ванильная. Со всеми патчами и апдейтами из штатных репозиториев. Никаких RPM Fusion и иже с ними.
- Уже несколько раз крашился Gnome, причём непонятно из-за чего. Но отчёты в ABRT сгенерились. Надо бы восстановить пароль от багзиллы Fedora и отправить логи туда.
- Постоянно пропадает звук на полсекунды или меньше в Firefox, при подключении внешней звуковой карты. Судя по всему, проблема в PipeWire. Решения пока не нашёл. Если проигрывать со штатной звуковой карты в ноутбуке — всё ОК.
- При обратном включении иконок на работе столе Gnome, иконки постоянно меняют своё местоположение при включении или выключении дока. Причём заметил, что съезжают всегда одинаково. В качестве обходного решения расположил иконки как мне надо при включенном доке и использовать Gnome Shell только с доком. Стыд, да и только.
- Очень редко, но теряются настройки внешних мониторов. Какую-то последовательность пока не уловил. Но случается правда редко и фикс занимает несколько секунд. Переживу. Туда же — меняются местами primary и secondary мониторы.
- Нихера не запоминаются настройки размера окон в Gnome Terminal.
- До сих пор надо в Gnome Terminal надо отключать Menu acceleration, чтобы заработала клавиша F10. Да, я использую Midnight Commander. Порицайте меня.
- Всё так же надо использовать Gnome Tweaks, чтобы добавить кнопки сворачивания, разворачивания и максимизации-минимизации окон.
- По хрен знает какой причине у меня не работали сначала Gnome Extensions. Решение: обнулить профиль пользователя и сбросить профили Firefox/Chrome, затем заново переустановить аддоны для браузеров.
- Если воткнуть док до загрузки ноутбука, то система будет загружаться раза в три медленнее, чем без него.
Сертификат R3 для Let's Encrypt
Oct. 11th, 2021 06:57 pmДумаю ни для кого не новость, что сертификаты от R3 которым подписаны цепочки от тех же Let's Encrypt протухли ещё 30 сентября. Но те, кто выписывают сертификаты с помощью certbot, обнаружили, что сертификат обновляется, но по-прежнему подсовывается старая цепочка доверия.
Чтобы заставить certbot выдавать сертификаты используя цепочку ISRG X1, надо скормить оному команду certbot renew --preferred-chain "ISRG Root X1". Затем просто перезапустить сервер. В дальнейшем будет сгенерирован конфиг для сертификата, где по умолчанию будет прописано необходимая предпочтительная цепочка доверия.
Чтобы заставить certbot выдавать сертификаты используя цепочку ISRG X1, надо скормить оному команду certbot renew --preferred-chain "ISRG Root X1". Затем просто перезапустить сервер. В дальнейшем будет сгенерирован конфиг для сертификата, где по умолчанию будет прописано необходимая предпочтительная цепочка доверия.
HP LaserJet 1018 OS 11 BigSur
Oct. 10th, 2021 05:45 pmКак-то после обновления с Catalina на BigSur у меня отвалилось два устройства. Точнее как отвалились. Мой внешний ЦАП работал, но очень эпизодически глючил. А вот принтер HP LaserJet 1018 вовсе перестал работать.
К счастью, с ЦАП проблема довольно быстро решилась выпуском обновления драйверов для BigSur, то с принтером оказалась полная засада. Чего только не перепробовал. И переустановка драйверов заново с полной зачисткой всех хвостов, установка драйверов с помощью Pacifist.В итоге уже почти смирился с тем, что придётся менять надёжный как булыжник принтер на что-то иное, как внезапно натыкаюсь на статью, а там вижу интересное:
К счастью, с ЦАП проблема довольно быстро решилась выпуском обновления драйверов для BigSur, то с принтером оказалась полная засада. Чего только не перепробовал. И переустановка драйверов заново с полной зачисткой всех хвостов, установка драйверов с помощью Pacifist.В итоге уже почти смирился с тем, что придётся менять надёжный как булыжник принтер на что-то иное, как внезапно натыкаюсь на статью, а там вижу интересное:
The information coming from a HP support agent conveys that following steps may help those facing the issue on their HP printers after after Big Sur update:
Make sure the cable is directly connected between the Mac and the printer.
The use of a USB hub is not recommended. Also, make sure the cable is connected to a USB 2.0 port on your Mac.
А у меня как раз валялся обычный переходник с USB на USB-C. Воткнул... заработало. О - очевидность. Особенно на фоне того, что раньше через хаб всё прекрасно работало. Я и как-то не подумал, что могло что-то тут измениться.
В общем, покупка принтера отменилась. Живём дальше.
А у меня как раз валялся обычный переходник с USB на USB-C. Воткнул... заработало. О - очевидность. Особенно на фоне того, что раньше через хаб всё прекрасно работало. Я и как-то не подумал, что могло что-то тут измениться.
В общем, покупка принтера отменилась. Живём дальше.
VPN клиент от Cisco, конечно, та ещё притча по языцех. Компания, специализирующаяся на сетевых решениях всё ещё не умеет в клиенты для сетевых, собственно, решений. Даже в Linux с помощью Network Manager это реализовано намного более прямо.
В этот раз обнаружил очередное прекрасное. При установке клиента приезжает до кучи Cisco AnyConnect Socket Filter. Всё бы ничего, он и раньше был, но под OS 11 BigSur с ним всплыла проблема. Socket Filter появляется в Network Preferences. И именно под BigSur он наглухо фильтрует доступ к куче всего, по одному ему известному способу. У меня стало медленно работать вообще всё, что связано с сетью. Браузеры, утилиты вроде ping, вообще всё. В итоге просто грохнул в сетях всё связанное с Socker Filter и позапрещал доступ к Kernel Extension который пытается врубиться при доступе к сети. Внезапно всё заработало так же шустро как раньше. В итоге вопрос — ну нахера так, а?
В этот раз обнаружил очередное прекрасное. При установке клиента приезжает до кучи Cisco AnyConnect Socket Filter. Всё бы ничего, он и раньше был, но под OS 11 BigSur с ним всплыла проблема. Socket Filter появляется в Network Preferences. И именно под BigSur он наглухо фильтрует доступ к куче всего, по одному ему известному способу. У меня стало медленно работать вообще всё, что связано с сетью. Браузеры, утилиты вроде ping, вообще всё. В итоге просто грохнул в сетях всё связанное с Socker Filter и позапрещал доступ к Kernel Extension который пытается врубиться при доступе к сети. Внезапно всё заработало так же шустро как раньше. В итоге вопрос — ну нахера так, а?
А теперь давайте поговорим за RabbitMQ
Jun. 9th, 2021 06:55 pm.. и его проблемы.
Снова решил пописать про работу. На сей раз, проблема возника с RabbitMQ.
Имеется кролик с неработающими очередями. При этом всё поднято, но если заглянуть в логи, то можно увидеть в первую очередь нечто такое:
Если же зайти в админку кролика, то мы видим сообщение вида:
Virtual host / experienced an error on node rabbit@somehost and may be inaccessible
После раскуривания некоторого количества логов, выяснилось, что проблема в Mnesia. По какой-то причине корраптятся сообщения в msg_stores. Если повнимательнее поискать, то можно заметить такое:
Дальше останавливаем корлика, затем идём по указанному пути и грохаем целиком /var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/. После этого запускаем демона заново. Всё должно запуститься без проблем.
Некоторые люди зачем-то удаляют mnesia целиком, но если у вас, как и у меня, тонны очередей, эксчейнджей и пользователей, то потом это порой будет проблематично восстаналивать даже при наличии любой системы управления конфигурациями.
Снова решил пописать про работу. На сей раз, проблема возника с RabbitMQ.
Имеется кролик с неработающими очередями. При этом всё поднято, но если заглянуть в логи, то можно увидеть в первую очередь нечто такое:
2021-06-09 10:02:38.030 [error] <0.19004.32> Error on AMQP connection <0.19004.32> (192.168.0.1:42538 -> 192.168.0.3:5672, vhost: 'none', user: 'updater', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'XXX': vhost '/' is down",
'connection.open'}}
2021-06-09 10:02:38.030 [info] <0.19004.32> closing AMQP connection <0.19004.32> (192.168.0.1:42538 -> 192.168.0.3:5672, vhost: 'none', user: 'updat
er')
2021-06-09 10:02:38.031 [info] <0.19001.32> accepting AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672)
2021-06-09 10:02:38.032 [info] <0.19020.32> accepting AMQP connection <0.19020.32> (192.168.0.1:42540 -> 192.168.0.3:5672)
2021-06-09 10:02:38.033 [error] <0.19001.32> Error on AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672, vhost: 'none', user: 'smsc', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'YYY': vhost '/' is down",
'connection.open'}}
2021-06-09 10:02:38.034 [info] <0.19001.32> closing AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672, vhost: 'none', user: 'smsc')
2021-06-09 10:02:38.035 [error] <0.19020.32> Error on AMQP connection <0.19020.32> (192.168.0.1:42540 -> 192.168.0.3:5672, vhost: 'none', user: 'updater', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'XXX': vhost '/' is down",
'connection.open'}}
Если же зайти в админку кролика, то мы видим сообщение вида:
Virtual host / experienced an error on node rabbit@somehost and may be inaccessible
После раскуривания некоторого количества логов, выяснилось, что проблема в Mnesia. По какой-то причине корраптятся сообщения в msg_stores. Если повнимательнее поискать, то можно заметить такое:
CRASH REPORT Process
<0.430.0> with 0 neighbours crashed with reason: no match of right hand value {error,{not_a_dets_file,”/var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/recovery.d ets”}} in rabbit_recovery_terms:open_table/1 line 197
Дальше останавливаем корлика, затем идём по указанному пути и грохаем целиком /var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/. После этого запускаем демона заново. Всё должно запуститься без проблем.
Некоторые люди зачем-то удаляют mnesia целиком, но если у вас, как и у меня, тонны очередей, эксчейнджей и пользователей, то потом это порой будет проблематично восстаналивать даже при наличии любой системы управления конфигурациями.
Попалась на глаза проблема в сабже. В гуях вкладка "DNS" в свойствах VPN-подключение игнорируется, описание домена, который нужно резолвить, и его DNS-сервера в /etc/resolvers/ тоже игнорируется. Проверено на High Sierra, Mojave, Catalina.
По Интернету гуляет инструкция вроде этой, но как выяснилось — неверная. Решение нашёл уважаемый коллега Антон Марков из одного околоадминского чата. Так что передаю слово ему.
Итак, решение:
- создаём директорию /etc/resolver (не /etc/resolvers, как пишет индус!)
- создаём там файлы с именами доменов, которые нужно ресолвить, к примеру, contoso.com
- в файлы пишем как минимум строки вида
nameserver 10.0.0.253
nameserver 10.0.0.252
Индус утверждает, что имена файлов не имеют значения, а внутри принимаются также параметры вида:
domain contoso.com
search_order 1
timeout 5
Я не проверял эти параметры, но как минимум в принятии параметра domain я что-то уже сомневаюсь.
Работа описанного метода проверена на Mojave и Catalina. В недрах инета я встречалось упоминание, что это игнорируется как минимум Mountain Lion.
По Интернету гуляет инструкция вроде этой, но как выяснилось — неверная. Решение нашёл уважаемый коллега Антон Марков из одного околоадминского чата. Так что передаю слово ему.
Итак, решение:
- создаём директорию /etc/resolver (не /etc/resolvers, как пишет индус!)
- создаём там файлы с именами доменов, которые нужно ресолвить, к примеру, contoso.com
- в файлы пишем как минимум строки вида
nameserver 10.0.0.253
nameserver 10.0.0.252
Индус утверждает, что имена файлов не имеют значения, а внутри принимаются также параметры вида:
domain contoso.com
search_order 1
timeout 5
Я не проверял эти параметры, но как минимум в принятии параметра domain я что-то уже сомневаюсь.
Работа описанного метода проверена на Mojave и Catalina. В недрах инета я встречалось упоминание, что это игнорируется как минимум Mountain Lion.
Поставил себе yakuake вместо глючного xfce-шного терминала.
Плюсы: чертовски шустро и удобно
Минусы: тянет за собой много нездорового кедового говна из kde-base,которым я никогда не буду пользоваться.
Боги Хаоса меня конечно покарают, но многократно хвалёный почтенным
raze_overdrive aterm подружить с UTF-8 у меня так и не получилось.
Плюсы: чертовски шустро и удобно
Минусы: тянет за собой много нездорового кедового говна из kde-base,которым я никогда не буду пользоваться.
Боги Хаоса меня конечно покарают, но многократно хвалёный почтенным
ЖЖ-шное и достаточно актуальное
Mar. 16th, 2008 07:29 pmДля тех кому надо сохранить ЖЖ имеючи под боком Linux/FreeBSD:
Берём ljsm с этого сайта за версией 2.9 (более ранние версии не работают из-за изменившегося механизма аутентифиткации в LJ).
Далее ставим dev-lang/perl, а кроме этого dev-perl/Unicode-MapUTF8, dev-perl/Unicode-Map, dev-perl/libwww-perl и все их зависимости. В противном случае, скрипт будет валиться со всевозможными ошибками.
Ну а далее делаем по мануалу:
perl /home/ваша_домашняя_директория/ljsm.pl -u user:password test1 test2
Где user - ваш логин, password - ваш пароль. Test1 и test2 соответственно, пользователи которых вы хотите сохранить. Более подробно можно посмтотреть либо на сайте, либо в хелпе который вываливается при запуске скрипта без параметров.
Особо одарённые могут залезть в сам скрипт и прописать необходимые параметры там, чтобы каждый раз не вводить необходимые для сохранения ключи.
Post Scriptum:
Я знаю, что это примитивно, но некоторыевиндузятники убунтойды не умеют и посему натыкаются на грабли.
Берём ljsm с этого сайта за версией 2.9 (более ранние версии не работают из-за изменившегося механизма аутентифиткации в LJ).
Далее ставим dev-lang/perl, а кроме этого dev-perl/Unicode-MapUTF8, dev-perl/Unicode-Map, dev-perl/libwww-perl и все их зависимости. В противном случае, скрипт будет валиться со всевозможными ошибками.
Ну а далее делаем по мануалу:
perl /home/ваша_домашняя_директория/ljsm.pl -u user:password test1 test2
Где user - ваш логин, password - ваш пароль. Test1 и test2 соответственно, пользователи которых вы хотите сохранить. Более подробно можно посмтотреть либо на сайте, либо в хелпе который вываливается при запуске скрипта без параметров.
Особо одарённые могут залезть в сам скрипт и прописать необходимые параметры там, чтобы каждый раз не вводить необходимые для сохранения ключи.
Post Scriptum:
Я знаю, что это примитивно, но некоторые
... и я решил заняться чем-нибудь полезным.
К примеру, написать этот пост ( что лежит под катом )
А жизнь прекрасна и удивительна...
К примеру, написать этот пост ( что лежит под катом )
А жизнь прекрасна и удивительна...
Ужас-ужас!
May. 20th, 2006 11:47 pmТолько что прочитав вот эту ссылочку у меня в голове тут же родился следующий пассаж: "Вы всё ещё хотите перейти на висту? Тогда Тукс идёт к вам!"