El teu blog de Linux en català

Iptables és un potent mètode tallafocs per a GNU/Linux. De fet, és més que per a Linux; simplement, és, ja que forma part intrínseca del nucli 2.6. Bàsicament, és una utilitat de l’espai de l’usuari que, per mitjà d’ordres que generalment s’executen seqüencialment en un o diversos scripts del bash, ens permet crear un mur IP infranquejable i usar eines d’enrutament. Era anomenat ipchains per a nuclis iguals o anteriors a la sèrie 2.4. Les ordres d’iptables són sovint creades per frontends com ara el Shorewall, que l’únic que fan és embellir la interfície per a crear l’script que s’executarà. Com sempre dic: si afrontem els problemes des de la base segur que en sortirem molt més satisfets.

Hi ha bastanta literatura sobre el tema encarada a configuracions complexes, com és el cas de passarel·les per a subxarxes DMZ o tallafocs per a topologies de xarxa complicades. Jo em limitaré a explicar com crear un tallafocs d’interfície única (inalàmbrica en aquest exemple concret) per a l’usuari mig i que està pensat per a permetre les connexions de client típiques i denegar tota la resta, aquelles que podrien esdevenir insegures si serveis que no controlem hi escolten.

Vet aquí l’script:

#!/bin/sh
# TALLAFOCS SENZILL EN IPTABLES
#
echo "Executant allafocs en iptables"
#
echo "Esborrant normativa"
#
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
#
echo "Establint politica de denegacio per defecte"
#
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#
echo "Establint normativa general"
#
UNIVERS="0.0.0.0/0"
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#
iptables -A INPUT -i wlan0 -s $UNIVERS -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# FTP (Passiu, comanda passive via prompt)
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp -m tcp --dport 20:21 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
#
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p udp --dport 25 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p tcp --dport 443 -j ACCEPT
#
iptables -A OUTPUT -o wlan0 -d $UNIVERS -p icmp --icmp-type echo-request -j ACCEPT

En primer lloc, diem a iptables que esborri qualsevol regla preexistent. La opció -P defineix la política per defecte del tallafocs: per a les cadenes INPUT i OUTPUT (connexions d’entrada i sortida respectivament) es denega tot. Es defineix una variable amb l’adreça IP comodí (0.0.0.0/0), que vol dir tothom.

Les comandes -A afegeixen (APPEND) regles seqüencialment al tallafocs. Les comandes -A van afegint les excepcions que permetem partint del fet que ho hem denegat TOT en un principi. També podriem haver-ho acceptat tot per defecte i, en acabat, anar restringint el necessari, però és menys segur.

Per començar, permetem a la interfície (-i) loopback entrar i sortir (permetem parlar amb nosaltres mateixos, vaja), i ho fem saltant (-j) a l’estat ACCEPT per les cadenes INPUT i OUTPUT.

Aleshores, per a la interfície inalàmbrica (aquí, wlan0) permetem totes les connexions entrants de qualsevol origen (-i wlan0, -s $UNIVERS) que derivin d’una connexió sortint preexistent. És a dir, que tota connexió que no haguem començat nosaltres no té entrada. Ho fem amb –state, i força aquí sockets establerts (ESTABLISHED) i/o relacionats (RELATED).

Finalment, diem a quins ports de destí pot connectar-se la nostra màquina. Cadena OUTPUT, qualsevol destinació (-d $UNIVERS), connexió nova (–state NEW, […]), ja que aquesta sí que la creem nosaltres, i, el més important, el protocol de transport (UDP o TCP) i el port del servei a destinació. Així, permetem connexions als ports de destí (–dport) associats als serveis FTP (passiu), SSH, SMTP, DNS, HTTP i HTTPS. També permetem l’ICMP, protocol de missatges de control, pel cas del ping sortint.

Per a acabar, salveu l’script i dieu a l’ordinador que l’executi en l’engegada, després de la configuració de la xarxa inalàmbrica, al final del segon runlevel, amb un enllaç simbòlic:

cd /etc/rc2.d
ln -s /cami/a/script.sh S95tallafocs.sh

Si no teniu gaires coneixements en el funcionament d’Internet, el que he explicat és infumable, ho sé. He tractat de simplificar-ho. Comenteu si us interessa.

Si voleu anar més enllà en els la definició de tallafocs podeu mirar aquest tutorial, que està molt bé.

