Site perso d'un administrateur d'infrastructures sécurisées

Catégorie : Exploiter des serveurs Linux Page 1 of 2

Que signifie « OEM install » lors de l’installation d’une distribution Linux Mint ?

OEM signifie « Original Equipment Manufacturer ». Lorsqu’un fabricant d’ordinateur installe Linux Mint sur un nouveau PC, il utilise souvent le mode d’installation OEM. Cela lui permet d’installer le système d’exploitation sans configurer les détails spécifiques à l’utilisateur final, comme le nom d’utilisateur, le mot de passe, la langue et d’autres préférences personnelles.

Lorsque vous sélectionnez cette option, le système d’exploitation est installé de manière à ce que l’utilisateur final puisse effectuer la configuration initiale lorsqu’il allume l’ordinateur pour la première fois, similaire à la configuration d’un nouvel appareil.

En d’autres termes, au lieu de configurer Linux Mint avec vos propres informations lors de l’installation, il vous permet de préparer l’ordinateur avec Linux Mint en tant que système d’exploitation de base, puis l’utilisateur final peut personnaliser et configurer son propre compte utilisateur lors de la première utilisation.

Cela peut être utile pour les entreprises ou les revendeurs qui préinstallent Linux Mint sur des ordinateurs destinés à la vente.

Exploiter Linux dans le Cloud

Linux, un système d’exploitation open source, est devenu un pilier dans le monde des serveurs grâce à sa robustesse, sa sécurité et sa flexibilité. Né dans les années 1990, il a su s’imposer comme une alternative puissante aux systèmes d’exploitation propriétaires, offrant aux utilisateurs un contrôle total sur leur environnement informatique. La popularité de Linux dans les datacenters et les environnements d’entreprise est en grande partie due à sa capacité à s’adapter à diverses exigences, sa compatibilité avec une multitude de matériels et sa communauté active qui assure un développement continu et un support solide.

Parallèlement, les plateformes cloud telles qu’Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform ont révolutionné la manière dont les entreprises déploient et gèrent leurs applications et leurs données. Ces plateformes offrent une infrastructure en tant que service (IaaS), permettant aux utilisateurs de louer des serveurs virtuels et d’autres ressources informatiques sur demande. Cette flexibilité et cette échelle ont ouvert de nouvelles voies pour l’hébergement et la gestion des applications Linux.

La pertinence de Linux dans ces environnements cloud ne peut être sous-estimée. Non seulement il bénéficie d’une large adoption en raison de sa nature open source et de sa faible empreinte, mais il est également le système d’exploitation de prédilection pour de nombreuses applications cloud natives. AWS, Azure et Google Cloud, reconnaissant la popularité et la flexibilité de Linux, offrent une prise en charge étendue pour diverses distributions Linux, permettant aux utilisateurs de profiter d’environnements Linux optimisés et intégrés dans leurs services cloud.

Ainsi, l’intégration de Linux dans le cloud est devenue un élément crucial de l’infrastructure informatique moderne, offrant aux entreprises une plateforme fiable, évolutive et économique pour leurs besoins informatiques. Dans cet article, nous explorerons comment Linux est exploité sur ces plateformes cloud, en examinant les avantages, les configurations typiques, et les meilleures pratiques pour maximiser son efficacité et sa performance dans ce contexte dynamique.

Pourquoi utiliser une distribution Linux dans le cloud ?

L’adoption de Linux dans les environnements cloud se justifie par plusieurs avantages distincts qui le rendent idéal comme système d’exploitation pour les serveurs cloud.

  1. Stabilité et Fiabilité: Linux est réputé pour sa stabilité et sa fiabilité. Dans un environnement cloud, où la disponibilité et la continuité des services sont critiques, ces qualités sont particulièrement précieuses. Linux assure un fonctionnement continu avec peu d’interruptions, ce qui est essentiel pour les applications d’entreprise et les processus critiques.
  2. Sécurité: La sécurité est une préoccupation majeure dans le cloud, et Linux est bien connu pour ses robustes caractéristiques de sécurité. Grâce à son modèle de sécurité granulaire et à la possibilité de personnaliser le noyau et les services, Linux permet aux utilisateurs de créer des environnements extrêmement sécurisés.
  3. Flexibilité et Personnalisation: L’une des forces principales de Linux réside dans sa flexibilité. Les utilisateurs peuvent choisir parmi une variété de distributions, chacune adaptée à des besoins spécifiques. Cette personnalisation permet une optimisation des performances en fonction des exigences spécifiques de l’application ou du service.
  4. Coût-Efficacité: Étant un système d’exploitation open source, Linux réduit ou élimine les coûts liés aux licences logicielles. Cette caractéristique en fait une option rentable pour les entreprises souhaitant réduire leurs dépenses opérationnelles.
  5. Communauté et Support: La communauté Linux est vaste et active, offrant une abondance de ressources, de forums et de supports. Cette communauté est un avantage significatif, surtout pour résoudre les problèmes techniques et rester à jour avec les dernières tendances et meilleures pratiques.
  6. Compatibilité avec les Technologies Cloud Modernes: Linux est souvent le système d’exploitation de choix pour les technologies cloud modernes, comme les conteneurs et l’orchestration de conteneurs (par exemple, Docker, Kubernetes). Sa compatibilité native avec ces technologies le rend idéal pour les environnements cloud dynamiques et évolutifs.

