Category: Networking and Internet

ROM-o-matic.net generador dinàmic de ROMs per Etherboot

Reading time: 1 – 2 minutes

Segons dicta la llei de Murphy, sempre que necessitem una targeta de xarxa (NIC) que disposi d’una ROM amb suport PXE (Preboot eXecution Environment) aquesta targeta de xarxa en qüestió no diposarà del suport. Per tal de solucionar aquest problema es poden fer múltiples invents: canviar la ROM que porta la targeta de xarxa, canviar la BIOS del PC per una linBIOS, instal·lar el syslinux (pxelinux) en un disquet, cd, unitat flash usb, etc, etc.

Concretament aquí vull comentar com podem generar aquesta ROM que ens fa falta amb ROM-o-matic i després la podem posar en el medi físic que ens interessi:

  • Floppy bootable ROM Image (.zdsk)
  • Binary ROM Image(.zrom)
  • ISO bootable image without legacy floppy emulation (.iso)
  • ISO bootable image with legacy floppy emulation (.liso)
  • LILO/GRUB/SYSLINUX loadable kernel format (.zlilo)
  • PXE bootstrap loader format ROM Image (.zpxe)
  • DOS Executable ROM Image (.com)
  • HD (experimental) Hard Disk Partition Image (.zhd)
  • ELF (Generic) ROM Image (.elf)
  • ELF (LinuxBIOS) ROM Image (.elf)

Per tots aquests sistemes ens genera la ROM, realment un ventall de possibilitats brutals que ens permeten disfrutar del PXE tinguem el que tinguem.

Problema Sincronització NTPd (openntpd)

Reading time: 2 – 2 minutes

Fa unes setmanes ús vaig explicar que havia posat dos dels meus servidors NTP (Network Time Protocol) al pool d’espanya. Doncs bé hi ha un servidor el 83.175.213.76 que s’em tenia greus problemes per mantenir el sincronis-me, ja que l’openntp si té un ‘desfasse’ massa gran no et sincronitza la màquina i per tant el meu score dins del pool és un desastre. Per tal de solucionar el problema ara llenço el dimoni ntpd amb el paràmetre -s. Si useu gentoo l’únic que heu de fer és afegir el paràmetre a:

# cat /etc/conf.d/ntpd
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/openntpd/files/openntpd.conf.d,v 1.2 2004/11/22 15:27:51 vapier Exp $
NTPD_HOME=/var/empty
NTPD_OPTS="-s"

Aquí podeu veure les perdues d’score que havia acumulat el servidor:

ntp.png

Update:Des del canvi comentat podeu verure l’evolució:

ntp2.png

Update II he trobat aquesta ‘deducció’ que vaig fer jo solet de casualitat en un HOWTO d’OpenNTPD per Gentoo.

Gentoo Trick: module-rebuild

Reading time: 2 – 2 minutes

El pof en el seu dia i la GWN (Gentoo Weekly News) en una de les seves últimes edicions ens han parlat algún cop d’aquesta eina tan útil i que mai recordo com es diu exactament. A més sempre és quan més la necessites, o sigui, quan fas un update de kernel. Serveix per algo tan útil com recompilar els mòduls que no són natius del kernel per la nova versió de kernel que ens acabem d’instal·lar, estalviant-nos el mal moment que hem passat tots de necessitar just el mòdul que controla el dispositiu que no estava suportat de forma genèrica pel kernel i just en aquell moment no tenim el mòdul compilat.

Suppose you’ve just booted into a freshly updated kernel. First of all,
check which packages are using modules that haven’t been built with the
new sources yet:

module-rebuild list

and then you can rebuild them all by simply going:

module-rebuild rebuild

Per disposar del module-rebuild feu un emerge a:

*  sys-kernel/module-rebuild
      Latest version available: 0.5
      Latest version installed: 0.5
      Size of downloaded files: 0 kB
      Homepage:    http://www.gentoo.org/
      Description: A utility to rebuild any kernel modules which you have installed.
      License:     GPL-2

UPDATE 5/6/2006: fixeu-vos al fer el list que no sempre hi ha tots els paquetes que instal·len moduls a la vostre llista, per tant, us recomano que afegiu els paquets que tenen mòduls amb l’opció add de la companda module-rebuild a partir de llavors ja es recordarà ell d’aquesta dependencia en el rebuild.

InterScan Messaging de TrendMicro problematic amb kernel 2.4 i ECN

Reading time: 2 – 2 minutes

Tenia un problema amb un servidor de correu SMTP al qual no podia accedir des del servidor de correu de la feina. Encanvi des d’altres IPs del nostre mateix rang si que tenia accés al port 25/tcp d’aquest servidor remot. Doncs resulta que el servidor en qüestió té instal·lat un InterScan Messaging Security Suite de la casa TrendMicro i al servidor de correu de l’empresa jo hi tenia activat el ECN (Explicit Congestion Notification). El problema esta en que quan s’envia un “SYN” en el handshake TCP entre els nostres servidors el paquet TCP té activats dos flags més a part del ‘SYN’, el ‘W’ i el ‘E’.

