Team & descrizione

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. 1 Raspberry Pi
  2. 1 alimentatore 2A 5V
  3. Adattatore USB wireless Ethernet ( TP-Link : TL-WN722N )
  4. Cavo Ethernet
  5. Connessione ad internet

L' esemplare funzionante è tutt’ora presente in laboratorio.

Team:

  • Filippo Lapide: Responsabile

Sviluppo

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

subnet 192.168.42.0 netmask 255.255.255.0 {
        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

Allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0
 

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

interface=wlan0
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 -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
 

Controlliamo che sia tutto a posto con

sudo iptables -t nat -S
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

Repository

SO Raspbian Jessie

Repository HostAPd