Come configurare la raspberry pi3 in un access point con hostapd

prodotto_finale

Come configurare la raspberry pi3 in un access point con hostapd

Per prima cosa andiamo a collegare la raspberry tramite cavo ethernet ed installare i pacchetti di cui abbiamo bisogno:

sudo apt-get install dnsmasq hostapd

hostapd ci servirà per creare un access point con il WiFi della raspberry

dnsmasq ci servirà come server DHCP

Configurazione interfaccia

Adesso andiamo ad ignorare la configurazione dell’interfaccia Wlan0 perchè andremo a cambiarla con un indirizzo IP statico

sudo nano /etc/dhcpcd.conf 

Scriviamo dopo l’ultima riga

denyinterfaces wlan0

Per configurare un indirizzo IP statico andiamo a configurare le impostazioni di wlan0

sudo nano /etc/network/interfaces

E modifichiamo appunto le righe che riguardano wlan0

allow-hotplug wlan0  
iface wlan0 inet static  
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Riavviamo il dhcpcd con il comando:

sudo service dhcpcd restart  

e ricarichiamo la configurazione per wlan0 con il comando:

sudo ifdown wlan0; sudo ifup wlan0 

Configurazione hostapd

Creiamo la configurazione per hostapd con il comando:

sudo nano /etc/hostapd/hostapd.conf 

Ed andiamo ad inserire il seguente contenuto:

# questo è il nome dell'interfaccià WiFi configurata in precedenza
interface=wlan0

# usiamo il driver nl80211 con il driver brcmfmac
driver=nl80211

# questo sarà il nome della nostra rete
ssid=PiBOT

# usiamo la banda di 2.4GHz
hw_mode=g

# usiamo il canale 6
channel=6

# abilitiamo 802.11n
ieee80211n=1

# abilitiamo WMM
wmm_enabled=1

# abilitiamo i canali da 40MHz con intervallo di protezione di 20ns
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# accettiamo tutti gli indirizzi MAC
macaddr_acl=0

# usiamo un autenticazione WPA
auth_algs=1

# richiediamo al client di riconoscere il nome della rete
ignore_broadcast_ssid=0

# usiamo WPA2
wpa=2

# utilizziamo una chiave pre-condivisa
wpa_key_mgmt=WPA-PSK

# impostiamo la pasword
wpa_passphrase=robotdomestici

# usiamo AES, invece di TKIP
rsn_pairwise=CCMP

Possiamo controllare che per adesso funziona tutto correttamente con il comando:

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf 

Se tutto è stato scritto e compilato nel modo giusto possiamo vedere la nostra raspberry nelle riti WiFi disponibili. Ovviamente ancora non possiamo collegarci perchè ancora dobbiamo configurare il dnsmasq per ricevere l’indirizzo IP

Per fermare il processo usiamo Ctrl+C

Per ultima cosa andiamo a dire al nostro demone di aprire questa configurazione all’avvio della raspberry, quindi usiamo il comando:

sudo nano /etc/default/hostapd  

E cambiamo la linea: #DAEMON_CONF=”” con:

DAEMON_CONF="/etc/hostapd/hostapd.conf" 

Configurazione dnsmasq

La configurazione base di dnsmasq contiene fin troppe informazioni da usare, quindi, andremo a spostarla (senza bisogno di cancellarla):

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

E creiamo il nostro file di configurazione:

sudo nano /etc/dnsmasq.conf

Incolliamo il seguente testo nel file

interface=wlan0      # usiamo l'interfaccia di wlan0

listen-address=172.24.1.1 # specifichiamo esplicitamente l'indirizzo da ascoltare

bind-interfaces      # leghiamo all'interfaccia per assicurarci che non invii cose altrove

server=8.8.8.8       # inoltra le richieste DNS al DNS di Google

domain-needed        # non inoltrare nomi brevi

bogus-priv           # non inoltrare mai indirizzi negli spazi di indirizzi non indirizzati  

dhcp-range=172.24.1.50,172.24.1.150,12h # assegnare indirizzi IP tra 172.24.1.50 e 172.24.1.150 con un tempo di locazione di 12 ore

Abilitare l’inoltro dei pacchetti settando ipv4 forward

usiamo il comando:

sudo nano /etc/sysctl.conf

ed andiamo a rimuovere l’asterisco davanti al commento

net.ipv4.ip_forward=1

Siccome si attiverà al riavvio andiamo ad attivarla immediatamente con il comando:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"


Abbiamo anche bisogno di condividere la connessione internet di Pi con i nostri dispositivi collegati tramite WiFi configurando un NAT tra la nostra interfaccia wlan0 e la nostra interfaccia eth0. Possiamo farlo utilizzando i seguenti comandi:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Tuttavia avremo bisogno di inserire questi comandi ad ogni riavvio quindi salveremo queste procedure nel file /etc/iptables.ipv4.nat con il seguente comando:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" 

Ora dobbiamo far eseguire queste operazioni ad ogni riavvio, quindi usiamo il comando:

sudo nano /etc/rc.local 

e aggiungiamo la seguente linea prima della linea exit 0

iptables-restore < /etc/iptables.ipv4.nat

Finalmente siamo pronti per far partire i nostri service con i seguenti comandi:

sudo service hostapd start

sudo service dnsmasq start


Ora dovremo essere in grado di connetterci ad internet attraverso la nostra raspberry pi

Per essere sicuri che le impostazioni sono state tutte salvate correttamente utilizziamo il comando di rebbot

sudo reboot 

Ed il gioco è fatto

The following two tabs change content below.