Un Hotspot WiFi usando il RPi3 e Fedora

Da lumacawiki.

Un Hotspot WiFi usando il RPi3 e Fedora

Installazione Fedora

Si veda la pagina GNU-Linux:Installazione:FedoraRPi3 per avere informazioni su come installare Fedora sul Raspberry Pi.

In questo Howto si utilizza l'immagine Minimal di Fedora 26. Il Raspberry è la versione 3, quello con il WiFi integrato.

Configurazione LAN

Si presuppone che l'interfaccia Ethernet eth0 sia già stata configurata durante il setup iniziale.

Installazione del wifi

Per far sì che il device WiFi a bordo del Raspberry funzioni, c'è bisogno di scaricare un file che non può essere distribuito con Fedora. Se non lo avete già fatto:

curl https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/brcm/brcmfmac43430-sdio.txt \
-o /lib/firmware/brcm/brcmfmac43430-sdio.txt

reboot

Configurazione firewall e rete

In Fedora il firewall è gestito dal demone [firewalld]. Di default ci sono già delle zone preesistenti, probabilmente con regole preconfezionate a seconda del livello di sicurezza (public, internal, ecc.), ma andiamo a crearne un'altra

firewall-cmd --permanent --new-zone=wifi
firewall-cmd --reload

Configuriamo l'interfaccia wireless wlan0 con il comando nmcli (Network Manager command line interface). In questo modo viene creato un profilo in NetworkManager, che verrà attivato al boot.

nmcli con add type 802-11-wireless con-name HOTSPOT ifname wlan0 connection.zone wifi connection.autoconnect yes 802-11-wireless.ssid TUOSSID 802-11-wireless.mode ap 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk tuapazzword ipv4.method manual ipv4.addresses 192.168.57.1/24 ipv6.method ignore 

nmcli con show

Configuriamo le regole del firewall

firewall-cmd --permanent --get-zones
firewall-cmd --get-zone-of-interface=eth0

In questo modo tutto il traffico in uscita da eth0 viene nattato

firewall-cmd --zone=public --add-masquerade --permanent

Consentiamo i servizi necessari sullinterfaccia wifi

firewall-cmd --permanent --zone=wifi --add-service=dhcp
firewall-cmd --permanent --zone=wifi --add-service=ssh
firewall-cmd --permanent --zone=wifi --add-service=dns
  
firewall-cmd --reload
firewall-cmd --get-zone-of-interface=wlan0
firewall-cmd --info-zone=wifi
firewall-cmd --get-active-zones

L'ultimo comando dovrebbe dire così

public
  interfaces: eth0
wifi
  interfaces: wlan0

Abilitiamo il forward dei pacchetti fra le due interfacce

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/10-ip_forward.conf
sysctl --system

Installazione e configurazione del DHCP

dnf install dnsmasq
vi /etc/dnsmasq.d/hotspot.conf

Questa è una configurazione di base di dnsmasq

interface=wlan0
no-dhcp-interface=lo,eth0
dhcp-range=192.168.57.11,192.168.57.100,255.255.255.0,12h
systemctl enable dnsmasq
systemctl start dnsmasq