Voldria deixar constància de quatre ajustos fets en instal·lar la branca en proves del Debian, nom en clau lenny, en un ordinador portàtil força antic, una cafetera Acer de la sèrie Aspire, número 1660 (Mononucli P4@2,8GHz, 512MB, sense cap suport inalàmbric de sèrie).

El lenny ens vé per defecte amb el nucli 2.6.28. Si no compileu el nucli ajustant-lo a les vostres necessitats (vegeu menuconfig), haureu de deshabilitar l’APIC (Advanced Programmable Interrupt Controller) en l’engegada, ja que el xipset de control de les interrupcions d’aquest ordinador no és trobat per l’APIC:

MP-BIOS BUG 8254 timer not connected

Solució: als paràmetres d’entrada del nucli, substituiu

kernel  /vmlinuz-2.6.26-1-686 root=/dev/hda4 ro quiet

per

kernel  /vmlinuz-2.6.26-1-686 root=/dev/hda4 ro quiet noapic

D’aquesta manera aconseguireu reduïr molt el temps d’engegada. Atenció: en segons quines arquitectures derivades d’x86 això pot provocar penjades durant l’engegada. Us recomano que proveu primer de reiniciar l’ordinador i editar temporalment l’entrada del GRUB (pitjeu la tecla e sobre l’entrada principal del menú dues vegades per a editar-la, i afegiu-hi noapic al final).

A l’inici del primer runlevel, aquest nucli s’adona del fabricant del l’ordinador i intenta engegar el mòdul acer-wmi per a networking. Però com que no troba res endollat, perd encara més temps

acer-wmi: No or unsupported WMI interface, unable to load

Afegiu aquest mòdul a la llista negra:

echo 'blacklist acer-wmi' >> /etc/modprobe.d/blacklist

Una altra cosa que us recomano és que useu una partició ext2 separada per al punt de muntatge de /boot. Els sistemes de fitxers que no fan journaling van lleugerament més ràpid en execució, ja que no registren temps en memòria, i són menys corruptibles en petades del sistema. Li he donat 32MB.

I arribem a un nou dissabte, després d’una setmana on les principals protagonistes han estat les distribucions GNU/Linux, sobretot aquelles a les quals els queda poc per arribar a la versió final…

  • L’equip d’OpenSUSE ha presentat la cinquena beta de la propera versió 11, que eixirà el 18 de desembre (descarregueu-la!). També s’ha presentat la primera RC de Debian 5.0, que també es pot descarregar des d’ara mateix. També caldria parlar de la publicació d’Ultimate Edition, una distro basada en Ubuntu Intrepid i optimitzada per a processadors de 64bits (descarregue-la!). Per últim, Linux Mint també ha presentat la primera RC de la versió 6 i ja es pot descarregar.
  • Mozilla ha presentat dues noves revisions de Firefox 3 i Firefox 2. Concretament les versions són la 3.0.4 i 2.0.0.18. Els canvis són bàsicament correccions. No sé vosaltres, però conec a molta gent que des de linux no pot accedir a hotmail des del firefox.
  • AMD i NVIDIA han presentat nous controladors per a plataformes GNU/Linux per a les seues targetes gràfiques. Concretament, s’ha publicat la versió 8.11 dels controladors ATI Catalyst per a GNU/Linux i la versió 177.82 per a les targetes NVIDIA.
  • Quant a navegadors, Opera ha presentat una nova versió basada en Qt4 (millorant així la integració a escriptoris KDE i el seu aspecte en general). Per altra part, sembla que Google per fi es posarà les piles amb el desenvolupament de Chrome per a GNU/Linux.
  • Aquesta setmana també s’han presentat noves versions de dos dels reproductors lliures més coneguts: el Banshee i el Songbird. Concretament, el Banshee ha presentat la versió 1.4 que com a principal novetat té el port per a MacOSX. Del Songbird s’ha publicat la segona RC de la versió final (així que no queda res!!).
  • Per acabar, i com a cosa curiosa, us deixem amb un article on es fa una revisió de la història dels sistemes UNIX. El que té d’interessant, entre d’altres coses, és el gràfic del final on es pot veure l’evolució dels sistemes UNIX (a l’igual que ja vam poder veure l’evolució dels sistemes Linux).

