delete: ejabberd - service de messagerie Jabber XMPP
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 75 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
@@ -1,181 +0,0 @@
|
||||
# ejabberd - service de messagerie Jabber XMPP
|
||||
|
||||

|
||||
|
||||
Il est nécessaire d'avoir (pré requis) pour ce tuto :
|
||||
- un service Apache - **httpd**
|
||||
- un service de base de données - **mariaDb**
|
||||
- un système d'exploitation **Linux Debian 10**
|
||||
|
||||
## Installer
|
||||
Pour installer **ejabberd** sous la distribution Linux **Debian**, il suffit de taper en ligne de commandes :
|
||||
|
||||
sudo apt install ejabberd
|
||||
|
||||

|
||||
|
||||
Un service `/lib/systemd/system/epmd.service` est créé. Un service `/lib/systemd/system/ejabberd.service` est créé et un fichier de configuration par défaut est déployé dans `/etc/ejabberd/ejabberd.yml`. Ce dernier point est traité ci-dessous.
|
||||
|
||||
## Installer la base de données
|
||||
**ejabberd** est compatible avec plusieurs SGBD. J'aborde l'installation avec **MariaDB**.
|
||||
|
||||
Crééer l'utilisateur **ejabberd** avec son mot de passe **password** (à modifier).
|
||||
|
||||
echo "GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY 'password';" | mysql -h localhost -u root
|
||||
|
||||
Créer la base de données associée à l'utilisateur **ejabberd**
|
||||
|
||||
echo "CREATE DATABASE ejabberd;" | mysql -h localhost -u ejabberd -p
|
||||
|
||||
## Mettre à jour
|
||||
Vérifier la dernière version disponible à la page de [téléchargement ejabberd](https:*www.process-one.net/en/ejabberd/downloads/)
|
||||
|
||||
Vérifier les modifications a effectuer sur la page de la [procédure de mise à jour ejabberd](https:*docs.ejabberd.im/admin/upgrade/).
|
||||
|
||||
```BASH
|
||||
sudo systemctl stop ejabberd
|
||||
wget https:*www.process-one.net/downloads/downloads-action.php?file=/21.07/ejabberd_21.07-0_amd64.deb -O ejabberd.deb
|
||||
sudo apt install ./ejabberd.deb
|
||||
sudo systemctl start ejabberd
|
||||
```
|
||||
|
||||
<note important>Cette mise à jour à modifié les chemins de configuation dans `/opt/ejabberd/conf` et les logs dans `/opt/ejabberd/logs`.</note>
|
||||
|
||||
## Log
|
||||

