FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Aujourd’hui — 18 octobre 2021Flux principal

Installer un serveur LAMP (Linux Apache MariaDB PHP) sous Debian 11

18 octobre 2021 à 09:00

I. Présentation

Dans ce tutoriel, nous allons voir comment mettre en place un serveur Web "LAMP" sous Debian 11, afin de pouvoir héberger un site Internet (WordPress, Joomla, Drupal, etc...) ou une application (NextCloud, etc.).

Au fait, c'est quoi un serveur LAMP ? Il s'agit d'un serveur qui s'appuie sur 4 composants : L pour Linux, c'est-à-dire le système d'exploitation (Debian, dans notre cas), A pour Apache, c'est-à-dire le serveur Web, M pour MySQL/MariaDB, c'est-à-dire le système de gestion de bases de données, et P pour PHP, c'est-à-dire le moteur de scripts.

Pour suivre ce tutoriel, vous avez besoin d'une machine sous Debian, ou une distribution basée sur Debian.

II. Serveur LAMP sous Debian 11

A. Installer Apache sous Debian 11

On commence par mettre à jour le cache des paquets :

sudo apt-get update

Ensuite, on installe le paquet "apache2" afin d'obtenir la dernière version d'Apache 2.4.

sudo apt-get install -y apache2

Pour qu'Apache démarre automatiquement en même temps que Debian, saisissez la commande ci-dessous (même si normalement c'est déjà le cas) :

systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Suite à l'installation du paquet, le serveur Apache démarre directement. On devrait pouvoir accéder à sa page par défaut. Pour cela, il suffit de récupérer l'adresse IP du serveur :

ip address

Puis, à l'aide d'une machine équipée d'un navigateur, on peut accéder à notre serveur Apache :

http://192.168.100.120
Apache en ligne, sous Debian 11
Apache en ligne, sous Debian 11

Pour visualiser la version d'Apache que vous venez d'installer, c'est tout simple : exécutez la commande suivant :

apache2ctl -v
Server version: Apache/2.4.51 (Debian)
Server built: 2021-10-07T17:49:44

Apache 2.4.51 est la dernière version d'Apache au moment où j'écris cet article.

Avant d'aller plus loin, je vous recommande d'activer quelques modules d'Apache qui sont indispensables, notamment pour faire tourner un site Internet. Commençons par le module utilisé pour la réécriture d'URL :

a2enmod rewrite

L'occasion de découvrir la commande "a2enmod" qui sert à activer un module. A l'inverse, la commande "a2dismod" sert à désactiver un module.

Activons trois :autres modules :

  • "deflate" pour la gestion de la compression, notamment en gzip, pour utiliser la mise en cache des pages sur votre site
  • "headers" afin de pouvoir agir sur les en-têtes HTTP
  • "ssl" pour gérer les certificats SSL et donc l'utilisation du protocole HTTPS
a2enmod deflate
a2enmod headers
a2enmod ssl

Après avoir activé ou désactivé un module, ou modifié la configuration d'Apache, il faut redémarrer le service apache2 :

systemctl restart apache2

Où se situent la configuration d'Apache et des sites dans tout ça ?

Le fichier de configuration d'Apache 2 est le suivant :

/etc/apache2/apache2.conf

Dans un premier temps, il peut servir à configurer Apache pour ne pas afficher le numéro de version sur les pages d'erreurs. Même si cette option est gérable aussi dans le fichier "/etc/apache2/conf-enabled/security.conf", c'est au choix.

Note : pour la configuration qui concerne PHP, le fichier de configuration est différent : "/etc/php/7.4/apache2/php.ini"

Tandis que pour déclarer les hôtes virtuels, en anglais "Virtual hosts", ce qui correspond aux différents sites hébergés par Apache (oui, un serveur Apache peut gérer plusieurs sites indépendamment), il faudra s'intéresser à ces deux dossiers :

  • Dossier qui contient les fichiers de configuration des sites disponibles : /etc/apache2/sites-available/
  • Dossier qui contient les fichiers de configuration (via un lien symbolique), des sites actifs : /etc/apache2/sites-enabled

Par défaut, nous accédons à la page d'accueil d'Apache grâce à l'hôte virtuel déclaré dans le fichier "/etc/apache2/sites-enabled/000-default.conf", qui écoute sur le port 80 (HTTP) et dont la racine est le dossier "/var/www/html".

Je vous invite à lire mon tutoriel dédié à la configuration d'un Virtual Host pour en savoir plus :

