Sep 02

Truquillo: Linksys WRT54G en mode client

Reading time: 2 – 2 minutes

La veritat és que no sé si algú ja hi havia pensat, jo crec que si però no ho he vist en cap manual i m’he trobat a molta gent que es queixava del mateix. Així que hi he pensat una solució que com dic imagino que més d’un ja hi deu haver pensat. Bé comencem explicant el problema:

El Linksys WRT54G si el fas treballar en mode client, jo només ho he provat de fer amb el firmware Alchemy, té problemes per enllaçar amb l’SSID que l’hi hem especificat i connecta al primer AP que troba tingui el nostre SSID o no. Així que a més d’un l’obliga a fer filigranes perquè enllaci a l’AP que l’interessa.

Doncs bé, el tema és tan senzill com aprofitar les funcionalitats de filtratge de MAC que porta el propi firmware. Per dir-li o bé que només pugui connectar a la MAC de l’AP que té l’SSID que ens interessa o bé, just el contrari. Podem indicar a quines MAC dels AP veins no volem que s’associï el nostre linksys.

Tonta la cosa,eh!? doncs a mi m’ha funcionat a la primera, a continuació us poso un screenshot on podeu veure on posar lo del filtratge de MACs.

apclient.png

En aquesta captura de pantalla es pot veure com li diem que només connecti a la MAC indicada. Que és la del AP al que vull connectar-me.

Jun 25

Cisco 7920 + Asterisk in roaming across 2x WRT54G

Reading time: 6 – 9 minutes

De fet, per fer això en principi no cal cap 7920 de Cisco, ja que amb qualsevol altre tlf wifi en teoria hauria de funcionar. El problema és que de moment només teniem aquest a mà. El tema és molt senzill voliem comprobar com canviant l’associació d’un AP (Linksys WRT54G) a un altre AP no perdiem la trucada en curs i que els problemes de l’enllaç eren mínims. Això és el que us intentaré explicar molt breument en aquest article. Per què molt breument? doncs perquè és realment molt senzill de fer.

2xwrt54.jpg

Doncs bé conceptualment el tema és molt senzill. Un cop tenim connectat el tlf VoIP WiFi (Cisco 7920) a l’Asterisk, al final del fitxer comento ràpidament com es configura, només cal ocupar-se de la configuració dels APs. Per tal de que quedi clar el que volem montar a continuació us adjunto un petit esquema que he fet:

Configurem els APs

Els Linksys WRT54 porten per defecte un bridge fet entre els 4 ports ethernet de la LAN i la connexió WLAN. Així doncs només cal que desactivem el tràfic internet/wan perquè tinguem un AP en mode bridge. És important tenir el mateix SSID i posar els APs en diferents freqüències, nosaltres hem usat un AP al canal 1 i l’altre al canal 6. Si posem els dos APs en el mateix rang de xarxa i a més treballem amb IP estàtica, no ho hem provat amb DHCP. Ja ho tenim tot apunt perquè quan iniciem una trucada associats en l’AP1 no hi hagi talls a la conversa al desplaçar-nos a la zona de cobertura del l’AP2. Com a molt notarem que es perd durant menys d’1s la veu però ràpidament funcionarà tot igual que si no haguessim canviat d’AP.

Si tanquem els ulls un segon i somiem això a la ‘n’, podriem montar cobertura en una zona molt extensa amb telèfons wifi, teoricament molt senzills que funcionarien perfectament en tot l’espai de cobertura imaginat. Us sona d’algo això??? potser a la xarxa GSM? 😉 Quan parlo de telèfons molt senzills em refereixo a tlf que només suporten un SSID i que no saben res de protocols tan sofisticats com el WDS (Wireless Domain Services) de Cisco, no confondre amb WDS: Wireless Distribution System que implementen molts APs, el qual ens permet treballar amb FSR (Fast Secure Roaming de Cisco).

Si voleu més informació d’aquestes meravelles que s’inventa Cisco i que l’únic problema és que no són prou estàndards com per disfrutar-ne, podeu llegir-vos el document: Configuring WDS, Fast Secure Roaming, and Radio Management ( cache).

Seguretat

En les proves que hem fet no hem usat ni WEP, ni LEAP que són els dos sistemes de seguretat suportats pel telèfon. De fet, tota la seguretat l’hem basat només en la MAC i la IP del telèfon. A més com es pot veure en el gràfic enmig de la xarxa WIFI hi ha un firewall el qual ens permet a més deixar que només passi tràfic SIP+RTP cap a l’asterisk. Amb això considerem més que suficient la seguretat per l’entorn que hem fet les proves. Així podem ser menys exigents en les característiques dels telèfons a usar. Ja que la intenció no és gastar-nos 600¤ (preu del Cisco 7920, aprox) en cada telèfon que posem a la xarxa.

