LINUX - Administration - FEDORA 33 SERVER OLIVIER D 2021 - Windows

La page est créée Stéphane Besson
 
CONTINUER À LIRE
LINUX - Administration - FEDORA 33 SERVER OLIVIER D 2021 - Windows
2021

LINUX - Administration

FEDORA 33 SERVER
OLIVIER D.
LINUX - Administration - FEDORA 33 SERVER OLIVIER D 2021 - Windows
Table des matières
1     Linux fedora 33 Server : Administration du système ................................................................................... 2
    1.1       Introduction ....................................................................................................................................... 2
    1.2       Installation ......................................................................................................................................... 3
    1.3       L’aide ................................................................................................................................................. 4
    1.4       La console web Cockpit ...................................................................................................................... 4
    1.5       Gestion des paquets........................................................................................................................... 5
    1.6       Démarrage et arrêt du système.......................................................................................................... 7
    1.7       Gestion des utilisateurs ...................................................................................................................... 8
      Commandes utilisateurs / groupes .............................................................................................................. 8
    1.8       Gestion des disques ........................................................................................................................... 9
    1.9       Gestion de la mémoire et des ressources système ........................................................................... 11
1     Linux fedora 33 Server : Administration du système
      Fedora est un système d’exploitation sponsorisé par l’entreprise Red Had. Red Hat étant très utilisé en
      entreprise mais non accessible gratuitement, il est pratique de voir l’administration sur ce système
      d’exploitation.

1.1   Introduction

                                    Légendes vivantes (et décédée) de l’histoire de Linux

      Quelques dates à retenir
          •    1969 : Ken Thompson développe Multics qui donnera ensuite naissance à Unix
          •    1970 : Il travaille avec Dennis Ritchie (inventeur du Langage C)
          •    1973 : Unix est écrit en C. Cela permet la portabilité (juste besoin d’un compilateur) ainsi que la mise
               en place d’outils adaptables sur plusieurs plates-formes
          •    1976 : Diffusion de Unix . BSD et AT&T améliorent le produit
          •    1984 : Richard Stallman crée le projet GNU (pour récupérer les sources et les diffuser)
          •    1989 : Création de la licence GPL qui définit des règles d’utilisation de logiciels libres (≠ gratuit)
                   o Freeware : logiciel gratuit + copyright
                   o Open-Source : sources accessibles pour la compilation (binaire payant)
                   o GNU / GPL : sources + modification + distribution (≠ gratuit) (équivalent français : CeCILL)
          •    1991 : Linus Toswald développe le noyau pour GNU (essor de Linux grâce à Internet)
      Caractéristiques Linux
          •    Multitâches : exécuter plusieurs processus en même temps. Ordonnanceur : PID  CPU
          •    Multiprocesseurs
          •    Multi-utilisateurs : UID (identifiant utilisateur) + GID (groupe utilisateur)
          •    Multi plateforme : Intel, AMD, ARM …
          •    Système de fichiers : Ext2, Ext3, NTFS, FAT …
          •    Mémoire : Swap, support 64Go  PAE
          •    Réseau : tous les standards
          •    Standards : POSIX (dont bases de données)
      Distributions
      Noyau Linux + Logiciels libres (open source + GPL) + Programmes commerciaux (flash + drivers tiers) + Manuels
      d’utilisation
      Distributions orientées entreprise :
          •    Red Hat : payant + Open Source
          •    CentOS : gratuit + GPL
          •    Fedora : version grand public de Red Hat