Aquí podeu veure el que envia el meu servidor amb ECN, flags SWE:

14:12:31.257939 IP 1.1.1.1.44435 > 2.2.2.2.25: SWE 2986809236:2986809236(0) win 5840 <mss 1460,sackOK,timestamp 338497211 0,nop,wscale 0>

El que envia un altre servidor que no té ECN, flag S:

14:13:02.225358 IP 1.1.1.2.37876 > 2.2.2.2.25: S 3871099907:3871099907(0) win 5840 <mss 1460,sackOK,timestamp 3419720577 0,nop,wscale 2>

Per comprovar si realment tenim el ECN activat al kernel:

# cat /proc/sys/net/ipv4/tcp_ecn

Per desactivar el ECN del nostre kernel:

echo 0 > /proc/sys/net/ipv4/tcp_ecn

Només fent això la cosa ja ha començat a funcionar perfectament. Així doncs, dubto que mai a algú li passi algo tan enravassat com el que m’acaba de pasar però aquí queda explicat.

PAN IP sobre bluetooth amb Gentoo/Linux

Reading time: 2 – 3 minutes

Per llençar una xarxa IP sobre de bluetooth en un linux, concretament amb una gentoo linux. Doncs bé, el més important és que li donem suport al kernel del nostre sistema bluetooth i després hem de tenir el paquet: net-wireless/bluez-pan i el mòdul bnep carregat.

Missatges del kernel després de carregar el mòdul (dmesg):

Bluetooth: BNEP (Ethernet Emulation) ver 1.2
Bluetooth: BNEP filters: protocol multicast

Un cop tenim això llest dels dos PCs que volem connectar amb la xarxa PAN (Personal Area Network), el que hem fer és decidir qui farà de NAP (master – Network Access Point) i qui de PANU (slave – PAN user).

Configuració del servidor:

# pand -n --listen --role NAP
pand[24538]: Bluetooth PAN daemon version 2.19
pand[24539]: New connection from yy:yy:yy:yy:yy:yy bnep0

Configuració del client:

# pand -n --connect xx:xx:xx:xx:xx:xx
pand[15986]: PAN daemon ver 1.1
pand[15986]: Connecting to xx:xx:xx:xx:xx:xx
pand[15986]: bnep0 connected

En el client s’ha de posar la MAC del dispositiu BT del servidor perquè aquest es connecti al servidor. Un cop aquest tràmit funcioni podrem comprobar que ja tenim un nou dispositiu de xarxa el bnep0. Ara només cal assignar-li una IP a cada dispositiu el del servidor i del client i llestos. Ja tenim la xarxa PAN funcionant amb protocol IP.

Observeu que uso el paràmetre -n perquè no es llenci el pand com a dimoni, sinó com un programa interactiu així podem veure el debug a la mateixa línia de comandes. Un cop ho hagueu provat és bona idea tenir-lo com a dimoni així ja no ens hem de preocupar de que estigui enllaçat tota l’estona ho farà el propi dimoni.

Si voleu més detalls de com fer-ho, m’he basat amb el document HOWTO-PAN (local). Només afegir que els index de transferència a un metre un PC de l’altre eren força baixos d’uns 200kbps i molt irregulars, amb puntes d’uns 800kbps. L’allargada màxima aconseguida amb parets ha estat d’uns 10m, però amb un ample de banda ridicul.

Cisco 837 VPN LAN-to-LAN i VPN Client (v4.0.x)

Reading time: 2 – 3 minutes

Aquesta tarda he configurat dos Cisco 837 per dos clients, un per fer un enllaç LAN2LAN entre Alacant i Vic, i un altre per fer enllaçar una oficina amb els seus usuaris en iterància, que connectaran amb VPNClient des de qualsevol lloc. Doncs bé no faré el típic mini-manual o cookbook per explicar com ho he fet. Ja que Cisco si algo té ben parit és la documentació tècnica que es pot obtenir a través del CCO (Cisco Connection Online). També s’ha de dir que si no teniu uns coneixements mínims e Cisco o un CCNA, almenys, no és tasca fàcil barallar-se de bones a primeres amb la CLI de Cisco.

cisco837.jpg

Pels que no conegueu els routers 837 de Cisco, són els que últimament més es monten ja que són routers ADSL i amb una gran diversitat de IOS per instal·lar, a més suporten moltes funcions de seguretat: VPNs, firewall, ssh, etc. Doncs bé a continuació us poso els links del CCO d’on he tret la informació per configurar el router i al costat un link amb el pdf en local, per la gent que no tingui accés al CCO de Cisco.

Feina, feina, feina…

Reading time: 2 – 3 minutes

tux.png

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

Reading time: 2 – 4 minutes

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

Reading time: 2 – 4 minutes

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í.

Scroll to Top