De fet, una idea que es vol provar és aprofitar el telèfon Wifi SIP de PeopleCall que es pot obtenir per 130¤ amb l’alta al servei de d’aquesta operadora IP inclosa.

wifipromo.gif

Configurar el Cisco 7920 amb l’Asterisk

Aquest telèfon seguint la línia de Cisco usa un munt de protocol propietaris i en aquest cas la cosa arriba a tal extrem que ni tan sols usa SIP. Així que varem haver de configurar l’asterisk amb suport SCCP (Skinny Client Control Protocol). El qual no es suporta de serie amb l’Asterisk.

A voip-info teniu un HOWTO del SCCP ( cache). És un bon punt d’inici. Cal que penseu en tenir instal·lat un servidor tftp en algún lloc de la xarxa ja que els Cisco el necessiten per agafar la configuració de veu al arrancar. Un bon manual per configurar el atftp en gentoo: Gentoo Linux based Netboot HOWTO (cache)mireu-vos només la secció: The tftpd Daemon.

Després de fer el que comentem anteriorment el problema més greu que teniem és que no podiem fer trucades només rebre-les. El problema esta en el codi del sccp que necessita 7 ‘patches’ per funcionar correctament, sembla broma però és així. Si voleu anar directa al gra, us recomano que us baixeu el paquet que jo he usat: chan_sccp-mayday05+patches amb els pegats i el binari per la versió 1.0.7 d’asterisk. Un cop descomprimit el paquet si no heu de recompilar només cal que copieu el chan_sccp.so a /usr/lib/asterisk/modules. La pàgina web on podeu seguir les noves versions del chan_sccp per l’asterisk és: chan_sccp Project.

No oblideu a afegir a /etc/asterisk/modules.conf:

load => chan_sccp.so

Amb tot això ja podem tenir el Cisco 7920 funcionant amb l’Asterisk.

Truquillo

Com podeu veure a la foto dels dos linksys que hem usat per temes d’espai els hem posat un sobre l’altre el que feiem per simular les dues arees de cobertura era molt senzill. Teniem un linksys configurat amb el màxim de potència i l’altre amb el mínim. Apagabem el de màxima potència perquè el tlf s’associes al de mínima potència. Un cop fet això establiem una trucada i amb la trucada en curs, enceniem el segon AP, el de màxima potència, el canvi d’AP no es fa fins que l’AP associat no té problemes de cobertura amb el terminal així l’únic que haviem de fer era posar-nos a caminar fins a perdre la cobertura i notar aquest ‘micro-tall’ que ens indicava el canvi d’AP. A més mirant els menús del tlf i dels linksys verificabem que el canvi efectivament s’havia fet sense problemes.

Apr 15

Versió en anglès

Reading time: < 1 minute

Fa temps vaig escriure un article titulat:

Xarxa Wifi Segura: freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS)

i vaig començar a observar que després de que google l’indexes no paraben d’arribar un munt de visites a l’article, concretament des de gener fins ara n’ha tingut més de 2000. Així doncs li vaig demanar al Carles que me’l traduís a l’anglès ja que entenia que la majoria d’aquestes visites ni idea de català així doncs, com podeu veure acabo de penjar la versió en anglès del mateix, gentilesa del carles. GRÀCIES NANO!!!

Secure wi-fi Net : freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS)

Apr 15

Secure wi-fi Net : freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS)

Reading time: 8 – 12 minutes

wifi.gif

I wanted to make a high level secure WI-FI network, not like is
been made now with WEP and other foolishness. Then I installed a
FreeRadius server to work with a Linksys
WRT54G. The basic idea is to install a HyperWRT to the WRT54G
(Pof’d advice). After I configure it as WPA-Radius to the firewall were
I installed Freeradius. This
last step is optional because standard WRT54G firmware supports
WPA-Radius.

Network diagram; pay attention at the firewall and AP, the rest it
is not important:

wpa-eaptls.gif

To configure everything I just follow the instructions from the 802.1x HOWTO.
Anyway I made a small guide:

  • Install Freeradius in the firewall: emerge freeradius
  • Configure Freeradius to work with EAP/TLS
  • Generate certificates
  • Check freeradius works propertly
  • Configure the AP (Linksys WRT54G)
  • Configure Windows XP with SP2 clients
  • Configure Linux clients

