hello,
la première étape c’est de paramétrer ton phone pour le « transformer » en box
ensuite installer avec un raspbian buster ( plus simple partir d’un système neuf sans éventuelles modifications )
en rajoutant le fichier ssh (vide) et le fichier wpa_supplicant.conf
dans la partition boot de la sd puis en démarrant ( sans cable ethernet )
( bien sur le ssid et le psk peuvent être celui d’une box ou du phone - a noter que les deux peuvent cohabiter d’abord celui de la box, puis celui du phone )
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR
network={
ssid="labox"
psk="FFAAXXXXXXXXXXXXX"
}
network={
ssid="lephone"
psk="YYYYYYYYYYYYYYYY"
}
le paramétrage du système se fait via ssh si on est connecté a la box sinon par le phone il faudra brancher écran et clavier au Rpi et le faire « directement » sur le Rpi.
une fois le système paramétrer ( password, region, MAJ, etc.) et quand on redémarre, la commande ifconfig wlan0
doit t’afficher l’ ip de la box ( ou celle offerte par le phone ) ( ds l’exemple 192.168.43.5 )
En faisant route -n dans un terminal tu dois avoir :
Destination Passerelle Genmask Indic Metric Ref Use Iface
default 192.168.43.1 0.0.0.0 UG 303 0 0 wlan0
192.168.43.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
le wlan0 ( l’interface wifi ) du Rpi a donc une adresse ip qui se connecte via la passerelle par défaut (192.168.45.1) la box ou le phone.
et la c’est le drame… enfin pour le moins ça se complique !
on va donné une adresse fixe a l’eth0 du Rpi en mettant a la fin de dhcpcd.conf son adresse:
sudo vi /etc/dhcpcd.conf
# adresse fixe eth0
interface eth0
static ip_address=192.168.2.1
ensuite on va dire au kernel d’activer le forwarding :
sudo vi /etc/sysctl.d/routed-ap.conf
# activer forwarding
net.ipv4.ip_forward=1
ensuite il faut installer le paquet dnsmasq et en option nmap
puis :
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.ori
sudo vi /etc/dnsmasq.conf
et on colle a la fin du fichier :
# dnsmasq pour phone
interface=eth0 # l’interface ou sera branché le switch pour le réseau local
dhcp-range=192.168.2.2,192.168.2.20,255.255.255.0,24h # la plage d’adresses de ton réseau local, le broacast,la durée du lease
dhcp-option=3,192.168.2.1 # l adresse ip de eth0 sur le Rpi la passerelle pour l’accès au réseau et à l’internet
domain=maison # le nom du domaine local
address=/gw.maison/192.168.2.1 # le nom du Rpi (gw dans le domaine maison ) en fait ta nouvelle box …
on protéger un peu le réseau avec ufw et on rend « masquered » l’interface wlan0 …
sudo apt install ufw
modifier la règle du forwarding de DROP a ACCEPT:
sudo vi /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
redire a ufw de mettre le forward ds le noyau ( sans doute pas utile on l’a déja fait mais bon ! )
sudo vi /etc/ufw/sysctl.conf
net/ipv4/ip_forward=1
et rajouter a la fin du fichier sudo vi /etc/ufw/before.rules apres le dernier COMMIT
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
les lignes suivantes
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic through wlan0
-A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADE
# End each table with the 'COMMIT' line or these rules won't be processed
COMMIT
cette règle va permettre au réseau local (192.168.2.0/24) d’accèder a l’interface wlan0 donc a internet.
on rend ufw actif par sudo ufw enable
( pour l’arreter et l’empecher de redemarrer au prochain reboot : sudo ufw disable
)
comme par défaut la policy de ufw est tout interdire en entré, tout autorisé en sortie il faudra ajouter des règles pour permettre au poste du réseau de prendre leur adresse auprès du dhcp et acceder au dns:
sudo ufw allow in on eth0 to any port 67 proto udp
sudo ufw allow in on eth0 to any port 53 proto tcp
sudo ufw allow in on eth0 to any port 53 proto udp
sudo ufw deny in on wlan0 to any port 67 proto udp
sudo ufw deny in on wlan0 to any port 53 proto tcp
sudo ufw deny in on wlan0 to any port 53 proto udp
pour obtenir :
pi@raspi-phone:~ $ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip
To Action From
-- ------ ----
67/udp on eth0 ALLOW IN Anywhere
53/tcp on eth0 ALLOW IN Anywhere
53/udp on eth0 ALLOW IN Anywhere
53/udp on wlan0 DENY IN Anywhere
67/udp on wlan0 DENY IN Anywhere
53/tcp on wlan0 DENY IN Anywhere
53/udp (v6) on wlan0 DENY IN Anywhere (v6)
67/udp (v6) on wlan0 DENY IN Anywhere (v6)
53/tcp (v6) on wlan0 DENY IN Anywhere (v6)
le sudo nmap 192.168.2.0/24
te donne les ports ouverts sur les postes du réseau local ( sudo nmap -sU 192.168.2.0/24
pour les ports udp )
et voilou ! j’espère que j’ai pas oublié trop de trucs
sources:
ufw :
. ufw [Wiki ubuntu-fr]
. Ubuntu Manpage: ufw-framework - using the ufw framework
raspberry pi 4, raspbian (2020-08-20-raspios-buster-armhf.img)