Aquests dies de tanta calor hem tingut problemes de temperatura al GuifiBus que tenim muntat a TarAnt (Taradell Antena de les Pinediques).
Avui hem passat a subtituir-lo per un altre aparell (2 RB532A) per sortir del pas i mentrestant repassar el GuifiBus.
Ens falta acabar de configurar-los perquè sens ha fet tard. Demà acabarem de mirar-lo.
A més a més, aquests dies hi ha hagut un tall de corrent a l'Institut i ha deixat el servidor de DNS out. Per tant, estem sense DNS a Taradell. Caldria fer-ne servir una altra, com p. ex. 10.138.25.68.
ACTUALITZO: Tots els enllaços funcionen correctament.
Apa, salut!
Joan
En comptes de partir d'una versió precompilada per a un model de router, veurem, pas a pas, com construir un firmware OpenWRT Kamikaze 7.09 compilant-lo des de zero, farem un build a partir del codi font del programari, afegint alguns paquets extres. També veurem com construir imatges a mida.
S'ha hagut de fer més d'una vegada, i és un procés que implica coneixer a fons com funciona la base de dades, i tot i així, costa recordar exactament que tocar i que no. Com que no tothom te accés directe a la Base de dades, entenc que aquesta informació no és "perillosa", ja que qualsevol que hi tingui accés sabra com fer-la servir amb seny.
No explicaré com s'accedeix a la linia de comandes del mysql, ja que no és l'objectiu, i per la mateixa rao d'avans, a qui li interessi segurament ja ho sap fer
Provant el capo, que es un redirector per al Squid, he vist que no acabava de funcionar del tot bé. En comptes de retocar el codi existent, he decidit fer un redirector nou, que no s'ahgi de compilar, amb Perl i que sigui més fàcil. Al menys m'ho sembla a mi 
Aquest és l'script:
#!/usr/bin/perl
#
# startpage.pl (Squid Proxy Redirector)
# joan.llopart@guifi.net 03-2008
# Redirects proxy user to a defined startpage every certain time.
use strict;
#
# --- CONFIG ---
#
# Startpage will be shown every ... (time in seconds)
my $ref_time = 3600; # 1 hour
#
# Redirection to this webpage
my $startp = "302:http://guifi.net";
Nomes saludar a tota la comunitat i fer-vos saber l'interes per part meva de promoure un super node i un de no tan super mitjançant els quals es podria fer algun enllaç crec que, mes que interesant a nivell de xarxa troncal.
El Node esta situat a Molins de Rei a la carretera N-340 a l'alçada del Parc de la Mariona i montat a una posicio de 6 pisos d'alçada, com a informacio, pels interesats, ho tinc tot operatiu i funcionant autonomament desde fa força temps, nomes em cal conectar a guifi.net i el Super node, estic fent les gestions per poder-lo instalar, i tot just tingui la informacio i el pugui ubicar on m'agradaria us ho fare saber, i veureu que te francament moltes posibilitats de cara a la xarxa troncal.
Espero que l'apartat de la web per donar d'alta els nodes i afagir, editar, etc es millori algo, perque despres de unes bones estones, no ho he vist gens clar, ni "intuitiu", potser ho es eh, pero no n'he sabut mes.
El Servidor de SantaFe te diverses interfícies de xarxa, la eth2 és la pública de guifi (10.138.75.98) que esta connectada directament a un mikrotik. La eth1 esta connectada directament al router ADSL, amb un rang privat (192.168.0.x/24). En teoria caldria tenir una IP pública per poder graficar-la, però es pot fer d'una altre manera.
Fins ara no haviem fet servir gaire els CPEs. La rao principal era que no els necessitavem i que tenia que posar-m'hi per a poder fer que establisin tunels de la mateixa manera que fem amb els Linksys. El RouterOS 2.x nomes suporta tunels PPTP, i despres de bastantes hores esbarellant-me amb el servidor Debian i el PPTPd, els he descartat perque tenia molts problemes d'estabilitat. Aixi que he agafat la RouterOS 3.0rc13 i m'hi he posat.
HOLA A TOTS,
ESTIC PROVANT UN EXPERIMENT.
A VEURE SI ES POSIBLE CONECTAR 2 ROUTERS PUNT A PUNT, TIPO "ESCRITORIO REMOTO" DEL gíœINDOWS.
GRACIES,
Doncs resulta que és una cosa ben senzilla.
A Tona ja fa una setmana que a les tardes s'utilitzen dues ADSL en paralel per contrarrestar la falta d'ample de banda que es rep per part de Telefònica.
Ho he instal·lat en un fedora 3 i no ha calgut modificar cap modul del kernel.
El procediment utilitza el iproute2 que per defecte ja porta el kernel 2.4
Necessitem una ethernet per cada ADSL amb la seva subxarxa corresponent.
Nomenclatura:
eth0 -> primer interficie connectat a la ADSL1
192.168.1.1 -> IP associada a eth0
192.168.1.2 -> IP del router ADSL1
192.168.1.0/24 -> subxarxa on hi ha ADSL1
eth1 -> primer interficie connectat a la ADSL2
A SantaFe en comptes de fer servir proxy per l'accés a Internet, ho fem amb tunels OpenVPN. Sempre hi ha algun usuari "despistat" que prova de fer anar el emule. Per evitar-ho, el millor es fer servir algun mòdul per a iptables que identifiqui el trànsit P2P i així poder bloquejar-lo. Sempre he fet servir el IPP2P. Es bastant fàcil d'instal·lar, a la mateixa web del IPP2P ho explica. També hi ha un how-to en espanyol aqui.
Tot i que no és difícil instal·lar-lo i que ja ho havia fet diverses vegades, al fer l'upgrade del servidor (ara és un Debian Etch), no hi havia manera de que funciones. He perdut algunes hores intentant fer-ho anar, fins que finalment he trobat un post dient que hi ha un probelma entre el IPP2P v0.8.2 (l'ultim disponible a dia d'avui) i els iptables v1.3.6 (els que porta el Debian Etch).
Simplement calia editar el Makefile del IPP2P v0.8.2 i quasi al final del fitxer, canviar el principi de la linea:
ld -shared -o libipt_ipp2p.so libipt_ipp2p.o
per:
$(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o
En fi, que a ningú li torni a pasar el mateix. ;-)
Al fer l'adaptacio de SantaFe sensefils a guifi.net hem vaig trobar en que havia de canviar la configuracio dels Linksys de tots els usuaris. Per evitar tenir que anar a casa de cada un, he fet un sicript que automaticament hem crea un firmware amb la configuracio de xarxa especifica per al Linksys de cada usuari.
Amb el ni1solclic es pot crear un firmware únic per cada usuari. Volia que:
- El Linksys havia de funcionar en mode routed client (http://wiki.openwrt.org/ClientModeHowto#head-0012e2eac83294245701043ed629fbf4c6e66c0a). Es a dir, trencar el bridge que uneix la interficie wifi (eth1) amb la vlan0, i crear dues subxarxes diferents. La wifi tindria la IP publica de guifi. i la vlan0 el rang 192.168.2.0/x. La configuracio de les subxarxes les tenia que fer el mateix firmware a l'hora d'instalar-se.
- El firewall ha de permetre l'entrada als ports TCP 22 (ssh), TCP 80 (panell web) i UDP 161 (snmp). Tambe havia de fer “masquerade†amb la IP publica.
- Configurar automaticament un client OpenVPN, incloent els certificats de client corresponents tal com s'explica a http://guifi.net/ca/node/3278. Les claus son úniques per a cada usuari. També es configura el ntpclient per a posar l'hora correcta al Linksys cada vegada que s'enjega, en cas contrari el OpenVPN no funciona, ja que els certificats tenen una data posterior a la del Linksys.
- Configuracio automatica d'un password.
- Configuracio d'un servidor DHCP per la subxarxa 192.168.2.0/24.
Quan vaig començar a fer el ni1solclic, la whiterussian era l'unica versio estable de OpenWRT, per tant vaig fer servir aquesta com a base. Van alliberar la versio kamikaze com a estable al cap de 2 dies que havia començat a posar firmware generat amb el ni1solclic als usuaris :-( De totes maneres, el whiterussian funciona perfectament, es estable, i no dona cap problema.
Adjunto el ni1solclic.tar.gz, on hi ha el Imagebuilder + script ni1solclic + easy-rsa. Descarreguem el ni1solclic i el descomprimim:
cd /var sudo tar xvzf ni1solclic.tar.gz
El Imagebuilder per funcionar necessita: libstdc++6 i el gcc >3.4. Per provar manualment si hi ha cap problema per a construir el firmware:
cd /var/ni1solclic make
Tarda uns 20 segons en fer-ho tot. Si ha anat bé, hi haura una llista de firmwares creats per a diferents trastos a /var/ni1solclic/bin/guifi/ , no els feu servir, son de prova i no estan configurats. Configurem-lo per a que poguem accedir al script PHP mitjançant el navegador:
chown -R www-data:www-data /var/ni1solclic
en la configuració de l'Apache:
Alias /ni1solclic /var/ni1solclic/html
Apart de configurar el Linksys en mode client amb la IP pública de guifi, l'script també pot configurar un client d'OpenVPN. Ho veurem més endavant. Per fer un firmware bàsic de client guifi.net, editeu /var/ni1solclic/html/index.php i en les primeres linees:
$fes_vpn = 0;
Obriu el navegador, i aneu a http://el.que.sigui/ni1solclic. Ompliu les dades que us demana i cliqueu el boto “fesâ€. Espereu uns segons. Si l'ordinador on s'executa el ni1solclic es lent, potser caldrà que incrementeu el set_time_limit( 60 ) que hi ha al principi de index.php. Normalment tarda uns 20 segons, us apareixara una plana on podeu descarregar el firmware.bin o el firmware.trx per si feu un upgrade manual amb “mtd -e linux -r firmware.trx linuxâ€.
Assegureu-vos que entreu bé les dades que us demana al formulari, l'script no comprova si hi ha, per exemple, un error entre la IP pública, mascara i porta d'enllaç.
Vaig fer diverses proves amb el OpenVPN, seguint el comesfa http://guifi.net/ca/node/3278. Vaig trobar un parell de coses que no m'acabaven de rutllar bé. En la configuració del client, el paràmetre “dev-node†s'havia de treure perquè funciones. I despres de fer diverses proves vaig veure que era millor fer servir TCP que UDP per al túnel. Sobretot en cas de que el servidor caigui, amb UDP te molts problemes per tornar a refer el túnel, amb TCP va perfectament,
El ni1solclic pot configurar el client OpenVPN de dos maneres diferents, sigui la que sigui abans haurem de crear els certificats del servidor. Per crear els certificats del servidor, seguirem el que diu el comesfa, amb alguna variació:
cd /var/ni1solclic/easy-rsa . ./vars ./clean-all ./build-ca ./build-key-server openvpn-servidor ./build-dh openvpn --genkey --secret auth.key
A l'ordinador que fa de servidor openvpn copiem a /etc/openvpn/keys/ els fitxers:
/var/ni1solclic/easy-rsa/auth.key /var/ni1solclic/easy-rsa/keys/openvpn-servidor.crt /var/ni1solclic/easy-rsa/keys/openvpn-servidor.key /var/ni1solclic/easy-rsa/keys/ca.crt /var/ni1solclic/easy-rsa/keys/dh1024.pem
i creem un fitxer a /etc/openvpn/openvp-servidor que contingui:
port 1194 proto tcp dev tun dh /etc/openvpn/keys/dh1024.pem ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/openvpn-servidor.crt key /etc/openvpn/keys/openvpn-servidor.key tls-auth /etc/openvpn/keys/auth.key 0 server 192.168.8.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.9.0 255.255.255.0" client-to-client keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun verb 3
Com es pot veure, farem servir TCP i a mes el tunel entre el servidor i els clients tindrà una subxarxa 192.168.8.0/24. Evito fer servir el rang 10.0.0.0 perquè pertanyen a freenetworks, i millor deixar-les sense fer servir. Tampoc farem servir el duplicate-ca, perquè cada client OpenVPN tindrà un certificat diferent.
Per configurar el firewall, seguiu el que diu el comesfa.
En aquest mode, el mateix ni1solclic crearà un certificat diferent per a cada usuari. En primer lloc cal canviar els permisos del directori easy-rsa per a que hi pugui accedir l'script PHP:
chown -R www-data:www-data /var/ni1solclic/easy-rsa
Hem d'editar /var/ni1solclic/html/index.php i posar:
$fes_vpn = 1; $vpn_server = "adreça_del_servidor_openvpn"; $vpn_ntp_server = "adreça_del_servidor_rellotge";
Necessitem un servidor de rellotge per posar el Linksys a l'hora cada vegada que s'enjegui, en cas contrari no establira el tunel OpenVPN. També li hem d'indicar l'adreça del servidor OpenVPN.
Ara nomes ens cal anar a http://el.que.sigui/ni1solclic i ja podem crear tants firmwares com volguem. Tots tindran un certificat únic, i establiran el tunel OpenVPN automaticament al enjegar-se. També reestabliran el tunel automaticament en cas de que caigui.
Aquest mode esta pensat per poder integrar el ni1solclic a l'aplicació de guifi.net. No te cap sentit que guifi.net tingui que crear cap certificat. El més logic i practic es que es doniguin els certificats als usuaris, i que aquestos els introdueixin a guifi.net a l'hora de crear el firmware.
Per tant, l'admin d'un servidor OpenVPN localitzat dins de guifi.net, pot enviar els certificats a un usuari, i aquest introduir-los al ni1solclic. Per a fer-ho l'admin ha de tenir una copia local del ni1solclic, i ha de crear els certificats del servidor tal com he explicat abans. Despres ha d'anar a:
niunsolclic/gen-cert
Allà editar openvpn.conf i canviar el “remote†perque apunti al seu servidor openvpn, el mateix amb S60ntp perque apunti a un servidor de rellotge. Ara, per exemple, es poden generar 10 certificats per aquell servidor OpenVPN amb:
php gen-cert.php 5
Els certificats estan en forma de fitxers comprimits a niunsolclic/gen-cert. Cada fitxer comprimit inclou els certificats, la configuració del client OpenVPN i la del rellotge.
Editem /var/ni1solclic/html/index.php i posem:
$fes_vpn = 2;
En el formulari ens demana un fitxer de certificats, li posem qualsevol dels que hem creat i tenim, de nou, un firmware que al instal·lar-se queda configurat, amb client OpenVPN i tot.
La idea es integrar-lo de manera que tots els paràmetres de la xarxa publica els passi directament l'aplicació de guifi.net. S'hauria d'oferir la possibilitat al usuari que abans de generar el firmware pogués variar la configuració de la LAN i el password. En cas de que tingues un fitxer amb certificats que li hagues enviat algun admin d'un servidor OpenVPN, també l'hauria de poder introduir.
Com ho veieu?
Hem va costar de posar en funcionament un servidor de gràfiques de guifi, detallo els pasos per si algu altre ho ha de fer. Aquesta es la meva “recepta”, la podeu variar :-) Espero no deixar-me res. En primer lloc anem a http://guifi.net/ca/node/add/guifi-service i creem un servidor de gràfiques (SNP Graph Server). Guardem la ID del servidor de gràfiques, en el meu cas era el 9039. Hem d'anar a tots els trastos i nodes que faran servir aquest servidor i seleccionar-lo en de la llista de servidors de gràfiques. En el meu cas ho vaig fer en un Debian 4.0 (Etch). Apart del php5 i apache2 que ja els tenia ,vaig tenir que instalar:
apt-get install rrdtool librrdp-perl librrds-perl mrtg mrtg-rrd subversion php5-cli
Despres heu d'obtenir el snpservices del svn de guifi. Heu d'estar registrats a lafarga.cat perque us demanara nom d'usuari i password:
cd /var/www svn checkout https://svn.projectes.lafarga.cat/svn/guifi/snpservices
Es crea una carpeta a /var/www/snpservices on hi ha tot el que cal. Ara feu que l'apache2 apunti a la carpeta graphs:
Alias /guifigraphs /var/www/snpservices/graphs
En el meu cas al crear el servidor de gràfiques a la web de guifi.net li vaig que la url per accedir a les grafiques era http://santafe1.dyndns.org:2000/guifigraphs/graphs.php. Ara cal donar permisos d'escriptura per a tothom del subdirectir tmp, crear un config.php i un parell de subdirs per al rrdtool:
chmod a+rw /var/www/snpservices/tmp cp /var/www/snpservices/common/config.php.template /var/www/snpservices/common/config.php mkdir /var/www/snpservices/rrdb mkdir /var/www/snpservices/rrimg
Configurem amb el nostre editor preferit el fitxer de configuració /var/www/snpservices/common/config.php. Canviem els següents paràmetres, ajustant-los a la nostres dades, en comptes de 9039 heu de posar la ID del vostre servidor de gràfiques:
$snp_path='/var/www/html/snpservices'; $SNPGraphServerId = 9039; $MRTGConfigSource='http://www.guifi.net/snpservices/graphs/cnml2mrtgcsv.php?server=9039'; $CNMLSource='http://www.guifi.net/snpservices/common/qnodes.php?nodes=%s'; $rrddb_path='/var/www/snpservices/rrdb/'; $rrdimg_path='/var/www/snpservices/rrimg/';
Ara nomes cal fer un parell d'entrades al crontab. La primer perque cada mitja hora descarregui de guifi.net la llista de trastos dels que ha de fer grafiques, i el segon perque cada 5 minuts reculli les dades de tots els trastos:
crontab -e */30 * * * * cd /var/www/snpservices/graphs; php mrtgcsv2mrtgcfg.php */5 * * * * env LANG=c /usr/bin/mrtg /var/www/snpservices/data/mrtg.cfg --lock-file /var/lock/mrtg/guifi_l
Per no tenir que esperar, forceu la primera descarrega dels trastos a graficar des de guifi.net executant:
cd /var/www/snpservices/graphs; php mrtgcsv2mrtgcfg.php
I ja esta, espero que tingueu mes sort que jo i us vagi tot a la primera.
El Telecentre SBG organitza dins la seva oferta educativa, un curs sobreprogramari lliure amb la distribució d'Ubuntu. El curs aprofundirà enalguns aspectes del programari lliure com ara gestió de xarxes,repositoris d'actualització, etc. També podeu consultar la programaciód'altres cursos al web del telecentre (www.telecentre.sbg.cat)
El curs tindrà una durada de 20 hores i es durà a terme els dissabtes de9'30 a 13'30 i a partir del 12 de maig. La inscripció és gratu
Tot i que en els comentaris de http://guifi.net/ca/node/7029 s'explica un mètode fàcil i efectiu per a mostrar banners de cortesia als clients oportunistes dels APs mitjançant DNAT en el firewall de l'AP, es pot fer també mitjançant el hotspot (portal captiu) que inclou el RouterOS dels Mikrotiks.
Amb un hotspot descafeinat tindrem:
En anteriors entrades hem configurat el servidor de correu Postfix per tal que gestionés les adreces de correu mitjançant un directori LDAP. Això permet tenir un sistema d'usuaris centralitzat. Tanmateix aquest sistema no està correctament configurat per a quedar públic a Internet, doncs seria un objectiu directe de qui vol aprofitar per enviar correu brossa mitjançant el nostre servidor.
Així, el següent pas serà impedir que es pugui utilitzar el nostre servidor com a origen de correu fraudulent.