The configuration files I used for freeradius are the next ones:

  • /etc/raddb/radiusd.conf:
    General Radius configuration file, we must define auth systems and
    others to use. There are a lot of parts I haven’t used so I left it as
    was coming. I want to thank Pof’s help on borrowing me his
    configuration files in order to configure mines.
  • /etc/raddb/clients.conf:
    IPs and network systems that can be radius clients; in our case the AP
    (172.16.1.253).

Although the radius power, documentation and lack of time to
experiment gives you this, but if someone can do it better I would
apreciate to know it.

For the generation of certificates the idea is to made them from a
certified entity, but this only happens in films and big companies.
Let’s take OpenSSL and do our work.
If you still haven’t got it, you know: emerge openssl. Sure enough we
aren’t good at PKI and other similar things, then it is better to learn
using freeradius and openssl scripts, because with some modifications
we can create certificates to work with our secure wi-fi networks.

As I was saying wea re going to use the freeradius and openssl
scripts to generate certifieds, then first of all let’s go to the
freeradius folder were we can find a folder called “scripts” with:
CA.certs, certs.sh and xpextensions. I recomend checking order
locations inside scripts because I had problems with this. If you are
lazy to look at the files, you can check mine in this small package: certs.tar.gz
this files are modified to work from the same folder we are working in,
I recomend creating a new and empty folder. Once we have identified the
files, we must have in PATH the script CA.pl, that is a perl script,
but not many times is copied to the PATH so I copied to /usr/bin and I
deleted it after generating the certifieds. I also included the file in
the package, if you are lazy…

Once we have all things in a folder ready to work we can edit
CA.certs to include our information to the variables at the begining of
the file. There is no need to change more variables, it is done
automaticly. Don’t forget the password because we will need it when
configuring the server and the clients.

To generate the certifications just:

# ./certs.sh

and the output will be something like that:

Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
........................+......................................................+...........+................................+..........+.......................+...+...........................................+...............................+............+..............+.................................+.......+..+.................................................+....+....................+.........................................+..+......+................................................+........+.....+...............+...........+.+..................+...........+..................................................+............+......+.+.................+.+.........................+....+................+....+....+.....+.........................+............+......+.+..........................................................+..+...........................................+.........................+.............................+..................................................+...+...++*++*++*++*++*++*
See the 'certs' directory for the certificates.
The 'certs' directory should be copied to .../etc/raddb/
All passwords have been set to 'whatever'

Don’t care about the messages, just in case any error happen. Now
you’ll have a new folder inside the folder were you are, called certs
and inside can find all the certifications for the server and the
client. I recomend coppying the contents from ./certs to
/etc/raddb/certs then you’ll not have to change the configuration files
I give you.

The most important thing now is checking the configuration files I
gave you first and check that the radius server starts without
problems, that unfortunately never happens. About the radiusd.conf I
don’t think you might have lots of problems, just check that paths to
the certifications are the correct ones you just have created. Also
check the parameter: private_key_password = whatever.
Change ‘whatever’ for your password, the one you have used for the
variable PASSWORD inside the CA.certs file. If you don’ do that, once
you start the daemon with radiusd -X you will be
asked for a key used to symetricaly crypt the files with a private key,
as is the password I am talking about. If you don’t do that when /etc/init.d/radiusd
start
you’ll have an error because the server would not use
the keys to access the certifications.

Just do : radiusd -X and if you get the next
output:

Ready to process requests.

everything works fine. Just do CRTL+C and start the Gentoo daemon (/etc/init.d/radiusd
start
)
or just leave it like it as it is in a terminal client then you can see
the logs been generated in order to check if everything works ok. If
you want to check the history logs while the daemon is on, just find
them at /var/log/radius/. The start daemon logs are
in startup.log and the connection ones in radius.log.
To see the log in real time just do: tail
-f /var/log/raddb/radius.log

Before configuring the users you need to configure the AP as
radius client. You can configure the AP as you want but I configured it
as a router between two networks; the user’s network with DHCP
(192.168.2.0/24) and the called Internet by the AP (172.16.1.253). I
like configuring this way the network; a cable that is going to the
firewall where can comunicate with the freeRadius. For example; the
firewall interface with IP 172.16.1.254 and the ‘Internet’ interface
from the WRT54G with IP 172.16.1.253. Then you need to make sure that
the IP is allowed  to work with radius editing file /etc/raddb/clients.conf
like in the next example:

client 172.16.1.253/32 {
secret = SharedSecret99
shortname = localhost
}

