Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/pubnix----prosody--pam-.md
diff options
context:
space:
mode:
Diffstat (limited to 'pubnix----prosody--pam-.md')
-rw-r--r--pubnix----prosody--pam-.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/pubnix----prosody--pam-.md b/pubnix----prosody--pam-.md
new file mode 100644
index 0000000..f0cd5f9
--- /dev/null
+++ b/pubnix----prosody--pam-.md
@@ -0,0 +1,84 @@
+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. Установка
+Выполните эти команды:
+<pre>
+# Установить Prosody
+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
+# Добавить привилегии демону Prosody
+usermod -aG shadow prosody
+usermod -aG ssl-cert prosody
+# Установить библиотеку для взаимодействия с POSIX-функциями
+luarocks install luaposix
+# Собрать библиотеку дл/ PAM-аутентификации
+git clone https://github.com/devurandom/lua-pam && cd lua-pam
+make LUA_VERSION=5.4
+cp pam.so /usr/lib/
+# Установить модуль для PAM-аутентификации
+LUA_INCDIR=5.4 prosodyctl install --server=https://modules.prosody.im/rocks/ mod_auth_pam
+</pre>
+
+# 2. Настройка
+Начните редактировать файл `/etc/prosody/prosody.cfg.lua`.
+Следуйте этим инструкциям, заменяя `example.net` на доменное имя, привязанное к вашему серверу.
+
+Найдите строку, начинающуюся с слова `admins`, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом:
+<pre>
+admins = { "admin@example.net" }
+</pre>
+Где `admin` - это ваше имя пользователя в вашей системе.
+
+Дальше найдите строку `--"mam";` и удалите два дефиса, сделайте то же самое с строкой `--"turn_external";`, находящейся ниже.
+
+Теперь перейдите к строке `authentication = "internal_hashed"` и замените `internal_hashed` на `pam`.
+
+Перейдите к строке, начинающейся с `storage` и поменяйте `sql` на `internal` (по желанию, в этой инструкции я не рассматриваю настройку с базами данных)
+
+По желанию в строке `archive_expires_after = "1w"` замените `1w` на `never`, чтобы истории переписок не удалялись каждую неделю.
+
+Найдите строку, начинающуюся с `VirtualHost` и замените `localhost` на `example.net`.
+
+Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее:
+<pre>
+Component "muc.lotigara.ru" "muc"
+modules_enabled = { "muc_mam", "vcard_muc" }
+</pre>
+Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок.
+
+Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками:
+<pre>
+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 --измеряется в секундах
+</pre>
+В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет.
+Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения.
+
+# Смотрите также
+- [Ещё один блог сисадмина - Настройка Jabber-сервера Prosody с аутентификацией пользователей через Dovecot SASL](https://stupin.su/blog/prosody-dovecot-sasl). Статья немного старая, но если вы настраивали Dovecot так же, как и я (см. главную страницу), то это может вам пригодиться для, например, добавление доступа в XMPP только по группе. Также советую посмотреть конец раздела по настройке SSL (5-ый), там есть скрипт, который будет обновлять сертификаты в Prosody вместе с Certbot.
+- [DesdeLinux - Prosody IM and local users - Networks PYMES](https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks). Здесь тоже описывается авторизация PAM, но она выполнена с использованием ещё одного демона (т.е. серверной программы или службы, которая выполняется в фоне), что, конечно, неэффективно. Эта страница указана в начале, так как автор некоторое время использовал именно инструкцию по ссылке выше.
+
+---
+В завершении статьи хочется обратить ваше внимание на то, что данная инструкция предоставляется БЕЗ каких-либо гарантий. Если при выполнении указаний из данной инструкции случилось что-то непредвиденное, вы можете обратиться ко мне, но не стоит ожидать какого-либо результата.
+
+Метки: prosody, pubnix, xmpp