1.2   Installation
      Gestion du matériel
          •    Récupération des infos matérielles dans le gestionnaire de périphériques Windows
          •    Tester avec une VM (par exemple sous VMWare)
          •    Le « rescue mode » de Red Hat remplace le LiveCD
      Recommandations
          •    Version Serveur : minimum : 20Go disque, 2 Go RAM
      Gestion du disque dur
      La taille des partitions dépend de l’utilisation qu’on a du serveur. Dans mon cas, il s’agit d’un serveur
      d’applications qui stockera beaucoup de données sur /var et pouvant être utilisée par le client si besoin.

      Utilisation de LVM

                                  Mise en place des partitions LVM à l’installation de Fedora

              Type             Name         Size     Disk     FS    mount point                  Contient
       partition                          512M     sda1     ext4    /boot
       volume group         vg-system                                                Noyau + GRUB
       partition            lv-root       8G       sda1     ext4    /
       partition            lv-usr        8G       sda1     ext4    /usr
       partition            lv-tmp        2G       sda1     ext4    /tmp             Données temporaires
       partition            lv-home       1,5G     sda1     ext4    /home            Données personnelles
       partition            lv-swap       1G       sda1     swap    swap
       partition            lv-var        30G      sda2     ext4    /var             Données variables (www…)
                     Tableau récapitulatif – il est possible d’ajouter d’autres répertoires perso (type /data)

      Linux rescue
          •    Montage de / dans /mnt/sysimage
      Pas de mot de passe root (aucune sécurité)
      chroot /mnt/sysimage : accès à toutes les commandes
      Booter sur le DVD d’installation puis exécuter linux    rescue au moment du boot
1.3   L’aide
       --help     : afficher l’aide d’une commande. Exemple : cat     --help)
      man  : afficher la page de manuel d’une commande. Exemple : man ps)
      man -k  : affiche de l’aide sur une   commande
      Sections de man
          • 1 Commandes utilisateur
          • 2 Appels système
          • 3 Bibliothèques de fonctions
          • 4 Pilotes et protocoles réseau
          • 5 Format de fichier
          • 6 Jeux
          • 7 Divers
          • 8 Commandes administrateur
          • 9 Appels noyau Linux

      man -s5 passwd : affiche la page de man du fichier passwd

      /usr/share/doc : emplacement de documents décrivant les paquets installés (contient des fichiers README)
      Aide sur internet : linuxfr, lea linux, howtoforge, framasoft, etc. et évidemment wikipedia

1.4   La console web Cockpit
      Au démarrage de la machine, il est possible de se connecter à l’interface web cockpit
      Celle-ci offre des fonctionnalités intéressantes comme l’affichage des journaux, la gestion des disques, un
      moniteur des ressources, la gestion des paquets, un terminal de commande et autres.
      Pour avoir le lien vers cette console, lorsque vous démarrez le serveur, le lien est affiché :

                                             Information d’accès à la console web

                                                    La console web Cockpit

      D’une manière générale, que ce soit sous fedora ou tout autre système d’exploitation, j’installe
      systématiquement cockpit. Exemple sous SUSE :
      # zypper refresh
      # zypper addrepo
      https://download.opensuse.org/repositories/home:MMoese:branches:systemsmanagement:cockpit/open
      SUSE_Leap_15.1/home:MMoese:branches:systemsmanagement:cockpit.repo
      # zypper refresh
      # zypper install cockpit
      # systemctl enable --now cockpit.socket
      # firewall-cmd --add-service=cockpit --permanent
# firewall-cmd --reload