See that here appears another password, this ‘pre-shared
key’ is used by the WPA-client (WRT54G) and the radius server
(freeRadius) to crypt their communications. Then you have to make sure
this key is inserted in the AP configuration. Here I am attaching a
screenshot of how the AP wireless security configuration must be to
work with radius server:

wpa-radius.jpg

For the configuration of the Windows client first of all you have
to check if the wifi network card has the correct firmware to work with
WPA with EAP/TLS. If you don’t know it, just use the next manual of how
to configure a WXP and if you cannot find the options I show it is that
your card isnt’ valid. I just tryed in a WXP SP2, for all the rest, I
don’t know.

I made a PDF file with lots of screenshots to easy configure the
WXP client. You have to install two certification files; root.der
and root.p12. You should create them before and can
be find at /etc/raddb/certs.
I recomend you copying this files into a pendrive and use it for all
clients.

How
to install the EAP/TLS clients with Windows XP SP2
in PDF format.
This document is based in: HOWTO:
EAP//TLS Setup for FreeRADIIUS and Wiindows XP Supplliicant
in PDF
format too.

About Linux configuration; I haven’t tryed yet because my PCMCIA
wifi card firmware is old. But I am going to try the card integrated in
my laptop that works with ndiswrapper or linuxant Linux drivers, both
of them prepared to use wap_suplicant, necessary for the WPA/TLS
authentication in a Linux box.  When I get to the point don’t
worry, I’ll tell you. Don’t want to work much with Windows, I got
nervous at work seing that kaos.

I attach you some references I used to help me:

  • 8021X-HOWTO

    This document describes the software and procedures to set up and use
    IEEE 802.1X Port-Based Network Access Control using Xsupplicant as
    Supplicant with FreeRADIUS as a back-end Authentication Server.
  • FreeRADIUS/WinXP
    Authentication Setup
    – This post describes how to build a
    FreeRADIUS server for TLS and PEAP authentication, and how to configure
    the Windows XP clients (supplicants). The server is configured for a
    home (or test) network.
  • HOWTO on
    EAP/TLS authentication between FreeRADIUS and XSupplicant
    – This
    document describes how to setup strong cryptographic authentication
    between XSupplicant and FreeRADIUS. This is accomplished using part of
    802.1x authentication for wireless network. In particular it uses
    EAP/TLS extension, and TLS handshake.

I pretend this helps as much people as possible. Thank you for
your patience.

Mar 17

Montar un portal captiu amb Chillispot i bootwait al WRT54G

Reading time: 1 – 2 minutes

linksys.gif

Trànquils, no vaig a documentar el que ja s’ha fet mil vegades. Només vull referenciar un document de matarowriless que ja fa temps que fins hi tot es va publicar a comefsa. Però que tenia perdut pel disc dur i avui he aprofitat per llegir-lo al tren. Així que he pensat quina millor forma per no perdre aquesta informació tan valuosa que posar un post al blog.

Configuració d’un Linksys WRT54G com a portal captiu amb Chillispot i Openwrt ( local )

Posats a referenciar documents en català interessants aquest del pof: Flaixejar un wrt54g amb boot_wait per tftp ( local ).

Jan 31

Ndiswrapper: Broadcom BCM4306 802.11b/g WLAN amb Linux i WPA supplicant (EAP/TLS)

Reading time: 4 – 6 minutes

wifi.gif

Aquesta és la targeta mini-PCI que va integrada al meu DELL X300, de fet fins ara no havia pogut configurar-la de cap manera. Però ahir les coses per fi van canviar. Així que per si algú té la targeta que sapigue que amb les noves versions de kernel i del ndiswrapper es pot fer funcionar amb el driver de Win sota Linux.

Finalment la cosa no ha estat gaire difícil, tot i que en els interiors intents vaig suar lo meu. El primer de tot que us recomano és assegurar-vos que no teniu un kernel amb la opicó “CONFIG_4KSTACKS” marcada i si sou usuaris de Gentoo que la variable USE no té el flag “4kstacks”. També cal que el codi font del kernel compilat estigui a /usr/src ja que és necessari per poder fer l’emerge de l’ndiswrapper sense problemes.

Suposem que ja em fet l’emerge de net-wireless/ndiswrapper, concretament jo m’he instal·lat el paquet ndiswrapper-1.0_rc4. Després he posat el driver de windows al directori /etc/ndiswrapper, concretament els fintxers bcmwl5.inf i bcmwl5.sys. Aquest dos fitxers els tindreu al Windows si he configurat la targeta wi-fi allà. Si no és així us adjunto un paquet que conté el driver de Windows: SP23107A.tar.gz podeu descomprimir-lo i copiar els fitxers que us comento a /etc/ndiswrapper.