Lenny, la darrera versió de Debian, hauria d’haver estat publicat al setembre. Però l’equip Debian ha tingut un problema que no podia ignorar: el nombre d’errors crítics acumulats ha estat massa alt.

No poden estimar quan es podran solucionar tots aquests bugs i per tant, és impossible a hores d’ara planejar una data de publicació per a la versió final. Per això mateix, Debian demana l’ajuda de la comunitat.

El que demanen és “senzill” (és clar que els usuaris més novells haurien d’abstindre’s, de totes formes, això va dirigit als usuaris Debian en general). Si esteu amb la branca estable Etch, només demanen que feu una actualització a Lenny i comproveu que tot funciona bé.

Per passar-vos a Lenny:

1. Feu una còpia de seguretat dels vostres documents i demés coses importants.

2. Canvieu el vostre /etc/apt/sources.list (etch > lenny)

3. Executeu aptitude update per actualitzar i obtindre informació dels nous paquets

4. Instal·leu primer dpkg: aptitude install dpkg, això abans de fer el full-upgrade

5. Ara sí: aptitude full-upgrade

Una vegada fet això, podeu ajudar de diferents formes:

  • Si hi ha errors durant l’actualització (conflictes o el que siga), tracteu d’informar del paquet concret (si sabeu quin és) o de l’error general que us ha donat.
  • Podeu anar a la pàgina de bugs i anar pegant una ullada per veure si podeu ajudar en algun d’ells.
  • Instal·lar devscript (backport), us donarà informació sobre els bugs reportats sobre els paquets que teniu instal·lats al sistema
  • També podeu ajudar amb les traduccions

Així que ja sabeu…

L’equip desenvolupador de Debian ha anunciat la disponibilitat de la segona beta de Debian 5.0 que té el nom de Lenny.

Aquesta nova versió porta el nucli 2.6.24, GNOME 2.22, un atractiu instal·lador gràfic, suport complet per a particions xifrades i d’altres canvis. També cal remarcar que la versió del compilador per defecte serà gcc 4.3, ja hi ha suport per a Perl 2.5 a més que s’han passat a Perl 5.10 i XULRunner.

Aquesta és la branca testing que molts ja han pogut fer servir fins ara i que en poc temps es convertirà en la branca stable. Durant molt de temps el desenvolupament de Debian i la publicació de noves versions va ser molt lenta (sobretot amb la versió 3.0). Sembla que finalment l’equip va decidir accelerar una mica el ritme de publicació de noves versions tot mantenint el seu compromís d’estabilitat.

El resultat és Lenny, i ja es pot descarregar les diferents imatges de CD/DVD per a tot tipus d’arquitectures. Així us deixem les de 32 i 64bits x86.

Què ha passat amb Debian i OpenSSL? OpenSSL serveix, entre d’altres coses, per generar contrasenyes. Per això, és necessari que el programa sigui capaç de generar nombres aleatoris que difícilment es puguin preveure. Es tracta que sigui complicat que, aplicant algorismes i mètodes matemàtics, algú pugui descobrir la forma de trobar una contrasenya.

El que ha passat és que una de les eines que ajuda als programadors a programar (els depuradors o debuggers, permeten trobar errors) es queixava per aquesta línia de codi: MD_Update(&m,buf,j);. Per això, els encarregats del codi font d’OpenSSL la van eliminar. I, en eliminar aquesta línia, el que s’ha produït és que totes les claus generades des de setembre de 2006 poden ser descobertes per gent malintencionada, aprofitant l’existència d’aquest forat de seguretat per crear eines que els permetin fer-ho. De fet aquesta eina ja ha estat creada i s’ha demostrat molt eficaç.

Qui ho va eliminar va ser la persona que s’encarrega de fer el paquet per a Debian, no els programadors originals d’OpenSSL, i és per això que l’error només afecta a sistemes operatius Debian i derivats, entre ells Ubuntu. De tota manera, cal dir que el responsable de la catàstrofe va actuar amb les espatlles cobertes. I és que, abans d’eliminar la línia en qüestió, va preguntar als programadors d’OpenSSL què passaria si ho feia:

Kurt Roeckx (encarregat del paquet de Debian):

No tinc ni idea de com afectarà això realment a la generació aleatòria de nombres.

Ulf Möller (programador d’OpenSSL):