1.5   Gestion des paquets
      Il existe deux types d’installations de paquets :
            • Installation à partir des sources (fichiers .tar.gz)
            • Installation à partir des paquets d’installation :

                OS                Paquets     Commande
       Fedora, Red Hat        .rpm            yum
       Debian, Ubuntu         .deb            apt-get
       SUSE                   .deb            zypper

      Installation à partir des sources (.tar.gz)
      Avantages :
          • Liberté d’adaptation
          • Indépendant des distributions
      Inconvénients :
          • Compilation (+complexe)
          • Manuel
          • Gestion des dépendances
          • Non-gestion des mises à jour
          • Besoin d’outils de développement (gcc)
      Marche à suivre :
         1. Décompresser : tar : se placer dans le répertoire de décompression avant
         2. Consulter la notice : less README ou less INSTALL
         3. Configurer l’installation : ./configure  : génère un fichier Makefile
         4. Installer (étape 1) : make : compilation (utilise le fichier Makefile pour créer les binaires et fichiers)
         5. Installer (étape 2) : make install : copie les fichiers dans système (il faut être root)

      Installation à partir des paquets d’installation (.rpm / .deb)
      Avantages :
          • Automatisation
          • Outils de recherche
          • Gestion des mises à jour
      Inconvénients :
          • Une seule version du logiciel (pas vrai : apt-get         install paquet=version)
          • Moins adaptable
          • Lié à la distribution et à l’architecture
      Marche à suivre sous Fedora / Red Hat :
      rpm -ivh  : installer le package (options : i = install, v = verbose, h = progression

      -U : installation ou mise à jour
      -F : mise à jour seulement
      -e : suppression (ne pas indiquer .rpm)
      Si paquet déjà installé :
      rpm –qi  : infos du paquet

      rpm –ql  : liste des fichiers

      rpm –qf  : renvoie le paquet         qui a installé le fichier
      Si paquet pas encore installé :
      rpm –qpi  : infos du paquet

      rpm –qpl  : liste fichiers (permet de trouver les dépendances)
Script de recherche de dépendances :
Script dependances.sh (à exécuter en se positionnant dans le dossier des .rpm)
chmod a+x dependances.sh : rendre le script exécutable
Exécution : ./dependances.sh  (le nom du fichier sera passé en $1 dans le script)

#!/bin/bash
for fichier in *.rpm
    do rpm –qpl $fichier 2>/dev/null | grep $1 && echo "$1 dans $fichier"
done

Installation automatique des dépendances
yum install  : installe le package

yum remove  : supprime le package ainsi que les packages dépendant de nom_du_package

yum search  : recherche les packages contenant le mot clé (non sensible à la casse)

yum update  : met à jour le package

yum list --all : liste tous les packages présents dans la base RPMDB

yum check-update : vérifie les mises à jour

yum update : met à jour

Configuration
/etc/yum.conf : fichier contenant les paramètres, proxy et chemin des depots
Gestion des dépôts :
/etc/yum.repo.d/CentOS-Base.repo : dépots internet (0 pour les désactiver)
/etc/yum.repo.d/CentOS-Media.repo : dépots DVD (1 + mise à jour du chemin du DVD pour les activer)
1.6   Démarrage et arrêt du système
      Amorçage

                                  Le MBR est le premier secteur de démarrage – il fait 512 o.

      dd if=/dev/sda of=/root/sauv-mbr bs=512 count=1 : sauvegarde du MBR

      dd if=/root/sauv-mbr of=/dev/sda bs=512 count=1 : restauration du MBR (en mode Linux           Rescue)

      Gestionnaires d’amorçage :
          •    Lilo : /etc/lilo.conf
          •    Grub : /boot/grub/grub.conf pointe vers /etc/grub.conf, /boot/grub/menu.lst
          •    Grub2 : / grub-pc : pour Ubuntu (configuration différente)
      Réinstallation du Grub (après une install de Windows par exemple)
      linux rescue puis chroot /mnt/sysimage
      grub-install /dev/sda : réinstalle le grub (en mode rescue) - pas sûr à 100%

      Autre méthode :
      Passer en mode grub puis
      grub> root (hd0,0)
      grub> setup (hd0)

      Initialisation du système
      Init a été remplacé par systemd. Systemd est un gestionnaire de daemon (les « services ») généralement
      reconnaissables car leur nom se termine par d. systemd est le premier process exécuté sur la machine. Il porte
      le PID 1.
          •    /sbin/init (systemd) ne s'occupe que de l'init ;
          •    journalctl ne s'occupe que de consulter le journal ;
          •    udev s'occupe de découvrir les périphériques et peupler /dev ;
          •    hostnamectl s'occupe de la gestion du nom d'hôte (hostname) de la machine ;
          •    machinectl s'occupe de la gestion des conteneurs lancés par systemd ;
          •    coredumpctl s'occupe des vidanges système (core dump) ;
          •    systemd-analyze s'occupe d'inspecter la vitesse du démarrage ;
          •    systemctl permet de gérer les services.
      systemctl list-units : lister les services actifs

      systemctl start | stop | restart NetworkManager.service : démarre [ arête |           redémarre le service
      systemctl status NetworkManager.service : affiche le status détaillé du service

      shutdown  time : éteindre / redémarrer
1.7   Gestion des utilisateurs
      Un utilisateur est composé :
             •   D’un UID : ID utilisateur
             •   D’un GID : groupe principal
             •   De groupes secondaires
      Il y a besoin d’un Login et de son mot de passe pour ouvrir une session (locale | distante : ssh, nfs …)
      Hiérarchie
             •   Root (UID = 0) : C’est le n° UID / GID qui est important, pas le nom
             •   Services (UID = 1 à 499) : fonctionnement services – pas de shell interactif
             •   Utilisateurs (UID ≥ 500) : shell interactif

      Changement d’identité
      su bob     : prendre l’identité
      su – bob     : prendre l’identité + les variables (PATH, HOME …)
      sudo        : exécuter la commande avec les droits root
      Fichier /etc/sudoers : configuration des droits sudo (édition du fichier avec la commande visudo)
      Informations
      Logname ou whoami      : utilisateur terminal qui a ouvert la session
      id   : appartenance de groupes détaillés
      Fichiers de configuration
             •   /etc/passwd : gestion des comptes utilisateurs (edition avec vipw)
             •   /etc/shadow : mots de passe + validité (passwd pour changer le mot de passe de l’utilisateur actuel)
             •   /etc/group : gestion des groupes (edition avec vigr)

      Commandes utilisateurs / groupes

             Commande                    Utilisateur                              Groupe
       Ajouter                 useradd  login            groupadd  groupe1,groupe2

       Modifier                usermod                           groupmod

       Supprimer               userdel                           groupdel

      Options de création
      Fichier /etc/default/useradd : options par défaut de la commande useradd
      Dossier /etc/skel/ : fichiers par défauts dans $HOME des utilisateurs créés
      useradd -d /home2/toto -m toto

      -g : groupe principal, -G : groupes secondaires

      -s /bin/bash : shell ou -s /bin/false : pas de       shell (donc pas d’ouverture de session)
      Créer un utilisateur
      useradd -d /home/toto -m -g utils -G groupe1,groupe2 –s /bin/bash toto
      ou
      useradd toto : utilise les paramètres de /etc/default/useradd. useradd –D : affiche les options par défaut

      puis
      passwd toto : définit le mot de passe de toto et modifie le fichier /etc/shadow

      -l : lock = verrouille le compte, -u : unlock =   déverrouille le compte, -S : status du compte
      Le fichier /etc/login.defs : contient les paramètres par défaut des mots de passe
1.8   Gestion des disques
      Le répertoire /dev/ contient la liste des périphériques
      Dans Linux, tout est fichier. Cependant, il y a de nombreux types de fichiers :
          •    Les fichiers pointant vers un périphérique de type bloc (dont les disques)
          •    Les fichiers pointant vers un périphérique de type caractère (dont les terminaux tty)

                     Type                     Chemin
       Disques IDE                        /dev/hd[a-d]
       Disques SCSI / SATA / USB          /dev/sd[a-zz]
       Disquettes                         /dev/fd[0-7]
       DVD IDE                            /dev/hd[a-d]
       DVD SCSI                           /dev/scd[0-7]

      La commande fdisk pour agir sur les partitions
      fdisk -l :    liste les partitions. En LVM, il vaut mieux utiliser lsblk
      fdisk /dev/sda : agir sur les partitions du disque /dev/sda
      Dans fdisk
         • m : liste des commandes
         • w : écrire
         • n : nouvelle partition
         • q : quitter fdisk
         • p : lister les partitions
         • t : changer le tag puis L pour lister

      Lecteurs virtuels (.iso)
      Les lecteurs virtuels sont nommés /dev/loop[0-7]
      dd if=/dev/hdc        of=/root/boot-rso.iso : créer un fichier .iso

      mount -o loop /root/boot-rso.iso /mnt : monter un fichier .iso

      LVM

      La taille de la partition dépend du groupe, pas des disques physiques.
      Redimentionnement d’une partition LVM sous Red Hat / Fedora
      pvcreate : initialise un disque ou une   partition pour utiliser LVM dessus
      vgcreate / vgextend : crée / étend un nouveau groupe de         volume
      lvcreate / lvextend : crée / étend un nouveau volume logique
Systèmes de fichiers (FS)

                      Les fichiers                                                L'arborescence
         Nom                     Libellé                   Chemin                                Libellé
 -                fichier                               /bin              binaires (commandes)
 d                répertoire                            /sbin             binaires système ou root
 l                lien symbolique                       /dev              gestion du matériel
 b                type bloc (disques ...)               /boot             noyau
 c                type caractère (tty ...)              /etc              configuration du système
 p                pipe                                  /var              fichiers variables (www, mails, spool)
 s                socket                                /usr              copie du contenu du DVD de la distibution

Concepts des file systems (FS) Unix
Créer un FS revient à créer une structure de blocs
     •    Superbloc : 1er bloc : contient les infos sur le FS. Recopie tous les 8 ou 16Mo
     •    Inode : infos sur les données
     •    Blocs de données : données elles-mêmes (fichiers type d contiennent le nom des fichiers)
     •    Bloc d’indirection : donne les numéros de blocs pour les blocs suivants

Création des FS (1ère étape) man -k ext3
mkfs -t ext4 /dev/sdb2 : formater une partition en ext4 . -j journalisation

tune2fs -O extents,uninit_bg,dir_index /dev/sda6 : transforme                 la partition /dev/sda6 de ext3 vers ext4
e2fsck -fDC0 /dev/sda6 : vérifier la partition (à faire après un tune2fs)

resize2fr : redimentionner une       partition
Il faut ensuite monter la partition pour qu’elle soit accessible au boot

Montage – La commande mount (2ème étape)
mount        : commande de                   base
mount /dev/sdb1 /home/perso/disque : le répertoire /home/perso/disque doit exister (et être vide)

mount : liste des montages

-t ntfs|cifs : choisir le type en NTFS/CIFS pour les partages windows

-o ro | loop : autre     option : lecture seule |montage d’un loop

Démonter
umount /home/perso/disque : démonter montage de /home/perso/disque

umount -f /media/data : coupe directement le partage même si quelqu’un est connecté dessus

fuser –vm /media/data : liste les utilisateur connectés à /media/data

Montage au démarrage
Modifier le fichier /etc/fstab puis mount    -a pour monter les lecteurs de fstab (pour vérifier que       le fichier
/etc/fstab est correctement renseigné)
Périphérique      point de montage               Type de fs         Options           Dump       Ordre fsck
/dev/sda1         /                              ext3               default           1          1
LABEL=CentOS      /media/centos                  iso9660            ro                0          2
/dev/sdb2         /data                          cifs               noauto            0          2
noauto : permet à un utilisateur non root de     faire un mount   /data

Le fichier /etc/auto.master liste les montages et permet de faire de l’automontage avec autofs
1.9   Gestion de la mémoire et des ressources système

                                          La SWAP sert lorsque le système est chargé

      Swap sur partition
          •    mkswap /dev/sdb5 : créer le swap (étape 1)
          •    swapon /dev/sdb5 : activer le swap (étape 2)
          •    swapon -s : liste les swap
          •    swapoff /dev/sdb5 : désactiver le swap

      Swap sur fichier
      dd if=/dev/zero of=/swapfile bs=512 count=1024 : crée un fichier vide de 512Mo

      swapon /swapfile : active le swap pour ce fichier

      Gestion des processus
      Le premier processus est le processus systemd (PID = 1)
      Les daemons sont des processus qui s’exécutent en tache de fond (exemple : crond, httpd …)

      Priorité des processus

                                Seul root peut mettre des priorités négatives (très prioritaires)

      nice –n5  : démarrer une commande          avec un niveau de +5
      renice   : modifier la priorité d’un PID existant

      Etats des processus
      Z (zombi) : cas d’un processus dont le parent est killé. Il existe mais n’agit plus
Vous pouvez aussi lire