Provision du Datacenter - Installation du système d'exploitation DEBIAN - [Raspberry PI/Rock64]

[ NIVEAU ] Débutant
Cette procédure permet l’installation d’un système Linux DEBIAN sur une unité Raspberry PI ou Rock64. Il est possible d’utiliser d’autres distributions, non couvert par cette documentation ( - Debian for ever:) - ).

Pré-requis

Pour exécuter cette opération vous devez :

  • disposer d’une connexion Internet
  • disposer d’un ordinateur équipé d’un système d’exploitation Linux (l’utilisation de Windows ou Macos n’est pas couverte dans cette documentation)
  • disposer d’un lecteur de carte SD
  • disposer d’une unité Raspberry Pi ou Rock64
  • savoir exécuter une commande dans une console Linux
  • être connecté “root” à la console, pour les utilisateur sudo : tapez sudo bash

Téléchargement de l’image bootable

Vous devrez choisir des images boootables officielles, maintenues par l’organisation Debian ou la fondation RaspberryPI. Une image “non officielle” peut embarquer des “backdoors”, virus en tous genres.

La fondation Raspberry Pi supporte désormais la distribution “Raspberry Pi OS”, en version 32 Bits. Depuis 2020, et avec l’arrivé du Raspberry Pi 4, la fondation met à disposition une version 64 Bits (toujours en version Bétâ - 08/2020). J’utilise cette version depuis quelques mois et je n’ai rencontré aucuns problèmes.

Unité Organisation architecture Téléchargements
Raspberry Pi Fondation Raspberry Pi 32 Bits (toutes versions Raspberry Pi) Lien vers la page. Téléchargez la version LITE qui implémente le juste nécessaire pour démarrer une unité.
Fondation Raspberry Pi 64 Bits (A partir du Raspberry PI4) Lien vers la page. Téléchargez la version la plus récente.
Debian 62 et 64 Bits Documentation officielle : suivre la procédure
Rock64 Armbian 64 Bits Lien vers la page. Télécharger la version “Server…”

Vous pouvez utiliser la commande wget [Url de l'image ISO] pour télécharger l’image de votre choix.

Décompression de l’image

Le fichier téléchargé est généralement compressé, donc inutilisable en l’état.

Extension du fichier téléchargé opération à réaliser
.img Rien à faire
.iso Rien à faire
.zip décompresser avec unzip
.7z décompresser avec p7zip
tar.gz décompresser avec tar+gzip
.gz décompresser avec gzip

Utiliser Unzip

Installer le package “unzip”

apt-get -y install unzip

Décompressez l’archive

unzip -d [nom du fichier téléchargé]

Utiliser p7zip

Installer le package “p7zip”

apt-get -y install p7zip

Décompressez l’archive

p7zip -d [nom du fichier téléchargé]

Utiliser tar+gzip

Installer les packages “tar gzip”

apt-get -y install tar gzip

Décompressez l’archive

tar xvf [nom du fichier téléchargé]

Utliser gzip

Installer le package “gzip”

apt-get -y install gzip

Décompressez l’archive

gzip -d [nom du fichier téléchargé]

Aprés décompression

Il est fort possible que l’opération de décompression ait créée un nouveau répertoire, qui contient un fichier de type “img” ou “iso”. Dans ce cas, déplacez-vous dans ce répertoire :

cd [nom du nouveau répertoire]

Copie de l’image ISO sur la carte SD

Insérer une carte SD de 16Go minimum, afin d’avoir un peu de place pour travailler.
ATTENTION si cette carte contient des données, ces dernières seront définitivement perdues après cette opération.
Pour récupérer facilement la destination de cette “device” utilisez la commande “dmesg” :

# Ouvrir une fenêtre de commande (terminal)
# Insérez la carte SD
# tapez :
dmesg

[131875.354612] mmc0: new SD card at address 0001
[131875.355265] mmcblk0: mmc0:0001 16GB 16 GiB 

Dans mon cas il s’agit de la device “mmcblk0”, accessible par le fichier “/dev/mmcblk0”

# dans le répertoire de l'image téléchargée, tapez :
ls 
# donne la liste des fichiers de ce répertoire, repérez le fichier image téléchargé précédemment
# copie de l'image sur la carte SD - utilisation de la commande dd
# dd if=[nom du fichier image téléchargé] of=/dev/[device carte SD obtenue avec dmesg] bs=4096 status=progress
# dd : commande
# if : source
# of : destination
# bs : nombre de bits lu et écrit en une fois
# status=progress : permet d'afficher l'avancée de la copie
# Exemple : le fichier contenu dans l'archive téléchargée est nommée Armbian_5.98_Rock64_Debian_buster_default_4.4.192_minimal.img
#           ma device carte SD : /dev/mmcblk0
#
#

dd if=Armbian_5.98_Rock64_Debian_buster_default_4.4.192_minimal.img of=/dev/mmcblk0 bs=1024 status=progress

Compléments

Activation accès ssh

RaspiOs 32 et 64 bits (Debian10)

  • Sans Ecran, ni clavier : Après avoir écrit l’image RaspiOS 64 bits sur la carte SD, monter la partition boot (ex: mount /dev/mmcblk1p1 /mnt) et créer le fichier “ssh” sur la partition “boot” (touch ssh), démonter puis insérer la carte SD dans le raspberry (l’acces ssh se fera avec le compte “pi”).

  • avec Ecran - Clavier, et après démarrage :

# Activation accès ssh
touch /boot/ssh

ArmBian

Le service ssh est activé par défaut

Démarrage du système

Insérez la carte SD dans l’unité, si vous disposez d’un écran, connectez-le à l’unité, ainsi que le clavier. Alimentez, c’est parti… Si vous ne disposez ni d’écran ni clavier, vous devez connecter l’unité au réseau (câble RJ45). L’unité va démarrer, obtenir une adresse réseau et sera joignable au moyen de la commande “ssh”.

Connexion au système

Si vous disposez d’un écran/clavier, pas de problème l’écran affiche “login:”.
Pour une utilisation en réseau, vous devez connaître l’adresse IP attribuée au système. Je n’ai pas de solution miracle, vous pouvez utilisez un scanner de réseau (nmap), vous connectez au routeur qui offre le servide DHCP. Ce service est chargé de distribuer les adresses IP sur le réseau et dispose de traces.

Pour détecter la machine par “scanner réseau”, à partir de votre PC connecté au réseau local, installer la paquet “nmap”

apt-get -y install nmap

Détecter le réseau sur lequel vous êtes connecté :

ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b9:ca:cf:fd:0b:3f brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.124/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0
       valid_lft 72589sec preferred_lft 72589sec

Ma carte réseau est eth0 et connectée, elle dispose de l’adresse IP 192.168.10.124 avec un masque /24 (255.255.255.0), par superposition du masque, mon réseau est 192.168.10.0, je vais scanner le port 22 (ssh) de ce réseau, en remplaçant le dernier 0 par “*” et avec la commande nmap :

nmap -p 22 192.168.10.*
Nmap scan report for 192.168.10.126
Host is up (0.00049s latency).
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: b3:0d:f8:e0:18:18 (Raspberry Pi Foundation)

Le scanner à trouvé une unité de type Raspberry Pi).

