In questo articolo vedremo come configurare un bridge senza alcun firewall tra la rete configurata sull’interfaccia WI-FI del Raspberry e la rete dell’interfaccia eth0 sul connettore RJ45,
per fare ciò utilizzeremo il pacchetto dnsmasq.
Iniziamo aggiornando il nostro Raspberri Pi
sudo apt update
sudo apt upgrade
Istalliamo ora il pacchetto dnsmasq
sudo apt install dnsmasq
Configuriamo la rete wlan0
se avete già configurato questa interfaccia potrete passare direttamente alla configurazione dell’interfaccia eth0 altrimenti modifichiamo il file wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
come segue
network=
{
ssid="NOME-RETE"
psk="PASSWORD"
}
ovviamente a NOME-RETE e a PASSWORD vanno sostituiti il nome SSID e la password necessaria per la connessione.
Testiamo il corretto funzionamento con
wpa_passphrase "NOME-RETE" "password"
Configuriamo l’interfaccia eth0
modificando il file interfaces settiamola per la rete che desideriamo, nel nostro caso 10.0.0.X, assegnandogli un ip statico per fare ciò quindi modifichiamo il file
sudo nano /etc/network/interfaces
e modifichiamo il codice relativo all'interfaccia eth0 come segue
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
ora salviamo una copia del file dnsmasq.conf prima di modificarlo
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
dopo di che modifichiamo il file
sudo nano /etc/dnsmasq.conf
ed editiamo all’interno il seguente codice
interface=eth0 # Use interface eth0
listen-address=10.0.0.1 # Specify the address to listen on
bind-interfaces # Bind to the interface
server=208.67.222.222 # Use OpenDNS
domain-needed # Don't forward short names
bogus-priv # Drop the non-routed address spaces.
dhcp-range=10.0.0.10,10.0.0.50,12h # IP range and lease time
con queste direttive il nostro Raspberry fara da DHCP assegnando degli indirizzi nel range 10.0.0.10 – 10.0.0.50 oltre a quanto abbiamo fatto è necessario anche abilitare il forward nel file sdi configurazione sysctl.conf per abilitire l'invio IP IPv4p quindi
sudo nano /etc/sysctl.conf
in questo file andiamo a decommentare la riga
#net.ipv4.ip_forward=1
che quindi diventerà
net.ipv4.ip_forward=1
usciamo e salviamo con il solito Ctrl+x e poi y.
Ora andiamo a configurare il firewall di Raspberry Pi in modo che inoltri tutto il traffico dalla nostra interfaccia eth0 alla nostra connessione wlan0. Ricordate che cosi facendo chiunque si connette all'ethernet sarà in grado di utilizzare la nostra connessione internet wlan0
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
A questo punto tutto è pronto per funzionare se non fosse che ad ogni riavvio la iptables viene riscritta quindi per far si che le regole si riscrivano ad ogni riavvio salviamo le nuove regole
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
e facciamo in modo che ad ogni riavvio vengano riscrittele regole dell'iptables, per fare ciò aggiungiamo nel file rc.local subito prima del comando exit 0 la riga il comando per riscrivere le regole, quindi apriamo il file
sudo nano /etc/rc.local
e scriviamo
iptables-restore < /etc/iptables.ipv4.nat
avviamo il servizio
sudo service dnsmasq start
Ora dovresti aver terminato e tutto dovrebbe funzionare correttamente, puoi assicurarti che tutto sta funzionando collegando qualsiasi dispositivo alla sua porta Ethernet ed il BRIDGE dovrebbe fornire una connessione internet al dispositivo collegato.Per assicurarsi che tutto funzioni correttamente, puoi riavviare adesso per confermare che anche al riavvio le regole vengano riscritte
sudo reboot