== Splash Page == Ultimamente sono nati degli !HotSpot che permettono di entrare nella rete Ninux.org semplicemente collegandosi a questi apparati. Questa necessità è nata anche dal fatto che alcune zone non sono ancora "linkate". Vediamo quindi come tirare su un !HotSpot con pagina di accesso Ninux. == Introduzione == L'idea di base è quella di avere un !HotSpot aperto che al primo accesso porti ad una pagina di benvenuto in cui si presenta il progetto Ninux e come contribuire. In realtà il messaggio che si vuole far passare è che non si è lasciata la Wireless aperta perchè ci si è dimenticati di mettere la password ma che tutto ciò è voluto e che fa parte del progetto Ninux.org == Di cosa abbiamo bisogno == Un !AccessPoint con Openwrt (Backfire 10.03.1 RC4) NodogSplash Iptables == Installazione == Questa guida presuppone abbiate già configurato il vostro access point per la navigazione in internet. Consideriamo un access point che raggiunge la rete Ninux sulla sua interfaccia "br-lan" con indirizzo 192.168.100.1/24 Nei vecchi package di NoDogSplash di OpenWRT ci stava qualche bug, quindi siate sicuri che il vostro opkg scarica il pacchetto più recente che è questo: {{{ nodogsplash_0.9_beta9.9.6-1_brcm-2.4.ipk }}} Lo potete scaricare per il vostro target da qui: http://downloads.openwrt.org/backfire/10.03.1-rc4/brcm-2.4/packages/ a questo punto basta sostituire il contenuto in /etc/nodogsplash/htdocs con il contenuto del pacchetto scaricabile da [[http://svn.ninux.org/svn/ninuxdeveloping/splashpage/htdocs.tar.gz|qui]] Una configurazione fondamentale è quella di cambiare nel file /etc/nodogsplash/nodogsplash.conf il paramentro !GatewayInterfaces mettendo l'interfaccia dove si collegheranno gli utenti e visualizzeranno la splash page. Quindi: {{{ GatewayInterface ath0 }}} Per rendere l'avvio persistente dopo il reboot usare lo script di init.d: {{{ /etc/init.d/nodogsplash enable }}} In entrambi i casi, che si segua la procedura standard o l'alternativa, è possibile avviare [[NodogSplah|NodogSplash]] con {{{ /etc/init.d/nodogsplash start }}} Per fermarlo {{{ /etc/init.d/nodogsplash stop }}} {{{ }}} == Download/Upload Limits e Security == E' possibile modificare alcuni parametri del file /etc/nodogsplash/nodogsplash.conf per limitare la banda da dedicare agli utenti che si collegano all'hotspot. Per utilizzare questa feature modificare i valori {{{ TrafficControl yes }}} {{{ DownloadLimit 384 }}} {{{ UploadLimit 64 }}} Utilizzando backfire 10.03.1rc5 è necessario decommentare le ultime 3 righe del file /etc/init.d/nodogsplash per abilitare il controllo della banda. {{{ # if not using traffic control, # you can comment out the following 3 lines: do_module_tests "imq" "numdevs=2" do_module_tests "ipt_IMQ" do_module_tests "sch_htb" }}} E' necessario inoltre installare i seguenti pachetti {{{ opkg install iptables-mod-imq opkg install kmod-ipt-imq opkg install kmod-sched }}} Se non si vuole che gli utenti collegati all'HotSpot possano "vedere" la propria subnet è sufficiente decommentare e inserire la propria rete sulla riga {{{ FirewallRule block to 192.168.1.0/24 }}} == Accedere a Ninuxoo == Aprire /etc/config/dhcp e settare {{{ rebind_protection '0' }}} == Conclusione == Si è quindi ottenuta una pagina che viene visualizzata non appena un client prova a collegarsi ad internet attraverso l'HotSpot. Per navigare è necessario cliccare sul segno di spunta in basso alla pagina. == Piccolo script di logging e LED == === BOZZA === Con questo script è possibile loggare gli accessi al nostro hotspot e avere qualche info in più. Creiamo un file in /root/blinkled.sh {{{ #!/bin/sh NOW=$(date +"%Y/%m/%d %H:%M.%S") LOGFILE=/root/logs/$(date +"%Y%m%d").log NDS=`/usr/bin/ndsctl status | grep "Current" | awk '{print $3}'` DWN=`/usr/bin/ndsctl status | grep "Total download" | awk '{print $3}'` UPL=`/usr/bin/ndsctl status | grep "Total upload" | awk '{print $3}'` if [ $NDS -eq 0 ] then echo "empty" echo 0 > /sys/class/leds/ubnt\:orange\:dome/brightness echo 0 > /sys/class/leds/ubnt\:green\:dome/brightness echo 1 > /sys/class/leds/ubnt\:green\:dome/brightness else if [ $NDS -eq 1 ] then echo "single client" echo 0 > /sys/class/leds/ubnt\:green\:dome/brightness echo 0 > /sys/class/leds/ubnt\:orange\:dome/brightness echo 1 > /sys/class/leds/ubnt\:orange\:dome/brightness else echo "multi" echo timer > /sys/class/leds/ubnt\:orange\:dome/trigger echo 1000 > /sys/class/leds/ubnt\:orange\:dome/delay_on echo 1000 > /sys/class/leds/ubnt\:orange\:dome/delay_off fi echo $NOW\|$NDS\|$DWN\|$UPL >> $LOGFILE fi #echo $NOW\|$NDS >> $LOGFILE NDSLINE=`/usr/bin/ndsctl status | wc -l` if [ $NDSLINE -gt 25 ] then i=1 MAClist="19 30 41 52 63 74" for MACpos in $MAClist do MAC=`/usr/bin/ndsctl status | head -n$MACpos | tail -1 | awk {'print $4'}` ADD=`/usr/bin/ndsctl status | head -n$(($MACpos + 1)) | tail -1 | sed "s/Added: //g"` DWN=`/usr/bin/ndsctl status | head -n$(($MACpos + 7)) | tail -1 | awk '{print $2}'` UPL=`/usr/bin/ndsctl status | head -n$(($MACpos + 8)) | tail -1 | awk '{print $2}'` MACLOG=/root/logs/$($MAC | sed "s/://g").log echo $NOW\|$ADD\|$DWN\|$UPL >> $MACLOG done fi }}} lo script andrà reso eseguibile e creata la cartella logs {{{ chmod +x /root/blinkled.sh mkdir /root/logs }}} è possibile schedulare l'esecuzione dello script ogni 5 minuti con CRON per avere a colpo d'occhio lo stato dei client collegati semplicemente guardando il LED posto sul device. == TO DO == Script autoconfigurante per Ninux...