Ara podeu fer un: ndiswrapper -l i vuere si teniu el driver carregat:

# ndiswrapper -l
Installed ndis drivers:
bcmwl5  driver present, hardware present

si no és així podeu carregar-lo amb:

ndiswrapper -i /etc/ndiswrapper/bcmwl5.inf

Ara cal carregar el mòdul del kernel per tal de que la targeta es carregui al linux:

modprobe ndiswrapper

Si mireu al /var/log/messages o feu un dmesg podreu veure algo semblant a això:

ndiswrapper version 1.0rc4 loaded (preempt=yes,smp=no)
ndiswrapper: driver bcmwl5 (Broadcom,10/28/2003, 3.40.25.3) added
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 5
PCI: setting IRQ 5 as level-triggered
ACPI: PCI interrupt 0000:02:04.0[A] -> GSI 5 (level, low) -> IRQ 5
ndiswrapper: using irq 5
wlan0: ndiswrapper ethernet device 00:90:96:a3:65:ec using driver bcmwl5
wlan0: encryption modes supported: WEP, WPA with TKIP, WPA with AES/CCMP
mtrr: base(0xe8020000) is not aligned on a size(0x300000) boundary

Com ens indica el log ja tenim la interficie wlan0 creada:

# iwconfig
lo        no wireless extensions.
eth0      no wireless extensions.
wlan0     IEEE 802.11g  ESSID:off/any
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:54 Mb/s   Tx-Power:25 dBm
          RTS thr:2347 B   Fragment thr:2346 B
          Encryption key:off
          Power Management:off
          Link Quality:99/100  Signal level:-66 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:1956  Invalid misc:47992   Missed beacon:0

Cal recordar però que heu de fer un ifconfig wlan0 up perquè sinó al llistat d’interficies del kernel no veureu la interficie, ja que per defecte esta baixada. Ara només queda configurar la interfice wifi amb el iwconfig, per exemple:

iwconfig wlan0 essid nomxarxa

Amb això si la xarxa no té WEP ni cap sistema de seguretat ja en tindrem prou perquè la resta de coses, com el canal es configurin sols. Si voleu veure quines xarxes tenim disponibles podem usar la comanda:

iwlist wlan0 scan

Aquesta comanda la podeu trobar dins el paquet net-wireless/wireless-tools.

Per configurar la nostre targeta de xarxa com a client de WPA podeu instal·lar el paquet: net-wireless/wpa_supplicant, concretament jo he instal·lat la versió 0.3.6. La configuració la comenta el pof en un comentari de l’article: Xarxa Wifi Segura: freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS). Però us ho resumeixo aquí. Després d’instal·lar el paquet comentat només cal configurar el fitxer /etc/wpa_supplicant.conf, per exemple seguint la configuració del post comentat quedaria així:

network={
ssid="druvs"
proto=WPA
key_mgmt=WPA-EAP
pairwise=TKIP
group=TKIP
eap=TLS
identity="exemple@exemple.com"
ca_cert="/etc/cert/root.pem"
client_cert="/etc/cert/root.pem"
private_key="/etc/cert/root.p12"
private_key_passwd="whatever"
}

Per llençar el client només cal posar:

wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dndiswrapper

Si voleu llençar-lo en mode depuració d’errors:

wpa_supplicant -dd -iwlan0 -c/etc/wpa_supplicant.conf -Dndiswrapper

No us oblideu que si heu d’obtenir la direcció IP de l’AP heu de llençar el client de DHCP o si useu IPs estàtiques heu de configurar la interficie wlan0 amb el ifconfig.

Jan 26

Xarxa Wifi Segura: freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS)

Reading time: 9 – 15 minutes

ENGLISH VERSION Secure wi-fi Net : freeRadius + WRT54G = 802.1x (WPA-radius EAP/TLS)

wifi.gif

Havia de montar una xarxa Wi-fi amb un nivell de seguretat com deu mana, no com el que s’esta montant actualment amb WEP i tonteries. Així doncs vaig montar un servidor FreeRadius per treballar amb un Linksys WRT54G. Bàsicament la idea va ser instal·lar un HyperWRT al WRT54G (consell del Pof) després el vaig posar que treballés amb WPA-Radius contra el FireWall on vaig instal·lar el FreeRadius. Aquest pas no és necessari si no voleu, ja que el firmware de serie del WRT54G ja suporta WPA-radius.

Esquema de la xarxa que volem montar, cal que ens fixem només en la part del firewall i de l’AP, la resta es suposa i no és important:

wpa-eaptls.gif

