From 03ef1aac0a5548bf5865ec5e41cbe576b830fe62 Mon Sep 17 00:00:00 2001 From: Ivan Davydov Date: Sun, 4 May 2025 21:46:52 +0300 Subject: Rebuild tags --- pubnix----prosody--pam-.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 pubnix----prosody--pam-.md (limited to 'pubnix----prosody--pam-.md') diff --git a/pubnix----prosody--pam-.md b/pubnix----prosody--pam-.md new file mode 100644 index 0000000..402b56d --- /dev/null +++ b/pubnix----prosody--pam-.md @@ -0,0 +1,78 @@ +Pubnix - Установка Prosody с PAM-авторизацией + +# Использованные источники +* [DesdeLinux](https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks) +* [LandChad](https://landchad.net/prosody) +* [Prosody](https://prosody.im) + +# 0. Системные требования +* Firewall с следующими открытыми портами: +* * 5000/tcp (передача файлов) +* * 5222/tcp (подключение клиента) +* * 5269/tcp (федерация, подключение сервера к серверу) +* * 5281/tcp (по желанию, но рекомендуется) + +* Debian 12 с последними обновлениями + +Все команды выполняются пользователем `root`, если не указано иначе. + +# 1. Установка +Выполните эти команды: +``` +wget https://prosody.im/files/prosody.sources -O/etc/apt/sources.list.d/prosody.sources +apt update +apt install prosody lua5.4 liblua5.4-0 liblua5.4-dev luarocks certbot + +usermod -aG shadow prosody +usermod -aG ssl-cert prosody + +luarocks install luaposix + +git clone https://github.com/devurandom/lua-pam && cd lua-pam +make LUA_VERSION=5.4 +cp pam.so /usr/lib/ + +prosodyctl install --server=https://modules.prosody.im/rocks/ mod_auth_pam +``` + +# 2. Настройка +Начните редактировать файл `/etc/prosody/prosody.cfg.lua`. +Следуйте этим инструкциям, заменяя `example.net` на доменное имя, привязанное к вашему серверу. + +Найдите строку, начинающуюся с слова `admins`, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом: +```lua +admins = { "admin@example.net" } +``` +Где `admin` - это ваше имя пользователя в вашей системе. + +Дальше найдите строку `--"mam";` и удалите два дефиса, сделайте то же самое с строкой `--"turn_external";`, находящейся ниже. + +Теперь перейдите к строке `authentication = "internal_hashed"` и замените `internal_hashed` на `pam`. + +Перейдите к строке, начинающейся с `storage` и поменяйте `sql` на `internal` (по желанию, в этой инструкции я не рассматриваю настройку с базами данных) + +По желанию в строке `archive_expires_after = "1w"` замените `1w` на `never`, чтобы истории переписок не удалялись каждую неделю. + +Найдите строку, начинающуюся с `VirtualHost` и замените `localhost` на `example.net`. + +Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее: +```lua +Component "muc.lotigara.ru" "muc" +modules_enabled = { "muc_mam", "vcard_muc" } +``` +Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок. + +Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками: +``` +Component "uf.lotigara.ru" "http_file_share" +http_file_share_size_limit = 512 * 1024 * 1024 --измеряется в байтах +http_file_share_expire_after = 60 * 60 * 24 * 31 * 1000 --измеряется в секундах +``` +В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет. +Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения. + +--- + +В завершении статьи хочется обратить ваше внимание на то, что данная инструкция предоставляется БЕЗ каких-либо гарантий. Если при выполнении указаний из данной инструкции случилось что-то непредвиденное, вы можете обратиться ко мне, но не стоит ожидать какого-либо результата. + +Метки: prosody, pubnix, xmpp, 7 класс -- cgit v1.2.3