Comparaison avec d’autres systèmes d’exploitation

En comparaison avec d’autres systèmes d’exploitation, notamment Windows, Linux se distingue par plusieurs aspects :

  • Ouverture et Flexibilité: Contrairement à Windows, qui est un système d’exploitation propriétaire avec des paramètres et des applications prédéfinis, Linux offre une plus grande ouverture et flexibilité, permettant aux utilisateurs de modifier le système pour répondre à leurs besoins spécifiques.
  • Coût: Linux, étant généralement gratuit, présente un avantage de coût significatif par rapport à Windows, qui nécessite des licences payantes.
  • Performance et Ressources: Linux est souvent considéré comme plus léger et plus efficace en termes de ressources, ce qui le rend particulièrement adapté aux environnements cloud où l’optimisation des ressources est cruciale.
  • Support des Technologies Open Source: Linux supporte nativement une grande variété de technologies open source, qui sont largement utilisées dans les environnements cloud.

Choisir Linux dans un environnement cloud offre donc non seulement une plateforme stable, sécurisée et rentable, mais aussi une compatibilité étendue avec les technologies cloud modernes, un avantage non négligeable dans le paysage informatique actuel.

Les principales plateformes Cloud

Les plateformes cloud dominantes – AWS, Azure et Google Cloud – offrent toutes des fonctionnalités uniques pour les utilisateurs de Linux, renforçant l’attractivité de Linux dans des environnements cloud variés.

  1. AWS (Amazon Web Services)
    • Caractéristiques pour Linux: AWS propose une gamme complète de services adaptés aux utilisateurs Linux. Cela inclut des instances EC2 (Elastic Compute Cloud) optimisées pour Linux, avec des options de configuration flexibles en termes de CPU, mémoire et stockage.
    • Avantages pour les utilisateurs Linux: AWS offre une intégration profonde avec les distributions Linux populaires comme Ubuntu, Red Hat Enterprise Linux, et Amazon Linux. Les utilisateurs bénéficient d’une scalabilité, d’une flexibilité et d’une efficacité élevées, ainsi que d’un large éventail de services complémentaires comme AWS Lambda pour l’exécution de code sans serveur et AWS Elastic Beanstalk pour le déploiement et la gestion d’applications.
  2. Azure (Microsoft)
    • Options pour Linux: Microsoft Azure a considérablement étendu son support pour Linux. Les utilisateurs peuvent déployer une variété de distributions Linux, y compris Ubuntu, Red Hat Enterprise Linux, et CentOS. Azure offre également des services spécifiques comme Azure Kubernetes Service (AKS) pour la gestion de conteneurs.
    • Intégration avec Linux: Azure se distingue par son excellente intégration avec Linux, offrant des services comme Azure App Service pour Linux et des outils de développement comme Visual Studio Code pour Linux. Cette intégration permet une expérience fluide pour les développeurs et administrateurs systèmes travaillant avec Linux dans un environnement Azure.
  3. Google Cloud Platform (GCP)
    • Fonctionnalités spécifiques pour Linux: Google Cloud Platform est fortement axé sur les conteneurs et l’orchestration, avec des services tels que Google Kubernetes Engine (GKE) optimisés pour des déploiements Linux. GCP supporte plusieurs distributions Linux, y compris Debian, CentOS, et même des distributions spécifiques à Google comme Container-Optimized OS.
    • Avantages pour les utilisateurs Linux: L’un des plus grands atouts de GCP pour les utilisateurs Linux est son infrastructure mondiale hautement évolutive et performante, idéale pour des applications Linux exigeantes. GCP se distingue également par ses outils d’analyse de données et d’apprentissage automatique, qui sont facilement accessibles sur des instances Linux.

Chacune de ces plateformes offre des avantages distincts pour les utilisateurs Linux, qu’il s’agisse de la flexibilité et de la variété des services d’AWS, de l’intégration étroite et des outils de développement d’Azure, ou de l’accent mis sur les conteneurs et l’analyse de données par GCP. Le choix de la plateforme dépendra en grande partie des besoins spécifiques de l’entreprise et de son environnement technologique.

Cas d’usage

L’utilisation de Linux dans les environnements cloud s’adapte à une multitude de scénarios, chacun tirant parti des forces distinctes de Linux et du cloud.

Exemples d’utilisation de Linux dans le Cloud

  • Serveurs Web et Hébergement d’Applications: Linux est fréquemment utilisé pour héberger des serveurs web et des applications, grâce à sa compatibilité avec des technologies comme Apache, Nginx, et PHP. Les entreprises peuvent facilement déployer et gérer des sites web dynamiques, des applications eCommerce, ou des applications d’entreprise.
  • Développement et Test d’Applications: Les environnements cloud sous Linux sont idéaux pour le développement et le test d’applications, offrant des environnements facilement configurables et isolés. Les développeurs peuvent utiliser des instances cloud pour créer et tester des applications dans des conditions variées sans affecter les systèmes de production.
  • Analyse de Données et Machine Learning: Les plateformes cloud Linux offrent les ressources nécessaires pour exécuter des tâches intensives en matière de traitement de données et d’apprentissage automatique, tirant parti de la flexibilité et de l’évolutivité du cloud pour gérer de grands ensembles de données.

    Analyse de Données et Machine Learning: Les plateformes cloud Linux offrent les ressources nécessaires pour exécuter des tâches intensives en matière de traitement de données et d’apprentissage automatique, tirant parti de la flexibilité et de l’évolutivité du cloud pour gérer de grands ensembles de données.

