главная|main page

состояние|status

блог|blog

файлы|files

программы|software

summaryrefslogtreecommitdiff
path: root/pubnix----prosody--pam-.md
blob: 402b56d92d77d60a2b8a9f9c2fefe547cd17283c (plain)
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
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 класс