Per configurar tot el tema l’únic que vaig fer és seguir les instruccions del 802.1x HOWTO. De totes formes un faig una petita guia a continuació:

  • Insatl·lem el freeradius al firewall: emerge freeradius
  • Configurem el freeradius per treballar amb EAP/TLS
  • Generem els certificats
  • Comprobem que el freeRadius funciona correctament
  • Configurem l’AP (Linksys WRT54G)
  • Configurem els clients Windows XP amb SP2
  • Configurem els clients amb Linux

Els fitxers de configuració que jo he usat en el freeRadius són els següents:

  • /etc/raddb/radiusd.conf fitxer de configuració general del radius, definim sistemes d’auth i d’altres a usar. Hi ha moltes parts del fitxer que no he usat les he deixat tal i com venien. Agraeixo l’ajuda el Pof el haver-me deixar mirar els seus fitxers per crear els meus.
  • /etc/raddb/clients.conf IP’s i xarxes de sistemes que poden ser clients del radius, en el nostre cas l’AP (172.16.1.253).

Malgrat la potència del Radius dona per molt més del que he usat en aquest cas, la documentació i el temps per experimentar no donen per massa més. Però si algú s’anima a refinar el que he fet i m’ho comunica estaré molt agraït.

Pel que fa a la generació dels certificats, obviament la idea és que els emeti una entitat certificadora, però com que això només passa a les ‘pelis’ i a les empreses amb capital, cas que no seria el que ens ocupa, em sembla. Agafarem el nostre OpenSSL i l’usarem per fer tota la pesca. Si no el teniu, ja ho sabeu: emerge openssl. A més com que segur que el nostre fort no són les PKI i històries semblants, el millor és aprendre a usar els scripts que venen amb el freeRadius i el OpenSSL, ja que amb molt poques modificacions podrem crear els certificats que ens fan falta per treballar de forma segura amb el nostre wi-fi.

Com deia usarem els scripts del freeRadius i l’OpenSSL per generar els nostres certificats, així doncs primer de tot anem al codi font del freeRadius i veurem que hi ha un directori que es diu ‘scripts’ allà dins trobarem: CA.certs, certs.sh i xpextensions. Us recomano que verifiqueu les rutes de les ordres que contenen els scripts ja que almenys a mi no em funcionaven per culpa de les rutes que usaben els scripts. Si us fa mandra mirar el codi us adjunto un petit ‘paquet’ amb els fitxers que jo m’he modificat: certs.tar.gz aquests arxius estan modificats per treballar des del propi directori on ens trobem, us recomano crear un directori de treball nou i buit. Un cop tenim localitzats els fitxers, heu de tenir en el vostre PATH el CA.pl que és un script que porta el perl de serie, però que no acostuma a copiar al PATH, jo l’he posat a /usr/bin i després de generar els certificats l’he borrat. També us l’he posat al ‘paquet’, per si no el voleu buscar.

Un cop tenim tot això en un directori apunt per treballar. Podeu editar el CA.certs i posar les vostres dades a les variables de l’inici del fitxer. No cal que modifiqueu res més que les variables la resta ja es farà sola. Sobre tot no oblideu el password que poseu ja que a l’hora de configurar el servidor i els clients ens farà falta.

Per generar els certificats ara l’únic que hem de fer és posar:

# ./certs.sh

i la sortida serà algo així:

Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
........................+......................................................+...........+................................+..........+.......................+...+...........................................+...............................+............+..............+.................................+.......+..+.................................................+....+....................+.........................................+..+......+................................................+........+.....+...............+...........+.+..................+...........+..................................................+............+......+.+.................+.+.........................+....+................+....+....+.....+.........................+............+......+.+..........................................................+..+...........................................+.........................+.............................+..................................................+...+...++*++*++*++*++*++*
  See the 'certs' directory for the certificates.
  The 'certs' directory should be copied to .../etc/raddb/
  All passwords have been set to 'whatever'

No feu cas dels missatges, només fixeu-vos en que no hagi donat cap error. Ara tindreu un nou directori que penja del directori on us trobeu, aquest directori es diu certs i dins té tots els certificats que us fan falta pel client i el servidor. Us recomano que poseu el contingut del directori ./certs a /etc/raddb/certs així haureu de tocar poca cosa dels fitxers de configuració que us he passat.

