Raspberry - hotspot wifi - senza proxy nella LAN

Jim Warren

Bisogna prima di tutto installare

apt-get install dnsmasq hostapd

a questo punto si va:

nano /etc/dhcpcd.conf

aggiungere la seguente riga alla base del file:

denyinterfaces wlan0

Ora dobbiamo configurare l’ IP statico.

nano /etc/network/interfaces

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

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

per far ripartire l'interfaccia bisogna digitare

service networking restart

HOSTPAD

Ora dobbiamo configurare hostapd.
Dobbiamo creare un nuovo file di configurazione con il comando

nano vi /etc/hostapd/hostapd.conf

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=VoxPopuli-Hub

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP

quindi dare il comando

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

Apri il file di configurazione di hostapd con

nano /etc/default/hostapd

e cerca la riga #DAEMON_CONF="".

Deve essere sostituita con DAEMON_CONF="/etc/hostapd/hostapd.conf".

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
vi /etc/dnsmasq.conf

interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

Una delle ultime cose che dobbiamo fare è di abilitare l’inoltro dei pacchetti.

Per fare questo apriamo il file sysctl.conf con sudo vi /etc/sysctl.con e togliamo il commento dall’inizio della riga che contiene net.ipv4.ip_forward=1.

L’operazione appena fatta diventa effettiva al prossimo riavvio della raspberry, ma è possibile attivare subito la modifica con:

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

A questo punto facciamo un ultima operazione che ci consentirà di condividere la connessione internet della Raspberry Pi (attraverso la scheda di rete) con i dispositivi collegati tramite WiFi. Per farlo bisogna configurare un NAT tra l’interfaccia wlan0 e l’interfaccia eth0. Possiamo farlo utilizzando i seguenti comandi:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Questa ultima configurazione deve essere applicata tutte le volte che la Raspberry viene riavviata, quindi procediamo in questo modo. Prima di tutto ci salviamo le regole in un file:

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

poi, per fare in modo che vengano applicate ad ogni reboot della Raspberry, ne aggiungiamo l’esecuzione nel file rc.local. Tale file, situato sotto /etc, viene eseguito ogni volta che la Rasp parte. Quindi, riassumento:

vi /etc/rc.local
al cui interno metteremo:

iptables-restore < /etc/iptables.ipv4.nat
IMPORTANTE: Se non vuoi che la Rasp si blocchi in fase di boot, ricorda di controllare che alla fine del file /etc/rc.local ci sia sempre l’istruzione exit 0 alla fine.

Reboot del rapberry

Informazioni su Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *