Feina, feina, feina…
ah! i més feina… si ens queda una estona lliure recorda: feina! ja tinc ganes de que arribi el pont, ah si!!! que pont vol dir fer festa… però jo? FEINA! com sabeu això normalment no acaba impedint que escrigui al blog però aquests dies els nivells ja m’estan superant com a persona. Tot i amb això tinc milers de temes que esperen sortir… així que paciència. El primer que em sap greu perdrem és la trobada de linuxeros penedesencs que es fa aquest cap de setmana :'(
M’hagués agradat poder penjar el cartell de la trobada però no me l’han enviat i m’he quedat amb les ganes de penjar-lo/tenir-lo… però bé segur que tindrem oportunitat de veure’l per algún dels blogs dels companys ‘pingüineros’. Apa que us vagi molt bé i espero veuren molta informació al forum.
Per cert, canviant de tema tinc pendent penjar el nou mapa de la xarxa sense fils del poble, ja que tenim dos nous punts, la cosa no para de creixer tot i que ara almenys per la meva part penso parar el creixement i intentar actualitzar la informació de la nostre xarxa a guifi.net.
Una altre novetat important a comentar i pendent encara, fins hi tot de provar, és que m’ha arribat la comanda de material de VoIP que s’ha fet des de guifi a xina. Jo m’he firat un tlf VoIP, que encara no en tenia cap de meu, un ATA i una altre targeta FXO.
Parlant de VoIP aquest dissabte he de montar una targeta de digium amb 4 ports FXO, per treballar junt amb la QuadBRI que us vaig comentar que havia montat. Tinc unes ganes boges de liar-me amb el tema.
nat traversal
A vegades tampoc em funcionen les coses a mi, a què ve aquest comentari? doncs resulta que hi ha més d’un amic que em diu que li dona la sensació que sempre me’n surto de tot doncs bé. Aquí us parlo d’una eina que no he aconseguit que em funcionés tinc diverses teories del perquè però la veritat és que com que de moment no la necessito m’he cansat de seguir provant, o sigui, que de moment he de dir que no me n’he sortit a usar-la.
L’eina té molt bona pinta es diu nat-traversal serveix per connectar a ports de màquines internes que estan darrera de sistemes enmascarats (darrera de NAT). La web és molt explicativa i útil.
nat-traverse establishes connections between nodes which are behind NAT gateways, i.e. hosts which do not have public IP addresses. Additionally, you can setup a small VPN by using pppd on top of nat-traverse. nat-traverse does not need an external server on the Internet, and it isn’t necessary to reconfigure the involved NAT gateways, either. nat-traverse works out-of-the-box.
Tot i amb això trobo súper interessant la tècnica que usent fer entrar a través del NAT fins al PC que teoricament no té els ports públics:
1.Firstly, nat-traverse on host left sends garbage UDP packets to the NAT gateway of right. These packets are, of course, discarded by the firewall.
2.Then right’s nat-traverse sends garbage UDP packets to the NAT gateway of left. These packets are not discarded, as left’s NAT gateway thinks these packets are replies to the packets sent in step 1!
3.left’s nat-traverse continues to send garbage packets to right’s NAT gateway. These packets are now not dropped either, as the NAT gateway thinks the packets are replies to the packets sent in step 2.
4.Finally, both hosts send an acknowledgement packet to signal readiness. When these packets are received, the connection is established and nat-traverse can either relay STDIN to the socket or execute a program.
Jo concretament el que he provat és de redirigir un port amb el netcat, però el problema que crec que tinc és que jo no faig un ‘masquerade’ al firewall que tinc davant, sinó un ‘SNAT’ i per si fos poc abans d’arribar al firewall passo per un router intern, així doncs segur que hi ha alguna cosa pel camí que m’està estorbant, però com comentava abans com que de moment no necessito l’eina ja m’he cansat d’insisitir. Aquí queda el tema fins que realment em fassi falta o algú s’hi posi i em digui què tal.
sslproxy
L’sslproxy és una petita eina d’aquelles que van de PM… què fa doncs el nom ho diu tot:
SSL Proxy server listens on a TCP port, accepts SSL connections, and forwards them to another local or remote TCP port. For example, it is possible to create an HTTPS server if you have an HTTP server and you run an SSL Proxy server on port 443 which forwards the connections to port 80. SSL Proxy’s design makes it as secure as possible and still perform well.
Un petit exemple on es pot veure com funciona. Llencem una petició HTTPs des del nostre navegador contra l’sslproxy i aquest re-enviarà la petició a un servidor TCP (netcat) i podrem veure la browser fingerprint del nostre navegador. O dit més senzill, la petició HTTP del nostre navegador, sense la S. O sigui, sense l’SSL.
Posem el servidor TCP (netcat) a escoltar el port 8000:
nc -l p 8000
Llencem el sslproxy amb el seu certificat SSL corresponent:
ssl_proxy -s 443 -d -c 8000 -C server-cert.pem -K server-key.pem
Anem al navegador i la barra de direcció posem:
https://localhost
Si mirem el nc podrem veure que hi ha la petició HTTP que llençavem:
GET / HTTP/1.0 Host: localhost Accept: text/html, text/plain, application/vnd.sun.xml.writer, application/vnd.sun.xml.writer.global, application/vnd.stardivision.writer, application/vnd.stardivision.writer-global, application/x-starwriter, application/vnd.sun.xml.writer.template Accept: application/msword, application/vnd.sun.xml.calc, application/vnd.stardivision.calc, application/x-starcalc, application/vnd.sun.xml.calc.template, application/excel, application/msexcel, application/vnd.ms-excel, application/x-msexcel Accept: application/vnd.sun.xml.impress, application/vnd.stardivision.impress, application/vnd.stardivision.impress-packed, application/x-starimpress, application/vnd.sun.xml.impress.template, application/powerpoint, application/mspowerpoint Accept: application/vnd.ms-powerpoint, application/x-mspowerpoint, application/vnd.sun.xml.draw, application/vnd.stardivision.draw, application/x-stardraw, application/vnd.sun.xml.draw.template, application/vnd.sun.xml.math Accept: application/vnd.stardivision.math, application/x-starmath, text/sgml, video/mpeg, image/jpeg, image/tiff, image/x-rgb, image/png, image/x-xbitmap, image/x-xbm, image/gif, application/postscript, */*;q=0.01 Accept-Encoding: gzip, compress Accept-Language: en User-Agent: Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7e
L’exemple és una mica xorra a nivell funcional, però crec que a nivell conceptual és molt explicit de quina és la funcionalitat que ens ofereix el sslproxy. Sobretot si hem programat una aplicació que no té suport SSL i li volem afegir seria tan senzill com aplicar el que explico aquí.
OpenVPN roadwarrior over PROXY
Com ja sabeu fa uns dies em vaig montar un sistema per poder anar pel món amb el portàtil i connectar-me a la xarxa interna de casa, des de qualsevol lloc. Doncs bé hi ha llocs on no tenim una sortida a internet sinó que aquesta és a través d’un proxy, a vegades fins hi tot autenticat. Fins hi tot ens podem trobar en que no tenim ni DNS a la xarxa en la que estem sinó que tot es fa a través de l’HTTP PROXY.
Doncs bé quan ens ho posen tan difícil també podem usar l’OpenVPN per connectar a casa i fins hi tot navegar per internet a través de la xarxa de casa disfrutant de tots els serveis de la xarxa i no amb els ports ‘capats’ com ens obliga el proxy/firewall de torn. L’únic que cal és modificar la configuració del client d’OpenVPN per poder sortir a través del proxy de torn contra el port del servidor de l’OpenVPN que tenim a casa.
Al document on explicava com connectar-nos per VPN a casa, sent nosaltres roadwarriors, vaig posar el servidor al port 443/TCP. Doncs ara veieu el motiu, la idea és que si el servidor esta en aquest port el servidor proxy ens deixa passar a través seu per connectar-hi pensant que on connecteu és una web segura (HTTPs), al accedir a un servei xifrat el proxy/firewall no poden inspeccionar els paquets que passen a través seu i podem establir la VPN usant com a protcol de transport el SSL.
A continuació encomptes d’ensenyar-vos una connexió real amb un proxy d’una empresa el que faig és usar un proxy públic dels que hi ha per poder navegar de forma anònima per internet. Si en voleu una llista la podeu trobar a: llista pública de proxies. Concretament per la configuració de prova jo he usat el 194.80.193.161 pel port 8082. Així doncs al fitxer de configuració del client he afegit:
http-proxy 194.80.193.161 8082
Per disimular encara més el rastre de la vostre VPN podeu usar les següents comandes i el firewall en qüestió, ni tan sols olorarà que monteu una VPN:
http-proxy-option VERSION 1.1 http-proxy-option AGENT "compatible; MSIE 6.0; Windows NT 5.1"
Molt senzill,oi? si el proxy és autenticat podeu consultar el man openvpn les comandes per enviar l’usuari i el password. A mi de moment no m’ha calgut.
Apa doncs ja poden anar posant servidors proxy i firewalls que nosaltres ens les continuarem empescant per sortir a internet com deu mana i no pas reduint internet al servei de web. Que tot i ser dels més usats sempre és limitadíssim.
TinyGentoo i Abyss WebServer
TinyGentoo: Un petit howto de com ens podem montar una gentoo ben petitona tan pels nostres projectes embeded com per posar dins d’un DOM o un pendrive.
Parlant de coses petites no em podia oblidar parlar del Abyss Web Server un petit servidor web que vaig descobrir fa molt de temps. Malgrat podria servir per molts petits sistemes de producció el trobo l’eina perfecte per ’embedir’ dins d’un dispositiu mòbil o petit.
Algunes de les seves funcions són més que interessants com per exemple els S.O. soportats: Windows, MacOS X, Linux i FreeBSD. Suporta HTTP/1.1 i a més pot generar continguts amb temps d’execusió amb múltiples sistemes: CGI/1.1 scripts, ISAPI extensions, Server Side Includes (SSI). O sigui, que si voleu també hi podeu instal·lar un motor de PHP. Suporta pàgines d’error personalitzades, protecció per password, control d’accés per IP, anti-leeching i control d’ampla de banda. També diposa d’una interficie via web per configurar el servidor i moltíssimes més coses.
Ara bé lo dolent, la versió més completa és de pagament la versió X2, però la versió X1 és gratuïta i jo diria que és més que suficient per moltíssims projectes. Per cert, per instal·la-lo és tan senzill com descarregar-lo, descomprimir-lo i executar-lo. Connectem al port 9999 a través del navegador: http://localhost:9999 i a configurar-lo via web. Jo diria que no esta disponible el codi font :'(
Un parell de servers web molt lleugers també són:
DOM: DiskOnModule
Avui he descobert aquesta petita meravella de la tecnologia, resulta que hi ha uns discs flash (Fast electronic memory) que disposen directament d’interficie IDE tan de 40pins com de 44pins (IDE portàtil, amb 4pins d’alimentació inclosos). Doncs lo bo del tema és que es poden endollar directament a la interficie IDE de la placa base com un disc ATA normal. Guapo,eh?!
Els preus són una mica més car que les memòries flash, perquè ens en fem una idea per uns 20€ pots tenir uns 128Mb. Però amb aquest tipus de discs ens assegurem que podem arrencar l’ordinador amb el sistema operatiu que més ens agradi: Linux, Unix, Windows 98, Win CE, Embedded XP, QNX, RTOS etc.
De moment la màxima capacitat d’aquest tipus de discs que he vist és 2Gb però per montar un sistema ’embedit’ amb 128 o 256Mb normalment vas sobrat i si tenim en compte que podem instal·lar un GNAP (Gentoo Network APpliance) que ocupa uns 13Mb encara ens en sobren un munt.
A més de les interficies IDE, també podreu trobar discs amb interficie SATA, SCSI i USB (directes a pinatge de placa no connectors tipus A o B). Recordeu que al no tenir elements mòbils no hi ha temps de latència i a més tampoc hi ha problemes de cops o caigudes del dispositiu. Ideal per aplicacions portatils i amb entorns hostils. A més el rang de temperatures de treball és quasi de -45º a 90º, brutal!
Nanos m’he enamorat… ja tinc ganes de poder provar-los. El lloc on més bé de preu els he trobat és en un distribuidor alemany: Spectra Computersysteme GmbH, a cablematic els he trobat caríssims, ja que els tenen d’una marca americana molt cara. Si algú sap on trobar-los a un preu decent que no sigui tan lluny com alemanya, que avisi.
Curiositat: mira si sóc encantat que quan vaig escriure l’article sobre GNAP la fotografia que vaig enganxar tenia en un racó una foto del DOM que acabo de penjar i ni tan sols hem vaig preguntar què era…