Meilleures Pratiques pour Maintenir la Performance et la Sécurité

  • Optimisation des Ressources: Utilisez des outils de surveillance et de gestion pour optimiser l’utilisation des ressources. Choisissez la bonne taille d’instance et échelonnez les ressources en fonction de la demande pour maintenir un équilibre entre les performances et le coût.
  • Mises à jour et Patches de Sécurité: Gardez le système d’exploitation et les applications à jour avec les derniers patches de sécurité. Configurez des mises à jour automatiques ou suivez un calendrier de maintenance régulier.
  • Gestion des Identités et des Accès: Mettez en œuvre une gestion stricte des identités et des accès pour sécuriser vos environnements cloud. Utilisez l’authentification multi-facteurs et des politiques de mot de passe robustes.
  • Sauvegardes et Plan de Récupération: Établissez une routine de sauvegarde régulière et testez votre plan de récupération pour vous assurer que vous pouvez rapidement restaurer vos données en cas de panne.
  • Sécurisation des Réseaux: Configurez des groupes de sécurité et des listes de contrôle d’accès pour limiter l’accès aux instances cloud. Utilisez des VPN et des pare-feu pour protéger le trafic réseau.
  • Surveillance et Alertes: Mettez en place une surveillance proactive pour détecter et réagir rapidement aux problèmes de performance ou de sécurité. Utilisez des outils de surveillance du cloud et configurez des alertes pour être averti en cas d’anomalies.

En respectant ces meilleures pratiques, les utilisateurs peuvent maximiser les avantages de l’utilisation de Linux dans le cloud, tout en maintenant un environnement performant et sécurisé. Ces pratiques sont essentielles pour tirer parti de la flexibilité et de l’évolutivité du cloud, tout en minimisant les risques et les coûts.

Exemple : configuration et déploiement de Linux sur AWS

Sélection de la Distribution Linux: Choisissez une image de machine Amazon (AMI) qui correspond à la distribution Linux souhaitée, comme Ubuntu, Red Hat Enterprise Linux, ou Amazon Linux.

Choix du Type d’Instance: Sélectionnez un type d’instance approprié en fonction des besoins en CPU, mémoire et stockage.

Configuration des Paramètres Réseau: Configurez les paramètres du réseau, y compris les groupes de sécurité pour contrôler les ports ouverts et les adresses IP autorisées à se connecter.

Création de Clés d’Accès: Créez une paire de clés (clé publique et clé privée) pour accéder en toute sécurité à votre instance via SSH.

Lancement et Connexion à l’Instance: Une fois l’instance lancée, connectez-vous à celle-ci en utilisant SSH et l’adresse IP publique associée à l’instance.

Sélection de la distribution Linux adaptée aux besoins de l’utilisateur

Choix de la Distribution : Optez pour une distribution qui correspond le mieux à vos besoins. Par exemple, Ubuntu est populaire pour sa facilité d’utilisation et son grand support communautaire, tandis que Red Hat Enterprise Linux est souvent choisi pour son support d’entreprise et sa stabilité.

Conseils de sécurisation et de gestion de l’instance Linux

  • Mises à jour Régulières: Effectuez régulièrement des mises à jour du système pour assurer la sécurité et la stabilité de l’instance.
  • Configuration des Pare-feu: Utilisez des groupes de sécurité pour configurer des règles de pare-feu, limitant le trafic vers et depuis l’instance.
  • Gestion des Utilisateurs et des Accès SSH: Limitez l’accès SSH aux utilisateurs nécessaires et utilisez des clés SSH pour l’authentification.
  • Surveillance et Logs: Mettez en place des outils de surveillance pour suivre l’utilisation des ressources et les activités suspectes. Configurez également la collecte de logs pour faciliter le dépannage et l’audit.
  • Sauvegardes et Snapshots: Créez régulièrement des sauvegardes et des snapshots de votre instance pour prévenir la perte de données.

Mettre à jour Ubuntu Focal Fossa 20.04 vers la dernière version 22.04 Jammy Jellyfish

Ce week-end je me suis amusé à retaper un vieux PC portable qui trainait chez moi, et sur lequel j’avais installé dans le passé un Ubuntu Focal Fossa. Je me suis dis « tant qu’à faire, autant le mettre à jour », et, « tant qu’à faire, autant en faire un tuto » :).

La mise à jour d’Ubuntu depuis le terminal

Quelques lignes de commande et un peu de patience suffisent généralement pour arriver à ses fins. Voici les différentes étapes à suivre :

1. Mise à jour des paquets existants :

Ouvrez un terminal et exécutez les commandes suivantes pour vous assurer que tous vos paquets existants sont à jour.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Ensuite, nettoyez les paquets inutiles avec :

