Alors, la fatigue aidant à ne plus avoir la motivation de finir le paquet de copies, je vais faire mon petit retour ^^
En préambule, lorsque je parlerais du conteneur Fail2ban, il s'agira de celui créé à partir de l'image de crazy-max (voir lien juste au-dessous). Sinon SWAG fera référence à SWAG, donc le fail2ban intégré sera celui de SWAG.
Alors, pour que l'envoi d'emails de notification par le fail2ban de swag fonctionne, j'ai épluché
les fichiers du dépôt de crazy-max à savoir : le
dockerfile
et le
entrypoint.sh
.
Je savais qu'il y avait le binaire
ssmtp
de présent dans son image et absente de celle de SWAG, mais je ne savais pas si c'était juste ce binaire qui faisait que l'envoi d'email via un serveur SMTP comme celui de gmail ou d'OVH fonctionnait.
Bref, en épluchant les deux fichiers mentionnés ci-dessus, j'ai vu que le binaire ssmtp pouvait être installé dans l'image SWAG
via un de leurs mods : linuxserver/mods:universal-package-install. (J'en avais déjà une vague idée...).
Il faut donc ajouter ce docker-mod à ceux potentiellement déjà présents dans le docker-compose et la ligne spécifiant quel paquet installer :
Code:
- DOCKER_MODS=linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|ghcr.io/gilbn/theme.park:swag|linuxserver/mods:swag-crowdsec|linuxserver/mods:universal-package-install
- INSTALL_PACKAGES=ssmtp
Pendant mes recherches dans le conteneur Fail2Ban (image crazy-max), j'ai pu trouver le dossier /etc/ssmtp/ et les deux fichiers dedans :
[B]ssmtpd.conf[/B]
: ce fichier contenait des variables construites à partir des variables d'environnement qu'on a mis à la création du conteneur : j'ai pu voir dans le entrypoint.sh comment était construit ce fichier ssmtpd.conf
.
Je mettrais le contenu du fichier qui fonctionne avec SWAG plus bas.
revaliases
: ce fichier était "vide", que des lignes commentées.
En effectuant une recherche sur le fichier
ssmtpd.conf
, je suis tombé sur cet article :
https://doc.ubuntu-fr.org/ssmtp.
Il donne des infos sur les variables présentes dans le fichier
ssmtpd.conf
et j'ai adapté un peu ce qui était présent dans le fichier de mon conteneur Fail2ban.
Pour que le binaire ssmtp fonctionne, il faut lui fournir les fichiers de configuration. Donc, nouvelle ligne dans le fichier docker-compose.yml pour ajouter un point de montage dans la partie volume :
YAML:
volumes:
- /volume4/docker/swag_macvlan/config:/config
- /volume4/docker/swag_macvlan/etc-ssmtp:/etc/ssmtp
Maintenant, le contenu des deux fichiers à placer dans
/volume4/docker/swag_macvlan/etc-ssmtp
.
Alors, chose étrange, ce n'est pas le fichier
ssmtpd.conf qu'il faut placer mais un fichier
ssmtp.conf
, dans le
d ! Même contenu cependant.
- Fichier
ssmtp.conf
:#
-
Config Apache:
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# root=postmaster
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
# mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=localhost
# The full hostname
#hostname="localhost"
mailhub=ssl0.ovh.net:587
hostname=Fail2ban-SWAG
FromLineOverride=YES
UseTLS=YES
UseSTARTTLS=YES
AuthUser=monmail@mon-ndd.ovh
AuthPass=Mon_Supper_Password-de-la-mort-qui-tue-sans_2FA...
root=monmail@mon-ndd.ovh
- Fichier
revaliases
(je ne suis pas sûr que celui-là serve vraiment... mais je l'ai personnalisé avec l'articule de ubuntu-fr) :# sSMTP aliases
-
Config Apache:
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:monmail@mon-ndd.ovh:ssl0.ovh.net:587
#Other System user: (for Apache)
#www-data:monmail@mon-ndd.ovh:ssl0.ovh.net:587
Voilà voilà ! Il m'a fallu pas mal de recréation et de redémarrage de SWAG, et de réactivation/désactivation du conteneur Fail2ban
PS : j'ai aussi personnalisé les mails d'envois en ajoutant une mention SWAG ^^
PPS : et enfin, pour avoir une notification email qui ne contient pas un nom aléatoire de machine, j'ai ajouté ça
hostname: DS920Plus--SWAG
au docker-compose, et j'ai aussi mis quelques DNS (mais pas sûr que ça soit utile) :
YAML:
---
version: "2.4"
services:
swag:
image: lscr.io/linuxserver/swag:latest # https://github.com/linuxserver/docker-swag
container_name: swag
hostname: DS920Plus--SWAG
dns:
- 192.168.2.203
- 192.168.2.210
- 1.1.1.1
- 9.9.9.9