Enfin, si vous souhaitez mettre en place l'authentification basique sur votre site, vous avez besoin de l'outil "htpasswd" inclus dans le paquet "apache2-utils" (comme d'autres outils). Vous pouvez l'installer à tout moment d'une simple commande :

sudo apt-get install -y apache2-utils

B. Installer PHP sous Debian 11

PHP va venir se greffer sur notre serveur Apache, comme une extension, afin de pouvoir traiter les scripts intégrés aux pages ".php". Afin d'y aller progressivement, installons le paquet "php" en lui-même :

sudo apt-get install -y php

On peut voir que cette commande va installer une multitude de paquets :

libapache2-mod-php7.4 libsodium23 php-common php7.4 php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline

C'est très bien, nous avons quelques modules de base indispensables et "libapache2-mod-php7.4" qui permet l'intégration avec Apache.

Actuellement, c'est PHP 7.4 qui est dans les dépôts de Debian, même si PHP 8 est déjà disponible, toutes les applications ne sont pas encore compatibles. Il faut savoir que le support de PHP 7.4 assure les mises à jour de sécurité jusqu'au 28 novembre 2022. Ce qui laisse un peu de temps, mais il faut garder en tête qu'il faudra envisager de passer sur PHP 8.

Avant d'aller plus loin, nous allons installer quelques paquets supplémentaires pour compléter l'installation de PHP sur notre serveur. Par exemple, pour permettre les interactions entre PHP et notre instance MariaDB.

sudo apt-get install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

Suite à cette installation, je vous invite à vérifier quelle version de PHP vous venez d'installer. Exécutez la commande suivante :

php -v
PHP 7.4.21 (cli) (built: Jul 2 2021 03:59:48) ( NTS )

Maintenant, pour nous assurer que notre moteur de script PHP est bien actif, nous allons créer un fichier "phpinfo.php" (ou un autre nom) à la racine de notre site Web :

sudo nano /var/www/html/phpinfo.php

Dans ce fichier, indiquez le code suivant :

<?php
phpinfo();
?>

Elle sera accessible à partir de cette adresse :

http://192.168.100.120/phpinfo.php

Cette page donne énormément d'informations sur toute la configuration de PHP et de notre serveur Apache. Il est fortement recommandé de la mettre en place seulement quand c'est nécessaire. Autrement dit, vous ne devez pas laisser cette page accessible par n'importe qui.

C. Installer MySQL/MariaDB sous Debian 11

MariaDB est un fork communautaire de MySQL et il présente l'avantage d'être open source et sous licence GPL, à la différence de MySQL qui est un logiciel propriétaire de chez Oracle, mais qui reste gratuit malgré tout. Il y a un excellent suivi pour MariaDB et c'est réellement un système très performant, vous pouvez miser sur ce composant sans aucun problème !

Pour installer MariaDB sous Debian 11, voici la commande à exécuter :

sudo apt-get install -y mariadb-server

Suite à l'installation, je vous invite à exécuter le script "mariadb-secure-installation" afin de sécuriser un minimum votre installation de MariaDB.

sudo mariadb-secure-installation

En résumé, vous allez pouvoir définir un mot de passe pour le compte "root" de MariaDB, empêcher les connexions distantes sur votre instance à l'aide du compte "root", empêcher les connexions anonymes et supprimer la base de test.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password: **************
Re-enter new password: **************
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Voilà, l'interrogatoire est terminé.

Pour obtenir le numéro de version de MariaDB, on peut utiliser cette commande :

mariadb -V
mariadb Ver 15.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper

Ou celle-ci en consultant le gestionnaire de paquets Aptitude (apt) :

apt policy mariadb-server
   mariadb-server:
   Installé : 1:10.5.12-0+deb11u1
   Candidat : 1:10.5.12-0+deb11u1
   Table de version :
   *** 1:10.5.12-0+deb11u1 500
   500 http://ftp.fr.debian.org/debian bullseye/main amd64 Packages
   100 /var/lib/dpkg/status

Il est à noter que même si l'on a installé MariaDB, on peut utiliser la commande "mysql", notamment pour afficher le numéro de version avec "mysql -V" ou ouvrir une console MySQL/MariaDB.

Avant de passer à la suite, vérifiez que vous parvenez à vous connecter à votre instance MariaDB :

sudo mariadb -u root -p

Saisissez le mot de passe "root". Ensuite, vous avez accès à la console MariaDB / MySQL. Vous pouvez saisir vos requêtes SQL ici. Par exemple, pour lister les bases de données de votre instance :

show databases;
Première connexion à MariaDB en ligne de commande
Première connexion à MariaDB en ligne de commande

Pour sortir de la console, saisissez la commande suivante :

exit

Il faudra revenir dans cette console lorsque vous allez déployer votre application sur votre serveur LAMP, par exemple WordPress, NextCloud, etc.... Afin de créer une base de données dédiée et un utilisateur dédié à cette application. Une alternative consiste à déployer PhpMyAdmin sur son serveur dans le but d'administrer MariaDB à partir d'une interface Web.

Après un changement de configuration de MariaDB, vous devez redémarrer le service :

systemctl restart mariadb

III. Conclusion

Voilà, votre serveur LAMP est installé ! Pour la suite de la configuration, cela dépend de l'application que vous souhaitez déployer, ou peut-être même qu'il s'agit d'un projet que vous avez vous-même développé.

Généralement, on commence par créer un nouvel hôte virtuel sur Apache pour accueillir les sources d'installation de l'application. Ensuite, on crée une base de données dédiée à cette application, avec son propre utilisateur (qui aura les droits seulement sur cette base), et on lance l'installation.

Si vous désirez installer WordPress sur votre serveur, vous pouvez suivre ce tutoriel (Installation de WordPress pas à pas) et cette vidéo :

The post Installer un serveur LAMP (Linux Apache MariaDB PHP) sous Debian 11 first appeared on IT-Connect.

Votre ordinateur n'est pas compatible avec Windows 11 ? Essayez Linux sans risques

17 octobre 2021 à 08:10

Photo de manchot sur une plage

Votre ordinateur n’est pas compatible avec Windows 11 à cause des restrictions de Microsoft ? Pourquoi ne pas essayer de voir si Linux peut vous convenir ? Il existe une méthode pour tester un OS alternatif sans toucher à son installation Windows. [Lire la suite]

Voitures, vélos, scooters... : la mobilité de demain se lit sur Vroom ! https://www.numerama.com/vroom/vroom//

L'article Votre ordinateur n’est pas compatible avec Windows 11 ? Essayez Linux sans risques est apparu en premier sur Numerama.

À partir d’avant-hierFlux principal

Automatiser le processus de mise à jour Apt sur Debian

15 octobre 2021 à 10:00

I. Présentation

Dans ce tutoriel, nous allons voir comment automatiser le processus de mise à jour d'une machine Linux sous Debian ou Ubuntu. En effet, à partir d'un certain nombre d'instances de VM (ou de machines physiques), il est assez fastidieux de taper ne serait-ce qu'une fois par mois : "apt update && apt upgrade" sur toutes vos machines. L'objectif de cet article est de se la jouer fainéant, mais surtout futé en automatisant le processus.

"Je choisis une personne paresseuse pour un travail difficile, car une personne paresseuse va trouver un moyen facile de le faire." - Bill Gates 

II. Automatiser le processus de mise à jour avec un script bash

Nous allons créer un petit script bash pour réaliser notre automatisation. Afin de garder une trace de chaque exécution, je vais rediriger le contenu de stderr (en cas de retour d'une erreur lors de l'exécution du script) et stdout (en cas de succès).

Plus d'informations concernant la redirection des flux standard sous Linux.

Suivez les étapes ci-dessous, les commentaires sont là pour vous guider.

# Création du fichier
touch /home/user/script.sh 

# Edition du script
nano /home/user/script.sh
# Contenu du script "script.sh"
#!/bin/bash
echo ">>------------------------------------------------$(date)---------------------------------------------<<" >> /var/log/update_upgrade.log
echo ">>------------------errors------------------------------$(date)---------------errors------------------------------<<" >> /var/log/update_upgrade.err
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y >> /var/log/update_upgrade.log 2>> /var/log/update_upgrade.err

# On donne les droits d'exécution sur le script
chmod u+x /home/user/script.sh 

# On édite la crontab 
crontab -e 

# Adaptez l'heure de la cron en fonction de l'heure à laquelle vous souhaitez faire votre test. 
06 17 * * * /home/user/script.sh

# Affichez les logs 
cat /var/log/update_upgrade.*

Je vais détailler quelques éléments du script ci-dessous :

- "DEBIAN_FRONTEND=noninteractive" : Nous allons activer ce mode par le biais de l'instanciation d'une variable DEBIAN_FRONTEND.  Utilisez ce mode lorsque vous n'avez besoin d'aucune interaction lors de l'installation ou de la mise à niveau du système via apt. Il accepte la réponse par défaut pour toutes les questions. Il peut envoyer un message d'erreur à l'utilisateur root, mais c'est tout. Une interface parfaite pour les installations automatiques. On peut utiliser ce mode dans des fichiers Dockerfile, des scripts shell, etc.

- ">> /var/log/update_upgrade.log" : Redirige la sortie standard du couple de commandes vers le fichier update_upgrade.log, afin d'avoir une trace de ce qu'il s'est passé.

- "2>> /var/log/update_upgrade.err" : Redirige la ou les erreurs en cas d'échec du couple de commandes vers le fichier update_upgrade.err. Normalement, ce fichier devrait toujours être vide. Le cas contraire indiquerait que vous avez un problème lors de l'exécution des deux commandes (il faudrait le cas échéant, déprogrammer la tâche cron, puis investiguer manuellement). Cas concret : si vous avez une coupure internet pile au moment du lancement du processus, apt vous renverra une erreur.

Il est à noter que les upgrades de tous les paquets se feront automatiquement sur Debian/Ubuntu, sauf les upgrades du noyau Linux, qui sont exclus par défaut, lorsque apt upgrade est automatisé. Pour faire ce genre de mise à jour, il faudrait manuellement taper la commande. 

Note 1 : Si au sein de votre parc informatique, vous avez un très grand nombre de machines Debian/Ubuntu (plus d'une centaine) par exemple, il serait peut-être judicieux de créer votre propre reposiotry local. Je vous laisse le soin de consulter ces deux articles si le sujet vous intéresse :

Ubuntu : comment créer son propre repository local ?  

Debian : comment créer son propre repository local ?

Note 2 : lors de la première exécution du script, il se peut que vous obteniez les messages (warnings) suivant :

cat /var/log/update_upgrade.err

Après quelques recherches, cette erreur intervient lors de la première exécution du script. Mais par la suite, vous ne devriez pas la rencontrer de nouveau.

En effet d'après ce que j'en ai déduit, le processus dpkg parent d'apt s'inquiète que la modification du mode frontend ait été changée, et nous le signale simplement. En aucun cas, ces messages qui pourraient s'apparenter à des "erreurs fatales" ne sont bloquants pour la mise à jour des dépôts distants et l'installation de nouveaux paquets, donc pas de stress ! 🙂

III. Automatiser le processus de suppression des paquets obsolètes  ?

Hum... Selon moi ce n'est pas une bonne idée, car certaines applications (anciennes ou non) peuvent reposer sur d'anciens packages. Je ne vous recommande pas d'effectuer cette automatisation au risque de perturber certains services de vos serveurs et d'occasionner un dysfonctionnement.

Selon moi, la commande "apt autoremove" doit être exécutée manuellement et avec une attention toute particulière, afin de bien évaluer l'impact de la suppression des paquets détectés comme obsolète/plus utile.

IV. Conclusion et idées d'optimisations

L'automatisation c'est génial ! Mais, gardez en tête qu'il faut de temps à autre jeter un œil au fichier de log, afin de vérifier que les automatisations fonctionnent comme vous le souhaitez.

Pour cela, je vous conseille de vous créer un fichier Excel ou équivalent avec la création d'un planning de tâche cron. C'est ce que j'utilise actuellement, et cela me permet de "prendre de la hauteur" sur l'ensemble de mes automatisations, et de ne pas être perdu parmi les nombreuses tâches cron qui s'exécute (à savoir des dizaines...).

Afin de ne pas vérifier tous les fichiers de logs apt un par un sur tous vos serveurs, il pourrait être judicieux d'implémenter un serveur RSYSLOG afin de centraliser la gestion de vos logs de mises à jour. Comme je suis sympa, je vous donne le morceau de configuration a ajouter dans la configuration rsyslog côté client (pas besoin de mettre quoi que ce soit dans la configuration côté serveur rsyslog).

Ajoutez ce bout de code à la fin du fichier /etc/rsyslog.conf de la machine qui transfert ses logs, et adaptez le en conséquence.

# ...
$ModLoad imfile
$InputFileName /var/log/update_upgrade.log
$InputFileTag tag_app_log:
$InputFileStateFile app_log1
$InputFileSeverity info
$InputFileFacility apt-update-upgrade
$InputRunFileMonitor
apt-update-upgrade @ip-du-serveur-rsyslog:514

# Si-vous utilisez TCP pour le transfert des logs au lieu d'UDP, veilliez à mettre deux @@ au lieu d'un.

A vous de jouer !

The post Automatiser le processus de mise à jour Apt sur Debian first appeared on IT-Connect.

Canonical launches Ubuntu 21.10 for desktop and server

15 octobre 2021 à 09:58
The latest version of the world's most popular Linux distribution, Ubuntu 21.10, codenamed 'Impish Indy', has landed on Canonical's download channels.  [...]

Tangram – Organisez et exécutez vos applications web

15 octobre 2021 à 09:00
Par : Korben

Vous vous souvenez de Multi sous macOS qui permet de transformer n’importe quel site web en application ? Ou encore de Franz qui permet de regrouper tous ces services web à un seul endroit ? Et de l’outil libre Rambox ?

Et bien aujourd’hui je tiens à vous présenter Tangram qui n’est ni plus ni moins qu’un navigateur pour Linux permettant de regrouper tous les services web que vous utilisez le plus souvent au sein d’une même application. L’une des forces de Tangram étant de pouvoir accéder au même site avec différents comptes. En effet, chaque onglet est permanent et indépendant des autres.

Très pratique quand vous jonglez entre plusieurs messageries ou réseaux sociaux pour le perso ou le boulot. Tangram propose donc des onglets dans une sidebar, onglets que vous pouvez ordonner comme bon vous semble. Pour faciliter l’affichage des services, vous pouvez également personnaliser le User Agent (desktop ou mobile) en fonction de vos besoins et Tangram propose bien sûr des raccourcis clavier pour maximiser votre productivité.

Les puristes du Linux seront surement déçus, car Tangram est disponible en flatpak mais au moins, ça fonctionnera direct out of the box comme on dit.

Voici la commande d’installation de Tangram :

flatpak install flathub re.sonny.Tangram

Et le dépôt Github se trouve ici.

L’outil Sysmon de Windows est désormais disponible sur Linux !

15 octobre 2021 à 08:17

L'outil de monitoring Sysmon est bien connu des administrateurs système Windows. Désormais, il est utilisable sur Linux puisque Microsoft vient de publier une version open source sur GitHub avec les instructions d'installation.

Sysmon pour System Monitor, fait partie de la suite d'outils Sysinternals et il s'agit d'un outil de monitoring qui va surveiller l'activité de votre serveur Windows. Il est intéressant pour détecter les activités malveillantes, car il peut veiller sur votre système à la recherche d'événements spécifiques : création d'un utilisateur, création de fichiers, etc. Il se configure à l'aide d'un fichier de configuration et il va ensuite venir alimenter l'Observateur d'événement de votre machine.

Désormais, Sysmon est disponible pour Linux, sous la forme d'un projet open source disponible sur GitHub ! C'est ce que l'on vient d'apprendre par l'intermédiaire de Mark Russinovich de chez Microsoft et du co-fondateur de la suite Sysinternals.

Pour le moment, l'installation n'est pas aussi simple qu'avec la majorité des paquets. Il faut compiler soi-même le paquet et s'assurer d'avoir toutes les dépendances, comme par exemple installer au préalable SysinternalsEBPF sur sa machine. Tout cela est expliqué dans la documentation sur GitHub (voir lien ci-dessus).

Lorsqu'il sera configuré et actif sur une machine Linux, l'outil Sysmon va venir écrire ses événements dans le fichier "/var/log/syslog" de la machine.

D'après les tests effectués par le site Bleeping Computer, il vaut mieux configurer l'outil pour restreindre ce qui est loggué car sinon ça va rapidement devenir énorme en termes de logs (et surcharger votre serveur Syslog). D'ailleurs, il y a même des événements surveillés par défaut qui ne fonctionneront pas sur Linux : ce qui est associé au Registre, par exemple.

Les événements ajoutés dans le fichier "syslog" sont au format XML, comme dans l'Observateur d'événements de Windows, ce qui ne facilite pas la lecture avec la console Linux.

Pensez-vous tester Sysmon sur Linux ?

Source

The post L’outil Sysmon de Windows est désormais disponible sur Linux ! first appeared on IT-Connect.

Microsoft releases Linux version of the Windows Sysmon tool

14 octobre 2021 à 19:44
Microsoft has released a Linux version of the very popular Sysmon system monitoring utility for Windows, allowing Linux administrators to monitor devices for malicious activity.  [...]

Ubuntu 21.10 est disponible en téléchargement, quoi de neuf ?

14 octobre 2021 à 17:02

Distribution linux Ubuntu 21.10 de CanonicalUne nouvelle version de la distribution linux Ubuntu est annoncée. Baptisée Impish Indri, Ubuntu 21.10 est une édition intermédiaire

The post Ubuntu 21.10 est disponible en téléchargement, quoi de neuf ? appeared first on GinjFo.

Le protocole NFS pour les débutants

12 octobre 2021 à 17:15

I. Présentation

Dans cet article "Le protocole NFS pour les débutants", nous allons découvrir le protocole NFS, un protocole de communication qui sert à effectuer des transferts de fichiers, dans le même esprit que le protocole SMB.

Le NFS, Network File System, que l'on pourrait traduire par "Système de fichiers en réseau", est un protocole de transferts de fichiers par le réseau principalement utilisé sur les systèmes Linux/Unix, même s'il est compatible avec Windows et MacOS. Dans la pratique, l'utilisateur, à partir de son ordinateur, va pouvoir accéder à des fichiers stockés sur un serveur distant, à l'aide du protocole NFS qui fonctionne selon le mode client/serveur.

Contrairement au SMB qui est un protocole propriétaire Microsoft, le protocole NFS est libre. Il s'installe sur Linux par l'intermédiaire d'un paquet dédié, et il est pris en charge par des solutions comme VMware ESXi pour connecter une banque de données, mais aussi par les NAS présent sur le marché (Synology, Asustor, Qnap, etc.).

Le protocole NFS est majoritairement utilisé pour connecter un espace de stockage entre un serveur NFS et un ou plusieurs serveurs, par exemple pour stocker des sauvegardes ou héberger des machines virtuelles. Il est trop complexe à mettre en oeuvre pour la mise en place d'un véritable serveur de fichiers, où là on va préférer le protocole SMB.

II. Les différentes versions de NFS

Développé par Sun Microsystems en 1984, le protocole NFS existe depuis plusieurs dizaines d'années comme de nombreux autres protocoles. Les versions 1 et 2 du protocole NFS fonctionnaient à l'aide de connexion UDP, tandis que le TCP (en mode stateless, c'est-à-dire sans état) a fait son apparition avec le NFS v3.

Les premières versions, que ce soit NFS v1, NFS v2 ou NFS v3 n'étaient pas sécurisées : à l'époque, la sécurité n'était pas une priorité. Il y avait également des limitations sur la taille des paquets (8 Ko) et la taille maximale d'un fichier transférable (2 Go) avant l'arrivée de NFS v3.

C'est en 2000, avec la sortie de NFS v4 que le protocole a fortement évolué pour intégrer des fonctionnalités liées à la sécurité. Il a tellement évolué, que le NFS v4 marque une véritable rupture vis-à-vis des versions précédentes (et cela n'est pas sans conséquence, nous en reparlerons). Depuis, le protocole NFS a eu le droit à plusieurs mises à jour, en version 4.1 en 2010 et un peu plus récemment, en 2016, en version 4.2.

Le protocole NFS v4 prend en charge complètement la sécurité avec l'authentification via Kerberos et il s'appuie sur des connexions TCP avec suivi de l'état (stateful).

Voici un tableau récapitulatif des versions du protocole NFS :

Les différentes versions du protocole NFS
Les différentes versions du protocole NFS

III. Compatibilité entre les versions de NFS

Il n'y a pas de rétrocompatibilité entre le NFS v4 (et supérieur) et les versions précédentes, y compris avec le NFS v3. Les différences sont trop nombreuses, tant sur l'aspect de la sécurité, mais aussi le fonctionnement des connexions : TCP stateful avec NFS v4.

Autrement dit, si le serveur fonctionne uniquement avec NFS v4, le client ne pourra pas utiliser NFS v3. Si les deux effectuent la connexion en NFS v3, ce sera bon. Généralement, les serveurs NFS sont capables de gérer plusieurs versions. Par contre, si vous souhaitez utiliser l'authentification Kerberos, ce sera obligatoirement en NFS v4, seule version à prendre en charge cette sécurité.

IV. Quel est le port utilisé par le protocole NFS ?

Le protocole NFS s'appuie sur un seul port pour fonctionner : le port 2049. Il s'agit du port d'écoute d'un serveur NFS.

Néanmoins, je tiens à préciser que c'est à partir de NFS v4 que le protocole utilise un seul port. Les anciennes versions utilisaient le port 2049, mais aussi le port 111 correspondant au service "portmap" (utile pour orienter les requêtes RPC vers le bon service).

Une bonne nouvelle pour la configuration de votre pare-feu si vous utilisez les dernières versions de NFS, car il n'y aura qu'un seul port à autoriser, comme pour d'autres protocoles.

V. Créer un partage NFS sous Debian (Linux)

Après cette introduction théorique, nous allons passer à la pratique. Pour cela, nous allons utiliser deux machines sous Linux (Debian 11), mais vous pouvez utiliser d'autres distributions.

  • Un serveur Debian qui jouera le rôle de serveur NFS, avec un partage : /srv/partagenfs
    • Adresse IP : 192.168.100.121/24
  • Un poste client Debian qui jouera le rôle de client NFS
    • Adresse IP : 192.168.100.120/24

Commençons par préparer notre serveur. Ensuite, nous allons monter ce partage NFS sur le poste client et nous finirons par une analyse de trames avec Tcpdump.

Note : pour cette introduction au NFS, nous n'allons pas mettre en place l'authentification Kerberos car cela complexifie la procédure.

A. Installation du paquet

Sur le serveur Debian, mettez à jour le cache des paquets :

sudo apt-get update

Ensuite, installez le paquet "nfs-kernel-server" :

sudo apt-get install nfs-kernel-server
Installation serveur NFS sous Debian
Installation serveur NFS sous Debian

Nous allons configurer le serveur NFS pour qu'il démarre automatiquement avec le système :

sudo systemctl enable nfs-server.service

Le paquet est installé, passons à l'étape suivante.

B. Déclarer un partage NFS /etc/exports

Commençons par créer le partage :

mkdir /srv/partagenfs

Puis, on applique les droits sur le partage (à adapter selon vos besoins) :

chown nobody:nogroup /srv/partagenfs/
chmod 755 /srv/partagenfs/

Pour déclarer les partages NFS, il faut s'appuyer sur le fichier "/etc/exports". C'est dans ce fichier que nous allons déclarer notre fichier "/srv/partagenfs". Editez le fichier :

sudo nano /etc/exports

Dans ce fichier, voici la ligne à ajouter pour déclarer notre partage :

/srv/partagenfs 192.168.100.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)

Quelques explications s'imposent pour bien comprendre

  • /srv/partagenfs : le chemin local du dossier à partager
  • 192.168.100.0/24 : l'adresse IP ou le réseau à autoriser, si vous souhaitez autoriser seulement une adresse IP spécifique, précisez cette adresse IP
  • () : les options pour le partage
  • rw : partage accessible en lecture et écriture, à remplacer par "ro" pour la lecture seule
  • sync : écrire les données et les vérifier avant de répondre à la requête suivante : plus lent, mais plus fiable vis-à-vis des corruptions de données. L'autre mode est "async".
  • anonuid : ID de l'utilisateur à utiliser pour les connexions anonymes (65534 = nobody)
  • anongid : ID du groupe à utiliser pour les connexions anonymes (65534 = nogroup)
  • no_subtree_check : désactiver la vérification des sous-dossiers, recommandé pour des raisons de fiabilité

Il est à noter que l'on peut déclarer plusieurs adresses IP ou réseaux avec des autorisations différentes (ou identiques). Par exemple :

/srv/partagenfs 192.168.100.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check) 10.10.10.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)

