Déployé sur la machine `xmpp` (voir la [documentation spécifique](https://git.a-lec.org/a-lec/commissions/infrastructure/doc-infra/-/blob/master/Machines%20virtuelles/xmpp.md)).
Éditer ensuite la configuration dans `/etc/ejabberd/ejabberd.yml`.
Afin de pouvoir réaliser des statistiques sur l'utilisation des appels audio/vidéo, renforcer la verbosité tout en masquant le maximum de données privées :
```
# loglevel: Verbosity of log files generated by ejabberd
loglevel: info
hide_sensitive_log_data: true
```
Paramétrer les domaines couverts par le service :
```
hosts:
- a-lec.org
```
Paramétrer les `acl` pour configurer la liste des admins, et les bannissements de serveurs et/ou de comptes :
```
acl:
admin:
- user: "admin@a-lec.org"
local:
user_regexp: ""
loopback:
ip:
- 127.0.0.0/8
- ::1/128
banned_forever:
- user: destroytrannies@jabber.systemli.org
- user: truman@chatterboxtown.us
- user: abortionismurder@chatterboxtown.us
- user: peacefulashell@chatterboxtown.us
- user: whitepower@jabber.systemli.org
- user: blackbubonicplauge@chatterboxtown.us
- user: templeos@magicbroccoli.de
- user: killniggers@magicbroccoli.de
- user: killniggers@chatterboxtown.us
- user: blackbubonicplauge@chatterboxtown.us
- user: killblackpeople@jabber.systemli.org
- user: censorship@magicbroccoli.de
- user: killniggers@magicbroccoli.de
- user: killniggers@chatterboxtown.us
- user: dietrannies@chatterboxtown.us
problematic_hosts:
- server: creep.im
- server: 0nl1ne.cc
- server: aegir.tech
- server: blackjabber.cc
- server: blug.moe
- server: chat.hoferr.ch
- server: vremsg.com
```
On paramètre ensuite les règles d'accès, utilisant les `acl` :
```
access_rules:
local:
- allow: local
c2s:
- deny: blocked
- allow
s2s:
- deny: problematic_hosts
- allow
announce:
- allow: admin
configure:
- allow: admin
muc_create:
- allow: local
pubsub_createnode:
- allow: local
trusted_network:
- allow: loopback
api_permissions:
"console commands":
from:
- ejabberd_ctl
who: all
what: "*"
"admin access":
who:
access:
allow:
- acl: loopback
- acl: admin
oauth:
scope: "ejabberd:admin"
access:
allow:
- acl: loopback
- acl: admin
what:
- "*"
- "!stop"
- "!start"
"public commands":
who:
ip: 127.0.0.1/8
what:
- status
- connected_users_number
```
On indique l'emplacement des certificats (préalablement créés avec certbot) et on désactive le système interne de demande de certificat :