Mise en place du Raspberry Pi ¶
0. Matériel ¶
- Avoir un Raspberry Pi (version 4B dans mon cas) avec les accessoires qui vont bien (alim + câble réseau)
- 1 carte micro-SD (juste pour l'initialisation du Raspberry Pi, ensuite plus besoin)
- 1 SSD, pour les performances, la capacité de stockage et la durée de vie. Et un câble "SSD to USB3", j'ai pris celui-là : https://thepihut.com/products/ssd-to-usb-3-0-cable-for-raspberry-pi mais je me suis fait avoir sur les frais de douane qui m'ont coûté aussi cher que le câble car ça vient du Royaume-Uni donc je ne le conseille pas trop…
1. Booter sur un SSD ¶
- Sur son PC, récupérer l'utilitaire "Raspberry Pi Imager" et installer sur sa carte micro-SD l'"US Boot". Il se trouve dans "Operating System" > "Misc Utility Images" > "Bootloader" > "USB Boot"
- Mettre la carte micro-SD dans le Raspberry Pi, démarrer. Une fois que le démarrage est terminé, l'arrêter et enlever la carte micro-SD
- Installer sur le SSD, toujours avec "Raspberry Pi Imager", la dernière version en 64bits de "Raspberry Pi OS", et dans les options avancées indiquer un nom d'utilisateur et un mot de passe
- Brancher le SSD au Raspberry Pi et démarrer
2. Se connecter au Raspberry Pi ¶
- Dans les paramètres de sa box, récupérer l'IP du Raspberry Pi
- Se connecter au Raspberry Pi via SSH, avec Putty pour les minimalistes, ou avec Mobaxterm pour plus de convivialité (c'est mon choix perso)
3. Mettre à jour le système ¶
Exécuter les instructions ci-dessous :
sudo apt update
sudo apt full-upgrade
sudo apt clean
sudo reboot
3.1 Installer wget ¶
Pour télécharger des trucs, ça sert souvent.
sudo apt install wget
3.2 Installer smartmontools ¶
Pour vérifier l'état du SSD, ça sert de temps en temps.
J'ai découvert comme ça que mes problèmes d'installation via docker, de compression/décompression d'images docker, de packages corrompus… venaient d'un SSD en fin de vie avec beaucoup de "bad blocks" et de "secteurs réalloués".
sudo apt install smartmontools
sudo smartctl -a /dev/sda
3.3 Augmenter la taille du swap ¶
Par défaut la taille du swap est assez limitée, on peut le voir en faisant free -h
, donc pour être un peu tranquille et éviter de crasher le Raspberry Pi, on va l'augmenter à 4Go.
D'abord il faut s'assurer qu'il n'est pas utilisé (via la comme free -h
).
Si c'est OK, il faut le désactiver : sudo swapoff /var/swap
Changer sa taille : sudo fallocate -l 4G /var/swap
L'indiquer comme fichier de type swap : sudo mkswap /var/swap
Le retour que vous devriez avoir :
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4 GiB (4294967296 bytes)
no label, UUID=c50b27b0-a530-4dd0-9377-aa28eabf3957
Et pour terminer, réactiver le swap : sudo swapon /var/swap
Ressources : https://linuxhandbook.com/increase-swap-ubuntu/ et https://www.reddit.com/r/selfhosted/comments/vz1te8/selfhosting_50_docker_containers_on_the_raspberry/
4 Sécurité ¶
4.1 Installer Fail2Ban ¶
C'est pour limiter les tentatives d'accès en SSH.
sudo apt install fail2ban
sudo service fail2ban start
Par défaut, fail2ban bannira l'attaquant pendant 10 minutes après 5 échecs.
Je pense que c’est un bon réglage pour commencer, mais si vous souhaitez modifier cela, toute la configuration se trouve dans le dossier /etc/fail2ban.
Principalement dans le fichier /etc/fail2ban/jail.conf
:
sudo nano /etc/fail2ban/jail.conf
Redémarrez le service si vous modifiez quelque chose :
sudo service fail2ban restart
Astuces ¶
Si vous rencontrez le message d'erreur suivant lors du démarrage de fail2ban : ERROR Failed during configuration: Have not found any log file for sshd
alors ça indique que fail2ban ne trouve pas le fichier de log qu'il doit checker pour vérifier les tentatives de login SSH.
Pour corriger ça, il faut éditer la configuration "jail" de SSH dans /etc/fail2ban/jail.local
.
Et modifier la section [sshd]
comme suit :
text
[sshd]
backend = systemd
enabled = true
Et enfin redémarrer fail2ban : sudo systemctl restart fail2ban
.
Pour vérifier que ça fonctionne bien : sudo systemctl status fail2ban
Si vous voulez que fail2ban se lance au démarrage : sudo systemctl enable --now fail2ban
4.2 Installer UFW ¶
C'est un firewall basique : on précise les ports que l'on ouvre ou non, et éventuellement le protocole associé au port.
sudo apt install ufw
sudo service ufw start
sudo ufw enable
Pour voir les règles en place :
sudo ufw status
Mes commandes d'ajout de règles, en fonction des services que j'utilise :
sudo ufw allow 22 comment ssh
sudo ufw allow 80 comment nginx
5. Installer Docker ¶
Tuto suivi : https://raspberrytips.com/docker-on-raspberry-pi/
5.1 Commandes utiles ¶
Voir les conteneurs actifs :
docker ps
Voir les statistiques d'utilisation :
docker stats
Rentrer dans un conteneur :
docker exec -it <mycontainer> sh
5.2 Faire du ménage : ¶
Supprimer toutes les images non utilisées :
sudo docker system prune -af
Supprimer les volumes anonymes :
sudo docker system prune -af --volumes
5.3 Gestion des volumes ¶
https://docs.docker.com/engine/storage/volumes/
Lister les volumes :
docker volume ls
Inspecter un volume et voir où il est stocké :
docker volume inspect my-vol