En complément, vous pouvez lire cette documentation : nfs - man page

Enregistrez le fichier et fermez-le. Pour que la configuration soit prise en compte, il faut utiliser exportfs, comme ceci :

exportfs -a

Il est à noter que pour stopper et purger les partages NFS, il faut exécuter la commande suivante (à faire avant la commande précédente pour actualiser) :

exportfs -ua

La commande ci-dessous permet d'afficher la liste des partages NFS sur l'hôte précisé, en l'occurrence notre machine Debian elle-même.

showmount -e 192.168.100.121
Exemple de la commande showmount nfs
Exemple de la commande showmount nfs

Sur la copie d'écran ci-dessus, on peut voir le nom du partage "/srv/partagenfs" ainsi que les deux sous-réseaux autorisés comme dans l'exemple avec deux adresses IP mentionnées précédemment.

La commande ci-dessous est à connaître également pour lister les services en écoute via RPC. On peut voir le service "nfs" avec différentes versions, notamment NFS v3 et NFS v4. On voit également la présence de portmapper sur le port 111 (service non spécifique à NFS, mais utilisé par certaines versions).

rpcinfo -p
Aperçu de NFS avec rpcinfo
Aperçu de NFS avec rpcinfo

Le partage NFS est prêt, passons sur le poste client.