sudo apt autoremove

2. Installer l’outil de mise à niveau :

Installez l’outil update-manager-core si ce n’est pas déjà fait :

sudo apt install update-manager-core

3. Lancer la mise à niveau :

Assurez-vous que le fichier /etc/update-manager/release-upgrades est bien configuré avec Prompt=lts pour n’obtenir que les notifications de nouvelles versions LTS. Ensuite, lancez l’outil de mise à niveau :

sudo do-release-upgrade

Puis suivez simplement les instructions à l’écran pour lancer la mise à niveau.

NB : Si la mise à niveau vers la dernière version LTS n’est pas directement proposée, cela peut être dû au fait que les mises à niveau vers la nouvelle version LTS ne sont généralement pas activées avant la première mise à jour ponctuelle (par exemple, 22.04.1). Si vous souhaitez mettre à niveau avant cela, vous pouvez utiliser l’option -d pour forcer la mise à niveau vers la version de développement :

sudo do-release-upgrade -d

N’oubliez pas de sauvegarder vos données importantes avant de procéder à une mise à niveau majeure du système. En cas de doute, vous pouvez également attendre que la mise à niveau soit officiellement proposée par le gestionnaire de mises à jour de votre système pour assurer une transition plus fluide.

Et voilà, après quelques minutes de patience et un redémarrage vous devriez voir une belle pieuvre en fond d’écran, signe que la mise à jour s’est bien déroulée 🙂

Utiliser la commande « kill » sur Linux : petit guide pratique

La commande kill est utilisée dans les systèmes d’exploitation de type Unix, comme Linux, pour envoyer des signaux à des processus. Chaque signal peut provoquer une réponse différente dans le processus ciblé, mais en général, kill est utilisé pour arrêter des processus.

Voici un aperçu des composants de base et de la fonctionnalité de la commande kill :

Utilisation de base

La commande de base est

kill [options] <PID>

<PID> est l’identifiant du processus à signaler.

Sans options, kill envoie SIGTERM (signal numéro 15), qui demande au processus de se terminer proprement, en fermant les fichiers et en libérant les ressources.

Comment trouver le PID d’un processus ?

Le PID, ou « Process IDentifier », est un nombre unique attribué par le système d’exploitation à chaque processus lors de sa création. Ce numéro permet au système d’exploitation et à l’utilisateur de distinguer chaque processus en cours d’exécution sur le système.

Pour afficher les PIDs sur un système Linux, vous pouvez utiliser plusieurs commandes, les plus courantes étant ps, top, htop (une version améliorée de top qui doit être installée séparément), et pgrep.

  1. Commande ps:
    • Tapez ps aux pour afficher un instantané de tous les processus en cours d’exécution. La colonne PID affiche le numéro d’identification de chaque processus.
    • Pour un processus spécifique, par exemple firefox, vous pouvez utiliser ps aux | grep firefox.
  2. Commande top:
    • Tapez top pour afficher une vue dynamique de tous les processus en cours d’exécution. Les PIDs sont listés dans une colonne sur la gauche.
    • Vous pouvez également utiliser htop pour une vue plus interactive et colorée.
  3. Commande pgrep:
    • Tapez pgrep nom_du_processus pour afficher le PID d’un processus par son nom. Par exemple, pgrep firefox affichera le PID de toutes les instances de Firefox en cours d’exécution.
  4. Affichage détaillé:
    • Si vous souhaitez plus de détails sur un processus spécifique une fois que vous avez son PID, vous pouvez utiliser ps -p PID -o comm=, ce qui affichera le nom de la commande qui a démarré le processus.

Le PID est important car il est utilisé pour gérer des processus spécifiques, par exemple pour envoyer des signaux avec des commandes comme kill, nice ou renice.

Signaux

Les signaux sont des messages envoyés à un processus pour déclencher une action prédéfinie. Les signaux peuvent être envoyés par le système d’exploitation, par d’autres processus ou par des utilisateurs.

Par exemple, le signal SIGTERM demande à un processus de se terminer proprement, tandis que SIGKILL ordonne à un processus de s’arrêter immédiatement.

Signaux courants :

  • SIGTERM (15) : Signal de fin de processus standard. Le processus peut intercepter ce signal et le traiter comme il le souhaite (parfois en l’ignorant).
  • SIGKILL (9) : Force le processus à se terminer immédiatement. Le processus ne peut pas intercepter ce signal.
  • SIGSTOP (17, 19, 23) : Arrête (suspend) le processus sans le terminer.
  • SIGCONT (18, 20, 24) : Reprend l’exécution d’un processus arrêté.

Commandes avancées :

Pour envoyer un signal spécifique, vous utilisez

kill -s <signal> <PID>

ou

kill -<signal> <PID>. Par exemple,

kill -SIGTERM <PID> 

ou

kill -15 <PID>

Vous pouvez également envoyer un signal à plusieurs PIDs à la fois : kill -SIGTERM PID1 PID2 PID3.

Si vous voulez envoyer un signal à tous les processus exécutant un certain programme, vous pouvez utiliser pkill ou killall suivi du nom du programme.

Afficher la liste des signaux :

