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
Ultimi post di (vedi tutti)
- Stepper motor con Arduino - 18 maggio 2017
- Come controllare la raspberry pi da desktop remoto con windows - 3 maggio 2017
- Schiena stampata in 3D scala 1:1 - 2 maggio 2017