Table des matières
Routeur Ethernet et WIFI Raspberry sous Bullseye avec votre smartphone sur le port USB0
Introduction :
Ceci n'est pas du tout ma création, j'ai cherché comment faire pendant plusieurs jours puis j'ai simplement demandé de l'aide sur le forum Raspberry et epoch1970 m'a gentiment donné de l'aide, d'ailleurs merci à toi sinon cette page n'existerai pas. Ce site est là pour me servir de mémo, mais si il peut aider d'autres personnes alors temps mieux. Je suis parti de la base : epoch1970 m'a conseillé de partir de : Configuration d'un point d'accès sans fil routé et Configuration d'un point d'accès sans fil ponté (bridge). Et d'en faire un mix, chose que je n'ai pas réussi du tout, tout le mérite lui revient.
En gros c'est une traduction française de la doc raspberry et le mix du mode bridge et routé pour avoir le même résultat que sur une box d'un FAI quelconque.
Il faut avoir branché votre smartphone sur le port USB0 et partager la connexion.
La Base
Activer le ssh sans brancher d'écran sur le Raspberry :
Créer un fichier SSH sans rien dedans et sans extension sur la seule partition accessible depuis windows.
Les identifiants :
Se connecter en SSH avec putty ou autre et changer le mot de passe, de base le user est “pi” et la password est “raspberry”, pour changer le password :
passwd
La config de base du Raspberry :
Dans une console SSH :
sudo raspi-config
Dans le menu 5 tout mettre en fr-paris… Dans le menu 6 Expand filesystem. Puis reboot.
Les softs à installer :
Installer hostapd et l'activer :
sudo apt install hostapd sudo systemctl unmask hostapd sudo systemctl enable hostapd
Installation de dnsmasq :
Afin de fournir des services de gestion de réseau (DNS, DHCP) aux clients sans fil, le Raspberry Pi doit avoir le dnsmasqprogiciel installé.
sudo apt install dnsmasq
Installer netfilter-persistentet son plugin iptables-persistent :
Cet utilitaire aide en enregistrant les règles de pare-feu et en les restaurant lorsque le Raspberry Pi démarre :
sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent
La configuration :
Créer un périphérique de pont et remplir le pont
sudo nano /etc/systemd/network/bridge-br0.netdev
Mettre ça dedans :
[NetDev] Name=br0 Kind=bridge
Afin de relier le réseau Ethernet au réseau sans fil, ajoutez d'abord l'interface Ethernet intégrée ( eth0) en tant que membre du pont en créant le fichier suivant :
sudo nano /etc/systemd/network/br0-member-eth0.network
Contenu :
[Match] Name=eth0 [Network] Bridge=br0
Le logiciel du point d'accès ajoutera l'interface sans fil wlan0au pont au démarrage du service. Il n'est pas nécessaire de créer un fichier pour cette interface. Cette situation est particulière aux interfaces LAN sans fil.
Activez maintenant le systemd-networkdservice pour créer et remplir le pont lorsque votre Raspberry Pi démarre :
sudo systemctl enable systemd-networkd
Configurer le routeur réseau :
Le Raspberry Pi exécute un serveur DHCP pour le réseau sans fil ; cela nécessite une configuration IP statique pour l'interface sans fil ( wlan0) dans le Raspberry Pi. Le Raspberry Pi fait également office de routeur sur le réseau sans fil, et comme de coutume, nous lui donnerons la première adresse IP du réseau : 192.168.1.1.
Pour configurer l'adresse IP statique, modifiez le fichier de configuration pour dhcpcd avec :
sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.old sudo nano /etc/dhcpcd.conf
Mettre au début du fichier :
# Debut du fichier denyinterfaces wlan0 eth0
Allez à la fin du fichier et ajoutez ce qui suit :
Copier aussi les lignes vides pour délimiter le bloc!!! Merci epoch1970.
interface br0
static ip_address=192.168.1.1/24
Activer le routage et le masquage IP :
Pour activer le routage, c'est-à-dire permettre au trafic de circuler d'un réseau à l'autre dans le Raspberry Pi, créez un fichier à l'aide de la commande suivante, avec le contenu ci-dessous :
sudo nano /etc/sysctl.d/routed-ap.conf
Contenu du fichier :
# Activer le routage IPv4 net.ipv4.ip_forward=1
L'activation du routage permettra aux hôtes du réseau 192.168.1.0/24d'atteindre le réseau local et le routeur principal vers Internet. Afin d'autoriser le trafic entre les clients sur ce réseau sans fil étranger et Internet sans modifier la configuration du routeur principal, le Raspberry Pi peut substituer l'adresse IP des clients sans fil par sa propre adresse IP sur le LAN en utilisant une règle de pare-feu “mascarade” .
Le routeur principal verra tout le trafic sortant des clients sans fil comme provenant du Raspberry Pi, permettant la communication avec Internet.
Le Raspberry Pi recevra tout le trafic entrant, remplacera les adresses IP et transférera le trafic au client sans fil d'origine.
Si vous aviez déjà des iptables, supprimez-les
iptables -t nat -F
Ce processus est configuré en ajoutant une seule règle de pare-feu dans le Raspberry Pi :
sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
Enregistrez maintenant les règles de pare-feu actuelles pour IPv4 (y compris la règle ci-dessus) et IPv6 à charger au démarrage par le netfilter-persistentservice :
sudo netfilter-persistent save
Les règles de filtrage sont enregistrées dans le répertoire /etc/iptables/. Si à l'avenir vous modifiez la configuration de votre pare-feu, assurez-vous de sauvegarder la configuration avant de redémarrer.
Configurer les services DHCP et DNS pour le réseau sans fil :
Les services DHCP et DNS sont fournis par dnsmasq. Le fichier de configuration par défaut sert de modèle pour toutes les options de configuration possibles, alors que nous n'en avons besoin que de quelques-unes. Il est plus facile de démarrer à partir d'un fichier vide.
Renommez le fichier de configuration par défaut et modifiez-en un nouveau :
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo nano /etc/dnsmasq.conf
Ajoutez ce qui suit au fichier et enregistrez-le :
interface=br0 # Interface d'écoute
dhcp-range=192.168.1.2,192.168.1.254,255.255.255.0,24h
# Pool d'adresses IP servi via DHCP
Le Raspberry Pi fournira des adresses IP entre 192.168.1.2et 192.168.1.20, avec une durée de location de 24 heures, aux clients DHCP sans fil. Vous devriez pouvoir accéder au Raspberry Pi sous le nom gw.wlandes clients sans fil.
Il y a beaucoup plus d'options pour dnsmasq; voir le fichier de configuration par défaut ( /etc/dnsmasq.conf) ou la documentation en ligne pour plus de détails.
Assurer le fonctionnement sans fil
Pour vous assurer que la radio WiFi n'est pas bloquée sur votre Raspberry Pi, exécutez la commande suivante :
sudo rfkill unblock wlan
Ce paramètre sera automatiquement restauré au démarrage. Nous définirons ensuite un code de pays approprié dans la configuration du logiciel du point d'accès.
Configurer le logiciel AP
Créez le hostapdfichier de configuration, situé à /etc/hostapd/hostapd.conf, pour ajouter les différents paramètres de votre nouveau réseau sans fil.
sudo nano /etc/hostapd/hostapd.conf
Ajoutez les informations ci-dessous au fichier de configuration. Cette configuration suppose que nous utilisons le canal 6, avec un nom de réseau “raspibox” un mot de passe “ChangeMe”. Notez que le nom et le mot de passe ne doivent pas être entourés de guillemets. La phrase secrète doit comporter entre 8 et 64 caractères.
country_code=FR interface=wlan0 bridge=br0 ssid=raspibox hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=ChangeMe wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Exécution du nouveau point d'accès sans fil
sudo reboot
Une fois votre Raspberry Pi redémarré, recherchez des réseaux sans fil avec votre client sans fil. Le réseau SSID que vous avez spécifié dans le fichier /etc/hostapd/hostapd.conf doit maintenant être présent et accessible avec le mot de passe spécifié.
Si SSH est activé sur le Raspberry Pi, il devrait être possible de s'y connecter à partir de votre client sans fil comme suit, en supposant que le picompte soit présent : ssh pi@192.168.1.1oussh pi@gw.wlan
Si votre client sans fil a accès à votre Raspberry Pi (et à Internet, si vous configurez le routage), félicitations pour la configuration de votre nouveau point d'accès !
Si vous rencontrez des difficultés, contactez les forums pour obtenir de l'aide. Veuillez vous référer à cette page dans votre message.
Télécharger l'image
Voici l'image faite pour un PI 3B sur une carte SD de 16Go:
user : pi pass : raspberry ssid : freebox passphrase : ChangeMe
Le téléchargement : Cliquer ici.
Commande pour changer le mot de passe user :
passwd
Commande pour étendre la partition :
sudo raspi-config
6_Advanced options-->A1_Expand Filesystem
Changer le SSID et la PassPhrase :
sudo nano /etc/hostapd/hostapd.conf
Changez ces deux valeurs :
ssid=freebox wpa_passphrase=ChangeMe
On reboot et c'est bon…