Está en la página 1de 8

Montaje de un router wireless en una maquina GNU/linux.

Juan V. Puertos juanvi.puertos@gmail.com

INDICE 0. Introduccin. 1. Hardwareempleado. 1.1ComputadorarquitecturaPC. 1.2Dispositivoswireless. 1.3Antenadealtaganancia. 2. Softwarenecesario. 2.1Sistemaoperativo. 2.2Softwareadicional. 3. LasredesyelIPMasquerade. 3.1EnlacearedBSSIDconconexinainternet. 3.2 RedAdhoc. 3.3 IPMasqueradeconiptables. 4. Enlacesdeinters,bibliografa.

0.Introduccin:
En el presente documento exponemos el trabajo realizado para crear un enlace wireless 802.11 de largo alcance (500m aprox.), y la configuracin de un NAT IP Masquerade eniptablespararealizarelenrutadoentreunared 802.11BSSIDyotra red 802.11 Adhoc, enunsistemaDebianSqueezeGNU/Linux,constituyendo asunrouter entredosredes802.11.Sediscutentambindistintasmtricasdecalidaddelenlace, se ofrecensolucionesaproblemastpicosenunescenariodeestascaractersticas.

1. Hardwarempleado e :
1.1ArquitecturaPC:TansolonecesitamosunPCcondosdispositivosdered802.11, enestecasoelequiposecomponede: 1. 2. 3. 4. 5. Pentium4. 1GBmemoriaRAMDDR2. 80GBdediscoduro. Dispositivo802.11bgRalink61PCI. Dispositivo802.11bgRealtek842L.

1.2Losdispositivoswireless:soncompletamenterecicladosdeequiposviejos,con loquesereduceelcostedelsistema,sepodraobtenermejoralcancehaciendousede tarjetaswirelessUSB2.0dealtapotencia(hasta2W),queademsnosahorraranlaperdida degananciaqueseproduceenelcabledeantena,peroelobjetivodeesteproyectoes mostrarqueaprovechandomaterialquepodemostenerperdidoporelgarajesepueden montar cosas interesantes. Las tarjetas empleadas son dispositivos PCI de bajas prestaciones. 1.3 Antena: Solo hemos invertido dinero en las adquisicin de una antena direccionaldealtaganancia, laantenaelegidaasidola StellaDoradusSD24,queofrece unagananciade19dBi. Esmuyimportantequealfijarlaalmstilusemosunelemento aislantedepormedio,paraquenosepierdalaseal.

Antenaancladaalapareddelgaraje.

2.Software necesario :
2.1SistemaOperativo:ObviamentelamejoropcinesusarunsistemaGNU/Linux, pues es gratuito, esta muy bien documentado y consta de una amplia comunidad de usuarios.OptaremosporunsistemaDebianStable(Squeeze),queestodounreferenteen elmundoGNU/Linuxconelqueademsestamosbienfamiliarizados. Cabeindicarquehasidonecesariodescargar,compilareinstalarlosdriversdelos correspondientesdispositivosderedinalmbricos,comoelusodeestehardwareesalgo completamentearbitrarioenesteproyectonovamosaentrarendetallesdecomocompilar einstalarundriverenelkernelLinux. 2.2Softwareadicional:Necesitamosmuypocosoftwareadicional,pueslomsvital yavieneincluidoenunainstalacinbsicadelsistemaDebian,esdecir, wirelesstools e iptables. Pero siempre es til tener instalados paquetes como aircrackng, pues proporciona airodumpng, un excelente monitor. Lo que si que va a ser necesario es instalardnsmasq(servidordeDHCPyproveedordeserviciosDNS),parapoderconfigurar automgicamentelosequiposqueseconectenalaredAdhoc.

3. Lasredesyel IPMasquerade Trasprobaraconectarlasdos redes :


medianteunpuentetransparente sinxito, hemosprocedidoarealizarlaconectividada nivel 3, es decir a nivel IP mediante la configuracin de IP Masquerade en el firewall , iptables. 3.1RedBSSIDconaccesoainternet:ElenlacealaredBSSIDqueproveedeacceso ainternet,esunenlacealargadistancia,lorealizamosconeldispositivoRalink61(wlan0), el primer problema que tenemos es que estamos apuntando a una ruidosa nube electromagntica,conmuchosAPsyclientesenmarcha,microondasqueeventualmente nosarruinanalguna que otra trama, en principio pocacosapodemoshacer,ypor ms gananciaaadidanomejoraelSNR(SignaltoNoiseRatio),lonicoqueestaennuestras manosesseleccionaruncanallomsseparadoposibledelrestoyseleccionarunavelocidad detransmisinbaja.Seobservaqueporlasnochesvamuchomejorlaconexin.

