Mettre à disposition des utilisateurs un service informatique
Mise en place d’une veille technologique : Miniflux avec Docker
Contexte et Objectif
Dans le cadre de ma démarche de veille technologique, j’ai souhaité mettre en place une solution centralisée, légère et auto-hébergé de gestion de flux RSS. J’ai choisi Miniflux, un agrégateur de flux minimaliste, auto-hébergé, que j’ai déployé à l’aide de Docker, afin d’automatiser et d’effectuer un certain gain de ressources sur le serveur.
L’objectif est de disposer d’un outil me permettant de suivre l’actualité technologique à partir de sources fiables tout en maitrisant l’infrastructure (sécurité, sauvegarde et portabilité).
Ainsi, pour industrialiser ma veille technologique et faciliter l’archivage, je tends à migrer vers le fonctionnement suivant :

Mise en place
Installation de Docker et Docker Compose
Sur un serveur Rocky Linux (Ici en 9.4), il faut effectuer les commandes suivantes :
#Mise à jour
sudo dnf update -y
#Installation des dépendances nécessaires
sudo dnf install -y dnf-plugins-core
#Ajout du dépôt officiel de Docker
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#Installation Docker et ses composants
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
#Démarrage et activation Docker au démarrage
sudo systemctl enable --now docker
#Vérification de l'installation
docker compose version
docker --version
Création du fichier docker-compose.yml
- Création d’un dossier projet
sudo mkdir ~/miniflux && sudo cd ~/miniflux
sudo nano docker-compose.yml
- Ajout de la configuration suivante
#Configuration en cours de modification
Lancement de Miniflux
- Dans le dossier du projet
docker compose up -d
- Le service Miniflux est maintenant accessible depuis :
http://adresse_ip:8080
Il ne vous reste plus qu’à suivre les étapes graphiques et ajouter vos premiers flux ! 🎉
Configuration d’un service cloud : Nextcloud
Contexte
Dans le cadre de la mise en place d’une infrastructure systèmes et réseaux la plus complète dans le cadre de l’épreuve E6. Ainsi différents services sont à intégrer, dans cet article nous utiliserons ceux-ci :
Et l’infrastructure finale ressemble à ceci :
Image en cours de modification
Installation et Configuration de Nextcloud
Installation de Nextcloud
Configuration de la base de données
Création d’une base de données pour NextCloud, dans un premier temps, se connecter au shell en utilisant le mot de passe root créé :
sudo mysql_secure_installation
sudo mysql -u root -p
Création de la base de données pour NextCloud
CREATE DATABASE ANTIPHATES;
GRANT ALL PRIVILEGES ON ANTIPHATES.* TO 'ANTIPHATES_USER'@'%' IDENTIFIED BY 'je_suis_le_mot_de_passe';
FLUSH PRIVILEGES;
EXIT;
⚠️Ne pas oublier de remplacer mot de passe et nom d’utilisateur⚠️
Téléchargement de Nextcloud
Téléchargement du code source
sudo dnf -y install vim nano wget unzip
wget <https://download.nextcloud.com/server/releases/latest.zip>
Extraction des fichiers compressés dans /var/www/html/
sudo unzip latest.zip -d /var/www/html/
Définir la propriété des fichiers sur Apache
sudo chown -R apache:apache /var/www/html/nextcloud/
Configuration des règles Apache, SELinux et Pare-feu
Configuration de SELinux
sudo dnf -y install policycoreutils-python-utils
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/nextcloud(/.*)?"
sudo restorecon -Rvv /var/www/html/nextcloud
Création d’un fichier d’hôte virtuel pour Nextcloud
sudo nano /etc/httpd/conf.d/nextcloud.conf
Et y inscrire les lignes suivantes
<VirtualHost *:80>
ServerName 192.168.1.140
DocumentRoot /var/www/html/nextcloud
ErrorLog /var/log/httpd/nextcloud_error.log
CustomLog /var/log/httpd/nextcloud.log combined
</VirtualHost>
Modification de la limite de mémoire PHP
sudo nano /etc/php.ini
Modifier la ligne memory_limit de 128M en 512M :
memory_limit = 512M
Enregistrer le fichier et recharger le service Apache
sudo systemctl reload httpd
Autorisation des règles de pare-feu
sudo firewall-cmd --add-service={http,https} --zone=public --permanent
sudo firewall-cmd --reload
Puis accéder à l’interface utilisateur via l’IP suivante
http://adress_ip/
Création d’un compte administrateur en remplissant les champs nécessaires

Suivez les propositions d’installations de modules complémentaires à Nextcloud et vous y êtes : Nextcloud est installé !

Configurations avancées
Gestion des Quotas de Stockage
Pour effectuer une gestion des quotas de stockage, il est nécessaire de se rendre dans Comptes → Paramètres gestion des comptes

Paramètres de Sécurité
- Configuration des politiques de mot de passe.
Cela est effectué par défaut, cependant pour configurer les politiques de mot de passe, il est nécessaire d’avoir l’application Password Policy d’active ( A activer dans Mes applications → Applications désactivées → Password Policy → Activer).
Et cette application permet d’activer un ensemble de règles conçues pour renforcer la sécurité en encourageant les utilisateurs à utiliser des mots de passe forts.
Les règles sont :
- Longueur de 10 caractères minimum
- Vérification des mots de passes avec une liste de mots de passe compromis (Liste sur haveibeenpwned.com)
- Activation de l’authentification à deux facteurs (2FA)
Pour activer l’authentification à deux facteurs (2FA), il faudra d’abord activer dans un premier l’application Two-Factor TOTP Provider (A activer dans Mes applications → Applications désactivées → Two-Factor TOTP Provider → Activer).
- Pour activer individuellement sur un utilisateur :
Paramètres personnels → Sécurité → Authentification à deux facteurs → TOTP (Authenticator app) → Activer les mots de passe à usage unique (TOTP) → Scanner le QR Code pour l’ajouter à un gestionnaire de mot de passe

- Pour activer sur tous les utilisateurs :
Paramètres d’administration → Sécurité → Authentification à deux facteurs

Authentification LDAP
Dans le cadre de l’utilisation de l’AD pour l’authentification des utilisateurs, il est possible d’utiliser un module. Cependant, il nécessaire d’effectuer des étapes supplémentaires.
sudo dnf install php-ldap -y
sudo setsebool -P httpd_can_connect_ldap 1
sudo setsebool -P authlogin_nsswitch_ use_ldap 1
sudo firewall-cmd --permanent --add-service=ldap
Puis se rendre dans Mes applications → Applications désactivées → LDAP user and group backend → Activer • Création d’un compte de service permettant au service Nextcloud de lire les utilisateurs dans l’AD

Se rendre dans Paramètres d’administration → LDAP/AD intégration
sudo firewall-cmd --permanent --add-service=ldap


Limitation de l’accès à nos utilisateurs qui sont dans le groupe Utilisateurs Du Domaine

Grâce à cette fonction, on peut savoir combien d’utilisateurs sont disponibles


Test de connexion avec un compte de l’AD


Surveillance et Maintenance
Gestion incidents (Outil propriétaire) : Suivi et résolution des incidents
Mise en place d’un serveur de supervision : Zabbix
Introduction
Dans le cadre de l’épreuve E6, une infrastructure sécurisée et complète contenant différentes machines virtuelles avec différents systèmes d’exploitations (Windows, Rocky Linux) ainsi que des solutions d’infrastructures réseaux (routeur et commutateurs). Il est nécessaire de pouvoir suivre de manière centralisée les évènements sur chacun des clients.
A faire : Schema infrastructure
Ainsi il est nécessaire :
- Configurer les agents sur les clients
- Installer les templates nécessaires à la supervision des services des différentes machines
- Configurer les groupes
- Configurer les comptes utilisateurs des administrateurs
Installation depuis l’appliance
Téléchargement de Zabbix
- Téléchargement de la version VMWare 7.2 depuis le site suivant :
Download Zabbix appliance

- Décompression de la machine virtuelle
- Ouverture via VMWare
Configuration globale
- Se connecter sur la VM (
root : zabbix
)
⚠️La machine virtuelle est sous qwerty soit wqbbix
en azerty ⚠️
Loadkeys fr
- Vérification de la configuration de l’adresse IP de VM
ip a
- Mise à jour de la machine virtuelle
dnf update -y
dnf upgrade -y
- Changement du fuseau horaire et le passer en GMT +1
date
cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
- Installation des packs de langue nécessaires (ici : Français)
localectl
dnf search "langpacks*" | more
dnf install langpacks-fr.noarch
localectl set-keymap fr
localectl set-locale LANG=fr_FR.utf8

- Chargement de la page de Zabbix Aller à l’adresse
http://adresse_ip

- Changement de la langue de l’interface Connexion avec
Admin / zabbix
→ User settings → Profile → Language → Update

Gestion des utilisateurs et des groupes
Contexte : L’entreprise UpTech souhaite mettre en place la notification automatique selon le client.
Nom Entreprise | Application | Référent Entreprise | Cliente |
---|---|---|---|
Entreprise1 | Entreprise1Web1 | Max Hymôme | Yves Héron |
Entreprise2 | Entreprise2Web1 | Marie TIM | Yves Héron |
Entreprise2 | Entreprise2Web1 | Sarah Fréchit | Yvan Dubois |
Création des groupes et utilisateurs correspondants aux entreprises
Dans cette partie, il est attendu de créer une architecture permettant de donner des droits en lecture / écriture pertinent et évolutive. Voici une proposition d’implémentation et de gestion des droits.
Quelques mots de vocabulaire :
– Hôte : est un actif (switch, routeur, serveur, …)
– GP : Groupe
– GP Hôte : Groupe d’hôte

Conseil : Créer les éléments qui n’ont pas de dépendance en premier, puis allez dans l’ordre de résolution ;
Indice : La notion de groupe / sous-groupe se gère par le fait de rajouter un slash (”/”), exemple : Entreprise1/GPHote/Application1 ;
GP User : Groupe d’utilisateur
- Création des groupes d’hôtes :
Collecte de données → Groupes d’hôtes → Créer un groupe d’hôtes


- Création des hôtes :
Collecte de données → Hôtes → Créer un hôte



- Création des groupes utilisateurs :
Utilisateurs → Groupes d’utilisateurs → Créer un groupe



- Création des utilisateurs :
Utilisateurs → Utilisateurs → Créer un utilisateur


Configuration des médias
Les médias représentent les supports de communication de Zabbix, l’application comporte plusieurs dizaines de média. Nous verrons la configuration de certains d’entre eux :
– Email avec Office 365 ou Gmail
– Teams, Discord
– GLPI, PushOver (limitation à 7jr), OpsGenie (documentation non réalisée, limitation à 5 utilisateurs)
Accès via Alertes → Types de média

Email avec Gmail
– Cliquer sur Créer un type de média et remplissez les informations comme ci-joint dans la capture d’écran
⚠️Gmail applique désormais un protocole de sécurité pour la connexion des applications vers ses services, suivre les informations dans la cartouche suivante⚠_️_
o Se connecter sur via le lien suivant : Compte Google
o Ajouter une application et récupérer le mot de passe



Compte Google – Mots de passe d’application
⚠️Attention, dans la partie « Mot de passe » il faut inscrire le mot de passe d’application créé dans Gmail ⚠️



Test :


Notification sur Teams
Au sein d’un équipe Teams, créer plusieurs channels (Entreprise1, Entreprise2 et Uptech), et faites en sorte que les alertes arrivent sur les canaux adaptés aux services en panne.
- Pour configurer le webhook de MS Teams Workflow, il faut se rendre dans la barre de raccourcis verticale à gauche et rechercher les trois points des applications supplémentaires et rechercher l’application Workflow et l’ouvrir.

- Dans l’application Workflow, dans l’angle supérieur droit, cliquer sur « Nouveau flux »

- Dans la barre de recherche, entrez le mot « channel » et dans les résultats de la recherche, sélectionner « Publier sur un canal lors de la réception d’une demande de webhook »

- Nommer votre Workflow, ici ce sera « Zabbic webhook ». Puis sélectionner l’utilisateur approprié dans le menu « Se connecter » puis sur « Suivant »

- Sélectionner l’équipe MS Teams et le canal appropriés où les événements Zabbix seront publiés, puis « Créer un flux »

- Copier l’URL du endpoint du workflow et l’enregistrer

- On le retrouve afficher dans la liste des flux

Dans l’interface du serveur Zabbix aller dans « Administration à Macros » puis remplissez comme ci-dessous avec l’adresse IP ou le nom de domaine de votre serveur Zabbix

- Dans « Administration Types de média », on peut importer le fichier type de média de MS Teams Workflow.
- Et on effectue un test


Intégration des hôtes : Connecter l’infrastructure à Zabbix
L’intégration des hôtes permet un suivi détaillé des machines sur lesquelles sont installés les agents et obtenir par exemple une carte de suivi comme celle-ci :

