Introducció
Com estem actualitzant nodes estem retirant els linksys wrt54GL, que tan bon servei ens han donat, i l'hem volgut reaprofitar per a crear un redirector que porti a una plana de benvinguda i explicació de guifi.net.
A la web hi havia varies formes però hem agafat aquella que era més fàcil per la configuració. Mantenim el firmware dd-guifi i li afegim unes linees que va explicar fa temps el Sebastian Galeano (em sembla que les feien servir a Badalona)
Nota: Inicialment l'havia titulat Hotspot en un linksys però m'han fet notar que en realitat s'està aplicant un redirector a una pàgina splash, nat selectiu o com li vulgueu dir. Al final lo important es la utilitat. Gràcies a tots per aclarir els conceptes
Qué necessitem?
- El linksys amb el firmware dd-guifi o dd-wrt, ben configurat a la web i amb l'unsolclic passat.
- Que estigui conectat al servidor web que mostrarà la pàgina de benvinguda (splash) mitjançant la xarxa guifi.net o directament per cable.
- El servidor de dns configurat al unsolclic ha de funcionar ja que necessitarem convertir les url que fiquin els convidats a IP
- La Ip del servidor web
- La informació de la xarxa del linksys que està fent de redirector (Agafa la IP del linsys i li restes 1)
Codi a afegir al linksys
Aquest codi s'ha de personalitzar amb les vostres IP's ;-)
#inici codi (no cal ficar aquesta linea)
nvram set rc_firewall="
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -A FORWARD -p tcp --dport 80 -d 10.138.104.130 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -s 10.138.104.192/27 -d! 10.0.0.0/8 --dport 80 -j DNAT --to 10.138.104.130:80
iptables -t nat -A POSTROUTING -p tcp -s 10.138.104.192/27 -d 10.138.104.130 --dport 80 -j MASQUERADE
iptables -A INPUT -m state --state INVALID -j DROP
"
nvram commit
#fi del codi (no cal ficar aquesta linea)
Explicació del codi
- La linea "iptables -A FORWARD -p tcp --dport 80 -d 10.138.104.130 -j ACCEPT" indica la IP del servidor web on està allotjada la pàgina de benvinguda. En realitat la instrucció permet routing a la direcciò i port indicat
- La linea "iptables -A PREROUTING -t nat -p tcp -s 10.138.104.192/27 -d! 10.0.0.0/8 --dport 80 -j DNAT --to 10.138.104.130:80" redirecciona tot el que vagi al port 80 (web) y no sigui RedLibre, soposem que será Internet.
- La primera Ip la hem de canviar per la IP del linksys -1, per exemple si el linksys es 10.138.104.193 possarem 10.138.104.192.
- La segona IP (10.0.0.0) es deixa igual.
- La tercera IP (10.138.104.130) la heu de canviar per la IP del servidor web
- La linea "iptables -t nat -A POSTROUTING -p tcp -s 10.138.104.192/27 -d 10.138.104.130 --dport 80 -j MASQUERADE" emascara la peticio per tal que el nostre servidor web no respongui directant al client (el client tancaria la sesiò i el redireccionador no funcionaria).
- La primera Ip la hem de canviar per la IP del linksys -1, per exemple si el linksys es 10.138.104.193 possarem 10.138.104.192.
- La segona IP (10.138.104.130) la heu de canviar per la IP del servidor web
- La linea "iptables -A INPUT -m state --state INVALID -j DROP" és una regla generica per tal de filtrar paquets mal formats.
Com instal.lar-ho
- Hem de crear una pàgina HTML amb el missatge de benvinguda
- Hem de configurar el servidor web perquè redireccioni tots els errors 404 cap a la pàgina de benvinguda, així quan un usuari busqui www.google.com serà redireccionat al vostre servidor web, que en no tenir la web de google li ensenyarà la pàgina d'error que vosaltres haureu personalitzat amb el missatge de benvinguda de google. Aquesta pàgina la tinc creada com a index.html i possada al directori arrel del meu servidor web.
- El linksys ha de tenir activat el servidor dhcp perquè doni IP als convidats que trobin la nostra antena
- Accedim per telnet al nostre linksys, normalment l'usuari:root i el passwd: guifi
- Copiem el codi editat i amb el botó dret del ratolí fem "enganxar" o "pegar" a sobre de la sessió de telnet
- Un cop copiat, veureu que afegeix les linees i amb l'ultima (li diem que passi la informació de la memoria a la flash per no perdre-la) afegirà alguna linea més i ja està, podeu afegir reboot (no se si cal però per si de cas jo ho feia ;-))
- Tornem a accedir al linksys, aquest cop pel navegador, i anem a la pestanya "seguretat>firewall" i a firewall protection us assegureu que està activat (això no ho tinc del tot clar però a mi així em funciona)
- Anem a la pestanya Administrador>Management i a la part d'abaix de tot feu Iniciar Router
Ja està tot fet i preparat
Funcionament
El convidat veu la vostra antena amb un SSID semblant a "guifi.net - Acces obert" es conecta i obte una IP del vostre servidor dhcp.
Com li donem una IP es queda content i corrents va a obrir el navegador web a veure si ha aconseguit internet gratis ;-)
Provarà qualsevol adreça de internet, per exemple www.google.es, i el nostre linksys l'enviarà al nostre servidor web en comptes de la web de google i li ensenyarà la pàgina de benvinguda
Resultat
codi disponible a (http://www.creacionvisual.net/clientes/guifi/Sabadell_guifi.zip)
Notes
Hi ha una opció més complexa que a més de seguir tots aquest passos li pot permetre navegar pel servidor proxy durant una estona.
Això de moment no ho he fet (pregunteu a l'Albir) que si que ho fa ;-)
Qualsevol error, comenteu-lo i així ho podrem corregir perquè ho disfruti la gent
Agraïments
Al Sebastian Galeano per penjar el codi a una llista fa molt temps (no se si ell es l'autor)
A l'Albert (Albir) perquè ho ha probat i m'ha ajudat
Comentaris
opció del dd-wrt
un cop vaig muntar un hotspot en un linksys, i ja té una opció" hotspot", on només li has de donar el servidor web on es trobi la pàgina a mostrar...
Algú en té més experiència? pros i contres...
Jo m'el vaig canviar perquè el vaig canviar per un mikrotik... i estic pendent de fer el comesfa (també amb l'ajud den Sebas)
...per cert, molt bona feina!
SAX
Ja tenim dos formes d'implementar un hotspot
Gràcies Eloi,
Aquest també el vam provar en un buffalo, però com els linksys ja tenien instal.lat el firmware dd-guifi, hem aprofitat per mantenir-ho.
Al firmware dd-guifi aquesta opció es va treure
Fernando
Serveix per qualsevol Trasto amb dd-wrt?
per exempla serviria tambe per una Nano/routerstation que tingui el firm dd-wrt? Gracies!
Per a qualsevol trasto amb Linux
Bueno, per a qualsevol trasto amb linux, iptables, dhcp etc...