Seleccionaruncanalderadiolomsalejadodelresto,algunosAPlohacen automticamente,peronohayquefiarse. Seleccionarunavelocidaddetransmisinbaja,peroquegarantizarmejorQoS,esto seajustaenelcliente:iwconfigwlan0rate11M ReducirelMTU,peroaadeoverhead,asquehayqueexperimentar. Problemadelasestacinoculta,activarRTSenAPyclientessiobservemosel problema.

Paraorientarlaantenanecesitamostenerfeedbackdehaciaquedireccinapuntar, sepuedeinterpretarcomolaoperacinqueejerceunsistemadecontroldelazocerrado,en nuestrocaso,comoorientamosmanualmentesubidosaunaescalera,cerramosenlazocon lasealacsticaquenosproporciona unprogramasintetizador devoz, conocidocomo festival, con una linea de shell script vamos listos, se trata de husmear en /proc/net/wirelessperidicamente(tenemosqueestarasociadosalAP): whiletrue;docat/proc/net/wireless|grepwlan0| awk'{print$3}'>f;festivalttsf;sleep2;done Se podra montar algo ligeramente ms complejo con airodumpng, que no requeriraestarasociadosaningnAP ,peronohemostenidolanecesidad. ParapoderconectaralAPdeformaautomticacadavezqueiniciemoslamaquina, solotenemosqueescribirlaconfiguracindelaredenelfichero/etc/network/interfaces, comoelAPtieneactivadoelDHCP ,noesnecesarioindicarlaconfiguracinIP: autowlan0 ifacewlan0inetdhcp wirelessessid<ESSID> wirelesskeys:<ASCCIENCRYPTIONKEY> wirelessrate11M UnavezasociadosalAP ,paraevaluarlacalidaddelenlace,lamtricausadaporla mayoradesoftwaredegestinderedes,sebasaencontarelnumerodebalizasrecibidas porsegundo,estamtricasolomidelacalidaddelarecepcinentodocaso,ynosparece demasiado nave, evaluar la calidad del enlace requiere de un un procedimiento ms completo, por ejemplo, cual es la calidad de la recepcin en el AP? Es sabido que los dispositivos802.11bgdegamabajanoemitenagranpotencia,ypuedequeelAPnonos escuchebien,laantenadireccionalnoaumentalapotenciadetransmisin,peroalmenos dirige la seal. Para evaluar la calidad de la seal, haremos uso de la popular tcnica conocidacomopingflooding,losparmetrospacketloss,duplicated,ylatencias.Sepuede variarintervalo,ytamaodelospaquetesICMP ,paraintervalosmenoresa0.2shayqueser sperusuario,optamosporenviarpaquetesconeltamaototaldelMTU. #pingi0.1s<MTUICMPheader>192.168.1.1 Medianteestatcnicapodemosmedirelanchodebandadelenlacepuessabemos cuantosbitsvamosaenviarporsegundo,vamosprobandohastaelmximobps,queno produzcaerrores,estoesindependientedelavelocidadqueofrezcaelISP ,soloestamos evaluandoelenlace. Complementario a esto sera fijarse en el numero de paquetes recibidos errneamenteenelAP ,enmuchosmodelosloindica,enlapaginadeconfiguracindel mismo, en nuestro caso, obtenemos tasas del 0.1%, luego se detectan errores, pero no demasiados, (estopuedevenir sesgado sihayotrosclientesconectadosqueaumentenel nmerodepaquetescorrectos,luegohayquehacerlapruebatrasunresetdelrouter,ycon solonosotrosasociados,entonceslanzamoselpingflooding,porejemplo.)Comoelusode la red no suele se simtrico, exigindose generalmente mayor downstram que upstram, tampocoesmayorproblema,elusuarionopercibeningnproblemadehecho.

Tambinsepuedelanzaruntestdevelocidaddeterceros,quemedirlavelocidad queconseguimosconnuestroISP .(Estoselanzdesdeelequipoquehaceelrouting).

