Jonathan Suru

Transformer un Raspberry Pi en serveur

Dans le cadre du projet HealthBox, j'ai transformé un Raspberry Pi en serveur pour héberger notre système. Cette solution est idéale pour sa flexibilité, son coût abordable et sa faible consommation d'énergie. Dans cet article, je vous guide pas à pas pour transformer votre Raspberry Pi en un serveur fonctionnel et sécurisé, particulièrement adapté pour un environnement de développement. Cependant, ces instructions peuvent également être appliquées à un environnement de production, à condition de mettre en place des mesures de sécurité supplémentaires.

Pourquoi utiliser un Raspberry Pi comme serveur ?

Le Raspberry Pi est une excellente solution pour héberger des applications légères et des services. Voici pourquoi :

Le Raspberry Pi est particulièrement utile pour les projets où un serveur dédié n'est pas nécessaire, mais où une machine fiable et économique est requise. Il est également idéal pour les projets éducatifs et les petites entreprises qui ont besoin d'un serveur sans investir dans du matériel coûteux.

Choix du système d'exploitation

Il existe plusieurs options pour transformer votre Raspberry Pi en serveur. Voici les principales :

Raspberry Pi OS Full

  • Avantages : Interface graphique complète, facile à utiliser localement.
  • Inconvénients : Plus lourd et consomme plus de ressources.

Raspberry Pi OS Full est idéal si vous avez besoin d'une interface graphique pour gérer votre serveur localement. Cependant, il consomme plus de ressources, ce qui peut être un inconvénient pour un serveur dédié.

Pour ceux qui choisissent Raspberry Pi OS Full :

Activez PI Connect pour pouvoir vous connecter à distance à l'interface graphique sans avoir à connecter le Raspberry Pi à un écran. Cela vous permettra d'utiliser votre propre ordinateur pour gérer le serveur.

Raspberry Pi OS Lite

  • Avantages : Léger et optimisé pour les serveurs, idéal pour une utilisation à distance.
  • Inconvénients : Pas d'interface graphique, nécessite des connaissances en ligne de commande.

Raspberry Pi OS Lite est recommandé pour les serveurs car il est plus léger et consomme moins de ressources. Il est parfait pour une utilisation à distance via SSH.

DietPi

  • Avantages : Très léger et optimisé pour les serveurs.
  • Inconvénients : Moins de support et de documentation que Raspberry Pi OS.

DietPi est une excellente option si vous cherchez à minimiser la consommation de ressources et à optimiser les performances de votre serveur.

Pour installer l'OS, suivez le guide officiel : Installing the operating system.

N'oubliez pas de configurer les éléments suivants lors de l'installation :

  • Hostname : Donnez un nom à votre Raspberry Pi pour faciliter l'accès à distance.
  • User : Configurez un utilisateur avec les droits appropriés.
  • Wi-Fi : Configurez la connexion Wi-Fi si vous n'utilisez pas de câble Ethernet.
  • Remote Access : Activez le SSH pour permettre l'accès à distance.

Si vous ne configurez pas ces éléments maintenant, vous pourrez toujours le faire plus tard en utilisant un clavier et une souris.

Conseil : Pour un serveur, je recommande Raspberry Pi OS Lite pour sa légèreté et sa performance.

Configuration initiale

Configuration du réseau

Assurez-vous que votre Raspberry Pi est connecté à un réseau stable. Vous pouvez utiliser un câble Ethernet pour une connexion plus stable ou configurer le Wi-Fi si nécessaire. Une connexion réseau stable est cruciale pour un serveur, car elle garantit que votre serveur est toujours accessible.

Mise à jour du système

Mettez à jour votre système avec les dernières mises à jour de sécurité et de logiciels :

sudo apt update
sudo apt upgrade -y

Mettre à jour votre système est essentiel pour garantir que toutes les vulnérabilités de sécurité sont corrigées et que vous disposez des dernières fonctionnalités et améliorations.

Configuration de la sécurité

Pour un environnement de développement, voici quelques conseils de base pour sécuriser votre serveur :

  • Changez le mot de passe par défaut : Utilisez un mot de passe fort et unique.
  • Installez un pare-feu : Vous pouvez utiliser ufw pour configurer un pare-feu et limiter l'accès aux ports nécessaires.
sudo passwd
sudo apt install ufw
sudo ufw enable
sudo ufw allow ssh

Note : Ces conseils de sécurité sont plus idéaux pour un environnement de développement. Pour un environnement de production, des mesures de sécurité plus grandes sont nécessaires.

Première connexion SSH

Pour vous connecter à votre Raspberry Pi via SSH, suivez ces étapes :

  1. Trouvez l'adresse IP de votre Raspberry Pi :
  2. hostname -I
  3. Trouvez le nom d'utilisateur :
  4. whoami
  5. Connectez-vous depuis votre PC :
  6. ssh username@adresse_ip

Si vous avez configuré un hostname, vous pouvez utiliser :

ssh username@hostname.local

SSH (Secure Shell) est un protocole de communication sécurisé qui permet de se connecter à distance à votre serveur. C'est une méthode sécurisée et fiable pour gérer votre serveur à distance.

Installation et mise à jour

Une fois connecté, mettez à jour le système avec les commandes suivantes :

sudo apt update
sudo apt upgrade -y

Installez vos outils habituels. Pour la gestion de l'environnement, je recommande uv.

L'installation et la mise à jour des logiciels sont essentielles pour maintenir votre serveur à jour et sécurisé. Utilisez des outils comme uv pour gérer les environnements et les dépendances de vos applications.