El més important ara mateix és repassar els fitxers de configuració que us he posat més amunt i comprobar que el servidor radius es llença sense problemes, cosa que no sempre passa a la primera. Pel que fa al radiusd.conf no crec que tingueu gaires problemes només heu de verificar que les rutes dels certificats apunten als fitxers que tenen el mateix nom que els fitxers que heu generat i sobretot fixeu-vos en el paràmetre: private_key_password = whatever. Cal que canvieu el ‘whatever’ pel vostre password, el que heu posat a la variable PASSWORD del fitxer CA.certs. Si no ho feu, quan llenceu el dimoni, per exemple amb un radiusd -X, per comprobar si es llença bé us demanarà la clau que heu usat per xifrar simetricament els fitxers amb la clau privada, o sigui, el password del que estem parlant. Si això no ho eviteu quan tireu el dimoni amb /etc/init.d/radiusd start donarà un error ja que no podrà usar les claus per accedir als vostres certificats.

Si feu aquest parell de coses bé: verificar les rutes i posar el password correctament. El que toca fer és el que ja apuntava fa unes línies: radiusd -X després d’executar la comanda sortiràn una serie de històrics que ens informaran sobre els possibles errors i si el procés es queda en esepera i amb una linia del tipus:

Ready to process requests.

Senyal que ho heu fet tot bé, ara ja podeu fer un control+c i llençar el dimoni de gentoo (/etc/init.d/radiusd start) o bé, no fer res i configurar un client i així veurem per pantalla els logs que es van generan i podrem comprobar si la cosa rutlla o no rutlla. Si voleu verificar els històrics mentre teniu el servei funcionant i no el mode interactiu, podeu trobar els logs a /var/log/radius/ concretament trobareu els logs de quan s’ha llençat el dimoni a startup.log i els logs de les connexions a radius.log. Si voleu veure de forma interactiva el que li passa al dimoni podeu fer: tail -f /var/log/raddb/radius.log

Abans de passar a configurar els usuaris cal configurar l’AP que serà el client del nostre servei de Radius. La configuració és realment molt senzilla, podeu configurar l’AP tal i com volgueu, concretament jo l’he configurat com un router entre dues xarxes la d’usuaris on s’assignen les IPs per DHCP (192.168.2.0/24) i la que ell (l’AP) anomena Internet, la 172.16.1.253 segons el gràfic. A mi m’agrada dir-li el camí que portarà a internet, o sigui, un cable que va contra el firewall i a través del qual es comunicarà amb el freeRadius. Per exemple, jo acostumo a posar aquesta pota del firewall amb la IP 172.16.1.254 i la pota ‘Internet’ del WRT54G amb la IP 172.16.1.253. Per tant, cal que en el fitxer de configuració /etc/raddb/clients.conf aquesta IP tingui permisos per fer peticions al Radius, per exemple, com el fitxer que us he facilitat:

client 172.16.1.253/32 {
        secret          = SharedSecret99
        shortname       = localhost
}

Fixeu-vos que aquí apareix un altre password, aquesta ‘pre-shared key’ l’usen el WPA-client (WRT54G) i el servidor Radius (freeRadius) per xifrar les seves comunicacions. Així doncs a l’AP li haurem de facilitar aquesta clau perquè pugui parlar amb el nostre servidor Radius. A continuació adjunto una captura de pantalla de la part de la configuració de l’AP on s’ha d’especificar que usarem un servidor Radius:

wpa-radius.jpg

Per configurar un client de Windows, el primer que heu de tenir en compte és que la targeta WIFI que useu té un firmware suficientment nou com per suportar WPA amb EAP/TLS. Si no ho sabeu intenteu aplicar el manual que adjunto de com configurar un client de WXP i si no trobeu les opcions que assenyalo segurament la vostre targeta no ho suporta. També us aviso que jo només ho sé configurar amb WXP i SP2, així que qualsevol software propietari que porti la vostre targeta wi-fi doncs ni idea de com va, i la resta de version de win tampoc ni idea, no ho he pogut provar ni en tinc ganes de fer-ho.

Us he fet un PDF amb un munt de captures de pantalla perquè sapigueu configurar els clients de WXP. Cal que penseu que durant el document s’instal·len dos certificats el root.der i el root.p12. Aquests dos fitxers estan al directori /etc/raddb/certs, recordeu que els hem generat fa una estona. Així doncs us recomano copiar-los en un pen-drive i no perdre’ls de vista ja que ens faran falta per configurar tots els clients.

Com instal·lar els clients EAP/TLS en Windows XP SP2 en format PDF. Aquest document esta basat en: HOWTO: EAP//TLS Setup for FreeRADIIUS and Wiindows XP Supplliicant també en format PDF.

