|
|||||||
Установка обновленного ejabberd в Astra Linux 1.6 Update 10. Как выкачивать ПО из сторонних репозитариев
Время создания: 01.09.2022 17:15
Автор: xintrea
Текстовые метки: linux, astra, debian, ejabberd, jabber, выкачивание, скачать, репозитарий, ключ, зеркало, mirror, создание, копия
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/166204175343ns9akk08/text.html на raw.github.com
|
|||||||
|
|||||||
В обновлении Astra Linux 1.6 Update 10 разломали jabber-сервер ejabberd. И, соответственно, перестали работать корпоративные jabber-клиенты. В течении двухмесячной переписки со службой поддержки Astra Linux техподдержка признала, что пакет ejabberd содержит нерабочий код, и посоветовала переставить сервер из открытых источников, если политика безопасности это позволяет. А если не позволяет - то корпорация должна работать без внутреннего мессенджера, и крайними становятся админы, но никак не разработчики Астры. И что выбирают админы, чтобы не быть крайними? Правильно, неплевать на политику безопасности и под свою ответственность установить jabber-сервер из открытого источника, обеспечив себе пляски по удалению и восстановлению этого ПО в период прохождения сертификации. Масла в огонь подливает тот факт, что Linux не был бы Linux, если бы в нем так просто можно было взять, и установить нужную программу. Тем более, если компьютер, на который устанавливается программа, не имеет доступа в сеть Интернет. В этом случае придется не просто откуда-то получить пакет с ejabberd (это можно сделать, но толку не будет из-за зависимостей), а нужно будет выкачать весь репозитарий ejabberd со всеми зависимостями, чтобы можно было поставить новый пакет. Плюс надо надеяться на то, что авторы программы позаботились о совместимости собранных ими пакетов со старыми и с новыми версиями Debian. К счатью, для ejabberd эти условия на 2022 год соблюдаются, а это большая редкость! Для получения репозитария, действия надо производить на Linux-компьютере, подключенном к сети Интернет. Это может быть и Astra Linux, и какой-нибудь Debian-based дистрибутив Получение копий ключей открытого репозитария ejabberd Вначале надо получить ключи репозитария на машину, где будет происходить выкачивание репозитария. Получение ключей делается от обычного пользователя, а прописывание - от суперпользователя. Получение ключа в текстовом виде происходит следующей командой в отдельной директории: wget -qO- https://apt.jabber.at/gpg-key > ejabberd-text-pgp-key В результате из Интернета будет выкачан файл ключей ejabberd и сохранен в файле с именем ejabberd-text-pgp-key. Далее данный ключ надо прописать в APT-подсистему компьютера, на котором происходит выкачивание репозитария. Находясь в той же директории, где лежит выкаченный файл ключа, надо дать следующую команду. На старых Linux (включая Astra Linux 1.6 Up 10): # cat ./ejabberd-text-pgp-key | sudo apt-key add - На более новых: # cat ./ejabberd-text-pgp-key | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/apt.jabber.at.gpg --import Файл ejabberd-text-pgp-key так же понадобится в дальнейшем, и будет использован на машине, где будет устанавливается ejabberd-сервер. Установка программы создания зеркал репозитариев Для создания зеркальных копий репозитариев, в Linux используется программа apt-mirror. Она устанавливается из стандартного репозитария используемого дистрибутива: # apt install apt-mirror После установки появится настроечный файл /etc/apt/mirror.list, который надо привести к следующему виду: set nthreads 20 set _tilde 0 ... deb https://apt.jabber.at stretch ejabberd clean https://apt.jabber.at Все другие репозитарии в данном файле надо отключить, чтобы они не выкачивались. Получение копии репозитария При установке программы apt-mirror в системе появится системный пользователь apt-mirror. Создание копии репозитария должно происходит от этого пользователя. Для этого, находясь в консоли с правами root (в Astra Linux это происходит путем подачи команды sudo su от security-пользователя, если пользователь root не был настроен) необходимо дать команду: # sudo -u apt-mirror apt-mirror Скачивание пакетов будет сопровождаться примерно такими сообщениями: Downloading 14 index files using 14 threads... Begin time: Fri Sep 2 08:47:44 2022 [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Fri Sep 2 08:47:46 2022 Processing translation indexes: [T] Downloading 0 translation files using 0 threads... Begin time: Fri Sep 2 08:47:46 2022 [0]... End time: Fri Sep 2 08:47:46 2022 Processing DEP-11 indexes: [D] Downloading 0 dep11 files using 0 threads... Begin time: Fri Sep 2 08:47:46 2022 [0]... End time: Fri Sep 2 08:47:46 2022 Processing indexes: [P] 9.9 MiB will be downloaded into archive. Downloading 67 archive files using 20 threads... Begin time: Fri Sep 2 08:47:46 2022 [20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Fri Sep 2 08:47:47 2022 0 bytes in 0 files and 0 directories can be freed. Run /var/spool/apt-mirror/var/clean.sh for this purpose. Running the Post Mirror script ... (/var/spool/apt-mirror/var/postmirror.sh) Post Mirror script has completed. See above output for any possible errors. После скачивания будет создан каталог /var/spool/apt-mirror/mirror/apt.jabber.at. В нем будет находится официальный deb-репозитарий пакетов от разработчиков ejabberd. Для переноса репозитария на другой компьютер, его удобнее будет упаковать: # cd /var/spool/apt-mirror/mirror/apt.jabber.at # tar -zcvf ejabberdRepo.tar.gz * Развертывание копии репозитария Далее архив ejabberdRepo.tar.gz переносится на серверный компьютер, на котором будет устанавливаться сервис ejabberd. Данный архив можно распаковать в любую директорию, например в /opt/ejabberd-repo В результате в данном каталоге должны будут лежать подкаталоги: cd /opt/ejabberd-repo ls -la drwxr-xr-x 4 root root 4096 сен 2 09:03 . drwxr-xr-x 3 root root 4096 сен 2 08:47 .. drwxr-xr-x 3 root root 4096 сен 2 08:47 dists drwxr-xr-x 3 root root 4096 сен 2 08:47 pool Этот каталог необходимо прописать в файле /etc/apt/sources.list: deb file:///opt/ejabberd-repo stretch ejabberd Здесь следует обратить внимание, что после file: пишется три слеша, потому что file:// - это протокол файлового доступа, а /opt... - это путь к директории. Перенос ключей репозитария Помимо репозитария, на серверный компьютер, где будет устанавливаться ejabberd, необходимо скопировать ранее созданный файл ключа ejabberd-text-pgp-key, чтобы репозитарий был виден как доверенный. После копирования файла ejabberd-text-pgp-key на сервер (на котором, как мы понимаем, установлен дистрибутив Astra Linux 1.6 Update 10), из-под суперпользователя надо выполнить уже знакомую команду: # cat ./ejabberd-text-pgp-key | sudo apt-key add - Если данная команда напишет в консоли OK, значит ключ установлен и можно приступать к дальнейшим действиям. Прописывание приоритетов версий Далее необходимо указать APT-подсистеме, что пакеты из репозитария stretch (именно под этим имененем репозитарий ejabberd был прописан в sources.list) имеют больший приоритет чем пакеты основного репозитария. Это необходимо для того, чтобы новый пакет ejabberd и его зависимости "перекрывали" пакет ejabberd, существующий в основном репозитарии. Для этого действия необходимо создать файл: /etc/apt/preferences.d/stretch И прописать в него следующие строки: Package: * Pin: release n=stretch Pin-Priority: 900 Все, настройка репозитариев выполнена, и можно переходить к установке ejabberd. Установка обновленного ejabberd Вначале нужно обновить список доступных пакетов: # apt update Далее можно посмотреть, какие пакеты были обновлены и до каких версий: # apt list --upgradable Вывод списка… Готово ejabberd/stretch-fsinf 1:18.12.1-1~afa90 amd64 [может быть обновлён с: 16.09-4] erlang-goldrush/stretch-fsinf 0.2.0-0.1~afa90 amd64 [может быть обновлён с: 0.1.9-2] erlang-lager/stretch-fsinf 3.6.8-0.1~afa90 amd64 [может быть обновлён с: 3.2.4-1] erlang-p1-cache-tab/stretch-fsinf 1.0.17-0.1~afa90 amd64 [может быть обновлён с: 1.0.4-2] erlang-p1-iconv/stretch-fsinf 1:1.0.10-0.1~afa90 amd64 [может быть обновлён с: 1.0.2-2] erlang-p1-stringprep/stretch-fsinf 1.0.14-0.1~afa90 amd64 [может быть обновлён с: 1.0.6-2] erlang-p1-tls/stretch-fsinf 1.0.26-0.1~afa90 amd64 [может быть обновлён с: 1.0.7-2+deb9u1] erlang-p1-utils/stretch-fsinf 1.0.13-0.1~afa90 amd64 [может быть обновлён с: 1.0.5-3] erlang-p1-xml/stretch-fsinf 1.1.34-0.1~afa90 amd64 [может быть обновлён с: 1.1.15-2] erlang-p1-yaml/stretch-fsinf 1.0.17-0.1~afa90 amd64 [может быть обновлён с: 1.0.6-2] erlang-p1-zlib/stretch-fsinf 1.0.4-1.1~afa90 amd64 [может быть обновлён с: 1.0.1-4] Здесь видно, что в Astra Linux 1.6 Update 10 используется пакет ejabberd версии 16.09-4, и теперь доступен пакет версии 18.12.1-1~afa90. Перед установкой нового ejabberd нажно удалить старый, вместе со всеми конфигами: # apt purge ejabberd После чего можно устанавливать новый пакет: apt install ejabberd После установки можно проверить версию нового пакета: # dpkg --list 'ejabberd' Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h] | Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F] /частично установлен[H]/trig-aWait/Trig-pend | Ошибка?=(нет)/требуется переустановка[R] (верхний регистр в полях состояния и ошибки указывает на ненормальную ситуацию) || Имя Версия Архитектура Описание ++-========-=================-===========-================================== ii ejabberd 1:18.12.1-1~afa90 amd64 distributed, fault-tolerant Jabber Запуск обновленного ejabberd При установке пакета ejabberd пакетный менеджер прописывает сервис jabber-а в автозагрузку и самостоятельно запускает все нужные службы. Специального запуска не требуется. Проверить, что ejabberd действительно запущен, можно следующей командой: # systemctl status ejabberd ● ejabberd.service - A distributed, fault-tolerant Jabber/XMPP server Loaded: loaded (/lib/systemd/system/ejabberd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-09-02 11:10:40 MSK; 14min ago Docs: https://www.process-one.net/en/ejabberd/docs/ Main PID: 1150 (beam.smp) CGroup: /system.slice/ejabberd.service ├─1150 /usr/lib/erlang/erts-8.2.1/bin/beam.smp -K true -P 250000 ├─1172 erl_child_setup 65536 ├─1182 /usr/lib/erlang/lib/p1_eimp-1.0.9/priv/bin/eimp ├─1183 /usr/lib/erlang/lib/p1_eimp-1.0.9/priv/bin/eimp └─1247 /usr/lib/erlang/lib/os_mon-2.4.1/priv/bin/memsup сен 02 11:10:33 server systemd[1]: Starting A distributed, fault-tolerant Jabber/XMPP server... сен 02 11:10:40 server systemd[1]: Started A distributed, fault-tolerant Jabber/XMPP server. Для выхода из просмотрщика информации о сервисе надо нажать кнопку q. Первичная настройка ejabberd Вначале надо создать jabber-пользователя, который будет иметь право управлять сервисом посредством web-интерфейса. Для этого используется команда: ejabberdctl register <имя_пользователя> localhost <пароль> Обычно в качестве имени пользователя используется имя admin. В результате работы такой команды будет создан пользователь admin@localhost. Далее нужно внести следующие настройки в конфиг-файл /etc/ejabberd/ejabberd.yml: hosts: - "localhost" - "127.0.0.1" - "192.168.1.250" - "server.corp.lo" acl: admin: user: - "admin@localhost" - "admin@127.0.0.1" - "admin@192.168.1.250" - "admin@server.corp.lo" Где IP-адрес 192.168.1.250 и имя server.corp.lo - это IP-шник и доменное имя компьютера в сети предприятия. То есть, это данные того компьютера, на котором и работает jabber-сервер. После внесения этих настроек нужно перезапустить сервис ejabberd: # systemctl restart ejabberd Далее необходимо зайти в web-интерфейс. С любого компьютера в сети предприятия можно открыть следующий линк в браузере: https://server.corp.lo:5280/admin/ Здесь важно указать именно секьюрный протокол https. Если указать простой http или вообще не указывать протокол, то браузер будет пытаться соединиться по несекьюрному http, а ejabberd в этом случае вместо web-страницы будет отдавать пустую строку. Некоторые браузеры в момент соединения будут выдавать следующие предупреждения: Ваше соединение не защищено Владелец 192.168.1.250 неправильно настроил свой веб-сайт. Чтобы защитить вашу информацию от кражи, Firefox не соединился с этим веб-сайтом. 192.168.1.250:5280 использует недействительный сертификат безопасности. К сертификату нет доверия, так как он является самоподписанным. Сертификат недействителен для имени 192.168.1.250. Эту проблему следует проигнорировать, либо нужно будет поднимать внутри домена предприятия сервис корневых Root CA-сертификатов, выпускать на нем сертификат для jabber-сервера, прописывать его в pam-файле чтобы web-страницы, генерируемые jabber-сервером считались доверенными. Для входа в панель управления необходимо будет ввести: Логин: admin@localhost Пароль: пароль, установленный вышеприведенной командой ejabberdctl Далее в веб-интерфейсе заводятся jabber-пользователи, и они смогут подключаться своими jabber-клиентами к данному jabber-серверу. Как производить такую настройку, написано в статье: Настройка пользователей в ejabberd через Web-интерфейс. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|