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 :
- Coût abordable : Le Raspberry Pi est bien moins cher qu'un serveur dédié.
- Faible consommation d'énergie : Il consomme très peu d'électricité, ce qui est idéal pour une utilisation continue.
- Flexibilité : Il peut être utilisé pour une variété de tâches, de l'hébergement web à la gestion de bases de données.
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
ufwpour 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 :
- Trouvez l'adresse IP de votre Raspberry Pi :
- Trouvez le nom d'utilisateur :
- Connectez-vous depuis votre PC :
hostname -I
whoami
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 :
- Générez une paire de clés SSH sur votre machine locale :
- Copiez la clé publique sur votre Raspberry Pi :
- Désactivez l'authentification par mot de passe :
- Puis redémarrez le service SSH :
ssh-keygen -t rsa -b 4096
ssh-copy-id username@adresse_ip
sudo nano /etc/ssh/sshd_config
Modifiez les lignes suivantes :
PasswordAuthentication no
PubkeyAuthentication yes
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 :
- Trouvez l'adresse IP actuelle et la passerelle par défaut :
- Modifiez le fichier de configuration du réseau :
- Redémarrez le service réseau :
hostname -I
ip route | default via
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.
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.
- Créez un fichier de service :
- Ajoutez le contenu suivant (remplacez par le chemin de votre script ou commande) :
- Activez le service :
- Démarrez le service :
sudo nano /etc/systemd/system/mon_service.service
[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
sudo systemctl enable mon_service.service
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 :
- Désactivez les services inutiles : Identifiez et désactivez les services qui ne sont pas nécessaires.
- Utilisez un système de fichiers léger : Si vous utilisez une carte SD, envisagez d'utiliser un système de fichiers léger pour prolonger sa durée de vie.
- Surveillez les ressources : Utilisez des outils comme
htoppour surveiller l'utilisation des ressources.
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