Pel que fa a la configuració de clients Linux doncs de moment no ho he pogut provar, ja que la meva targeta wi-fi PCMCIA té un firmware massa antic, en els propers dies espero poder configurar la targeta interna del portatil que l’he configurar amb ndiswrapper o linuxant amb els drivers de linux, però ambdos sistemes em permeten usar l’wap_suplicant que és el software necessari per autenticar-me amb WPA/TLS des del Linux, quan tingui això funcionant us aviso. Tranquils que no penso currar gaires dies en Windows a la feina que em poso nerviós de veure com peta tot.

Us adjunto algunes referencies que he usat per configurar el tema:

  • 8021X-HOWTO – This document describes the software and procedures to set up and use IEEE 802.1X Port-Based Network Access Control using Xsupplicant as Supplicant with FreeRADIUS as a back-end Authentication Server.
  • FreeRADIUS/WinXP Authentication Setup – This post describes how to build a FreeRADIUS server for TLS and PEAP authentication, and how to configure the Windows XP clients (supplicants). The server is configured for a home (or test) network.
  • HOWTO on EAP/TLS authentication between FreeRADIUS and XSupplicant – This document describes how to setup strong cryptographic authentication between XSupplicant and FreeRADIUS. This is accomplished using part of 802.1x authentication for wireless network. In particular it uses EAP/TLS extension, and TLS handshake.

Finalment perdoneu el rollasso que he fotut en aquest post, sento no haver-ho pogut escursar més però només disitjo que això ajudi al màxim número de gent possible. Gràcies per la paciència.

May 27

Aprofitant l’espectre de 2.4GHz

Reading time: 1 – 2 minutes

Fa força temps q tinc aquest document pel meu escriptori esperant q
li doni una ullada. Doncs resulta q els telecos a vegades estem
nostàlgics de formules incomprensibles i de simbols grecs q ja no
recordes ni q volen dir. Peò si això serveix per saber quin
és el màxim de xarxes que podem extendre en una zona sense
saturar l’espectre i fer-lo impracticable és un plaer!

D’això tracta el document que ús referencio aquí.
Bàsicament la conclusió pels mandrosos és q podem arribar
a tenir fins a xarxes diferents dins l’espectre lliure de 2.4GHz sense saturar
l’espectre, sempre que no se’ns envagi l’olla amb la potència ni en la
sobrecarrega de cap de les xarxes. No ús perdeu la demostració q
hi ha al document:

Channel Overlap
Calculations for 802.11b Networks

Oct 21

Llibre de Wireleé ;)

Reading time: 1 – 2 minutes

Si no en teniu ni idea i no sabeu per on començar amb el tema
wireleé. O bé ja heu tocat algo però voleu coneixer el
tema amb més fonament. No ús perdeu aquest article…

Doncs bé llegint llistes de correu he trobat un enllaç aun
llibre d’O’Reilly molt guay. Potser ja n’haureu sentit a parlar:


Building Wireless Networks

Jo no deixaria d’apretar el link pq algú l’ha passat a PDF i no crec q
siguin els de l’editorial. Però bueno aquí el teniu. Ah! i no
arriba a les 100 pàgines, o sigui, q es pot llegir ràpid.

Pels q tingueu accés a la secció fotos tb he col·locat les
fotos del primer material q els ha arribat als col·legues d la AWACat.
Em podeu veure entremig de material ‘xupi guay’.

Fotos del primer material q ha
arribat a AWACat

Sep 21

Antenes per 2.4GHz (WLAN)

Reading time: 2 – 2 minutes

Com ja haureu notat útlimament anem tots de cul amb el tema del
‘wirlé’. Doncs bé com tots ja sabeu la gràcia del tema
és posar antenes i arribar a distàncies en teoria no
documentades…

Com a bon telecos q representa q sóc i ex-radioaficionat. No vaig
poder resistir la tentació de buscar un bon article introductori sobre
antenes de la banda de 2.4GHz la del ‘wirlé’.

Com no una bona referència era en Trevor Marshal
(http://www.trevormarshall.com/) tota una eminència en el tema. Doncs fa
temps va escriure aquest article per la revista BYTE:

Antennas
Enhance WLAN Security

tb hi he posat un link a la meva web:

Antennas
Enhance WLAN Security

a la pàgina d’en Trevor hi ha molta més info sobre antenes i
sobre de tot de com construir-se bones antenes. Ús la recomano en
especial l’antena basada en una guia d’ones:

802.11b WLAN Waveguide
Antennas

He trobat molta més info sobre el tema però encara no he tingut
temps de recopiarlar-la pq estem fent una mini-web la Daphne i jo sobre el
nostre viatge a Finland per poder-ovs ensenyar a tots les fotos i les nostres
activitats per allà d’alt.