Navigation et gestion des fichiers

Voici quelques commandes de base pour la navigation et la gestion des fichiers :

Commande Description
ls Lister les fichiers et dossiers
cd <dossier> Se déplacer dans un dossier
pwd Afficher le dossier actuel
mkdir <nom> Créer un nouveau dossier
cp <fichier> <destination> Copier un fichier
mv <fichier> <destination> Déplacer ou renommer un fichier
rm <fichier> Supprimer un fichier
cat <fichier> Afficher le contenu d'un fichier

Attention : La commande rm -r <dossier> supprime un dossier et tout son contenu de manière irréversible.

La gestion des fichiers est une tâche courante lorsque vous travaillez avec un serveur. Ces commandes de base vous permettront de naviguer et de gérer les fichiers sur votre serveur de manière efficace.

Transfert de fichiers

Pour transférer des fichiers entre votre PC et le Raspberry Pi, utilisez les protocoles SCP ou rsync.

Transférer un fichier

scp /chemin/du/fichier_sur_pc utilisateur@IP_DU_PI:/chemin/de/destination

Transférer un dossier

rsync -av --exclude='.git' --exclude='node_modules' /chemin/du/dossier utilisateur@IP_DU_PI:/chemin/destination

SCP (Secure Copy Protocol) est idéal pour transférer des fichiers individuels, tandis que rsync est plus adapté pour les dossiers et les transferts de fichiers en masse. rsync permet également d'exclure certains fichiers ou dossiers, ce qui est utile pour les transferts de données complexes.

Édition de fichiers

Pour modifier des fichiers directement dans le terminal, utilisez des éditeurs de texte comme nano ou micro. Je recommande micro pour sa simplicité.

Pour installer micro :

sudo apt install micro -y

Pour ouvrir un fichier :

micro mon_script.py

Utilisez Ctrl+S pour sauvegarder et Ctrl+Q pour quitter.

L'édition de fichiers directement sur le serveur est souvent nécessaire pour apporter des modifications rapides ou pour configurer des fichiers de configuration. Les éditeurs de texte en ligne de commande comme micro ou nano sont des outils puissants pour cette tâche.

Sécurité renforcée

Pour une sécurité renforcée, utilisez des clés SSH au lieu de mots de passe. Voici comment faire :

  1. Générez une paire de clés SSH sur votre machine locale :
  2. ssh-keygen -t rsa -b 4096
  3. Copiez la clé publique sur votre Raspberry Pi :
  4. ssh-copy-id username@adresse_ip
  5. Désactivez l'authentification par mot de passe :
  6. sudo nano /etc/ssh/sshd_config

    Modifiez les lignes suivantes :

    PasswordAuthentication no
    PubkeyAuthentication yes
  7. Puis redémarrez le service SSH :
  8. sudo systemctl restart ssh

L'utilisation de clés SSH est une méthode de sécurité renforcée qui empêche les attaques par force brute. Les clés SSH sont plus sécurisées que les mots de passe car elles sont basées sur une cryptographie à clé publique.

Configuration d'une IP statique

Pour éviter que l'adresse IP de votre Raspberry Pi ne change, configurez une IP statique :

  1. Trouvez l'adresse IP actuelle et la passerelle par défaut :
  2. hostname -I
    ip route | default via
  3. Modifiez le fichier de configuration du réseau :
  4. sudo nano /etc/dhcpcd.conf

    Ajoutez les lignes suivantes à la fin du fichier (remplacez les valeurs par celles de votre réseau) :

    interface eth0
    static ip_address=192.168.1.100/24
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1

    Si vous utilisez le Wi-Fi, remplacez eth0 par wlan0.

  5. Redémarrez le service réseau :
  6. sudo service dhcpcd restart

Une IP statique est utile pour garantir que votre serveur est toujours accessible à la même adresse IP. Cela est particulièrement important pour les serveurs qui doivent être accessibles de manière fiable et constante.

Automatisation : Lancer le service au démarrage

Pour que votre service démarre automatiquement au démarrage du Raspberry Pi, utilisez systemd :

L'automatisation permet de lancer des outils ou d'autres applications fréquemment utilisées, garantissant que vos services sont toujours disponibles, même après un redémarrage du serveur.

  1. Créez un fichier de service :
  2. sudo nano /etc/systemd/system/mon_service.service
  3. Ajoutez le contenu suivant (remplacez par le chemin de votre script ou commande) :
  4. [Unit]
    Description=Mon Service
    After=network.target
    
    [Service]
    ExecStart=/chemin/vers/votre/script.sh
    WorkingDirectory=/chemin/vers/le/dossier
    User=username
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  5. Activez le service :
  6. sudo systemctl enable mon_service.service
  7. Démarrez le service :
  8. sudo systemctl start mon_service.service

L'automatisation des services au démarrage est essentielle pour garantir que vos applications et services sont toujours disponibles, même après un redémarrage du serveur.

Optimisation du serveur

Pour optimiser les performances de votre serveur :

L'optimisation de votre serveur est cruciale pour garantir des performances optimales et une longue durée de vie de votre matériel. En désactivant les services inutiles et en surveillant les ressources, vous pouvez maximiser l'efficacité de votre serveur.

Conclusion

Transformer un Raspberry Pi en serveur est une tâche accessible qui peut être réalisée en suivant ces étapes. Chaque étape est cruciale pour un serveur fonctionnel et sécurisé.

Ma recommandation musicale du jour : à écouter sans modération !

Écouter sur YouTube