Distributions Linux

"Linux c'est trop compliqué, c'est pour les pros"

(Dire qu'il y a des gens qui croient ça !)

Vous trouverez ici un cours complet sur Linux intitulé "Reprenez le contrôle à l'aide de Linux"

Vous trouverez également ici un cours de Formatux intitulé "Ma formation Linux"

Il est important de maîtriser les commandes fondamentales des systèmes d'exploitation UNIX et Linux !

Vous trouverez ici un document intitulé "Les commandes de base Linux"


Vous trouverez ci-dessous les principales commandes de Linux :

  • cd : changer de répertoire
  • vi : éditeur système
  • df : afficher l'espace disponible
  • more : afficher un fichier page à page, (la touche x permet de passer une page)
  • grep : filtrer la sortie
  • chmod : changer les droits d'accès à un fichier, (chmod + x rendre un fichier exécutable)
  • chroot : changer le répertoire de travail en cours
  • mount : monter une partition ou un dossier distant
  • cp : copier de fichiers
  • find : rechercher de fichiers
  • man : afficher l'aide sur une commande
  • mkdir : créer un dossier
  • mv : déplacer un fichier
  • passwd : changer le mot de passe
  • ps : lister des process
  • pwd : afficher le chemin du dossier en cours
  • rm : détruire un fichier
  • adduser : ajouter un utilisateur
  • delluser : supprimer un utilisateur
  • wget : permet de télécharger un fichier
  • at : exécute une action à une heure définie
  • chgrp : change un fichier de groupe
  • chown : changement de propriétaire d'un fichier
  • date : affiche/modifie la date
  • diff : affiche la différence entre 2 fichiers
  • du : indique l'espace disque utilisé
  • ftp : transfert de fichiers
  • history : liste les dernières commandes utilisées
  • kill : arrêter un process
  • sh : appel d'un shell (interpréteur de commandes)
  • ln : crée un lien sur un fichier
  • ls : liste des fichiers
  • rmdir : détruit un dossier
  • set : afficher les variables d'environnement
  • sort : trie les ligne d'un fichier
  • tar : sauvegarde / compresse
  • w ou who ou whoami : liste les utilisateurs connectés au système
  • write : envoie un mesage à un utilisateur du système

APPRENDRE À UTILISER VI AVEC VIMTUTOR :

Vim est un éditeur de texte, c’est-à-dire un logiciel permettant la manipulation de fichiers texte. Il est directement inspiré de vi (un éditeur très répandu sur les systèmes d’exploitation de type UNIX), dont il est le clone le plus populaire. Son nom signifie d’ailleurs Vi IMproved, que l’on peut traduire par « VI aMélioré ».

Vimtutor est utile pour les personnes souhaitant apprendre leurs premières commandes Vim.

  • Installer Vim : apt-get install vim vim-common
  • Lancer Vim : vimtutor

Il faudra compter une demi-heure pour terminer ce tutoriel.

Vous trouverez également ici un tutoriel sur l'utilisation de Vi sous Linux.

Vous trouverez ci-dessous une liste des actions les plus utilisées en mode commande dans VIM :

i         => Basculer dans le mot insertion
:q!       => Quitter sans enregistrer
:qw       => Quitter après l'enregistrement
:w        => Enregistrer le fichier
d$        => Supprime les données jusqu'à la fin de la ligne
dw        => Supprime les données jusqu'au prochain mot
de        => Supprime le mot courrant
w         => Passer au mot suivant
2w        => Sauter deux mots
2dw       => Supprime les deux derniers mots
0         => Aller en début de ligne
u         => Annuler la dernière action
yy        => Copier la ligne
4yy       => Copier 4 lignes
p         => Coller après
P         => Insérer avant
Ctrl + R  => Annule la derniere annulation
Ctrl + Z  => Fermer
/         => Recherche
?         => Recherche dans le sens inverse
n         => Occurence suivante

Bien configurer son "sources.list" pour Debian 10 (Buster)

apt install curl wget apt-transport-https dirmngr

nano /etc/apt/sources.list

  • deb http://deb.debian.org/debian/ stable main contrib non-free
  • deb-src http://deb.debian.org/debian/ stable main contrib non-free
  • deb http://deb.debian.org/debian/ stable-updates main contrib non-free
  • deb-src http://deb.debian.org/debian/ stable-updates main contrib non-free
  • deb http://deb.debian.org/debian-security stable/updates main
  • deb-src http://deb.debian.org/debian-security stable/updates main
  • deb http://ftp.debian.org/debian buster-backports main
  • deb-src http://ftp.debian.org/debian buster-backports main

apt-get update

NB : Vous trouverez un générateur du "sources.list" pour Debian à l'adresse : https://debgen.simplylinux.ch/

Définir un proxy pour apt sous Linux Debian

nano /etc/apt/apt.conf

Acquire::http::Proxy "http://192.168.1.98:3128";

apt-get update

GRUB « GRand Unified Bootloader » est un programme d'amorçage de micro-ordinateur. Il s'exécute à la mise sous tension de l'ordinateur, après les séquences de contrôle interne et avant le système d'exploitation proprement dit, puisque son rôle est justement d'en organiser le chargement. Lorsque l'ordinateur héberge plusieurs systèmes, il permet à l'utilisateur de choisir quel système démarrer.

Vous trouverez ci-dessous plusieurs tutoriels concernant le GRUB :

Mémo : Pour désactiver l'interface graphique au démarrage de Linux, ajouter "3" à la ligne des paramètres du noyau (nano /boot/grub/grub.cfg, à la ligne qui commence par linux /boot/vmlinuz ...). Utiliser ensuite la commande "init 5" pour lancer à nouveau l'interface graphique depuis le terminal.

Debian est un système d'exploitation et une distribution de logiciels libres. Elle est développée et mise à jour grâce au travail de nombreux utilisateurs qui offrent leur temps et leurs efforts.

La commande cat /etc/debian_version vous permettra de connaître la version de votre distribution.

Vous trouverez ci-dessous la procédure pour réaliser la mise à jour de votre distribution Debian :

# apt update

# apt upgrade

# apt full-upgrade

Configurer une interface réseau sous Debian 9 (Stretch) ou Debian 10 (Buster)

Nous avons besoin dans un premier temps du nom de l’interface réseau (ex : eth0)

Pour cela, vous pouvez utiliser la commande « ifconfig » ou « ip a ».

Vous pouvez si nécessaire installer les « Net-Tools », cela inclut arp, ifconfig, netstat, rarp, nameif et route.

# apt-get install net-tools

Nous allons ensuite éditer le fichier « interfaces » comme indiqué ci-dessous :

# nano /etc/network/interfaces

    • # The loopback network interface
    • auto lo
    • iface lo inet loopback
    • # The primary network interface
    • allow-hotplug eth0
    • iface eth0 inet static
    • address 192.168.1.115
    • netmask 255.255.255.0
    • network 192.168.1.0
    • broadcast 192.168.1.255
    • gateway 192.168.1.100
    • dns-nameservers 8.8.8.8 8.8.4.4

Nous allons, pour terminer, définir les serveurs de noms de domaine (DNS)

# nano /etc/resolv.conf

    • nameserver 8.8.8.8
    • nameserver 8.8.4.4

Après l’édition de ces fichiers il faut redémarrer le réseau :

# service networking restart

# reboot (éventuellement)

NB : Il est parfois nécessaire de supprimer network-manager pour éviter les conflits :

# apt-get remove network-manager

Utiliser le compte root en SSH sous Debian 10

L’utilisation du compte root en SSH n’est pas autorisée sous Debian 10

Nous allons pour cela éditer le fichier « sshd_config » :

# nano /etc/ssh/sshd_config

    • # PermitRootLogin prohibit-password
    • PermitRootLogin yes

Une fois le fichier sauvegardé, redémarrer le service SSH

# /etc/init.d/ssh restart

L'installation du navigateur Google Chrome est très simple à réaliser sous Windows, la même opération sous Linux s’avère un peu plus complexe. La mise en place n’est pas automatique et nécessite quelques étapes en ligne de commande pour obtenir le navigateur Google Chrome.


  • Installer Google Chrome sur Linux OpenSUSE Leap 15 :

# zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome

# zypper ref

# wget https://dl.google.com/linux/linux_signing_key.pub

# rpm --import linux_signing_key.pub

# zypper install google-chrome-stable


  • Installer Google Chrome sur Linux CentOS 7.5 :

Créez un fichier de dépôt logiciels

# nano /etc/yum.repos.d/google-chrome.repo

Contenant :

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

# yum install google-chrome-stable


  • Installer Google Chrome sur Linux Debian 9 :

# wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -

# echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list

# apt-get update

# apt-get -y install google-chrome-stable

Personnaliser le message de bienvenue sur Linux :

Vous pouvez personnaliser le message de bienvenue avant le login en modifiant le fichier /etc/issue et après le login en modifiant le fichier /etc/motd.

Vous pouvez également modifier le message de bienvenue en utilisant le site : http://patorjk.com/software/taag/

L'auto-complétion est un outil pour gagner en rapidité lorsque vous tapez des commandes dans un terminal ou une console. Il sera également un outil de sécurité indispensable pour rédiger des lignes de commande sans commettre d'erreur.

Modifier le fichier /etc/bash.bashrc et décommenter les lignes suivantes :

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Samba est un logiciel d'interopérabilité qui implémente le protocole propriétaire SMB/CIFS de Microsoft Windows dans les ordinateurs tournant sous le système d'exploitation Unix et ses dérivés de manière à partager des imprimantes et des fichiers dans un réseau informatique. Samba facilite l'interopérabilité entre systèmes hétérogènes Windows-Unix. Il offre la possibilité aux ordinateurs d'un réseau d'accéder aux imprimantes et aux fichiers des ordinateurs sous Unix et permettent aux serveurs Unix de se substituer à des serveurs Windows.

Exemple de configuration (/etc/samba/smb.conf) sur Ubunbu Server 18.04 :

[share]
    comment = Ubuntu Server
    path = /srv/samba/share
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755

Avec la version 18.04 (Bionic) Ubuntu est passé à Netplan pour la configuration des interfaces réseau. C'est un système de configuration basé sur YAML, qui simplifie le processus de configuration.

Ce nouvel outil remplace le fichier de configuration (/etc/network/interfaces) qui avait été précédemment utilisé pour configurer les interfaces réseau sur Ubuntu.

Les fichiers de configuration se trouvent maintenant sous la forme de fichiers YAML à l'emplacement /etc/netplan/*.yaml.

Vous trouverez ci-dessous un exemple de configuration de Netplan sur Ubuntu Server 18.04 :

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      addresses: [192.168.1.93/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [ "192.168.1.1", "8.8.8.8" ]

Fail2ban est un framework de prévention contre les intrusions dont l'objectif est de bloquer les adresses IP inconnues qui tentent de pénétrer dans votre système. Ce logiciel est recommandé, même essentiel, pour se prémunir contre toute attaque brutale contre vos services.

Vous trouverez toutes les informations sur Fail2ban à l'adresse : https://www.fail2ban.org


Mémo : Installer et configurer Fail2ban sur Debian 9 (Stretch) :

  • apt-get install fail2ban
  • cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.backup
  • nano /etc/fail2ban/jail.conf
  • /etc/init.d/fail2ban restart

Clam AntiVirus est une boite à outils anti-virus pour Unix. Le principal but de ce logiciel est l'intégration avec des serveurs de courriels pour analyser les pièces jointes. Le paquet « clamav-daemon » fournit un démon flexible, extensible et multiprocessus, « clamav » fournit l'analyseur en ligne de commande et « clamav-freshclam » fournit un outil pour les mises à jour automatiques par Internet. Les programmes sont basés sur libclamav, qui peut être utilisé par d'autres logiciels.

Vous trouverez toutes les informations sur Clamav à l'adresse : https://www.clamav.net/

Ajouter des dépôts supplémentaires sur CentOS 8 :

  • Activer le dépôt Extras :

dnf config-manager --set-enabled extras

  • Activer le dépôt PowerTools :

dnf config-manager --set-enabled PowerTools

  • Installer le dépôt EPEL 8 (Extra Packages for Enterprise Linux ) :

dnf install epel-release

  • Installer le dépôt RPM Fusion 8 free :

dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm

  • Installer le dépôt RPM Fusion 8 non free :

dnf install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

MEMO des commandes du pare-feu FIREWALLD :

  • Voir l'état de fonctionnement du pare-feu : firewall-cmd --state
  • Obtenir la liste des zones supportées : firewall-cmd --get-zones
  • Obtenir la liste des services supportés : firewall-cmd --get-services
  • Lister ce qui est activé sur toutes les zones : firewall-cmd --list-all-zones
  • Voir ce qui est activé sur la zone 'public' : firewall-cmd --zone=public --list-all
  • Lister les services actifs de la zone 'public' : firewall-cmd --zone=public --list-services
  • Voir la zone par défaut pour les connexions réseau : firewall-cmd --get-default-zone
  • Définir la zone par défaut à 'public' : firewall-cmd --set-default-zone=public
  • Lister les zones actives : firewall-cmd --get-active-zones
  • Ouvrir le port 8080 (tcp) à la zone 'public' : firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • Fermer le port 8080 (tcp) pour la zone 'public' : firewall-cmd --zone=public --remove-port=8080/tcp
  • Ouvrir le service http pour la zone 'public' : firewall-cmd --zone=public --add-service=http
  • Fermer le service http pour la zone 'public' : firewall-cmd --zone=public --remove-service=http
  • Vérifier si le service http est actif pour la zone 'public' : firewall-cmd --zone=public --query-service=http
  • Recharger la configuration : firewall-cmd --reload

L'espace swap sur Linux est utilisé lorsque la mémoire physique (RAM) est pleine. Si le système a besoin de plus de ressources mémoire et que la mémoire RAM est pleine, les pages mémoire inactives sont alors déplacées vers l'espace swap. Même si l'espace swap peut aider les ordinateurs avec une plus petite quantité de RAM, celui-ci ne doit pas être considéré comme un remplacement pour plus de RAM. L'espace swap se trouve sur les disques durs, dont le temps d'accès est plus lent que pour la mémoire physique. L'espace swap peut représenter une partition swap exclusive ou un fichier swap.

Mémo : Créer un fichier qui sera utilisé pour le swap (Pratique sur un VPS)

  • Vérifier si le swap est actif :
  • $ sudo swapon --show
  • Créer un fichier qui sera utilisé pour le swap :
  • $ sudo fallocate -l 4G /swapfile
  • Définir les droits sur ce fichier :
  • $ sudo chmod 600 /swapfile
  • Faire un espace de swap pour Linux :
  • $ sudo mkswap /swapfile
  • Activer le swap sur ce fichier :
  • $ sudo swapon /swapfile
  • Editer le fichier /etc/fstab :
  • $ sudo nano /etc/fstab
  • Ajouter la ligne :
  • /swapfile swap swap defaults 0 0
  • Vérifier que le swap soit activé :
  • $ sudo swapon --show
  • $ sudo free -h