C. Connexion au partage NFS depuis Linux

Sur le poste Debian, mettez à jour le cache des paquets :

sudo apt-get update

Puis, installez le paquet "nfs-common" afin de pouvoir monter le partage NFS sur l'hôte local.

sudo apt-get install nfs-common
Installation d'un client NFS sous Debian
Installation d'un client NFS sous Debian

Maintenant, nous allons pouvoir monter manuellement le partage NFS sur notre machine.

Pour monter le partage, nous devons créer un dossier local qui servira de point de montage. Créez ce dossier :

mkdir /media/partagenfs

Ensuite, la commande "mount" va nous permettre de monter notre partage NFS. Ce qui donne :

mount -t nfs4 192.168.100.121:/srv/partagenfs /media/partagenfs/

Quelques explications :

  • -t nfs4 : utiliser NFS v4 pour monter ce partage. Pour utiliser une version antérieure, il faut spécifier "-t nfs".
  • 192.168.100.121:/srv/partagenfs : partage NFS à monter, sous la forme <hote>:<chemin-partage>
  • /media/partagenfs/ : point de montage local

À la suite de cette commande, vous devriez pouvoir créer un fichier sur le partage :

touch /media/partagenfs/monfichier.txt

Sur le serveur NFS, on peut voir les différents fichiers créés :

