Ejabberd
|
Cet article est en cours de rédaction. |
Prérequis
Présentation
Le serveur Ejabberd sera hébergé sur un serveur dédié avec les caractéristiques réseaux suivantes :
- Nom du serveur : xmpp.geocoucou.im
- Nom d'hôte de messagerie : geocoucou.im
- Adresses IP :
- IPv4 : 152.228.135.223
- IPv6 : 2001:41d0:404:200::5eee
Les enregistrements DNS pour les noms d'hôtes xmpp.geocoucou.im et geoucoucou.im pointent sur les adresse IPv4 et IPv6 du serveur hébergeant le service Ejabberd. |
Configuration DNS
Le nom de domaine geocoucou.im sera spécialement dédié à l'usage de la messagerie instantanée Ejabberd.
- La racine du domaine pointe sur les adresses IPv4 et IPv6 du serveur Ejabberd.
- Vérifions le pointage du champs DNS de type A pour la zone geocoucou.im. Ce dernier doit pointer sur l'adresse IPv4 152.228.135.223 :
|
|
; <<>> DiG 9.16.50-Debian <<>> geocoucou.im ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48588 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;geocoucou.im. IN A ;; ANSWER SECTION: geocoucou.im. 3600 IN A 152.228.135.223 ;; Query time: 28 msec
;; SERVER: 213.186.33.99#53(213.186.33.99) ;; WHEN: Sun Jul 28 16:32:36 UTC 2024 ;; MSG SIZE rcvd: 57 }}
- Vérifions le pointage du champs DNS de type AAAA pour la zone geocoucou.im. Ce dernier doit pointer sur l'adresse IPv6 2001:41d0:404:200::5eee :
|
|
; <<>> DiG 9.16.50-Debian <<>> aaaa geocoucou.im
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3116
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;geocoucou.im. IN AAAA
;; ANSWER SECTION:
geocoucou.im. 3600 IN AAAA 2001:41d0:404:200::5eee
;; Query time: 44 msec
;; SERVER: 213.186.33.99#53(213.186.33.99)
;; WHEN: Sun Jul 28 16:33:20 UTC 2024
;; MSG SIZE rcvd: 69
Installation
Serveur Ejabberd
- Installation du paquet ejabberd :
|
|
- Installation du paquet erlang-p1-mysql pour l'exploitation d'une base de données SQL (MySQL, MariaDB) :
|
|
- Pour vérifier si le service fonctionne normalement :
|
|
- Editer le fichier ejabberd.yml puis rechercher la ligne :
hosts:
- localhost
- Remplacer par :
hosts
- geocoucou.im
- Rechercher la ligne :
acl:
admin:
user:
- ""
- Remplacer par :
acl:
admin:
user:
- "root@geocoucou.im"
- Redémarrer le serveur ejabberd pour la prise en compte des nouveaux paramètres :
|
|
- Création de l'utilisateur root@geocoucou.im avec le mot de passe password :
|
|
|
Dès à présent, il est possible de se connecter à l'interface d'administration du serveur ejabberd via le lien https://<IP_SERVEUR_EJABERD:5280/admin et avec l'identifiant créé à l'étape précédente. |
Certificats avec Certbot (Let's Encrypt)
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/geocoucou.im/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/geocoucou.im/privkey.pem Your certificate will expire on 2024-10-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
- Editer le fichier de configuration /etc/ejabberd/ejabberd.yml puis rechercher la ligne :
certfiles:
- "/etc/ejabberd/ejabberd.pem"
- Remplacer par :
certfiles:
- "/etc/letsencrypt/live/geocoucou.im/fullchain.pem"
- Redémarrer le serveur Ejabberd pour la prise en compte des nouveaux paramètres :
service ejabberd restart
Base de données
- Les scripts d'installation de la base de données se trouvent à la racine /usr/share/ejabberd/sql.
- À l'aide de la commande mysqldump, procéder à l'importation de la structure de tables :
|
|
- Editer le fichier de configuration /etc/ejabberd/ejabberd.yml puis adapter les ligne suivantes :
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "password" auth_method: sql default_db: sql
Paramétrage du pare-feu
Matrice des flux autorisés
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement.
Source | Protocole(s) | Port(s) | Description |
---|---|---|---|
* | tcp | 22 | Accès SSH, SFTP. |
* | tcp | 5280 | Accès interface d'administration Ejabberd. |
* | tcp | 5222 | Connexion des clients XMPP au serveur Ejabberd. |
* | tcp | 5269 | Echanges entre serveurs XMPP. |
<@IP_SUPERVISION> | udp | 161,162 | Accès SNMP depuis serveur supervision. |
* | icmp | — | Réponse aux requêtes ping. |
Configuration iptables sur la couche IPv4
- Installation des paquets iptables (pare-feu) et iptables-persistent (sauvegarde persistante de la configuration).
|
|
- Ajout des règles iptables pour autoriser les flux SSH, ICMP et MySQL :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système.
|
|