J'ai quelques Raspberry Pi qui servent à de multiples usages (modèles existants). En ce moment, c'est :
Ils ont un point commun, c'est la configuration de base, sauf pour les distributions particulières. Déployez votre image sur une carte SD
dd if=raspbian.iso of=/dev/mmcblk bs=1M status=progress
Automatisez le démarrage de SSH avant même le premier boot Créez un fichier vide /boot/ssh
mount /dev/mmcblk0 /mnt -o rw
touch /mnt/ssh
umount /mnt
Insérez votre carte SD dans le raspberry Pi, puis lancez la bête. Connectez-vous en ssh poursuivez le guide...
Les éléments suivants constituent le minimum. Si vous les appliquez, vous éliminerez un maximum d'attaques basiques.
On ne compte pas les scripts qui scrutent l'internet avec les raspberry Pi qui exposent un ssh avec un utilisateur pi/raspbian. C'est LA première chose à modifier
passwd
Mettez à jour votre système
sudo apt update
sudo apt upgrade
C'est bien, mais surtout, assurez-vous qu'il reste à jour grace au paquet unattended-upgrades
sudo apt install unattended-upgrades
Editez le fichier /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Mail "root";
Paramétrez la mise à jour automatique.
sudo dpkg-reconfigure -plow unattended-upgrades
Limitez au plus vite les connexions indésirables. Ma configuration par défaut consiste simplement à n'autoriser que le réseau local. Derrière une freebox, mon réseau local est en 2a01:xxxx:xxxx:xxxx::/64 pour l'IPv6. Normalement, seul le lien local (fe80::) est suffisant, mais j'ai des IP publiques configurées en dur dans mon DNS.
sudo apt install ufw
sudo ufw allow from 192.168.0.0/24
sudo ufw allow from fe80::/64
sudo ufw allow from 2a01:xxxx:xxxx:xxxx::/64
sudo ufw enable
Pour tout nouveau service en écoute, pensez à adapter les règles. Aller plus loin avec ufw
Mes packages indispensables :
sudo raspi-config
Localisation 1. Locales : fr_FR.UTF-8 (par défaut)
Localisation 2. Timezone : Europe/Paris
Localisation 3. Keyboard :
Advanced Options 1. Expand FS
sudo reboot
Un reboot fera prendre en compte toutes les modifications
Le système est désormais fonctionnel, mais un peu de tuning permet d'avoir rapidement un raspberry qui tournera mieux
Les cartes SD utilisées pour les raspberry sont fragiles. Elles ont des limitations en nombre décriture, et il est préférable de limiter au maximum les écritures.
Après installation, le système utilise 64Mo de RAM sur 1Go (Rpi 2/B). Selon les services envisagés, si la RAM est suffisante, il est conseilllé de désactiver le fichier d'échange.
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove
sudo apt purge dphys-swapfile
Certains répertoires sont utilisés pour des fichiers temporaires, qui de toutes façons, seront effacés au reboot. C'est le cas de /tmp
, /var/tmp
et de /var/cache/apt/archives
.
tmpfs permet de monter une partie de la RAM en système de fichiers. Dit autrement, quand on écrit sur cette partition, on écrit en RAM. C'est plus rapide, mais la RAM est très limitée en taille.
Ajouter ces élémnts dans le fichier /etc/fstab
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/cache/apt/archives tmpfs defaults,noatime,nosuid 0 0
Puis rebooter ou monter dirrectement ces fs : sudo mount /tmp
Utiliser un gestionnaire de logs plus adapté que rsyslog.
apt install busybox-syslogd
Pour consulter les logs, utilisez logread
Pensez à sauvegarder votre carte régulièrement depuis un autre PC au fil de son évolution :
dd if=/dev/mmcblk if=raspbian_backup.img bs=1M status=progress