Il faut savoir qu'avec la commande "mount", le montage sera temporaire, c'est-à-dire que si l'on redémarrer le poste client, le partage ne sera pas monté automatiquement.

Démontez le partage et nous allons le monter différemment :

umount /media/partagenfs

Ensuite, modifiez la table de montage "/etc/fstab" :

sudo nano /etc/fstab

Spécifiez la ligne suivante pour le monter automatiquement, toujours via NFS v4 :

192.168.100.121:/srv/partagenfs /media/partagenfs nfs4 defaults,user,exec 0 0

Enregistrez puis exécutez la commande ci-dessous pour charger le contenu du fichier "/etc/fstab" et monter notre partage.

sudo mount -a

Voilà, vous devriez pouvoir accéder au partage NFS de la même manière qu'en le montant avec mount.

Puisque la connexion est établie, nous allons pouvoir récolter quelques informations croustillantes. 😉

Toujours sur le poste client, exécutez la commande ci-dessous pour obtenir des informations sur l'activité NFS de la machine.

nfsstat -m

Cette commande me retourne :

/media/partagenfs from 192.168.100.121:/srv/partagenfs
Flags: rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.100.120,local_lock=none,addr=192.168.100.121

On peut voir que l'accès est bien en lecture/écriture (rw), mais aussi que l'on utilise la version NFS 4.2 (vers=4.2) et que l'on s'appuie sur la sécurité système (sec=sys) tandis que l'on aurait "sec=krb5" si l'on utilisait Kerberos.

Enfin, si l'on regarde les connexions actives sur le poste client Debian ou sur le serveur Debian, on peut voir qu'il y a une connexion établie TCP (ESTABLISHED) sur le port NFS, c'est-à-dire 2049.

netstat -petula | grep "nfs"

D. Capture des paquets NFS avec TCPDUMP

Terminons ce tutoriel par une capture de paquets réseau avec l'utilitaire TCPDUMP. Cela va vous faire manipuler cet outil fort pratique afin de vérifier que les connexions NFS v4 fonctionnent bien sur le port 2049.

Sur le serveur Debian, installez l'outil "tcpdump" :

sudo apt-get install tcpdump

Ensuite, nous allons lancer une capture TCPDUMP en filtrant sur deux numéros de ports : 2049 et 111 :

tcpdump port 2049 or port 111

Pendant ce temps, depuis le poste client, créez de l'interaction avec le partage NFS. Par exemple, en lisant le contenu du répertoire :

ls /media/partagenfs

Côté serveur, ça bouge !

Capture de paquets NFS avec tcpdump
Capture de paquets NFS avec tcpdump

On peut voir de nombreuses lignes avec la mention "nfs" pour indiquer que le serveur utilise le port NFS (2049) pour communiquer avec le client. Quant au port 111, il n'apparaît à aucun moment.

14:18:26.240775 IP 192.168.100.120.738 > 192.168.100.121.nfs: Flags [P.], seq 2101767541:2101767717, ack 108469392, win 501, options [nop,nop,TS val 759855997 ecr 3348659237], length 176: NFS request xid 2540827736 172 getattr fh 0,2/53

Si vous avez le doute, il suffit d'arrêter cette capture et d'en lancer une nouvelle en spécifiant seulement le port "111" et vous verrez que la capture restera vide.

Pour monter un partage NFS sous Windows, suivez ce tutoriel : Monter un partage NFS sous Windows

Cette introduction au protocole NFS, à la fois théorique et pratique, touche à sa fin. Vous connaissez désormais le protocole NFS et vous savez le mettre en œuvre sous Linux !

The post Le protocole NFS pour les débutants first appeared on IT-Connect.

FontOnLake : un nouveau malware persistant qui cible Linux

11 octobre 2021 à 17:57

Un nouveau malware s'attaque aux systèmes Linux et il s'avère qu'il infecte les machines en étant dissimulés au sein de binaires légitimes. Une fois en place, il déploie une porte dérobée sur la machine et agit comme un rootkit afin d'être persistant.

Comme dans le cas d'ESPecter, ce sont les chercheurs en sécurité de chez ESET qui ont découvert ce nouveau malware baptisé FontOnLake. Celui-ci est également sophistiqué et il se cache au sein d'utilitaires très connus dont les noms peuvent surprendre : cat, kill, sftp ainsi que sshd.

Alors, rassurez-vous : ce n'est pas parce que vous allez installer le paquet sshd, que vous allez récupérer un paquet altéré, on pourrait même dire un paquet trojanisé, qui contient la menace FontOnLake. D'ailleurs, les chercheurs en sécurité de chez ESET ne savent pas comment les victimes se sont fait piéger afin de télécharger des versions malveillantes de ces utilitaires.

Lorsque FontOnLake est intégré à un paquet d'installation, l'opération serait effectuée dans le code source afin d'intégrer le malware au moment de la compilation, d'après ESET. Une fois le système infecté, d'autres composants sont déployés sur la machine, comme une porte dérobée écrite en C++. Ensuite, une communication constante est établie entre la machine infectée et le serveur C2 de l'attaquant, car il y a même un système de heartbeat. Quand il est actif, le malware collecte des informations afin de les envoyer au serveur C2 : l'historique des commandes bash, ainsi que les identifiants SSH.

Les chercheurs de chez ESET ont décortiqué le malware FontOnLake et il s'avère qu'il s'appuie sur un projet open source de rootkit, vieux de 8 ans et nommé "Suterusu". Au niveau des machines Linux ciblées par ce rootkit, ESET a trouvé deux versions de noyaux Linux différents : 2.6.32-696.el6.x86_64 et 3.10.0-229.el7.X86_64. Par ailleurs, deux noms de distributions ressortent : Debian et CentOS.

La menace FontOnLake n'est pas nouvelle puisque d'après ESET, les premiers échantillons de ce malware ont été chargés sur le site VirusTotal en mai 2020. D'ailleurs, ESET ne serait pas la première entreprise à mettre la main sur ce malware : il a déjà fait l'objet d'une détection chez Avast (ainsi que Tencent et Lacework Labs) au mois d'août et l'éditeur l'avait nommé HCRootkit. Disons qu'il y a de fortes chances que ce soit le même malware car il fonctionnait de la même façon, il utilisait le rootkit Suterusu également, ainsi qu'une porte dérobée développée en C++.

Source

The post FontOnLake : un nouveau malware persistant qui cible Linux first appeared on IT-Connect.

Transformez votre Linux en routeur avec une seule commande

10 octobre 2021 à 09:00
Par : Korben

Vous voulez en faire un routeur capable de vous connecter à Internet, de proposer un hotspot Wifi, de faire office de proxy transparent ou de router convenablement les ports de vos machines virtuelles ou conteneurs ?

Alors bonne nouvelle, si vous avez une vieille machine qui traine dans un coin (ou un Raspberry Pi), vous allez pouvoir le transformer facilement en routeur grâce à cet outil pour Linux nommé Linux-router (lnxrouter).

Ce script appelle à la fois iptables, dnsmasq, hostapd…etc et permet de :

  • Créer un sous-réseau NAT
  • Fournir de l’Internet
  • Proposer un serveur DHCP et Relay Agent
  • Proposer un serveur DNS
  • Avoir de l’IPv6 (derrière le LAN NAT, tout comme IPv4)
  • Créer un hotspot Wifi :
  • Sélectionner le canal du wifi ainsi que son chiffrement WPA2/WPA, WPA2, WPA (pas de WPA3 supporté encore)
  • De créer un point d’accès sur la même interface que celle où vous arrive Internet.
  • Mettre en place un proxy transparent (redsocks)
  • Mettre en place un proxy DNS

Linux Router peut donc être extrêmement utile dans le cas des configurations réseau suivantes :


Internet----(eth0/wlan0)-Linux-(wlanX)AP
                                       |--client
                                       |--client

                                    Internet
Wifi AP(no DHCP)                        |
    |----(wlan1)-Linux-(eth0/wlan0)------
    |           (DHCP)
    |--client
    |--client

                                    Internet
 Switch                                 |
    |---(eth1)-Linux-(eth0/wlan0)--------
    |--client
    |--client

Internet----(eth0/wlan0)-Linux-(eth1)------Another PC

Internet----(eth0/wlan0)-Linux-(virtual interface)-----VM/container

Ainsi pour créer un hotspot wifi, vous n’aurez qu’à entrer la commande suivante :

sudo lnxrouter --ap wlan0 NomPointAcces -p MotDePasse

Pour monter un proxy transparent qui passe par Tor :

sudo lnxrouter -i eth1 --tp 9040 --dns 9053 -g 192.168.55.1 --p6 fd00:5:6:7::

Et spécifier la config suivante dans le fichier torrc

TransPort 192.168.55.1:9040 
DNSPort 192.168.55.1:9053
TransPort [fd00:5:6:7::1]:9040 
DNSPort [fd00:5:6:7::1]:9053

Ou encore créer un proxy transparent pour VirtualBox :

sudo lnxrouter -i vboxnet5 --tp 9040 --dns 9053

Je ne m’étends pas sur toutes les possibilités du soft, mais concrètement, lnxrouter ne fait rien de plus que ce qu’il est possible de faire avec un Linux de base. C’est juste que ce script rend les choses plus simples et plus abordables. Je suis certain que ça vous plaira.

Vous retrouverez le script et la doc sur Github.

Pika Backup – La sauvegarde simple sous Linux

8 octobre 2021 à 09:00
Par : Korben

Si vous êtes sous Linux et que vous cherchez un petit utilitaire sympa pour faire des sauvegardes de vos données en toute simplicité, ne cherchez plus.

Basée sur Borg Backup dont j’ai déjà parlé ici, Pika Backup va vous permettre de déclencher une sauvegarde dès que vous insérez un disque externe ou une clé USB.

Pas de sauvegardes programmées pour le moment donc. Notez que Pika Backup est véritablement destiné aux personnes qui veulent sauvegarder uniquement leurs précieux documents. Ce n’est pas un outil qui permet de faire une sauvegarde complète du système. Ce n’est pas non plus un outil qui permet d’exclure certains fichiers.

C’est tout simplement un logiciel qui vous permet de créer des dépôts pour vos sauvegardes, locales ou distantes, évidemment en dédupliquant la donnée comme ce que propose Borg. Ainsi vous gagnerez du temps et de l’espace disque, car la même donnée ne sera pas copiée 2 fois.

Comme tout bon logiciel qui se respecte, Pika permet de chiffrer vos backups et lorsque vous voudrez vous replonger dans vos archives sauvegardées, il suffira de vous balader dans le dépôt de sauvegarde à partir de n’importe quel explorateur de fichiers.

Vous l’aurez compris, Pika est très simple à utiliser, mais également limité. Cela conviendra à des personnes qui ont des choses très spécifiques à sauvegarder et qui ne veulent pas déployer l’artillerie lourde pour quelques documents.

Pika s’installe à l’aide de l’utilitaire Flatpak en passant par cette page ou en entrant simplement les lignes de commande suivantes :

sudo apt install flatpak
sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.World.PikaBackup

Et voilà !

FontOnLake: Previously unknown malware family targeting Linux

7 octobre 2021 à 11:30

ESET researchers discover a malware family with tools that show signs they’re used in targeted attacks

The post FontOnLake: Previously unknown malware family targeting Linux appeared first on WeLiveSecurity

Passer de Windows à Linux : pourquoi et comment ?

6 octobre 2021 à 11:00
Par : Le Crabe

Les années passent et le mécontentement ne cesse de grandir contre Microsoft et son système d’exploitation Windows. Le point de départ est peut-être Windows 8, un système d’exploitation qui proposait une interface graphique et une expérience utilisateur complètement inadaptées à une utilisation sur ordinateur portable et ordinateur de bureau. Malgré les nombreux retours et avertissements des...

Source

Linux : 4 alternatives à Windows 11

6 octobre 2021 à 09:51
Par : Le Crabe

Sorti le 5 octobre 2021, Windows 11 est le nouveau système d’exploitation de Microsoft. Successeur de Windows 10 (qui avait pourtant été désigné par Microsoft comme le « dernier Windows » en 2015), Windows 11 s’accompagne de nombreuses nouveautés séduisantes comme un nouveau design, une meilleure sécurité, de nouvelles applications… Mais malheureusement, tout le monde ne peut pas en profiter.

Source

Installer Microsoft Office (Word, Excel, PowerPoint) sur Linux

4 octobre 2021 à 09:29
Par : Le Crabe

Microsoft Office est la suite bureautique de référence dans le monde de l’informatique : ses applications Word (traitement de texte), Excel (tableur) ou encore PowerPoint (présentation) se sont imposées comme des incontournables pour la très grande majorité des utilisateurs. Malheureusement, Microsoft Office n’est officiellement disponible que sur les systèmes d’exploitation Windows et macOS.

Source

Comment optimiser Linux pour jouer ?

3 octobre 2021 à 09:00
Par : Korben

Gamer sous Linux, c’est un sacerdoce, une mission de vie, une passion. Alors pour les soutenir dans leur épreuve, Feral Interactive a mis au point un logiciel libre qui permet d’optimiser les performances du système Linux à la demande.