Vous pouvez voir la liste des signaux disponibles avec kill -l. Ceci est utile pour connaître les différents types de signaux que vous pouvez envoyer avec kill.

Permissions :

Un utilisateur peut envoyer des signaux à ses propres processus, mais seuls le superutilisateur (root) ou avec des droits élevés via sudo peut envoyer des signaux aux processus d’autres utilisateurs.

Utilisation prudente

Bien que kill soit un outil puissant, son utilisation doit être prudente, surtout avec des signaux comme SIGKILL qui ne permettent pas au processus de se terminer proprement, ce qui peut entraîner une perte de données ou un état incohérent du système.

kill est une commande flexible pour la gestion des processus qui permet aux utilisateurs de signaler des processus pour une variété d’actions, depuis une terminaison propre jusqu’à une interruption forcée.

Que signifie !#/bin/bash ?

On l’utilise tous les jours (ou presque) mais que signifie cette première ligne présente en début de script bash ? Petit focus rapide sur cette petite particularité…

#!/bin/bash est une ligne que l’on trouve souvent au début des scripts écrits pour le shell Bash sous les systèmes d’exploitation de type Unix ou Linux. On appelle cette ligne le « shebang » (ou « hashbang »). Voici ce qu’elle signifie :

  1. # : En Bash et dans d’autres langages de script Unix, le symbole # est utilisé pour indiquer le début d’un commentaire. Tout ce qui suit ce symbole sur la même ligne est ignoré par l’interpréteur comme étant du commentaire.
  2. ! : Lorsque ! est utilisé en combinaison avec # au début d’un fichier script (c’est-à-dire #!), il indique au système d’exploitation qu’il ne s’agit pas d’un commentaire ordinaire. Au lieu de cela, c’est une directive spéciale qui indique au système d’exploitation comment exécuter le fichier.
  3. /bin/bash : Cette partie du shebang spécifie le chemin vers l’interpréteur qui doit être utilisé pour exécuter le script. Dans ce cas, /bin/bash indique que le script doit être exécuté avec l’interpréteur Bash, qui se trouve généralement dans le répertoire /bin des systèmes Unix et Linux.

En résumé, #!/bin/bash au début d’un script indique tout bonnement au système d’exploitation qu’il doit utiliser l’interpréteur Bash pour exécuter le script.

Cela garantit que le script sera interprété correctement, quelle que soit l’environnement ou le shell par défaut de l’utilisateur.

Installer LogAnalyzer sur Debian 12 – La procédure complète

L’installation de LogAnalyzer sur un système Debian nécessite plusieurs étapes, car elle implique l’installation de dépendances comme un serveur web (typiquement Apache), PHP, et un système de gestion de base de données (comme MySQL ou MariaDB). Voici un guide étape par étape pour installer LogAnalyzer sur Debian :

1. Prérequis

Avant d’installer LogAnalyzer, assurez-vous que votre système est à jour :

sudo apt update sudo apt upgrade

Puis, vérifiez que Rsyslog est bien installé sur votre système ;

sudo systemctl status rsyslog

si ce n’est pas le cas, installez le :

apt install rsyslog

2. Installer Apache

Installez le serveur web Apache :

sudo apt install apache2

Une fois installé, vérifiez que Apache fonctionne correctement en visitant http://[Votre-Adresse-IP] ou http://localhost dans votre navigateur.

3. Installer PHP

LogAnalyzer nécessite PHP pour fonctionner. Installez PHP et les modules nécessaires :

sudo apt install php php-cli php-common php-mbstring

4. Installer MySQL/MariaDB

Installez MySQL ou MariaDB :

sudo apt install mariadb-server mariadb-client

Après l’installation, exécutez le script de sécurisation :

sudo mysql_secure_installation

Suivez les instructions pour définir un mot de passe root et sécuriser votre installation MySQL/MariaDB.

5. Créer une Base de Données pour LogAnalyzer

Connectez-vous à MySQL/MariaDB :

sudo mysql -u root -p

Créez une base de données et un utilisateur pour LogAnalyzer :

CREATE DATABASE loganalyzer; 
CREATE USER 'loganalyzer'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON loganalyzer.* TO 'loganalyzer'@'localhost'; 
FLUSH PRIVILEGES; EXIT;

Remplacez 'password' par un mot de passe sécurisé bien sûr.

6. Télécharger et Installer LogAnalyzer

Téléchargez la dernière version de LogAnalyzer depuis le site officiel :

wget [URL-de-LogAnalyzer] tar -zxvf loganalyzer-*.tar.gz sudo mv loganalyzer-*/src /var/www/html/loganalyzer sudo mv loganalyzer-*/contrib /var/www/html/loganalyzer

Remplacez [URL-de-LogAnalyzer] par le lien de téléchargement de la dernière version de LogAnalyzer.

7. Configurer les Permissions

Attribuez les permissions appropriées :

sudo chown -R www-data:www-data /var/www/html/loganalyzer 
sudo chmod -R 755 /var/www/html/loganalyzer
sudo chmod 644 /var/log/syslog

8. Configurer LogAnalyzer

Accédez à LogAnalyzer via votre navigateur à l’adresse

http://[Votre-Adresse-IP]/loganalyzer.