|
||||
|
||||
Les fichiers logs sont présents dans le dossier `/var/log/ejabberd`.
|
||||
|
||||
Après la mise à jour en 21.07, ils se trouvent dans `/opt/ejabberd/logs/`
|
||||
|
||||
## Configurer
|
||||
Le nom du serveur doit être déclaré dans les DNS et dans le fichiers `/etc/hosts`.
|
||||
|
||||
Le fichier de configuration est au format YML. Il doit être déposé dans le chemin `/etc/ejabberd/ejabberd.yml`
|
||||
Après la mise à jour en 21.07, le dossier de configuration s'est trouvé dans `/opt/ejabberd/conf`.
|
||||
|
||||
Dans l'exemple suivants prenoms les paramètres :
|
||||
- nom de serveur retenu pour le service : im.domain.tld, xmpp.domain2.tld
|
||||
- adresse ip : 45.54.65.42
|
||||
|
||||
## Configurer les champs DNS
|
||||
Déclarer les champs DNS suivants :
|
||||
|
||||
```
|
||||
im IN A 45.54.65.42
|
||||
*.im IN A 45.54.65.42
|
||||
```
|
||||
|
||||
## Configurer le SSL
|
||||
Je vous conseille d'associer un serveur http au nom de domaine *im.domain.tld// de votre service. Cela permettra de faire une page d'accueil web avec des services associés. Par la même occasion, effectuer une demande SSL. Les certificats seront générés dans le dossier `/etc/letsencrypt/live`. Il faudra copier la clé et le certificat dans le dossier de config de **ejabberd**.
|
||||
|
||||
```BASH
|
||||
sudo sh -c "cat /etc/letsencrypt/live/im.domain.tld/privkey.pem /etc/letsencrypt/live/im.domain.tld/fullchain.pem > /opt/ejabberd/conf/server.pem"
|
||||
```
|
||||
|
||||
Par conséquence, il est facile d'indiquer à **ejabberd** le certificat à utiliser :
|
||||
|
||||
```
|
||||
certfiles:
|
||||
1. "opt/ejabberd/conf/server.pem"
|
||||
```
|
||||
|
||||
## Configurer le host
|
||||
Il faut définir les hosts sur lesquels ejabberd écoute :
|
||||
```
|
||||
hosts:
|
||||
1. "im.domain.tld"
|
||||
1. "xmpp.domain2.tld"
|
||||
```
|
||||
|
||||
Le fichier peut prendre en compte autant de domaine que l'on souhaite avec des cas de configuration distinct. C'est le principe du `virtual hosting`
|
||||
|
||||
```
|
||||
host_config:
|
||||
im.domain.tld:
|
||||
...
|
||||
xmpp.domain2.tld:
|
||||
...
|
||||
```
|
||||
|
||||
## Configurer le type d'authentification
|
||||
On peut se baser sur une authentification **anonymous**, **pam**, **jwt**, **sql**, **internal** et **ldap**.
|
||||
|
||||
```
|
||||
host_config:
|
||||
im.domain.tld:
|
||||
auth_method: internal
|
||||
xmpp.domain2.tld:
|
||||
auth_method: sql
|
||||
sql_type: odbc
|
||||
sql_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
|
||||
```
|
||||
|
||||
## Configurer les modules
|
||||
```
|
||||
## Configuration of modules that are common to all vhosts
|
||||
modules:
|
||||
mod_roster: {}
|
||||
mod_configure: {}
|
||||
mod_disco: {}
|
||||
mod_private: {}
|
||||
mod_time: {}
|
||||
mod_last: {}
|
||||
mod_version: {}
|
||||
|
||||
append_host_config:
|
||||
## Add some modules to vhost one:
|
||||
im.domain.tld:
|
||||
modules:
|
||||
mod_muc:
|
||||
host: conference.im.domain.tld
|
||||
mod_ping: {}
|
||||
## Add a module just to vhost two:
|
||||
xmpp.domain2.tld:
|
||||
modules:
|
||||
mod_muc:
|
||||
host: conference.xmpp.domain2.tld
|
||||
```
|
||||
|
||||
## Configurer les options
|
||||
```
|
||||
language: fr
|
||||
```
|
||||
|
||||
|
||||
|
||||
===== Configurer le module audio/vidéo STUN/TURN =====
|
||||
|
||||
Le module `mod_stun_disco` est disponible depuis la version 20.04.
|
||||
|
||||
```yamel
|
||||
modules:
|
||||
...
|
||||
mod_stun_disco:
|
||||
credentials_lifetime: 12h
|
||||
services:
|
||||
-
|
||||
host: 0.0.0.0
|
||||
port: 3478
|
||||
type: stun
|
||||
transport: udp
|
||||
restricted: false
|
||||
-
|
||||
host: 0.0.0.0
|
||||
port: 3478
|
||||
type: turn
|
||||
transport: udp
|
||||
restricted: true
|
||||
-
|
||||
host: im.domain.tdl
|
||||
port: 5349
|
||||
type: stuns
|
||||
transport: tcp
|
||||
restricted: false
|
||||
-
|
||||
host: im.domain.tdl
|
||||
port: 5349
|
||||
type: turns
|
||||
transport: tcp
|
||||
restricted: true
|
||||
```
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"uuid": "262b51cb-f69d-45a4-ac92-4cd9b3bce78c",
|
||||
"slug": "ejabberd-service-de-messagerie-jabber-xmpp",
|
||||
"title": "ejabberd - service de messagerie Jabber XMPP",
|
||||
"author": "cedric@abonnel.fr",
|
||||
"published": true,
|
||||
"published_at": "2023-02-10 22:48:50",
|
||||
"created_at": "2023-02-10 22:48:50",
|
||||
"updated_at": "2023-02-10 22:48:50",
|
||||
"revisions": [],
|
||||
"cover": "",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "",
|
||||
"category": "Informatique"
|
||||
}
|
||||
Reference in New Issue
Block a user