Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Raspberry Pi – Installation en mode serveurVotez ! Mémo pour démarrer rapidement l’installation et la configuration d’un Rapsberry Pi 3 (Modèle B) en mode serveur.C’est à dire sans écran ni clavier. Note Ce mémo va évoluer au fur et à mesure de mes besoins ou retour dans les commentaires. Sommaire Liste des sujets traités sur ce mémo : Installer Rapsbian Activer le SSH Premier démarrage Le sudo Arrêter / redémarrer le Raspberry Pi Mettre à jour raspi-config Étendre la capacité de stockage Changer la langue Changer le clavier de QWERTY à AZERTY Date et heure Récupérer un max de mémoire vive Mise à jour Sécuriser (un peu) l’accès SSH Désactiver le matériel inutile Changer le nom Adresse ip fixe Désactiver l’ipv6 Recevoir des e-mails du Raspberry Pi Recevoir les mises à jour par e-mail Mot de la fin Installer Rapsbian Sur le site officiel raspberrypi.org, télécharger « Raspbian Stretch Lite ». Que l’on soit sous Windows ou Linux ou Mac, utiliser Etcher pour transférer l’image sur la carte microSD. Activer le SSH Avant d’insérer la carte microSD dans le Raspberry PI, il faut créer un fichier nommé « ssh » sans extension à la racine de la partition root. Sous Linux un simple « touch ssh » suffit. Premier démarrage Insérer la carte microSD dans le Raspberry Pi. Connecter un câble réseau RJ45 au Rapsberry Pi et au switch (ou box internet). Alimenter le Raspberry Pi. Au bout de quelques secondes, le Raspberry Pi doit être visible dans la liste des équipements connectés à partir de l’interface du switch ou de la box.Récupérer son adresse IP et ouvrir une session ssh avec l’utilisateur pi : command ssh pi@10.0.0.3 command ssh pi@10.0.0.3 Le mot de passe par défaut est « raspberry ».A changer rapidement bien entendu ! command passw command passw Résultat : pi@raspberrypi:~ $ passwd Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully pi@raspberrypi:~ $ passwd Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Le sudo Sudo or not sudo ? Accorder sudo à un utilisateur c’est accordé les droits d’administrateur (root) sans fournir le mot de passe root.Sur une machine multi-admin, ça peut être utile. Personnellement, je considère qu’un utilisateur qui est dans le groupe sudo génère une situation à risque surtout si cette machine est accessible via internet.Un piratage par force brut du mot de passe ou une récupération de clé SSH (négligemment stockée en clair sur une clé USB, un smartphone ou un cloud) et zop, le serveur vole en éclat. A vous de faire votre choix. Si pas sudo alors Activer le mot de passe root : command sudo passwd root command sudo passwd root Ensuite il suffit de se connecter avec l’utilisateur normal, puis de taper cette commande pour être root : command su - command su - On peut alors supprimer l’utilisateur du group sudo : command deluser pi sudo command deluser pi sudo Si sudo alors Je ne sais pas vous, mais j’ai tendance à oublier d’ajouter « sudo » devant les commandes qui ont besoin d’avoir les droits root.Petite astuce pour ne plus avoir à le faire : command sudo -i command sudo -i A partir de là, plus besoin d’ajouter « sudo » à toutes les commandes. Si vous ne vous êtes pas déconnecté après avoir changer le mot de passe, vous devriez avoir ce message : pi@raspberrypi:~ $ sudo -i SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $ sudo -i SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. Utiliser « Ctrl+d » 2 fois pour se déconnecter du sudo puis de la connexion ssh.Puis se reconnecter au Rapsberry Pi en SSH.Le message devrait avoir disparu à la connexion sudo. mignouf@blenderstorm:~$ ssh pi@10.0.0.3 pi@10.0.0.3's password: Linux raspberrypi 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Apr 15 09:03:10 2018 from 10.0.0.13 pi@raspberrypi:~ $ sudo -i root@raspberrypi:~# 1 2 3 4 5 6 7 8 9 10 11 12 13 mignouf@blenderstorm:~$ ssh pi@10.0.0.3 pi@10.0.0.3's password: Linux raspberrypi 4.9.80-v7+ #1098 SMP Fri Mar 9 19:11:42 GMT 2018 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Apr 15 09:03:10 2018 from 10.0.0.13 pi@raspberrypi:~ $ sudo -i root@raspberrypi:~# Sauf avis contraire dans la suite de ce mémo, les commandes sont exécutées avec l’utilisateur root (le vrai, donc sans sudo 😉 ). Arrêter / redémarrer le Raspberry Pi Petite mise au point avant de commencer. Je vois pas mal d’utilisateurs qui relancent leur Rapsberry en débranchant la prise puis en la rebranchant. !! A NE FAIRE QUAND CAS D’ABSOLUE NÉCESSITÉ !!Vous risquez de perdre des données sinon.Faut réfléchir un peu bon sang, c’est pas une console de jeux mais un ordinateur. La bonne méthode pour redémarrer est : command shutdown -r now command shutdown -r now La commande « reboot » marche aussi. La commande pour arrêter : command shutdown -h now command shutdown -h now Il existe aussi la commande « init 0 », mais elle est un peu brutale à mon goût (genre kill -9). Mettre à jour raspi-config Exécuter raspi-config : command raspi-config command raspi-config Sélectionner l’option « 8 Update » et attendre la fin du processus. Étendre la capacité de stockage Exécuter raspi-config : command raspi-config command raspi-config Sélectionner l’option « 7 Advanced Options » Sélectionner l’option « A1 Expand Filesystem » Sortir de raspi-config et confirmer le reboot. Changer la langue Par défaut, Raspbian est en anglais « en_GB.UTF-8 » : root@raspberrypi:~# locale LANG=en_GB.UTF-8 LANGUAGE= LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 root@raspberrypi:~# locale LANG=en_GB.UTF-8 LANGUAGE= LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= Pour changer vers fr_FR.UTF-8 UTF-8, exécuter raspi-config : command raspi-config command raspi-config Sélectionner l’option « 4 Localisation Options » Puis « I1 Change Locale ». Dans la liste rechercher et cocher avec la barre espace « fr_FR.UTF-8 UTF-8 ». A la question « Default locale for the system environment: », sélectionner « fr_FR.UTF-8 » et valider. La prise en compte se fera au redémarrage du Raspberry Pi : command shutdown -r now command shutdown -r now Vérification : root@raspberrypi:~# locale LANG=fr_FR.UTF-8 LANGUAGE= LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 root@raspberrypi:~# locale LANG=fr_FR.UTF-8 LANGUAGE= LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= La commande « Debian-Like » est : command dpkg-reconfigure locales command dpkg-reconfigure locales Changer le clavier de QWERTY à AZERTY Par défaut, le clavier du Raspberry Pi est en QWERTY.Si on ne se connecter qu’en SSH, ça sert à rien vous me direz.Eh ben si on se trompe dans sa configuration réseau, ça peut servir ! Dans raspi-config : Sélectionner « 4 Localisation Options » Puis « I3 Change Keyboard Layout » Garder « PC générique 105 touches (intl) » et valider Sélectionner « Autre » et valider Chercher « Français » et valider Sélectionner « Français » dans la disposition du clavier et valider Garder « Disposition par défaut pour le clavier » et valider Garder « Pas de touche « compose » » et valider Date et heure Changer le fuseau horaire Par défaut, le Raspberry Pi fraichement installé est sur le fuseau UTC. root@raspberrypi:~# date --utc dimanche 15 avril 2018, 12:17:26 (UTC+0000) root@raspberrypi:~# date dimanche 15 avril 2018, 12:17:29 (UTC+0000) root@raspberrypi:~# date --utc dimanche 15 avril 2018, 12:17:26 (UTC+0000) root@raspberrypi:~# date dimanche 15 avril 2018, 12:17:29 (UTC+0000) Dans raspi-config : Sélectionner « 4 Localisation Options » Puis « I2 Change Timezone » Dans la liste, sélectionner « Europe », puis « Paris ». Valider. La commande « Debian-Like » est : command dpkg-reconfigure tzdata command dpkg-reconfigure tzdata Changer la date et l’heure 2 façon de remédier à ça. Via raspi-config, le plus rapide mais pas le plus pérenne en cas d’arrêt prolongé du Raspberry Pi. Installer un client NTP (Network Time Protocol) qui se chargera de le faire à intervalle régulier et au démarrage. Pour être toujours à l’heure, j’utilise toujours un serveur ntp : Installation : command apt update && apt install -y ntp command apt update && apt install -y ntp Et c’est tout. La configuration se fait dans le fichier /etc/ntp.conf.Par défaut, c’est plutôt correct alors j’y touche pas. Récupérer un max de mémoire vive Par défaut, 64Mo de la mémoire vive est allouée au GPU, le processeur graphique.Hors, dans ce mémo, je configure un serveur sans écran. Dans raspi-config : Sélectionner « 7 Advanced Options » Puis « A3 Memory Split » Supprimer « 64 » et saisir « 16 » Valider Sortir de raspi-config et confirmer le reboot. Avant : root@raspberrypi:~# free -m total used free shared buff/cache available Mem: 939 30 842 12 66 849 Swap: 99 0 99 root@raspberrypi:~# free -m total used free shared buff/cache available Mem: 939 30 842 12 66 849 Swap: 99 0 99 Après : root@raspberrypi:~# free -m total used free shared buff/cache available Mem: 976 30 876 12 69 885 Swap: 99 0 99 root@raspberrypi:~# free -m total used free shared buff/cache available Mem: 976 30 876 12 69 885 Swap: 99 0 99 Mise à jour Exécuter une mise à jour de Raspbian : command apt update && apt upgrade -V command apt update && apt upgrade -V Valider si des mises à jour sont disponibles. Sécuriser (un peu) l’accès SSH Les actions suivantes vont modifier le fichier « /etc/ssh/sshd_config ».Il est recommander d’en faire une copie avant : command cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origin command cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origin Changer le port par défaut Éditer le fichier « /etc/ssh/sshd_config ». Rechercher la ligne « #Port 22 » et dupliquer là vers « Port 11022 » ou un autre port non utilisé.Les plus communs sont listés sur Wikipedia.org. #Port 22 Port 11022 #Port 22 Port 11022 Pour une prise en charge immédiate : command systemctl restart ssh.service command systemctl restart ssh.service La connexion se fera dorénavant avec cette commande : command ssh user@10.0.0.3 -p 11022 command ssh user@10.0.0.3 -p 11022 Remplacez user et l’adresse ip par vos paramètres. Désactiver l’accès root Toujours dans le fichier « /etc/ssh/sshd_config ». Rechercher le pavé : # Authentication: #LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 # Authentication: #LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 et ajouter cette ligne sous « #PermitRootLogin prohibit-password » : # Authentication: #LoginGraceTime 2m #PermitRootLogin prohibit-password PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 # Authentication: #LoginGraceTime 2m #PermitRootLogin prohibit-password PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 Relancer le service SSH : command systemctl restart ssh.service command systemctl restart ssh.service Ne plus se connecter avec l’utilisateur « pi » Et oui, c’est assez dangereux de laisser l’utilisateur par défaut qui peut être utilisé pour se connecter au système.Donc il faut créer un nouvel utilisateur qui aura le droit de se connecter en SSH et désactiver l’accès SSH à l’utilisateur « pi ». Exemple de création d’un nouvel utilisateur « mignouf » : root@raspberrypi:~# adduser mignouf Adding user `mignouf' ... Adding new group `mignouf' (1001) ... Adding new user `mignouf' (1001) with group `mignouf' ... Creating home directory `/home/mignouf' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for mignouf Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 root@raspberrypi:~# adduser mignouf Adding user `mignouf' ... Adding new group `mignouf' (1001) ... Adding new user `mignouf' (1001) with group `mignouf' ... Creating home directory `/home/mignouf' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for mignouf Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Par défaut, le nouvel utilisateur fait parti de son propre groupe. mignouf@raspberrypi:~ $ groups mignouf mignouf@raspberrypi:~ $ groups mignouf L’utilisateur pi quand à lui fait parti par défaut de ces groupes : pi@raspberrypi:~ $ groups pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi pi@raspberrypi:~ $ groups pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi (Sauf sudo si vous l’avez enlever au début de ce mémo) Donnons les mêmes droits au nouvel utilisateur : command usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi mignouf command usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi mignouf (Sauf sudo si vous avez décidé de vous connecter avec root) Se déconnecter du root puis du SSH avec « Ctrl+d » 2 fois.Puis se connecter avec le nouvel utilisateur : command ssh mignouf@10.0.0.3 -p 11022 command sudo -i command ssh mignouf@10.0.0.3 -p 11022 command sudo -i Supprimer pi du groupe sudo : command deluser pi sudo command deluser pi sudo La commande « deluser » ne supprime pas un utilisateur, mais retire un utilisateur d’un groupe. Connexion par clé (et plus par mot de passe) Sur le client, récupérer la clé publique.Par défaut sous Linux, elle se trouve dans le répertoire de l’utilisateur : ~/.ssh/id_rsa.pubMais elle peut porter un autre nom.Ne pas confondre avec ~/.ssh/id_rsa qui est la clé privée et qui doit rester privée !! Si vous devez gérer plusieurs serveurs distants, jetez un œil sur mon (vieux) mémo : « Debian – SSH et authentification par clé« . Sur le Rapsberry Pi, dans le répertoire de l’utilisateur qui permet la connexion ssh. Créer s’il n’existe pas le répertoire ~/.ssh : command mkdir ~/.ssh command chmod 700 ~/.ssh command mkdir ~/.ssh command chmod 700 ~/.ssh Dans ce répertoire, créer un fichier ~/.ssh/authorized_keys Dans ce fichier, coller la clé publique du client. Enregistrer et fermer le fichier. Donner les droits d’accès 600 à ~/.ssh/authorized_keys (sinon, il n’est pas considéré comme fichier sûr et sera ignoré) command chmod 600 ~/.ssh/authorized_keys command chmod 600 ~/.ssh/authorized_keys Tester la connexion qui devrait se faire sans saisir le mot de passe. Désactiver le matériel inutile Suivant le besoin, il est nécessaire de désactiver ce qui n’est pas utile.Cela permet d’éviter de surcharger le mémoire de drivers inutiles et accessoirement améliore la sécurité. Désactiver le bluetooth Arrêter et désactiver le service : command systemctl stop bluetooth.service command systemctl disable bluetooth.service command systemctl stop bluetooth.service command systemctl disable bluetooth.service Désactiver le bluetooth au niveau hardware : Éditer le fichier /boot/config.txt Ajouter en bas : # Disable internal BT dtoverlay=pi3-disable-bt # Disable internal BT dtoverlay=pi3-disable-bt Enregistrer et relancer le Raspberry Pi. Vérifier : root@raspberrypi:~# systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:bluetoothd(8) Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.