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

summaryrefslogtreecommitdiff
path: root/pubnix----prosody--pam-.html
diff options
context:
space:
mode:
Diffstat (limited to 'pubnix----prosody--pam-.html')
-rw-r--r--pubnix----prosody--pam-.html159
1 files changed, 159 insertions, 0 deletions
diff --git a/pubnix----prosody--pam-.html b/pubnix----prosody--pam-.html
new file mode 100644
index 0000000..5b95e38
--- /dev/null
+++ b/pubnix----prosody--pam-.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <link href="/css/main.css" rel="stylesheet" />
+ <link href="/css/theme.css" rel="stylesheet" />
+ <link href="/css/third-party.css" rel="stylesheet" />
+ <link href="/css/responsivity.css" rel="stylesheet" />
+<title>Pubnix - Установка Prosody с PAM-авторизацией</title>
+</head><body>
+<input type="checkbox" id="theme-switch">
+<div id="divbodyholder"><div class="inner_page">
+<div class="headerholder"><div class="header">
+<div id="title">
+<div class="page_header floating_element">
+ <h1 class="floating_element">Блог самохостера Lotigara</h1>
+</div>
+<div class="floating_element">
+ <h4 style="display:inline"><a style="color:white" href="/">главная|main page</a></h4>
+ <h4 style="display:inline"><a style="color:white" href="/status.php">состояние|status</a></h4>
+ <p style="display:inline">журнал|journal</p>
+ <h4 style="display:inline"><a style="color:white" href="/files">файлы|files</a></h4>
+ <h4 style="display:inline"><a style="color:white" href="https://git.lotigara.ru">программы|software</a></h4>
+ <label id="switch-label" for="theme-switch"></label>
+</div>
+</div></div></div>
+<div id="divbody"><div class="content">
+<!-- entry begin -->
+<div class="section_header"><a class="ablack" href="pubnix----prosody--pam-.html">
+Pubnix - Установка Prosody с PAM-авторизацией
+</a></div>
+<!-- bashblog_timestamp: #202505042146.43# -->
+<div class="subtitle">мая 04, 2025 &mdash;
+Ivan Davydov
+</div>
+<!-- text begin -->
+
+<h1>Использованные источники</h1>
+
+<ul>
+<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux</a></li>
+<li><a href="https://landchad.net/prosody">LandChad</a></li>
+<li><a href="https://prosody.im">Prosody</a></li>
+</ul>
+
+<h1>0. Системные требования</h1>
+
+<ul>
+<li>Firewall с следующими открытыми портами:</li>
+<li><ul>
+<li>5000/tcp (передача файлов)</li>
+</ul></li>
+<li><ul>
+<li>5222/tcp (подключение клиента)</li>
+</ul></li>
+<li><ul>
+<li>5269/tcp (федерация, подключение сервера к серверу)</li>
+</ul></li>
+<li><ul>
+<li>5281/tcp (по желанию, но рекомендуется)</li>
+</ul></li>
+<li><p>Debian 12 с последними обновлениями</p></li>
+</ul>
+
+<hr />
+
+<p>Все команды выполняются пользователем <code>root</code>, если не указано иначе.</p>
+
+<h1>1. Установка</h1>
+
+<p>Выполните эти команды:</p>
+
+<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>
+
+<h1>2. Настройка</h1>
+
+<p>Начните редактировать файл <code>/etc/prosody/prosody.cfg.lua</code>.
+Следуйте этим инструкциям, заменяя <code>example.net</code> на доменное имя, привязанное к вашему серверу.</p>
+
+<p>Найдите строку, начинающуюся с слова <code>admins</code>, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом:</p>
+
+<pre>
+admins = { "admin@example.net" }
+</pre>
+
+<p>Где <code>admin</code> - это ваше имя пользователя в вашей системе.</p>
+
+<p>Дальше найдите строку <code>--"mam";</code> и удалите два дефиса, сделайте то же самое с строкой <code>--"turn_external";</code>, находящейся ниже.</p>
+
+<p>Теперь перейдите к строке <code>authentication = "internal_hashed"</code> и замените <code>internal_hashed</code> на <code>pam</code>.</p>
+
+<p>Перейдите к строке, начинающейся с <code>storage</code> и поменяйте <code>sql</code> на <code>internal</code> (по желанию, в этой инструкции я не рассматриваю настройку с базами данных)</p>
+
+<p>По желанию в строке <code>archive_expires_after = "1w"</code> замените <code>1w</code> на <code>never</code>, чтобы истории переписок не удалялись каждую неделю.</p>
+
+<p>Найдите строку, начинающуюся с <code>VirtualHost</code> и замените <code>localhost</code> на <code>example.net</code>.</p>
+
+<p>Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее:</p>
+
+<pre>
+Component "muc.lotigara.ru" "muc"
+modules_enabled = { "muc_mam", "vcard_muc" }
+</pre>
+
+<p>Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок.</p>
+
+<p>Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками:</p>
+
+<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>
+
+<p>В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет.
+Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения.</p>
+
+<h1>Смотрите также</h1>
+
+<ul>
+<li><a href="https://stupin.su/blog/prosody-dovecot-sasl">Ещё один блог сисадмина - Настройка Jabber-сервера Prosody с аутентификацией пользователей через Dovecot SASL</a>. Статья немного старая, но если вы настраивали Dovecot так же, как и я (см. главную страницу), то это может вам пригодиться для, например, добавление доступа в XMPP только по группе. Также советую посмотреть конец раздела по настройке SSL (5-ый), там есть скрипт, который будет обновлять сертификаты в Prosody вместе с Certbot.</li>
+<li><a href="https://blog.desdelinux.net/en/prosody-im-local-users-SME-networks">DesdeLinux - Prosody IM and local users - Networks PYMES</a>. Здесь тоже описывается авторизация PAM, но она выполнена с использованием ещё одного демона (т.е. серверной программы или службы, которая выполняется в фоне), что, конечно, неэффективно. Эта страница указана в начале, так как автор некоторое время использовал именно инструкцию по ссылке выше.</li>
+</ul>
+
+<hr />
+
+<p>В завершении статьи хочется обратить ваше внимание на то, что данная инструкция предоставляется БЕЗ каких-либо гарантий. Если при выполнении указаний из данной инструкции случилось что-то непредвиденное, вы можете обратиться ко мне, но не стоит ожидать какого-либо результата.</p>
+
+<p>Метки: <a href='tag_prosody.html'>prosody</a>, <a href='tag_pubnix.html'>pubnix</a>, <a href='tag_xmpp.html'>xmpp</a></p>
+<!-- text end -->
+<!-- entry end -->
+</div>
+<script data-isso-css-url="https://www.lotigara.ru/css/isso.css" data-isso="//isso.lotigara.ru/" src="//isso.lotigara.ru/js/embed.min.js"></script>
+<section id="isso-thread">
+ <noscript>Javascript needs to be activated to view comments.</noscript>
+</section>
+
+<div class="section_header section_header_last">
+ <p>(c) Ivan Davydov 2025. Делайте с этим документом всё, что хотите!</p><hr/>
+ <a href="https://www.lotigara.ru/blog">Веб-сайт самохостера Lotigara</a> сгенерирован при помощи <a href="https://github.com/jakimfett/bashblog">Bashblog</a>. Исходные коды этой версии Bashblog можно найти <a href="https://www.lotigara.ru/files/bashblog">здесь</a>.</div>
+</div>
+</div></div></div>
+</body></html>