No afectarà massa. Si això ajuda a la depuració, estic a favor d’eliminar-la.

Aquesta conversa va tenir lloc el maig de 2006. El setembre de 2006, es publica a Debian el paquet OpenSSL amb la línia de marres ja eliminada. I no és fins la semana passada que Luciano Bello descobreix l’error, avisa a Debian i es publica l’alerta de seguretat i la notícia comença a passar de bloc en bloc. En parlen en Xavier Caballé o Kriptópolis, per exemple.

Queda demostrat: una sola línia de codi pot embolicar la troca de valent.

LCada vegada són més les veus que mostren certa desafecció per Ubuntu, sobretot per qüestions de programari privatiu que inclou i per algunes de sus polítiques de funcionament de les quals ja s’ha parlat en més d’una ocasió.

Personalment considere que no existeix distribució perfecta i que allò que hem de fer com a usuaris és forçar els canvis en la mesura del que ens siga possible. Ara bé, Ubuntu es troba en una posició privilegiada, captant la gran majoria de nous i antics usuaris de GNU/Linux i cal exigir més.

A part d’exigir, el que es pot fer és, sense cap mena de dubte, passar-se a una altra distribució més lliure (tot i que això de la llibertat és relatiu i poques distribucions se salven).

Una vegada explicat el rotllo, anem per feina. Com molts sabreu, Ubuntu és una distribució basada en Debian. Ara bé, Debian té diferents branques de desenvolupament i la que normalment és visible, és la versió stable, que es queda una mica endarrerida quant a versions de programes es refereix.

Altra branca és testing. Aquesta és la branca a la qual es basa Ubuntu i conté programari molt més actualitzat. Des d’on obtindre-la?. Des del següent enllaç:


Debian Testing

Aquesta imatge no conté un livecd, però sí permet la instal·lació amb un entorn gràfic prou senzill i intuïtiu. La instal·lació és bàsica, no instal·la ni OpenOffice.org, ni The Gimp, ni Synaptic. Tampoc, per descomptat, còdecs privatius.

Els repositoris per defecte no són complets, així que ací us deixem uns amb gairebé tot allò que pugueu necessitar. Només cal que editeu el fitxer /etc/apt/sources.list, esborreu tot allò que hi haja a dins, i afegiu totes aquestes línies (i deseu):
deb http://ftp.fi.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.fi.debian.org/debian/ testing main contrib non-free
deb http://ftp.fi.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.fi.debian.org/debian/ unstable main non-free contrib
deb http://http.us.debian.org/debian/ ../project/experimental main contrib
deb http://people.debian.org/~rdonald/nvidia/ unstable/i386/
deb http://people.debian.org/~rdonald/nvidia/ unstable/all/
deb http://people.debian.org/~rdonald/nvidia/ modules-unstable/i386/
deb http://people.debian.org/~rdonald/nvidia/ pre/i386/
deb http://idefix.eup.uva.es/soleup/ soleupix main games java openoffice
###MARILLAT
deb http://www.debian-multimedia.org testing main
deb http://www.debian-multimedia.org sid main
#deb http://www.debian-multimedia.org experimental main

Després, per descomptat, caldrà que actualitzeu els repositoris amb apt-get update. Per instal·lar tots els còdecs amb suport multimèdia:
sudo apt-get install gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse
sudo apt-get install gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-ffmpeg gstreamer0.10-pitfdll
sudo apt-get install ffmpeg lame faad sox mjpegtools w32codecs libdvdcss2

Amb això ja tindrem preparada la nostra Debian per anar a vore món. Cal dir que Ubuntu permet fer coses amb un clic. Amb Debian potser cal fer tres clics, no és complicat però cal una mica d’iniciativa i impuls propi. Si necessiteu ajuda, al fòrum us ajudarem encantats.

Companys, responent a les peticions que m’han arribat de diversos de vosaltres, em disposo a publicar suport referent a un dels temes que més m’interessa, l’estudi de la seguretat inalàmbrica.

Tal com diu l’Eric Steven Raymond, hacker del ram filosòfic a qui tots haurieu d’haver llegit, qualsevol problema no hauria de ser resolt dos cops. Doncs bé: això és el que vaig a fer. Resoldre’l un altre cop, amb el regust bo de fer-ho en lingua no franca.

Useu això amb responsabilitat.