Suivez les instructions d’installation à l’écran pour configurer LogAnalyzer.

9. Configuration Additionnelle

Selon votre configuration, vous devrez peut-être ajuster les fichiers de configuration d’Apache et PHP pour assurer le bon fonctionnement de LogAnalyzer.

10. Redémarrer Apache

Après avoir terminé la configuration, redémarrez Apache pour appliquer les changements :

sudo systemctl restart apache2

Remarque

  • Assurez-vous de suivre toutes les instructions de sécurité et les meilleures pratiques lors de la configuration des serveurs web et des bases de données.
  • Les étapes spécifiques, surtout pour la configuration de LogAnalyzer, peuvent varier en fonction de la version et de l’environnement exacts. Consultez toujours la documentation officielle pour des instructions détaillées.

Ajouter des machines externes à la journalisation LogAnalyzer

Pour ajouter des machines (serveurs ou dispositifs de réseau) à LogAnalyzer afin de centraliser et de visualiser leurs journaux, vous devez configurer ces machines pour envoyer leurs journaux vers le serveur sur lequel LogAnalyzer est installé.

Voici comment vous pouvez le faire :

1. Configurer le Serveur LogAnalyzer pour Recevoir les Journaux

Sur le serveur où LogAnalyzer est installé, assurez-vous que le service de journalisation (comme rsyslog) est configuré pour recevoir des journaux à distance :

Éditez la configuration de rsyslog : Ouvrez /etc/rsyslog.conf et décommentez ou ajoutez les lignes suivantes pour activer la réception des journaux à distance :

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

Ceci active l’écoute sur le port UDP et TCP 514, qui est le port standard pour les journaux syslog.

Redémarrez rsyslog :

sudo systemctl restart rsyslog

2. Configurer les Clients pour Envoyer les Journaux

Sur chaque machine client que vous souhaitez surveiller avec LogAnalyzer :

Installez et configurez rsyslog (ou tout autre système de journalisation compatible) pour envoyer les journaux vers votre serveur LogAnalyzer.

Éditez la configuration de rsyslog sur le client : Ouvrez /etc/rsyslog.conf ou créez un fichier de configuration dans /etc/rsyslog.d/, puis ajoutez une ligne pour envoyer les journaux au serveur.

Par exemple :

*.* @adresse_ip_serveur:514

Remplacez adresse_ip_serveur par l’adresse IP de votre serveur LogAnalyzer.

Utilisez @@ pour une transmission sécurisée via TCP (si pris en charge).

Redémarrez rsyslog sur le client :

sudo systemctl restart rsyslog

3. Configurer LogAnalyzer

  • Configurez LogAnalyzer pour reconnaître et traiter les journaux des machines clientes.
  • Dans l’interface web de LogAnalyzer, configurez les sources de journaux et les filtres si nécessaire pour organiser les journaux reçus des clients.

4. Tester la Configuration

  • Testez si les journaux sont reçus : Après avoir configuré les clients, vérifiez si les journaux sont correctement reçus et traités par le serveur LogAnalyzer. Vous pouvez vérifier cela en consultant les fichiers de journaux sur le serveur ou directement via l’interface de LogAnalyzer.

Dernières remarques

  • Assurez-vous que votre réseau permet la communication sur le port utilisé pour les journaux (typiquement le port 514).
  • La sécurité est une préoccupation importante lors de la configuration des journaux à distance. Envisagez d’utiliser des connexions chiffrées ou des VPN pour sécuriser la transmission des journaux, surtout si vous les envoyez sur Internet ou un réseau non sécurisé.
  • Pour les environnements plus complexes, vous pourriez envisager d’utiliser des solutions plus avancées comme des agrégateurs de journaux ou des systèmes de gestion de journaux centralisés.

Installation et configuration de FreePBX

Pour la simulation, j’utilise une VM virtualbox avec les caractéristiques suivantes :

  • 2048 go de ram
  • 2 cpu
  • 15 go d’espace disque
  • Réseau accès par pont pour que la machine obtienne une adresse consultable facilement depuis l’hôte (en l’occurence pour l’exercice elle sera sur l’IP 192.168.1.135)

Télécharger et insérer l’image téléchargeable ici : https://www.freepbx.org/downloads/

Puis allumer la VM pour lancer le processus d’installation qui doit s’exécuter tout seul :

Pendant l’installation, mettre en place un mot de passe pour « Root » (exemple Motdepasse1234 – à ne pas utiliser sur un serveur en prod bien sûr !!!)

Et attendre sagement que l’installation se termine.

Une fois l’installation terminée, ne pas oublier d’éjecter l’iso du lecteur virtuel 😉

Etape 1 : configuration du serveur

Première chose à faire pour plus de confort : configurer le clavier en français. Entrer la commande suivante :

system-config-keyboard

Et sélectionner le français dans la liste affichée :

Ensuite, il va falloir attribuer une IP fixe au serveur pour éviter les coquilles ultérieures.

Aller dans le fichier de configuration de FreePBX :

nano /etc/sysconfig/network-scripts/ifcfg-eth0

