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