Aquest post pretén ensenyar què cal i què cal fer per a comprovar la seguretat de les VOSTRES xarxes WiFi. No proveu això contra xarxes forànies si no teniu el consentiment del propietari.

Doncs, per a què serveix això?

La seguretat de les xarxes sense fils és un tema no genys menys important. Sovint oblidem que qualsevol altra persona, amb un domini mínim de quatre aplicacions i no necessàriament sota GNU/Linux, és capaç de llegir tots i cadascun dels octets que llancem a l’aire, un sofregit de contrasenyes i altres dades privades, esdevenint un perill per la nostra privacitat.

Aquest document pretén demostrar-ho i, també, anar una mica més enllà en la gestió de les xarxes locals.

Només dius Linux. Tinc Windows.

Obre una consola. Et xiularan les orelles perquè Microsoft sencer sabrà que estàs fent doble clic sobre cmd.exe. Aleshores escriu format C: i apreta intro.

Degut a el dèficit de compiladors lliures sota Windows i la indisposició total i absoluta d’aquesta plataforma tancada versus el programari lliure fa que existeixin menys implementacions de controladors susceptibles de fer el que es descriu a continuació. Pot ser més fàcil en la forma, tocar botonets vaja, però absurd en el fons: parteix d’una base no lliurement accessible.

Què necessitaré?

  • El derivat d’UNIX més popular, el GNU/Linux. Preferiblement, de la distro Debian GNU/Linux o qualsevol de les seves derivacions, com ara (Canonical Ltd.) Ubuntu. Aquest tutorial ha estat provat sobre Debian Etch.
  • Connexió a Internet.
  • Lògicament, una tarja de WiFi 802.11b/g.
  • Coneixements mínims en l’entorn GNU/Linux i de la gestió de xarxa.

1. Prepareu el vostre sistema per a compilar.

No passeu pena. Compilar és la manera natural d’instal·lar programes. Penseu que les BSD’s tenen una comanda que es diu make world.

Primer, instal·la les capçaleres del nucli. uname -r retorna la versió del nucli que useu

apt-get update
apt-get install linux-headers-`uname -r`

Fan falta llibreries extra per a compilar

apt-get install build-essential

Aquest últim paquet instal·la el GNU Compiler Collection, altrament dit GCC, i altres llibreries comunistes.

1.1 Instruccions de compilació per a principants.

Compilar és un món. Us hi introdueixo molt breument.

Si existeix, cal executar el fitxer configure. Aquest fitxer repassa tot l’arbre de dependències del sistema i informa del que manca. Acaba creant la Makefile, que depèn del nucli i la configuració: és per això que els programes que no restringeixen la configuració (el més comú) han de crear-la expressament.

./configure

Les següents comandes, respectivament, compilen el programa (executant la Makefile) i escampen els fitxers binaris, per defecte dins de la secció del sistema de fitxers /usr/local{/bin, /etc, …}, que està pensada per a programari optatiu de l’usuari.

make
make install

Ara el programa em qüestió ja és executable des de terminal i, si és gràfic, molt probablement us haurà aparegut a la llista del menú d’aplicacions.

2. Cerqueu el xipset del vostre NIC inalàmbric.

Cerca el xipset de la teva tarja inalàmbrica. Prova amb el Google i el model de l’aparell. El que importa a l’hora de controlar aquests aparells és únicament el seu xipset, que pot no tenir res a veure amb el fabricant de l’aparell en concret.

En el meu cas (uso una tarja PCI de Conceptronic model C54Ri) es tracta de l’RT61 de Ralink.

3. Cerqueu els drivers que us permetran injectar.

Després sabreu per què serveix això. Visiteu

Aircrack-ng. Aquesta és la plana del programa que usarem per a posar a prova les xarxes. Tenen una secció dedicada a maquinari compatible i tot de drivers GPL, implementats alguns d’ells per enginyeria inversa que, ves per on, superen els dels fabricants. Que n’aprenguin.

Hwagm.elhacker.net. A la secció de programari per a GNU/Linux hi ha bones referències. Si amb aquest tutorial no us en sortiu, sempre podeu recórrer a les Wifislax, que són distros preparades per a fer el que s’explica aquí i més. Però crec que és millor instal·lar-vos i configurar-vos les coses per a vosaltres mateixos, adés podent donar suport com ara jo, éssent capaços d’aprofundir molt més sense dependre de sistemes que ho donen mastegat.

