Un esempio di Captive Portal (ovvero un Access Point WiFi che obbliga gli utenti a visualizzare determinate pagine, sia per loggarsi per l'accesso ad internet sia per altri accedere ad un web server interno)
La Raspberry Pi Zero W, non avendo due schede di rete di default come la 3b+, non puo' essere usata per fornire accesso ad internet come router
Per prima cosa si deve installare sulla SD una
Raspbian Lite . Dato l'uso in HeadLess mode e' necessario configurare la scheda via SSH, non abilitata di default tramite la porta USB OTG, non abilitata di default
Una volta formattata la scheda SD si monta la partizione
boot e
1) si inserisce un file vuoto denominato ssh (senza estensione)
2) si modifica il file
config.txt aggiungendo una ultima riga con scritto
dtoverlay=dwc2
3) si modifica il file cmdline.txt aggiungendo
modules-load=dwc2,g_ether subito dopo
rootwait
Fatto cio' si inserisce la SD nella Raspberry e si collega un cavo microUSB nella porta posta piu' centralmente collegando l'altro cavo al PC (l'alimentazione e' data dallo stesso cavo e non e' necessario di collegare la seconda USB)
A questo punto da PC (Linux o Mac) si puo' entrare in shell mediante SSH con il comando
ssh pi@raspberrypi.local
password :
raspberry
si passa quindi a configurare la connessione WiFi per l'aggiornamento dei pacchetti con
sudo raspi-config
opzione Netowork Options/Wifi dove si inseriscono i dati dell'Acces Point
si aggiorna il sistema e si installano i pacchetti
apt-get install hostapd dnsmasq apache2 php7.0
(questa configurazione e' stata ripresa
da qui togliendo la parte malevola)
rc.local
-----------------------------------------------------------
service apache2 start
sleep 1 hostapd -B /etc/hostapd/hostapd.conf sleep 2 ifconfig br0 up ifconfig br0 10.1.1.1 netmask 255.255.255.0 sysctl net.ipv4.ip_forward=1 iptables --flush iptables -t nat --flush iptables -t nat -A PREROUTING -i br0 -p udp -m udp --dport 53 -j DNAT --to-destination 10.1.1.1:53 iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.1.1:80 iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.1.1.1:80 iptables -t nat -A POSTROUTING -j MASQUERADE service dnsmasq start exit 0
-----------------------------------------------------------
hostapd.conf
-----------------------------------------------------------
interface=wlan0 channel=6 hw_mode=g ssid=Wi-Fi bridge=br0 auth_algs=1 wmm_enabled=0 |
------------------------------------------------------------
dnsmasq.conf
------------------------------------------------------------
interface=br0 listen-address=10.1.1.1 no-hosts dhcp-range=10.1.1.2,10.1.1.254,72h dhcp-option=option:router,10.1.1.1 dhcp-authoritative address=/apple.com/10.1.1.1 address=/appleiphonecell.com/10.1.1.1 address=/airport.us/10.1.1.1 address=/akamaiedge.net/10.1.1.1 address=/akamaitechnologies.com/10.1.1.1 address=/microsoft.com/10.1.1.1 address=/msftncsi.com/10.1.1.1 address=/msftconnecttest.com/10.1.1.1 address=/google.com/10.1.1.1 address=/gstatic.com/10.1.1.1 address=/googleapis.com/10.1.1.1 address=/android.com/10.1.1.1
override.conf
------------------------------------------------------------
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order Allow,Deny Allow from all </Directory> |
------------------------------------------------------------
|
|