Installation de l’agent
- Installation et démarrage du service SSHD
sudo dnf install openssh-server -y
sudo systemctl enable --now sshd
- Ajout d’un utilisateur
sudo adduser rocky
sudo passwd rocky
- Ajout du référentiel (dépôt) de Zabbix et installation de zabbix-agent
dnf install -y https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-agent2-6.0.7-1.el9.x86_64.rpm
dnf update -y
dnf install -y zabbix-agent2
⚠️ Adapter l’URL et le fichier à la version ⚠️
- Ajout d’une ouverture sur le firewall
sudo firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
- Ajout autorisation SELinux d’accéder au réseau
setsebool -P zabbix_can_network=1
- Modification du fichier de configuration de l’agent Zabbix et adapter les lignes suivantes
sudo nano /etc/zabbix/zabbix_agent2.conf
Contenu à modifier :
Server=192.168.1. # IP du serveur Zabbix autorisé
ListenPort=10050 # Port d'écoute de l'agent
ListenIP=192.168.133.187 # IP(s) sur lesquelles l’agent écoute
ServerActive=192.168.133.132:10051 # IP:port du serveur Zabbix pour vérifications actives
Hostname=DebianClient1
AllowKey=system.run[*] # Autoriser les commandes à distance (à filtrer)
- Redémarrage du service
sudo systemctl enable --now zabbix-agent2
sudo systemctl restart zabbix-agent2
- Vérification du statut du service
sudo systemctl status zabbix-agent2

Ajout de l’hôte dans le serveur Zabbix
- Accéder au menu « Collecte de données → Hôtes », cliquer sur « Créer un hôte » puis renseigner les informations de votre hôte.

Chiffrement des communications (TLS)
- Génération d’une clef PSK
openssl rand -hex 32 > /etc/zabbix/secret.psk
- Affichage de la clef PSK
cat /etc/zabbix/secret.psk
- Trouver le nom de l’utilisateur zabbix
cat /etc/passwd | grep zabbix

- Modification du propriétaire du fichier contenant la clef
chown zabbix:zabbix /etc/zabbix/secret.psk
- Modification des droits sur le fichier contenant la clef
chmod 640 /etc/zabbix/secret.psk
- Modification du fichier de configuration pour la prise en compte de la clef
nano /etc/zabbix/zabbix_agent2.conf
Ajouter ou modifier :
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=SRVWEB
TLSPSKFile=/etc/zabbix/secret.psk


- Redémarrage du service zabbix-agent2 et vérification du statut
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
- Sur le serveur Zabbix : aller dans Collecte de données → Hôtes → Nom_de_l’hôte (ici SRVWEB) → Chiffrement et remplir selon les valeurs précédemment définies.

⚠️ Image non contractuelle, adapter l’identité PSK et la PSK en fonction des étapes précédentes ⚠️

Gestion des services supplémentaires
Contexte
L’entreprise souhaite que l’on surveille les serveurs de l’entreprise avec le schéma suivant :

Surveiller les services systèmes et réseaux
Pour surveiller les constantes systèmes CPU, RAM, disque, il vous suffit de rajouter les templates Zabbix selon votre système d’exploitation « Linux by Zabbix agent » ou « Windows by Zabbix agent ».
- Accéder à l’hôte et ajout d’un modèle fait plus tôt
- Procédure pour surveiller le CPU et surveiller les cartes réseaux
Aller dans « Collecte de données à Hôtes » puis aller dans « Eléments » de l’hôte voulu.

Ainsi on peut observer que grâce au modèle « Linux by Zabbix agent » surveille déjà les constantes de réseaux et CPU.


Créer un modèle pour monitorer la partie systèmes, réseaux et services
Dans la catégorie modèle, vous pouvez créer nos propres modèles, afin de gagner du temps dans la sélection des templates, implémenter un template permettant de monitorer l’intégralité de la partie système, réseau et apache par exemple.
- Aller dans « Modèle à Créer un modèle »

Surveiller un service système classique
Dans le cadre de la surveillance d’un service classique, on peut ajouter les modèles SSH Service, Apache by Zabbix Agent et MySQL by Zabbix agent 2.
Le modèles SSH Service n’est pas implémenté de base, nous allons donc l’importer avec la procédure suivante :
- Aller dans « Collecte de données à Modèles à Importer » et importer le modèle téléchargé sur le site suivant : Marketplace Zabbix


Monitorer un service, actif or not
Pour monitorer un service actif ou non, se rendre sur « Collecte de données à Hôtes à Eléments (d’un hôte) à Créer un item » et remplir comme ci-dessous.

Monitorer un port
Avec la même procédure que précédemment nous allons créer un item et saisir comme ci-dessous :


D’un côté on monitore le port tandis que de l’autre côté, on monitore le service qui est sur le port.
Monitorer le nombre de ligne dans un fichier de log
- Mettre les bons droits dans les répertoires et fichiers (droit en exécution/lecture)
- Dans le fichier /etc/zabbix/zabbix_agentd.conf avoir la ligne AllowKey=system.run[*] (Autoriser l’envoi de commande à distance)


Monitorer des services complémentaires
Dans le cadre d’un réseau comprenant un serveur WEB, un serveur AD-DHCP-DNS et un switch VYOS. Nous allons monitorer ces équipements sachant que la procédure pour le serveur WEB a été expliqué plus tôt. Nous allons ainsi faire de même pour un serveur Windows 2022 AD-DHCP-DNS et un routeur VYOS.
Serveur Windows 2022 AD-DHCP-DNS

On récupère et on installe l’agent Zabbix depuis le lien suivant.

Lors de l’installation, on rentre les informations nécessaires de notre serveur (IP et Port).

On peut vérifier l’exécution du service avec « services.msc »

Après avoir effectué la configuration Zabbix Agent 2, on effectue les configurations nécessaires sur le serveur Zabbix. On ajoute l’hôte ainsi que les modèles pour ce que le souhaite monitorer. Et l’on peut trouver le modèle pour monitorer le serveur AD sur Zabbix.

Et cela fonctionne !

Par exemple, nous pouvons voir l’état des disques ou encore la carte réseau.

Ou encore l’état du CPU :

Et on peut voir que le service SSH est en fonctionnement sur le serveur SRVADDNSDCHP

Routeur
De manière générique (En cours de modification)
Dans le cadre du monitoring d’un routeur, nous utiliserons un routeur VYOS. Tout d’abord, sur le routeur, on repère l’adresse IP de l’interface qui est incluse dans le réseau.

- Définition des hôtes autorisés
- Ici, on va définir le réseau entier
set service snmp community routers network 192.168.1.0/24
Et si l’on doit définir des adresses spécifiques
set service snmp community routers client 192.168.1.46
- De plus, on peut configurer des informations du routeur, par exemple
Emplacement
set service snmp location "Mon ordi"
Contact
set service snmp contact "je_suis_le_mail@domain.com"
- Configuration des traps (Optionnel)
- Définition d’une cible pour les traps (Mettre l’adresse de son serveur Zabbix)
set service snmp trap-target 192.168.1.46
- Enregistrement des modifications
commit
Depuis le serveur Zabbix, on crée un hôte avec les informations suivantes en allant dans « Collecte de données > Hôtes > Créer un hôte ».

Page support de Vyos pour SNMPv2 : ici
Le modèle de monitoring de Vyos : ici
La supervision du routeur est fonctionnelle :

De plus avec le modèle de monitoring Vyos, celui-ci supervise autant la RAM, que le CPU que l’état des interfaces réseaux :

Cependant, il existe un agent Zabbix pour Vyos.
Création d’une carte
Puis aller en haut à droite sur « Editer la carte » pour modifier la carte.
Pour ajouter un élément aller sur « Elément de carte : Ajouter » et sur « Hôte », on peut lier cet élément à un hôte de notre monitoring.
Il existe la possibilité de créer une carte de l’infrastructure dans l’onglet « Surveillance à Cartes ».

Et en sélectionnant deux éléments, vous pouvez les lier.

Déclencheurs
Dans « Alerte > Actions > Actions de déclencheur », on va ajouter un déclencheur dans le cadre où le SRVADDNSDHCP ne fonctionnerai plus.

De plus, il y a possibilité d’envoyer un message aux usagers, techniciens ou administrateurs concernés.

Contexte de l’épreuve E6
Dans le cadre du contexte E6, la supervision permet d’obtenir une carte de supervision pour une meilleur visualisation

Et ainsi effectuer les suivants et être prévenue.
Test sur un switch Cisco

Zabbix détecte que le câble RJ45 du port GE1/0/4 du commutateur DYONISOS a été débranché. Les données sont les suivantes :
- 2 : Le câble est branché
- 1 : Le câble est débranché
De plus une alerte est aussi visible sur l’hôte :

Test sur un serveur Web sous Rocky Linux
Pour le test de supervision d’un service SSHD sur le serveur THALES (WikiJS sous Rocky Linux), le service SSHD a été éteint :

Ainsi sur la carte de supervision prévient de toutes interruptions :

*Sachant que HERMES et HERACLES sont éteints
Et lorsque le service est relancé :

Sources
Si cela vous intéresse, vous trouverez ci-dessous le compte-rendu de cette réalisation professionnelle :
🔒Se connecter pour accéder à la ressource