És possible que, segons com, i més si useu un portàtil que ja porta la tarja integrada, tingueu un xipset pel qual no existeixin drivers lliures. En aquest cas, haureu d’obtenir una tarja. Investigueu.

4. Compileu el driver.

Obtindreu un tar de codi. Llegiu les instruccions de com instal·lar-lo, si és que en venen amb el paquet. En compilar els drivers, esdevenen mòduls, és a dir, afegitons del nucli monolític que fan una feina concreta. Podria ser que haguéssiu d’aplicar només algun pedaç (patch), però en aquest cas no m’hi he trobat.

Com a guia particular que us pot servir per a comandes generals, vaig escriure aquest how-to explicant la compilació del mòdul RT61. Tingueu en compte que en Ubuntu cal que desactiveu el mòdul que vé per defecte amb el sistema, si aquest detecta maquinari compatible. Vigileu amb això.

Si heu carregat el mòdul i us respon bé (mireu el how-to anterior si és necessari) ja podeu passar a la part interessant. Heu de ser capaços d’engegar la interfície

ifconfig wlan0 up

i de veure les xarxes que us envolten

iwlist wlan0 scan

5. Monitorització.

A partir d’aquí, usaré wlan0 com a nom de la interfície sense fils. Cal que canvieu això pel nom de la vostra.

En primer lloc, cal que identifiqueu la xarxa objectiu, que, no cal que m’ho digueu, segur que és la vostra, oi? Hi ha un programa molt bo que es diu Kismet. Descarregueu el tar de codi i compileu-lo.

Dependències de compilació (kismet-2007-10-R1): libncurses-dev, libpcap-dev.

Si no podeu compilar-lo:

apt-get install kismet

Una vegada instal·lat, cal que n’editeu el fitxer de configuració. Si l’heu instal·lat via repositori és /etc/kismet/kismet.conf. Si l’heu compilat amb les opcions del make per defecte, /usr/local/etc/kismet.conf.

Heu de canviar

#suiduser=your_user_here

(descomenteu-lo, també) i

source=none,none,addme

aquest últim en funció del vostre driver (en el meu cas, source=rt2500,wlan0,rt2500).

Cal dir que, en el cas que hagueu compilat, el programa desarà els fitxers amb els paquets capturats durant la monitorització i altres dades en la carpeta en què treballeu.