Exemple pour un rock64, nmap ne reconnaît pas le type

Nmap scan report for 192.168.10.126
Host is up (0.00073s latency).
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: b3:0d:f8:e0:18:18 (Unknown)

Authentification

Par défaut les images téléchargées disposent d’un compte et mot de passe fixés par défaut. Pour les Raspberry PI, le compte est “pi” et le mot de passe “rasbperry”. Pour la distribution Armbian (Rock64) le compte est “root” et le mot de passe “1234”.

Avec un écran/clavier

Tapez le compte, entrez, puis le mot de passe et entrez.

Par le réseau

Utilisez la commande “ssh [Adresse IP]”, exemple :

ssh 192.168.10.126
# Accepter l'empreinte et utilisez le compte/mot de passe par défaut

Post-connexion

Changement du mot de passe

La première chose à faire est de changer le mot de passe de connexion, “pi” pour les Raspberry, “root” pour les rock64. Utilisez le générateur de mot de passe “apg” :

apt-get -y install apg
apg
;QuanhaverOv0 (SEMICOLON-Quan-hav-er-Ov-ZERO)
5Gryptaphod| (FIVE-Grypt-aph-od-VERTICAL_BAR)
Be=slyes5 (Be-EQUAL_SIGN-slyes-FIVE)
AkCawf\OsOc6 (Ak-Cawf-BACKSLASH-Os-Oc-SIX)
CribMiph5od] (Crib-Miph-FIVE-od-RIGHT_BRACKET)
orth5Ov4og[ (orth-FIVE-Ov-FOUR-og-LEFT_BRACKET)

Choisissez et retenez bien un des mots de passe proposés et exécutez la commande “passwd” :

passwd [entrez]
Enter new UNIX password: [tapez le mot de passe entrez]
Retype new UNIX password: [tapez le mot de passe entrez]
passwd: password updated successfully

Vous pouvez vérifiez les comptes qui disposent d’un mot de passe :

cat /etc/shadows
root:$6$gHcL4KU]xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.n9bALxIHOU2ND.:18183:0:99999:7:::
daemon:*:18183:0:99999:7:::
bin:*:18183:0:99999:7:::
sys:*:18183:0:99999:7:::
sync:*:18183:0:99999:7:::
games:*:18183:0:99999:7:::
man:*:18183:0:99999:7:::
lp:*:18183:0:99999:7:::
mail:*:18183:0:99999:7:::
news:*:18183:0:99999:7:::
uucp:*:18183:0:99999:7:::

Ici, seul le compte “root” dispose d’un mot de passe, par conséquent seul “root” peut se connecter à ce système. Il est impossible de se connecter, à un serveur DEBIAN, avec un compte qui ne dispose pas de mot de passe.

Suppression de packages inutiles uniquement pour RaspiOs 64 bits

Après démarrage, supprimer le package X11 qui n’est pas nécessaire :

# remove Gui
apt-get -y remove --purge x11-common
apt-get -y autoremove

Mise à jour du système

# Update And Upgrade
apt-get update 
apt-get -y upgrade
apt-get -y dist-upgrade

Reboot du système

reboot

Installation de paquets

Votre système dispose du minimum, vous pouvez vous entraîner à l’utilisation des commandes, lister le contenu d’un répertoire, créer des fichiers, etc. Cette documentation ne couvre pas cette apprentissage. Pour les non initiés, je conseille la lecture du cahier de l’administrateur Debian

Conservation de l’image téléchargée

Si le système démarre normalement conservez précieusement l’image téléchargée. Vouz pourriez en avoir besoin dans le cas d’une restauration complète du système (voir la partie sécurité des données) ou bien permettre de savoir depuis combien de temps votre système est compromis : certains “backdoors”, virus sont parfois détectés très longtemps après leur mise en service.
Vous pourriez aussi utiliser cette image dans le cadre d’un processus d’installations automatisées de serveurs, avec démarrage par le réseau (BOOTP).