(Resultadodeltestdevelocidad,estaeslavelocidadconlaqueaccedemosainternet.) 3.2 RedAdhoc: Elsegundodispositivodered802.11bg,(interfazwlan1),forma partedeunaredadhoc,alaqueseconectanlosequiposcercanos,parapoderaccedera internet. Se intent hacer funcionar el dispositivo en modo AP mediante el software , hostapd,conloquehubiramospodidoconfigurarlaredenmodoBSSID,perodebidoa incompatibilidadesconelhardwarenosepudo,pareceserqueeldriverdeldispositivono facilitaestemododefuncionamiento.Aspuesaadiremoslasiguienteentradaalfichero /etc/network/interfaces: autowlan1 ifacewlan1inetstatic wirelesschannel1 wirelessessidshores wirelessmodeAdhoc address10.42.43.1 netmask255.255.255.0 TambinvaasernecesarioconfigurarelservidordeDHCP dnsmasq estepasees , relativamentefcil,solohayqueindicarsobrequeinterfazqueremosquefuncione,yque direccionesyrangoqueremosofrecer: strictorder bindinterfaces listenaddress=10.42.43.1 interface=wlan1 exceptinterface=lo dhcpoption=option:router,10.42.43.1 dhcprange=10.42.43.10,10,42,43,100,12h 3.3 IPMasquerade coniptables AhoraquetenemoselenlacealaredBSSIDque : proveeinternetyconfiguradalaredAdhocalaqueseconectarnlosclientes,estamos dispuestos a configurar IP Masquerading, esto se configura aadiendo unas entradas a iptables.Loharemosdesdelaconsolayluegoguardaremosloscambiosparaquesean permanentes, y no tener que realizar este paso cada vez que iniciemos el equipo. Es necesarioqueelkernelsoportelafuncinip_forward,estolocomprobamosconelsiguiente comando: #cat/proc/sys/net/ipv4/ip_forward

Debemosactivaresteparmetropermanentementeenelficheroconlasopcionesdel kernel/etc/sysctl.confaadiendolasiguientelinea: net.ipv4.ip_forward=1 Ahora ya estamos listos para configurar el firewall, iptables, como sperusuario ejecutamoslossiguientescomandos:
#iptablestnatAPOSTROUTINGowlan0jMASQUERADE #iptablesAFORWARDiwlan0owlan1mstatestateRELATED,ESTABLISHEDjACCEPT #iptablesAFORWARDiwlan1owlan0jACCEPT

Paraentenderloscomandosanteriores,debemosprimeroexplicarbrevementeen queconsisteelIPMasquerading:Setratadehacerquetodoslos equiposdenuestrared interna(Adhoc) tenganlamismaIPdecaraalexterior, elkerneljuntoconiptablesse encarganderealizarestafuncin,puesbien,enlaprimeraordenaadimoslaregla[A]a iptables que har que los paquetes salientes [o] en la interfaz wlan0 van a usar masquerading,aadimosestareglaalatabladelNAT[tnat]. Enlasiguienteregla,indicamosquelospaquetesqueentren[i]porlainterfazwlan0,se dirijan a wlan1 y se encuentren es estado RELATED, o ESTABLISHED, deben ser adelantadosyaceptados.Yenlaltima,indicamosquetodoloqueprocedadewlan1yse dirijaawlan0debeseraceptado. Parahacerloscambiospermanentesdelsiguientemodo,guardandoelcontenidode las reglas que se estn ejecutando en un fichero, para luego indicar en /etc/network/interfacesquecarguedichasreglas,denuevo,enmodoAllmighty:
#iptablessave>/etc/iptables.up.rules

Luego,parapodercargarlasreglasdeiptablesaliniciarlamaquinadebemoscrear elfichero/etc/network/ifpreup.d/iptablesconelsiguientecontenido:
#!/bin/bash /sbin/iptablesrestore</etc/iptables.up.rules

Finalmenteelfichero/etc/network/interfacesquedarcomo: autolo ifaceloinetloopback autowlan0 ifacewlan0inetdhcp wirelessessid<ESSIDQUESEA> wirelesschannel9 wirelesskey<DIGITOSHEX> wirelessrate11M autowlan1 ifacewlan1inetstatic wirelesschannel1 wirelessessidshores

wirelessmodeAdhoc address10.42.43.1 netmask255.255.255.0 Deestemodo, trasreiniciarlamaquina, cuandoconsultamoslatabladerouting desdeconsolaconelcomandoroute,comprobamosqueestatodoenorden:


KernelIProutingtable DestinationGatewayGenmaskFlagsMetricRefUseIface 192.168.1.0*255.255.255.0U000wlan0 10.0.0.0*255.0.0.0U000wlan1 default192.168.1.10.0.0.0UG000wlan0

Finalmenteadjuntamosunaimagendelaparteposteriordelamaquinaquesirve comorouter,puedenobservarselasdostarjetaswirelessPCI.

4.Enlacesquehanservidodereferencia: RedesAdhocenlinux:http:// wiki.debian.org/WiFi/AdHoc DebianIPTABLESWIKI:http://wiki.debian.org/iptables HostAP:http://hostap.epitest.fi/ DHCPyDNS:http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example NATeniptables:http://www.revsys.com/writings/quicktips/nat.html Happyhacking.