Una vegada en funcionament, toqueu la tecla s, i escolliu en quin ordre voleu llistar les vostres xarxes (ún dels més útils és llistar-les per força del senyal (signal strength) o quantitat de paquets emesos per unitat de temps (packet count). Per defecte, el Kismet anirà saltant pels 13 canals del WiFi, de manera que escombrarà totes les possibilitats.

Kismet llistant per <em>signal strength</em>

Kismet llistant per signal strength

Si, arribats a aquest punt, no veieu cap xarxa, no us preocupeu. Apropeu-vos al vostre AP. Si tampoc en veieu cap, assegureu-vos que estigui activada. Si heu de treballar lluny de l’AP, us recomano que us construïu una antena guia d’ones amb una llauna.

No entraré en aquest tema. Si us interessa, teniu molta informació a la xarxa.

6. Extracció de claus WEP. Aircrack-ng.

Una vegada hem identificat la nostra xarxa, procedirem a provar-ne la seva vulnerabilitat. Aircrack-ng (Aircrack Next Generation) és un conjunt de programes per a posar a prova sistemes inalàmbrics presumiblement segurs. Us recomano que compileu el tarball, ja que la versió del vostre repositori pot ser passada, i el desenvolupament avança ràpidament.

Dependències de compilació (aircrack-ng-1.0-beta2): libssl-dev.

I, si no podeu compilar-lo:

apt-get install aircrack-ng

De la mateixa manera que el Kismet, Aircrack-ng crearà tots els fitxers necessaris al directori en que treballeu.

Aircrack és útil per a provar la vulnerabilitat de claus WEP (Wired-Equivalent Privacy). Aquest xifrat, com diu el seu nom, és de seguretat equivalent a les xarxes amb fils xifrades amb operacions XOR amb clau estàtica i amb una fase d’autenticació molt senzilla. L’extracció de claus WPA és complicadíssima, per no dir impossible, necessita d’un llistat de possibles claus, i és quasi impossible autenticar-se a través del seu handshake.

Sortiu del Kismet. No és recomanable combinar-lo amb programes de l’Aircrack. Seguidament es realitza tot a través de terminal.

6.1 Preparació.

Engegueu el mode monitor de l’Aircrack. El mode monitor vol dir que la interfície serà capaç de capturar trànsit que no va cap a ella.

airmon-ng start wlan0

Monitor mode enabled és la resposta que us ha de donar. Si no, vol dir que esteu usant un driver no compatible. Seguidament heu de mirar si la xarxa objectiu té altres ordinadors que hi treballen, és a dir, si té clients. En la mateixa consola

airodump-ng start wlan0

Veureu un llistat amb les xarxes i les dades de cada xarxa (canal, encriptació, etc), escombrant tot es els canals. Haurieu de veure la vostra, talment com amb el Kismet. A sota, es llisten els clients per cada xarxa. Si té clients, passeu a l’apartat 6.2-A. Si no, al 6.2-B. Nota: a vegades, els clients apareixen movent una mica l’antena o el vostre portàtil. Doneu-los temps.

6.2 Paradigma A: La xarxa inalàmbrica té clients.

A partir d’ara, s’usarà la nomenclatura

  • bssid: BSSID, nom de la xarxa objectiu.
  • mac_teva: Adreça MAC de la teva tarja inalàmbrica.
  • mac_ap: Adreça MAC de l’access point objectiu.
  • mac_client: Adreça MAC del client.
  • canal: Canal de la xarxa.
  • wlan0: Interfície inalàmbrica.

Atureu airodump-ng (Ctrl+C). Torneu-lo a executar, però ara capturant el trànsit en el canal d’interès

airodump-ng --bssid bssid --channel canal --write nom_fitxer wlan0

Deixeu aquesta consola oberta durant tot el procés. Crea automàticament el fitxer nom_fitxer.cap que contindrà el trànsit capturat. En aquest punt, podrieu deixar que capturés passivament, però probablement el trànsit generat és massa petit per arribar, amb un temps raonable, als si fa no fa 50.000 paquets que l’algorisme estadístic necessita per a descobrir una clau de 128bits (26 caràcters hexagesimals). És més divertit forçar aquest trànsit, atacant activament l’AP amb el procés més comú, que és ataconar-lo a peticions ARP a tanta velocitat que deixa una mà de paquets que dóna gust.

L’ARP (Address Resolution Protocol) és un protocol que pregunta a certa adreça IP present a la xarxa quina MAC té. Nota: els paquets que contenen dades útils per la desencriptació són els de dades (que tenen IV’s, initializing vectors), no els beacons (radiobalises, senyals de localització) que llença l’AP. És important a partir d’aquí que l’AP no restringeixi les MAC’s que s’hi poden connectar.

Si moveu una mica l’ordinador o l’antena potser podeu millorar el ritme de recepció de les radiobalises i, per tant, de les dades/clients, si no els rebeu gaire regularment (normalment són uns 10 beacons/segon, si fa no fa).

Creeu una nova consola i autentiqueu-vos a l’AP (fakeauth, autenticació falsa)

aireplay-ng -1 0 -e bssid -a mac_ap -h mac_teva wlan0

És important que aquest pas funcioni, sinó, no es pot fer res així. Si no s’atura amb el missatge Association successful, abaixeu la velocitat d’enviament o apropeu-vos a l’AP i torneu a llançar la fakeauth.

iwconfig wlan0 rate 1M

Si ja esteu autenticats, obriu una nova consola i prepareu-vos per retornar el pròxim paquet ARP que captureu (arpreplay), que anirà de l’AP al client. La opció -x indica la velocitat en paquets/segon per la ràfega de retorn. Normalment, està bé 50, però si teniu l’AP prou a prop i amb visibilitat, podeu arribar a injectar-ne 200 per segon o més:

aireplay-ng -3 -x 50 -b mac_ap -h mac_client wlan0

Podeu esperar a que l’AP llenci un paquet ARP o fer que en corri un. Per fer això, heu de desautenticar el client (deauth). Esteu negant el servei a aquest client. Quan el client es reconnecti, forçarà un ARP. Obriu la quarta consola i feu

aireplay-ng -0 0 -a mac_ap -c mac_client wlan0

El client es reconnecta, i comença el festival. Heu de veure com, en la consola d’airodump (la de captura), la quantitat de dades augmenta ràpidament. Podeu executar en aquesta quarta consola el programa de desencriptació, que anirà computant els paquets així que arriben, pròpiament dit aircrack (l’opció -z ho fa anar més ràpid (50.000 IV’s), si no necessitarieu 500.000 IV’s o més):

aircrack-ng -z -b mac_ap nom_fitxer.cap

Al cap d’una estona tindreu la clau, el mateix programa la treu en hexagesimal. A partir d’aquí, podeu desencriptar el conjunt de paquets que us ha servit per a trobar la clau, amb l’ordre

airdecap-ng -l -w CLAU:WEP:HEXAGESIMAL nom_fitxer.cap

I obrir el fitxer desencriptat amb el Wireshark (antic Ethereal) i mirar tots els paquets que conté.

apt-get install wireshark

Nota: Comproveu en tot moment que estigueu autenticats a l’AP.

6.2 Paradigma B: La xarxa inalàmbrica no té clients.

La diferència rau en què haureu de crear-vos valtros mateixos el paquet ARP. Partirem del punt en què heu fet la fakeauth. Hi ha dos possibilitats, la primera es diu atac de fragmentació que, a través del PRGA (Pseudo Random Generation Algorithm) genera un paquet encriptat sense la clau sencera. Ara és imprescindible que corri algun paquet de dades per l’aire, amb un n’hi ha prou. Tingueu paciència fins que aparegui. Llegiu en diagonal l’apartat 6.2-A i feu-ne els primers passos. Autenticats, obriu consola i feu

aireplay-ng -5 -b mac_ap -h mac_teva wlan0

Si no funciona amb el paquet de dades trobat, la segona opció és l’atac chop-chop. Executeu i espereu el paquet

aireplay-ng -4 -b mac_ap -h mac_teva wlan0

La idea és que si no va un va l’altre, solució summament informàtica. Si ho heu aconseguit, haureu obtingut un fitxer nom_fitxer.xor, que és la clau pseudo-aleatòria. Creeu amb ella un paquet ARP:

packetforge-ng -0 -a mac_ap -h mac_teva -k 255.255.255.255 -l 255.255.255.255.255 -y nom_fitxer.xor -w paquet_arp

I ara només cal retornar-lo a sacietat a l’AP (l’opció -x, com abans, indica els paquets/segon, és recomanable ajustar-ho també en aquest cas, interactive frame selection)

aireplay-ng -2 -r paquet_arp -x 50 wlan0

I executeu en la quarta consola l’aircrack-ng per desxifrar la clau tal com s’explica a l’apartat 6.2-B.

Aspecte de l'escriptori una vegada finalitzat el procés sense clients

Aspecte de l'escriptori una vegada finalitzat el procés sense clients

Curiositats: un router wired-wireless.

Nosaltres hem configurat un router que enllaça la interfície inalàmbrica amb la d’ethernet. Bàsicament, funciona amb un tallafocs fet amb iptables que també fa NAT i un servidor de DHCP per a la subxarxa.

Bueno, espero que sigui útil xecs. Feu servir WPA. Per qualsevol dubte, no dubteu en deixar comentaris.

By Jordi / Alliberats.org.

Text distribuït sota les condicions de la llicència BY-NC-SA de Creative Commons.

No podeu modificar, usar ni distribuïr públicament les imatges per cap mitjà, ja sigui amb una nova instància d’elles mateixes o enllaçant a aquests continguts sense el permís d’Alliberats.org.

Publicat per pimera vegada al bloc Join Free Software!

Altres recursos de l’autor: Making Wireless Connections Work.

Quatre mesos després de la seua anterior Release 1, el projecte Debian va anunciar la disponibilitat de la segona gran actualització de la seua versió estable 4.0 “Etch”. Aquesta actualització afegeix principalment correcions a problemes de seguretat i a alguns problemes seriosos. El instal·lador també va ser actualitzat per suportar nous kernel, inclosos en aquesta Release 2, aquest canvi causa que el vell “netboot” i les velles imatges per a diskette ja no funcionen.

Recordar que aquells que s’actualitzen freqüentment des del repositori security.debian.org ja tenen quasi tots els nous paquets disponibles amb aquest llançament.

LogoDebian