Baptisé Game Mode, cet outil est à la fois une bibliothèque et un daemon qui permet aux jeux de demander qu’un ensemble d’optimisations soit temporairement appliqué au système d’exploitation hôte et/ou à un processus du jeu. Pour la petite histoire, sachez que les développeurs de Total War, Tomb Raider et DiRT 4 ont intégré GameMode dans leurs portages Linux.

GameMode prend en charge les optimisations suivantes :

  • Régulateur du CPU
  • Gestion des priorité I/O
  • Priorité de processus
  • Planificateur du noyau
  • Désactivation de l’économiseur d’écran
  • Performance du GPU (Nvidia et AMD)
  • Overclocking du GPU (Nvidia uniquement)
  • Et support de scripts personnalisés

Je vais partir du principe que vous utilisez un Ubuntu pour la suite des explications, mais GameMode fonctionne aussi sous Debian, Solus, Arch, Gentoo, Fedora, OpenSUSE…etc.

Pour installer GameMode, ouvrez un terminal et faites :

sudo apt install gamemode

En option, vous pouvez également installer une extension pour Gnome Desktop qui permet de savoir si le GameMode est lancé :

sudo apt install chrome-gnome-shell gnome-shell-extension-prefs

Ensuite, y’a plus qu’à lancer votre jeu comme ceci :

gamemoderun ./NOMDUJEU

Ou éditer les options de lancement de Steam pour mettre :

gamemoderun %command%

Et à vous toute la puissance de votre machine au service de votre jeu préféré !

Comment démarrer, arrêter, redémarrer un service sur Linux

2 octobre 2021 à 13:27

Les services (ou daemon) systemd sont des processus d'arrière-plan importants sur un système.
Généralement, ils sont lancés lorsque vous démarrez votre système. Si vous n'êtes qu'un utilisateur régulier de bureau, savoir comment démarrer, arrêter et redémarrer les services est essentiel pour diverses tâches quotidiennes. D'un autre côté, la gestion des services est une tâche courante pour un administrateur système Linux.

Dans ce tutoriel, je vous explique comment démarrer, arrêter et redémarrer les services en ligne de commandes depuis un terminal.

Comment démarrer, arrêter, redémarrer un service sur Linux

Introduction

Sur Linux, il existe trois méthodes pour démarrer, arrêter, redémarrer un service :

  • Par la commande service, celle-ci est désigne pour changer l'état d'un service
  • Par la commande systemctl

Dans ce tutoriel, nous allons voir l'utilisation des commandes services et systemctl.

Comment démarrer, arrêter, redémarrer un service sur Linux avec la commande service

Lister et afficher le statut des services

Avant de modifier le statut d'un service, il faut être capable d'en afficher le statut.
C'est à dire la liste des services et leurs états, s'ils sont démarrés ou arrêtés.

Pour lister et afficher les services avec leur statut :

service --status-all

L'utilisation de cette commande dans la ligne de commande donnera une sortie similaire à celle vue ci-dessous. Notez que nous obtenons une liste de tous les services sur notre système.
Dans cette liste, les services précédés d'un signe [+] sont activés tandis que ceux précédés d'un signe [-] sont désactivés.

Lister et afficher le statut des services avec la commande service

Cette commande peut être utilisée pour connaître l'état actuel d'un service sur notre système. Sinon, vous pouvez l'utiliser pour vérifier que vos demande de modifications au système pour démarrer, arrêter ou redémarrer un service ont bien pris effet.

Pour vérifier le statut d'un service spécifique :

service [Nom service] status

Par exemple pour vérifier l'état du service cron :

service cron statut
Vérifier le statut des services avec la commande service

Démarrer un service

Voici la façon de démarrer un service avec la commande service.
Pour ce faire, nous utilisons l'option start de la commande service.
Cette option est précédée du nom du service que l'on souhaite démarrer. Nous tapons la commande suivante pour arrêter un service sur un système Linux.

service [Nom service] stop

Par exemple pour arrêter le service cron :

service cron start
Démarrer un service avec la commande service

Arrêter un service

En suivant la même logique on peut aussi arrêter un service avec la commande service.
Là aussi, on utilise l'option stop avec le nom du service.

Voici comment arrêter un service :

service [Nom service] stop

Ainsi, par exemple, pour arrêter le service cron :

service cron stop
Arrêter un service avec la commande service

Redémarrer un service

Pour redémarrer un service à l'aide de la commande service, nous utilisons l'option restart. Comme les exemples précédents, cette option est tapée après le nom du service que l'on souhaite démarrer.
La commande suivante nous aide à redémarrer un service sous Linux.

service [Nom service] restart
Redémarrer un service avec la commande service

Comment démarrer, arrêter, redémarrer un service sur Linux avec la commande systemctl

La commande systemctl fait partie du démon systemd. Il est couramment utilisé dans les nouvelles distributions de systèmes basés sur Linux pour gérer les services sur un système.
Le daemon systemd a été conçu pour remplacer le démon init en offrant une meilleure efficacité de gestion des services. Voyons comment démarrer, arrêter et redémarrer les services à l'aide de la commande systemctl.

La syntaxe est :

systemctl [commande] [Nom service]

Lister et afficher le statut des services

Voici comment lister l'intégralité des services Linux et leurs états avec la commande systemctl.

systemctl list-unit-files --type service -all

La commande retourne trois colonnes :

  • Le nom du service
  • Sont état (colonne State)
    • enabled : le service est actif
    • disabled : désactiver
  • Le préréglage par défaut (Vendors Preset)
Lister et afficher le statut des services Linux

Pour vérifier le statut d'un service spécifique, on utilise la commande systemctl de cette manière :

systemctl status [Nom service]
Afficher le statut d'un service Linux avec systemctl

Démarrer un service

Voici la syntaxe pour démarrer un service Linux avec la commande systemctl.
On utilise l'option start suivi du nom du service à démarrer de cette manière :

systemctl start [Nom service]

Par exemple, pour démarrer le service cron, utilisez systemctl de cette manière :

systemctl start cron
Démarrer un service avec systemctl

Arrêter un service

De la même manière, systemctl vous permet d'arrêter un service Linux.
Pour cela, il faut utiliser l'option stop avec le nom du daemon :

systemctl stop [Nom service]

Par exemple pour arrêter le service cron :

systemctl stop cron
Arrêter un service avec systemctl

Redémarrer un service

Enfin pour redémarrer un service, c'est à dire l'arrêter puis le démarrer successivement, il faut utiliser l'option restart et le nom du démon comme ceci :

systemctl restart [Nom service]

Par exemple pour redémarrer le service cron :

systemctl restart cron
Redémarrer un service avec systemctl

L’article Comment démarrer, arrêter, redémarrer un service sur Linux est apparu en premier sur malekal.com.

Systemctl Linux : utilisation et exemples

2 octobre 2021 à 13:27

La commande systemctl fait partie du démon systemd.
systemd est couramment utilisé dans les nouvelles distributions de systèmes basées sur Linux pour gérer les services du système.
Le daemon systemd a été conçu pour remplacer le démon init en offrant une meilleure efficacité de gestion des services.

Pour modifier le statut des services, comme démarrer, arrêter ou redémarrer des services ou encore modifier la configuration d'un service, on utilise la commande systemctl.

Dans ce tutoriel, je vous donne tous les exemples d'utilisation de la commande systemctl Linux.

Systemctl Linux : utilisation et exemples

Comment utiliser systemctl sur Linux

Au besoin, pour comprendre le fonctionnement des services systemd sur Linux :

Voici la syntaxe de la commande systemctl :