Et modifier la configuration de façon à attribuer une IP fixe au serveur (en gras vous verrez les lignes modifiées) :

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="8f25b3f7-2c1e-4347-b883-72203a5d2f80"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.1.135
GATEWAY=192.168.1.1
NETMASK=255.255.255.0

Enregistrer le fichier (ctrl + X -> yes)

Ensuite redémarrer le réseau

service network restart

Etape 2 : configuration de Freepbx via l’interface web

Rdv sur l’adresse du serveur dans un navigateur web pour créer l’utilisateur principal :

Validez, puis cliquez sur connexion à l’administration.

Vous allez avoir une série de pubs que vous pouvez passez en cliquant sur « skip » :

Ensuite changez la langue :

Enfin, Freepbx propose d’activer le firewall. Pour l’exercice, rien d’obligatoire vu qu’on bosse sur des VM’s. Vous pouvez passer à l’étape suivante.

NB : mais si vous voulez l’activer, vous pouvez lui ajouter quelques règles en vous connectant directement sur la VM. Voici la page qui recense les commandes utilisables : https://wiki.freepbx.org/display/FPG/Firewall+Command+Line

Ensuite, rdv dans « Settings » -> « Asterisk SIP Settings »

Cliquez sur « detect network settings« 

Puis cliquez sur « Submit » (en bas à droite) et « Apply config » (en haut à droite)

Créer les postes

Un poste (= téléphone) est appelé une « extension » dans Freepbx.

Pour en ajouter, rdv dans « Application » -> « Extensions« 

Ajouter un utilisateur SIP :

Ensuite remplir sa fiche :

Onglet « General » :

Onglet « Voicemail » :

Puis ajouter autant de poste que désiré de la même manière (en attribuant d’autres numéros, par exemple 102 si c’est un 2ème poste du même service, ou 201 si c’est le premier poste d’un autre service, etc.)

Configuration d’un softphone

Maintenant il ne reste plus qu’à télécharger un logiciel de type « softphone » pour faire nos essais.

Micro SIP est un bon exemple : vous pouvez le récupérer ici -> https://www.microsip.org/downloads

Une fois installé, cliquez sur la petite flèche en haut à droite puis « ajouter un compte »

Il suffit de remplir la fiche avec les données du serveur FreePBX (NB : le mot de passe fait référence au champ « Secret » sur la fiche de l’utilisateur) :

Pour le test, vous pouvez faire la même manipulation avec un Softphone sur votre téléphone portable et/ou autre ordinateur (ou autre VM !), puis passer un appel en appelant « 102 » sur le poste « 101 » et réciproquement. Vous devriez voir l’appel :

Tips & tricks pour changer de version de php sur Debian

Installer d’autres versions de PHP (en cas de problème de compatibilité)

Parfois, on veut tout mettre à jour et on se rend compte que les solutions qui dépendent de PHP ne sont pas compatibles avec ses dernières versions. Dans ce cas je propose une petite méthodo de résolution pour tester différentes versions de PHP :

Commencer par ajouter les dépôts sury

sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list

wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -

sudo apt update 

sudo apt install php8.0

Choisir la version de Php à utiliser

sudo update-alternatives --config php

Ce qui devrait proposer quelques choix :

There are 2 choices for the alternative php (providing /usr/bin/php).Selection    Path             Priority   Status
------------------------------------------------------------
  0            /usr/bin/php8.1   81        auto mode
* 1            /usr/bin/php8.0   80        manual mode
  2            /usr/bin/php8.1   81        manual modePress <enter> to keep the current choice[*], or type selection number:

Ne pas oublier de désactiver / réactiver php au niveau d’Apache (exemple si je veux passer de php8.1 à php8.0 :

sudo a2dismod php8.1
sudo systemctl restart apache2

sudo a2enmod php8.0 
sudo systemctl restart apache2

Il suffit ensuite de vérifier la version de PHP :

php -v
Output
PHP 8.0.18 (cli) (built: May  1 2022 04:42:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.18, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.18, Copyright (c), by Zend Technologies

Et de vérifier la version utilisée par Apache :

php -c /etc/php/apache2/php.ini -v
PHP 7.4.33 (cli) (built: Sep  4 2023 08:12:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

Préparer un système sous Debian 11 : ajouter un utilisateur aux sudoers et installer SSH

Étape 1 :

Par défaut, les droits d’utiliser les commandes en mode « sudo » (superutilisateur) ne sont pas installés sur Debian.

Vous allez commencer par les installer.

Connectez-vous en « root » et saisissez :

apt install sudo

Étape 2 :

Configurez les droits « sudo » pour votre utilisateur en modifiant le fichier « sudoers » :

nano /etc/sudoers

Pour aller + vite on peut également utiliser la commande visudo

visudo

Il suffit d’ajouter un utilisateur avec les droits que vous souhaitez, cherchez simplement la ligne # User privilege specification

Ne pas oublier de sortir du mode root pour reprendre le travail avec l’utilisateur sudo 😉

Étape 3 :

Mettez à jour votre système :

sudo apt update

Étape 4 :

Installez le serveur SSH :

sudo apt-get install openssh-server

Étape 5 :

Démarrez le service SSH :

sudo systemctl start ssh

Étape 6 :

Démarrez le « daemon SSHD » afin que le service soit activé automatiquement au démarrage du système :

sudo systemctl enable ssh

Étape 7 :

Vérifiez le statut du service SSH :

sudo systemctl status ssh

Étape 8 :

À moins d’avoir attribué une IP fixe à votre Debian, vérifiez l’adresse IP de votre serveur pour vous connecter à distance :

ip a

Le serveur OpenSSH est maintenant installé et activé. Vous allez pouvoir vous connecter à distance.

Configurer SSH

Bonnes pratiques pour sécuriser SSH :

  1. Désactiver l’accès SSH avec le compte root
    • Évitez de laisser un accès total au serveur en cas d’attaque.
  2. Utiliser uniquement la version 2 de SSH
    • Configurez la connexion exclusive des clients avec la version 2 de SSH.
  3. Modifier le port d’écoute par défaut (port 22)
    • Évitez les ports réservés par des protocoles et applications connues.
  4. Limiter les utilisateurs pouvant se connecter en SSH
    • Définissez une politique de refus par défaut et spécifiez les utilisateurs autorisés.
  5. Utiliser des mots de passe forts
    • Désactivez la connexion avec des comptes sans mot de passe.
  6. Diminuer la durée maximale d’authentification
    • Par défaut, elle est fixée à 2 minutes, réduisez-la si nécessaire.
  7. Vérifier les logs SSH régulièrement
    • Analysez les logs SSH pour détecter d’éventuelles anomalies.

Configurations de sécurité de base ou « minimum syndical » !

Voici quelques lignes à ajouter à la fin du fichier /etc/ssh/sshd_config :

Désactiver l’accès SSH pour le compte root

PermitRootLogin no

Utiliser uniquement la version 2 de SSH

Protocol 2

Modifier le port d’écoute par défaut

  • Remplacez 22 par un autre numéro de port de votre choix (évitez les ports réservés).
Port <numéro_de_port>

Limiter les utilisateurs pouvant se connecter en SSH

  • Remplacez <utilisateur> par le nom d’utilisateur autorisé.
AllowUsers <utilisateur>

Utiliser des mots de passe forts

  • Assurez-vous que la ligne suivante est commentée ou absente pour désactiver la connexion avec des comptes sans mot de passe.
#PermitEmptyPasswords no

Diminuer la durée maximale d’authentification

  • Remplacez 30 par le nombre de secondes souhaité.
LoginGraceTime 30

Configuration de sécurité avancée

Désactiver l’authentification par mot de passe

  • Si vous utilisez des clés SSH pour l’authentification, vous pouvez désactiver l’authentification par mot de passe pour renforcer la sécurité.
PasswordAuthentication no

Désactiver l’authentification par clé héritée

PubkeyAuthentication yes

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification rhosts

IgnoreRhosts yes

Désactiver l’authentification rhosts RSA

RhostsRSAAuthentication no

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification GSSAPI

GSSAPIAuthentication no

Désactiver l’authentification Kerberos

KerberosAuthentication no

Après avoir effectué ces modifications, n’oubliez pas de redémarrer le service SSH pour que les changements prennent effet :

sudo systemctl restart sshd

Comment utiliser vi pour éditer un fichier sur Linux ? (Utile pour Alma Linux)

L’éditeur de texte vi est un incontournable sur les systèmes Unix et Linux. Son interface en mode texte et ses nombreuses commandes en font un outil puissant, bien que parfois complexe pour les nouveaux utilisateurs. Voici un guide simple pour vous aider à prendre en main vi sur Linux.

Ouvrir un fichier avec vi

Pour ouvrir un fichier, ouvrez le terminal et tapez vi suivi du nom du fichier :

vi fichier.txt

Comprendre les modes de vi

vi fonctionne avec deux modes principaux :

  • Mode Normal : il permet de naviguer dans le fichier, de supprimer du texte, de copier et coller, etc.
  • Mode Insertion : il permet de saisir du texte.

À l’ouverture d’un fichier, vous êtes en mode Normal. Pour passer en mode Insertion, appuyez sur i. Une fois en mode Insertion, vous pouvez taper du texte normalement. Pour revenir en mode Normal, appuyez sur Échap.

Sauvegarder et quitter vi

  • Pour sauvegarder vos modifications et quitter vi, tapez :wq puis Entrée en mode Normal.
  • Pour quitter sans sauvegarder, tapez :q! puis Entrée.

Quelques commandes utiles en mode Normal

  • h, j, k, l : se déplacer à gauche, en bas, en haut, et à droite.
  • x : supprimer le caractère sous le curseur.
  • dd : supprimer une ligne.
  • yy : copier une ligne.
  • p : coller une ligne copiée.
  • /mot : rechercher « mot » dans le fichier.
  • n : aller à la prochaine occurrence du mot recherché.
  • N : aller à l’occurrence précédente du mot recherché.

Pour en savoir plus

vi est un outil très puissant avec beaucoup de fonctionnalités. N’hésitez pas à consulter le manuel de vi pour plus d’informations :

man vi

En suivant ces étapes simples, vous devriez être capable de prendre en main vi et de commencer à éditer des fichiers texte sur votre système Linux. Bonne chance!

Page 1 of 2

Fièrement propulsé par WordPress & Thème par Anders Norén