1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
<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></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 —
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>
<p>Все команды выполняются пользователем <code>root</code>, если не указано иначе.</p>
<h1>1. Установка</h1>
<p>Выполните эти команды:
```
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</p>
<p>usermod -aG shadow prosody
usermod -aG ssl-cert prosody</p>
<p>luarocks install luaposix</p>
<p>git clone https://github.com/devurandom/lua-pam && cd lua-pam
make LUA_VERSION=5.4
cp pam.so /usr/lib/</p>
<p>prosodyctl install --server=https://modules.prosody.im/rocks/ mod<em>auth</em>pam
```</p>
<h1>2. Настройка</h1>
<p>Начните редактировать файл <code>/etc/prosody/prosody.cfg.lua</code>.
Следуйте этим инструкциям, заменяя <code>example.net</code> на доменное имя, привязанное к вашему серверу.</p>
<p>Найдите строку, начинающуюся с слова <code>admins</code>, и добавьте ваше будущее имя пользователя в фигурные скобки подобным образом:
<code>lua
admins = { "admin@example.net" }
</code>
Где <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>Если вам нужны многопользовательские переписки, на следующей строке добавьте следущее:
<code>lua
Component "muc.lotigara.ru" "muc"
modules_enabled = { "muc_mam", "vcard_muc" }
</code>
Последнюю строку можете опустить, если вам не нужно сохранение истории многопользовательских переписок.</p>
<p>Если нужна возможность загружать файлы на ваш сервер, дополните конфигурацию следующими строками:
<code>
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 --измеряется в секундах
</code>
В данном случае, лимит размера файла - это 512 МиБ (0,5 ГиБ), а удаляться файлы будут через ~1000 лет.
Если требуется изменить какое-либо из этих свойств, смотрите комментарии (в Lua они начинаются с двух дефисов) и пробуйте изменять значения.</p>
<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>, <a href='tag_7 класс.html'>7 класс</a></p>
<!-- text end -->
<!-- entry end -->
</div>
</div></div></div>
</body></html>
|