systemctl [commande] [Nom service]

La liste des commandes possibles :

CommandesDescription
list-unitsLister les unités systemd
startDémarrer un service
stopArrêter un service
maskMasquer un service
statusVérifier le statut du service
restartRedémarrer le service
reloadRecharger un ou plusieurs services
reload-or-restartRecharger le service sinon le redémarrer
try-restartRedémarre le service si actif
killEnvoie un signal aux processus de l'unité/service comme la commande kill
Utilisez --kill-who= pour sélectionner à quel processus envoyer le signal
Utilisez --signal= pour sélectionner le signal à envoyer
daemon-reloadRecharger la configuration des services
reload-or-restartRecharger une ou plusieurs unités s'ils le soutiennent
is-activeVérifie si le service/unité est actif
is-failedVérifie si le service a le statut failed
showAffiche la configuration et les propriétés d'une unité/service
editEditer le fichier de configuration de l'unité/service
cleanNettoyer les runtime, cache, state, logs ou configuration de l'unité
Les principales commandes sur les unités/services de systemctl

Plus de commandes avec :

systemctl --help

Systemd utilise un concept d'unit, qui peut être un service, sockets, point de montage, périphériques, etc.
Les fichiers de configuration sont stockés dans /lib/systemd/system/

Pour plus de détails, suivez ce tutoriel :

Systemctl Linux : utilisation et exemples

Comment lister tous les services avec leurs statuts

La commande systemctl permet d'interroger systemd afin de connaître la liste des unités (dont les services) et leurs états.
Pour lister tous les unités quelques soit le type, on utilise le paramètre list-units :

systemctl list-units 

Si l'on veut filtrer la liste par type (services, socket, ...), on utilise le paramètre --type.
Par exemple pour lister les services systemd :

systemctl list-units --type service

Voici le contenu de la sortie :

  • UNIT : Le nom de l'unité
  • LOAD : Si le fichier de configuration de l'unité a été chargé avec susccès
  • ACTIVE : Etat du service actif/inactif
  • SUB : Sous-état de l'unité qui varie selon le type d'unité
  • DESCRIPTION : La description du service
Lister et afficher le statut des services Linux avec systemctl

Ce tableau récapitule les états possibles d'une unité et d'un service :

StatutDescription
loadedLe fichier de configuration de l'unité a été traité et traité avec succès.
Active (exited)Exécuté avec succès la configuration ponctuelle et après l'exécution, l'appareil n'exécute ni le processus actif ni l'attente d'un événement.
Active (running)Exécutez avec succès la configuration ponctuelle et après l'exécution, l'appareil exécute un ou plusieurs processus actifs.
Active (waiting)Exécuté avec succès la configuration unique et après l'exécution, l'appareil attend un événement.
Inactive (dead)Soit la configuration ponctuelle n'a pas réussi à exécuter ou non exécuté.
Les états (states) de systemd

Pour filtrer sur un état, on utilise le paramètre --state :

systemctl list-units --all --state=inactive

Pour lister tous les services quelque soit leurs états :

systemctl list-unit-files --type service -all
Lister et afficher le statut des services Linux avec systemctl
  • UNIT File : qui est le fichier de l'unité, ici on filtre sur le type service, ainsi on a que des fichiers XXXXX.service
  • STATE : l'état du service (voir tableau ci-dessous)
  • VENDOR PRESET : la configuration par défaut

Comment afficher le statut d'un service : démarré, arrêté, failed

Comment savoir si un service est démarré, en cours de fonctionnement ou arrêté ?
Pour vérifier, systemctl fournit l'option statuts :

systemctl status [Nom service] 

Pour vérifier si un service a le statut actif et démarré :

systemctl is-active [Nom service]
Comment afficher le statut d'un service : démarré, arrêté, failed

Comment afficher la configuration d'un service avec systemctl

systemctl est aussi capable d'afficher les propriétés d'une unité et d'un service.
Pour cela on utilise la commande show comme ceci :

systemctl show [Nom service]

Par exemple pour afficher les propriétés du service cron :

systemctl show cron

La sortie affiche les propriétés et la configuration complète en liste.

Comment afficher la configuration d'un service avec systemctl

Comment démarrer, arrêter, recharger, redémarrer un service avec systemctl

La principale utilisation de systemctl dans la gestion des services est de changer le statut d'un service.
C'est à dire démarrer ou arrêter un service ou encore le redémarrer.

On utilise les trois commandes suivantes :

  • start : démarre un service
  • stop : arrête un service
  • restart : redémarre un service, ce qui équivaut à un stop puis un start
systemctl start [Nom service]
systemctl stop [Nom service]
systemctl restart [Nom service] 

Par exemple, pour redémarrer nginx :

systemctl restart nginx.service
Comment démarrer, arrêter, redémarrer un service avec systemctl

La commande reload permet de relire le fichier de configuration.
Elle est idéale après une modification de la configuration d'un service pour prendre en compte les modifications.
Étant donné que la recharge ne recharge que la configuration, elle entraînera moins de perturbation des activités existantes et des connexions actuellement ouvertes.
Les utilisateurs peuvent même ne pas remarquer que c'était couru.
Cependant, selon le serveur dont nous parlons, certaines options peuvent ne pas être modifiables à l'aide de rechargement.
Et si le serveur utilise trop de mémoire, etc., il peut être nécessaire d'utiliser le redémarrage pour le forcer à partir d'une ardoise propre.

La syntaxe est la même, ainsi pour recharger le service nginx :

systemctl reload nginx.service

Comment recharger la configuration d'un service avec systemctl daemon-reload

L'option daemon-reload pour recharger la configuration du gestionnaire systemd.
Cela relancera tous les générateurs rechargera tous les fichiers d'unité et recréez l'intégralité de l'arbre de dépendances. Pendant le rechargement du démon, tous les sockets
systemd écoute au nom de la configuration de l'utilisateur restera accessible.

systemctl daemon-reload

Comment activer un service au démarrage avec systemctl

On utilise l'option enable suivi du nom du service.
Voici la syntaxe par défaut à utiliser :

sudo systemctl enable SERVICE_NAME

Par exemple pour désactiver le nom du service scan de clamd :

systemctl enable [email protected]

Comment désactiver un service au démarrage avec systemctl

De même il est possible de désactiver un service du démarrage Linux avec systemctl.
Pour cela, on utilise l'option disable comme expliqué ci-dessous :

sudo systemctl disable SERVICE_NAME

Par exemple pour déactiver le service clamd du démarrage de Linux :

systemctl disable [email protected]

Comment lister les dépendances d'un service

systemctl permet aussi d'interroger un service et lister les dépendances.
Il s'agit des services nécessaires au fonctionnement de ce dernier.
Si un des services dépendants n'est pas démarré, vous ne pourrez pas démarrer le service.

systemctl list-dependencies --all nginx.service
Comment lister les dépendances d'un service

Comment masquer un service avec systemd

Enfin systemd propose une commande mask qui permet de masquer une unité dont un service.
Le service est alors considéré comme étant totalement désactivé.
A partir de là, il est impossible de démarrer le service.

systemctl mask nginx.service

systemd créé alors un lien symbolique qui fait pointer le fichier du service vers /dev/null

Le démarrage du service est impossible et on rencontre une erreur du type :

Failed to start nginx.service: Unit nginx.service is masked.

On utilise la commande umask pour retirer l'état masquer d'un service.
Cela réactive le service et il est alors possible de le démarrer à nouveau.

systemctl unmask nginx.service
Comment masquer un service avec systemd

L’article Systemctl Linux : utilisation et exemples est apparu en premier sur malekal.com.

❌