Afin de contrôler les logs du service de mails de fournis par INFRA01, l’utilisation de l’outil rsyslog, déjà présent sur la machine Debian 11. Cet outil permet une convergence des logs grâce à des règles et des “facilities”. Une facility est semblable à un namespace dans lequel les logs vont tomber. Une facility peut utiliser du globbing si elle a pour ambition de faire converger tout les logs, qu’importe le niveau de criticité de ceux-ci. La facility local5.* récupérera alors tous les logs envoyé à local5.inf, local5.err, local5.warn, etc…
Ouvrez le fichier rsyslog.conf:
Commentez ou supprimez les facility de mail (1)
Ajoutez deux nouvelles facilities (2):
Les nouvelles facilities redirigent donc les logs dans le fichier /var/log/webmail/webmail.log
Créez le fichier /var/log/webmail/webmail.log:
Assignez les permissions 764 rwxrw-r– Ã l’utilisateur root et au groupe root afin qu’un utilisateur non-root ne puisse pas modifier le fichier de logs:
Redémarrez le service syslog:
Il faut à présent configurer chacun des services.
Postfix envoie ses logs par défaut dans la facility mail, il n’y a donc pas de redirection à faire dans la configuration du service.
Ouvrez le fichier de configuration du service dovecot:
Commentez les lignes faisant référence à un fichier de logs (1)
Ajoutez un facility (2):
Il est possible de redémarrer le service maintenant avec la commande:
sudo systemctl restart dovecot
Mais on peut également le faire à la fin avec un script qui redémarre tous les services d’un seul coup.
Ouvrez le fichier de configuration du service roundcube:
Importez la section “LOGGING/DEBUGGING” du fichier defaults.inc.php de la configuration de roundcube dans le fichier config.inc.php (1)
Choisissez un niveau de log dans [1,4] pour le paramètre debug_level (2)
Choisissez syslog comme log_driver (3)
Conservez le log_date_format par défaut (4)
Choisissez roundcube comme syslog_id (5)
Choisissez LOG_MAIL comme syslog_facility (6)
Choisissez true pour tous les services possibles à journaliser (7)
Commentez le reste de la section
Il est possible de redémarrer le service maintenant avec la commande:
sudo systemctl restart roundcube
Mais on peut également le faire à la fin avec un script qui redémarre tous les services d’un seul coup.
Ouvrir le fichier de configuration du service nginx:
Remplacer les lignes access_log et error_log par les lignes suivantes (1):
Il est possible de redémarrer le service maintenant avec la commande:
sudo systemctl restart nginx
Mais on peut également le faire à la fin avec un script qui redémarre tous les services d’un seul coup.
Ouvrez le fichier de configuration du service apache2:
Changez la ligne ErrorLog (1)
Sélectionnez le niveau de log au niveau info (2):
Il faut à présent définir la politique de conservation des logs.
Il est possible de redémarrer le service maintenant avec la commande:
sudo systemctl restart apache2
Mais on peut également le faire à la fin avec un script qui redémarre tous les services d’un seul coup.
Logrotate est l’orchestrateur qui va permettre de réaliser le rotation des fichiers de logs avec un granularité plus ou moins fine (ici le jour).
Installez logrotate:
Si logrotate est déjà installé, le fichier rsyslog devrait déjà être présent. Ca constitue une bonne base de départ pour notre configuration. Sinon, pas de panique, le fichier final webmail est donné en intégralité dans les illustrations suivantes.
Ouvrez le fichier de configuration webmail du service logrotate précédemment créé:
Redémarrez le service logrotate:
On peut alors lancer script.sh pour redémarrer l’ensemble de composants du webmail:
avec pour script:
Connectez-vous à un utilisateur de l’Active Directory:
Cliquez sur rédiger (1) pour solliciter le service SMTP (Postfix):
Écrivez un mail à destination d’un utilisateur valide (1) (de l’Active Directory)
Cliquer sur “Envoyer” (2):
Ouvrez le fichier de logs webmail.log:
Voici le dossier de log actuel:
On peut forcer la rotation de logrotate via le flag -f et le fichier de config visé dans logrotate:
On remarque un nouveau fichier nommer webmail.log.1 qui correspond au ficher de log qu’on a rempli:
Consultez le contenu du nouveau fichier webmail.log créé par le déclenchement de logrotate:
On remarque alors que le mail avec la charge “malveillante” a bien été stoppée par l’antivirus ClamAV