Ma config standard de Raspberry Pi

J'ai quelques Raspberry Pi qui servent à de multiples usages (modèles existants). En ce moment, c'est :

  • un rpi 1/B : mon couteau suisse qui sertà pleins de trucs : wardriving, teleinfo, etc.
  • un rpi 2/B dans un dock plusberry pour servir de NAS
  • un rpi C : avec retropi pour du retrogaming
  • un rpi Zero + camera : avec simplement un serveur motion, historiquement pour servir de babyphone

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...

La sécurité

Les éléments suivants constituent le minimum. Si vous les appliquez, vous éliminerez un maximum d'attaques basiques.

Mot de passe

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

Mise à jour

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

Aller plus loin

Parefeu

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

La configuration pratique

Mes indispensables

Mes packages indispensables :

  • vim : editeur de texte
  • tcpdump : capture réseau, utile pour dépanner le réseau
  • neofetch : Présente des informations utile sur le système. Penser à l'ajouter à la connexion
  • git : ça servira toujours...

Configuration du raspberry

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

L'optimisation

Le système est désormais fonctionnel, mais un peu de tuning permet d'avoir rapidement un raspberry qui tournera mieux

Limiter les écritures sur la SdCard

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.

Désactiver le swap

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

Utiliser le tmpfs

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

Busybox

Utiliser un gestionnaire de logs plus adapté que rsyslog.

apt install busybox-syslogd

Pour consulter les logs, utilisez logread

Sauvegarder ma carte SD

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

Article précédent Article suivant