Abbiamo configurato un Raspberry Pi in modo tale da funzionare come access point wifi.Questo, per dotare il laboratorio di rete wireless.
Materiale Necessario
- 1 Raspberry Pi
- 1 alimentatore 2A 5V
- Adattatore USB wireless Ethernet ( TP-Link : TL-WN722N )
- Cavo Ethernet
- Connessione ad internet
L' esemplare funzionante è tutt’ora presente in laboratorio.
Team:
- Filippo Lapide: Responsabile
Per comodità ho deciso di utilizzare una SD con all’interno il SO Raspbian Jessie ( Link nella sezione Repository).
Preparazione Hardware
Il Pi utilizzato è il model B, quindi sulla scheda sono presenti solamente 2 porte USB. Questo vuol dire che non possiamo collegare tastiera, mouse e adattatore wifi in contemporanea, se non disponiamo di un hub USB. Per ovviare alla mancanza dell’hub, optiamo per il collegamento da remoto via SSH, in questo modo avremmo la possibilità di controllare il nostro Pi da qualsiasi pc connesso alla rete. Inseriamo l’SD con dentro Raspbian nel Pi, inseriamo l’adattatore Wifi usb in una delle 2 porte libere, colleghiamo il cavo ethernet e forniamo corrente alla nostra scheda attraverso l’alimentatore da 2A.
Collegamento in remoto via SSH
Per potersi collegare in remoto attraverso SSH, su linux basterà aprire un terminale e digitare:
ssh @pi<<ip_raspberry>
Per collegarsi con windows, dovremmo scaricare Putty ed inserire l’indirizzo ip del Pi.
Check dell’adattatore Wireless USB
Prima cosa, dobbiamo accertarci che il Pi veda la nostra Usb Wifi. Dal terminale digitiamo:
iw list
e controlliamo se sotto la voce Supported interfaces mode è presente AP – AP/VLAN.
Installazione e configurazione
Adesso possiamo installare Hostapd e il pacchetto che ci permetterà di assegnare un indirizzo IP ai dispositivi
sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server
Ora modifichiamo il file dhcp.conf che ci permetterà di settare il nostro DHCP server
sudo nano /etc/dhcp/dhcpd.conf
Cerchiamo le linee
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
e commentiamole con #.
Cerchiamo le linee
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
e decommentiamo authoritative, cancellando #.
Andiamo a fondo file, e aggiungiamo
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
Per convenzione abbiamo settato al massimo 42 IP, il che vuol dire che possono esserci al massimo 42 dispositivi attivi in contemporanea sulla rete. Ora andiamo a modificare il file isc-dhcp-server, impostando la nostra periferica di rete wifi
sudo nano /etc/default/isc-dhcp-server
Cerchiamo la riga INTERFACES="" e modifichiamo con INTERFACES="wlan0" Assicuriamoci che la connessione wifi sia disattivata, attraverso il comando
sudo ifdown wlan0
Adesso modifichiamo il file interfaces, che ci consente di settare i valori di connessione della nostra wlan0
sudo nano /etc/network/interfaces
Commentiamo, con #, tutto quello che riguarda l’interfaccia wlan0 e inseriamo
Inoltre modifichiamo la riga
iface eth0 inet static con iface eth0 inet dhcp
Ora assegnamo l’indirizzo IP al nostro Pi
sudo ifconfig wlan0 192.168.42.1
Ora dobbiamo configurare il nostro AP, modifichiamo il file hostapd.conf(vuoto)
sudo nano /etc/hostapd/hostapd.conf
driver=nl80211
ssid=Op3n_L4b
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Attenzione a non lasciare spazi vuoti, per controllare, salvare e riaprire con
sudo vi /etc/hostapd/hostapd.conf
Per uscire, digitare :quit
NB: Il driver da noi usato è il nl80211 il più comune per le schede Atheros.La nostra scheda fa riferimento al kernel ath9k_htc. Ora settiamo il demone, facendolo puntare al file appena modificato.
sudo nano /etc/default/hostapd
Cerchiamo la riga DAEMON_CONF="" , decommentiamola e modifichiamola con DAEMON_CONF="/etc/hostapd/hostapd.conf"
Settiamo il Nat in modo tale da abilitare connessioni multiple di client.
sudo nano /etc/sysctl.conf
aggiungiamo in fondo la riga
net.ipv4.ip_forward=1
Salviamo e abilitiamo immediatamente il NAT
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Abilitiamo il cross di rete fra la periferica Ethernet e la Usb Wifi,
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
Controlliamo che sia tutto a posto con
sudo iptables –S
e salviamo i nostri cambiamenti, in modo tale da non dover ripetere questo procedimento ad ogni avvio di Pi.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo nano /etc/network/interfaces
aggiungiamo in fondo al file il caricamento delle iptables
up iptables-restore < /etc/iptables.ipv4.nat
Avviamo i servizi
sudo service hostapd start
sudo service isc-dhcp-server start
e per farlo sempre ad ogni avvio del Pi
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
Manutenzione:
Per controllare se I servizi sono attivi
sudo service hostapd status
sudo service isc-dhcp-server status
Per controllare il logfiles
tail -f /var/log/syslog