Resultados 1 al 4 de 4

Cómo usar un PC con Debian como repetidor de una red Wireless

  1. #1 Cómo usar un PC con Debian como repetidor de una red Wireless 
    Avanzado
    Fecha de ingreso
    Jan 2010
    Mensajes
    813
    Descargas
    1
    Uploads
    0
    En este post ya pedí algo parecido a esto. Mi intención era que alguien lo hiciera por mí. Desgraciadamente no lo conseguí

    Así que me lo monté yo mismo. Los ingredientes:

    • Un router WiFi de los que regala Telefónica, con salida a Internet.
    • Un ordenador sobremesa con dos tarjetas de red: una Ralink (rt61pci) a la cual denominaremos de salida y que en mi instalación tiene el alias wlan0 y una Atheros (ath5k/ath_pci) a la cual denominaremos de entrada y que en mi instalación tiene el alias ath0.
    • Un ordenador portátil, con una tarjeta de red cuyo chipset no viene al caso.


    Mi intención era poder usar el ordenador sobremesa como repetidor. Aunque la señal llega perfectamente al ordenador sobremesa, no es así con el portátil. Así que usaré el sobremesa como servidor web y repetidor. Los ordenadores que se conecten al sobremesa estarán en su propio rango de IPs, y se les podrá aplicar un firewall desde el sobremesa sin problemas.

    El sobremesa funciona con Debian Lenny, pero estas instrucciones deberían funcionar perfectamente con otras distribuciones de GNU/Linux. Usaremos iptables y dnsmasq, así que si no los tienes instalados, instálalos:

    Código:
    apt-get install iptables dnsmasq
    Una de las tarjetas debe permitir el modo Master, es decir, Access Point. No todas lo permiten. En mi caso es una Atheros, y usaré el driver MadWifi (ath_pci) para echarla a andar. Por defecto, Lenny lleva el driver ath5k, no el MadWifi, así que habrá que instalarlo.

    Como el MadWifi no es libre, tendrás que activar los repositorios contrib y non-free en tu /etc/apt/sources.list. Una vez lo hayas hecho, actualiza e instala module-assistant, madwifi-tools, madwifi-modules-2.6.26-2-686 (la versión depende de tu kernel, asegúrate de usar la correcta), madwifi-source y las wireless-tools. Compila los drivers MadWifi para tu kernel con:

    Código:
    m-a prepare
    m-a a-i madwifi
    Descarga el módulo ath5k y posteriormente carga el módulo ath_pci:

    Código:
    modprobe -r ath5k
    modprobe ath_pci
    Para asegurarte de que todo esté bien, usa:

    Código:
    iwconfig
    Y asegúrate de que tu tarjeta Atheros esté ahí, probablemente con el nombre ath0. Si es así, ya podemos continuar.

    Conecta la tarjeta de salida al AP, en este caso el router de Telefónica. En este caso usaremos DHCP para obtener la IP, pero puedes especificar una a mano si quieres:

    Código:
    ifconfig wlan0 up
    iwconfig wlan0 mode managed essid "El nombre de tu red" key s:La_clave_de_la_red # Si la clave es en hexadecimal, quita el 's:'
    dhclient wlan0
    Si lo has hecho bien, podrás abrir un navegador en el ordenador sobremesa y acceder a la Web sin problemas. Ahora configuraremos dnsmasq, el cual usaremos de servidor DNS y DHCP para los ordenadores que se conecten al sobremesa.

    El archivo de configuración está en /etc/dnsmasq.conf. Ábrelo y busca la entrada interface. Ésta es la interfaz para la cual funcionará dnsmasq. La descomentaremos, y pondremos ath0:

    Código:
    interface=ath0
    Más abajo está la entrada dhcp-range, la cual también descomentaremos. Ahí está el pool de ips que dnsmasq dará al recibir peticiones DHCP y el tiempo de expiración de dichas concesiones:

    Código:
    dhcp-range=10.0.0.10,10.0.0.100,12h
    Yo puse 12 horas, pero podrías poner infinito sin problemas, siempre y cuando no desconectes demasiado el servidor. Ya está configurado, guarda y reinicia el servicio:

    Código:
    invoke-rc.d dnsmasq restart
    Ahora debemos crear el AP. Tiraremos la red:

    Código:
    ifconfig ath0 down
    Y ponemos la tarjeta en modo Master. En este caso usaremos wlanconfig, una aplicación que viene con el paquete madwifi-tools:

    Código:
    wlanconfig ath0 destroy
    wlanconfig ath0 create wlandev wifi0 wlanmode ap
    Configuramos la IP que usará la tarjeta de entrada, es decir, la puerta de enlace para los equipos que a ésta se conecten:

    Código:
    ifconfig ath0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 up
    Ponemos un ESSID y una clave, para usar el cifrado WEP:

    Código:
    iwconfig ath0 mode master essid "Frutero" key s:VivanLasPeras
    Si no quieres poner clave a la red, quita el key s:VivanLasPeras. Recuerda que es una clave WEP, así que puedes poner una de 5, 13, 16 o 29 bytes.

    Una vez realizado este último paso, deberías poder ver la red desde los demás equipos y podrás conectarte a ella, pero no tendrás acceso a Internet y es posible que ni a la red interna. Todo a su debido tiempo. Ahora cargaremos el módulo de masquerade del kernel:

    Código:
    modprobe ipt_MASQUERADE
    Usaremos las iptables para redirigir las peticiones desde la red interna hacia Internet. Primero vaciaremos las reglas de iptables existentes para asegurarnos de que no haya nada que haga conflicto. Si ya tenías reglas definidas y te resultaban necesarias, asegúrate de que sabrás restablecerlas después de ejecutar este comando:

    Código:
    iptables -F
    Activamos el masquerade con salida a la tarjeta de salida (redundancia):

    Código:
    iptables -t nat -A POSTROUTING -j MASQUERADE -o wlan0
    Cerramos todos los puertos del servidor, ya que somos unos maniáticos de la seguridad :

    Código:
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    Pero si queremos ofrecer DHCP y DNS, debemos abrir dichos puertos, pero sólo a la red que depende de la tarjeta de entrada:

    Código:
    iptables -A INPUT -p UDP -j ACCEPT --dport 67 -i ath0
    iptables -A INPUT -p UDP -j ACCEPT --dport 68 -i ath0
    iptables -A INPUT -p UDP -j ACCEPT --dport 53 -i ath0
    Supongamos que en el servidor sobremesa tenemos un servidor Web y otro SSH. Abrámoslos al exterior:

    Código:
    iptables -A INPUT -p TCP -j ACCEPT --dport 80
    iptables -A INPUT -p TCP -j ACCEPT --dport 22
    Ahora sólo nos queda activar el forwarding IPv4 en el kernel:

    Código:
    echo "1" > /proc/sys/net/ipv4/ip_forward
    Voilà! Ya está todo cerrado. Vámonos al administrador de redes del ordenador que vamos a conectar al servidor a buscar la red. En este caso, es un Windows 7. Aquí la encontramos:



    Hacemos doble clic en ella, y nos pedirá la clave. La introducimos:



    En pocos segundos, nuestro portátil se asociará al servidor, realizará la petición DHCP y configurará su IP. El milagro se ha realizado:



    ¡Funciona!

    Ahora, pensemos de otra manera. Cuando reiniciemos el servidor, todos los cambios los habremos perdido. Para solucionar este problema, pondremos todo lo que hemos hecho en un script que ejecutaremos durante el arranque:

    Código:
    #!/bin/sh
    
    # Configuramos la tarjeta wireless que usaremos para conectarnos al router.
    ifconfig wlan0 down
    iwconfig wlan0 mode managed essid "El nombre de tu red" key s:La_clave_de_la_red # Si la clave es en hexadecimal, quita el 's:'
    ifconfig wlan0 192.168.1.40 netmask 255.255.255.0 broadcast 192.168.1.255 up
    route add default gw 192.168.1.1 wlan0
    
    # Ponemos servidores de nombres. Estos son los de Google.
    echo -e "nameserver 8.8.4.4\nnameserver 8.8.8.8" > /etc/resolv.conf
    
    # Configuramos la tarjeta que usaremos como repetidor, le damos ESSID y
    # clave, y la ponemos en modo Master (AP)
    ifconfig ath0 down
    wlanconfig ath0 destroy
    wlanconfig ath0 create wlandev wifi0 wlanmode ap
    ifconfig ath0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 up
    iwconfig ath0 mode master essid "Frutero" key s:VivanLasPeras
    
    # Cargamos el módulo de Masquerade
    modprobe ipt_MASQUERADE
    
    # Vaciamos las reglas existentes
    iptables -F
    
    # Ponemos la masquerade
    iptables -t nat -A POSTROUTING -j MASQUERADE -o wlan0
    
    # Cerramos todo
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    
    # Abrimos el servidor DHCP y DNS dnsmasq SÓLO a la interfaz del repetidor
    iptables -A INPUT -p UDP -j ACCEPT --dport 67 -i ath0
    iptables -A INPUT -p UDP -j ACCEPT --dport 68 -i ath0
    iptables -A INPUT -p UDP -j ACCEPT --dport 53 -i ath0
    
    # Abrimos unos cuantos servicios que sólo se ejecutarán en el servidor
    # Si queremos hacer enrutados desde el exterior al rango 10.0.0.0/24, también
    # podremos hacerlos
    iptables -A INPUT -p TCP -j ACCEPT --dport 80
    iptables -A INPUT -p TCP -j ACCEPT --dport 22
    
    # Activamos el forwarding en el kernel
    echo 1 > /proc/sys/net/ipv4/ip_forward
    Una buena manera de hacerlo funcionar durante el arranque, es añadiéndolo al fichero /etc/rc.local.

    Buena parte de todo esto ha sido inspirado por este artículo. No sería juego limpio no mencionarles

    Posibles mejoras:
    • Conseguir que el servidor no use cifrado WEP sino WPA o WPA2.
    • Montar un servidor squid, con los beneficios que todos os podéis imaginar.


    Un saludo, y espero que sirva a alguien.
    Última edición por Fruit; 28-08-2010 a las 20:11
    Citar  
     

  2. #2  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.451
    Descargas
    11
    Uploads
    0
    Una pregunta, lo que veo que estás haciendo es un access point, no un repetidor.

    Los repetidores replican la señal, son de capa 1, mientras lo que vos describis es convertir tu desktop, en un AP.

    Es un buen manual, pero el titulo no es el adecuado :P

    Además si tenés ya un modem wifi que ya natea y asigna direcciones ip, para qué vas a querer hacer otro?

    Es más útil con un modem adsl, esos PPPoE.

    SAludos
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  3. #3  
    Avanzado
    Fecha de ingreso
    Jan 2010
    Mensajes
    813
    Descargas
    1
    Uploads
    0
    Bueno, desde mi punto de vista es un repetidor ya que me sirve para, ejem, 'evitar la pérdida de señal' :P

    Y es que simplemente, la señal que emite el propio router no es lo suficientemente potente como para cubrir todo el rango que necesito.

    Ah, y ya conseguí lo del cifrado WPA2-PSK y el Squid. Quizás actualice el tutorial pronto.
    Citar  
     

  4. #4  
    Medio
    Fecha de ingreso
    Mar 2010
    Mensajes
    142
    Descargas
    3
    Uploads
    0
    Felicitaciones Fruit, muy buen material espero pronto tirarme un buen puñal de linux para iniciarme, a ver si primero aprendo a instalar aplicaciones a compilarlas y luego a conectar pcs en redes. Actualiza el Tutorial para leerlo.
    Saludos!
    Citar  
     

Temas similares

  1. Como puedo Usar mi Motorola V3m Como Modem Gratis
    Por Junior352 en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 1
    Último mensaje: 04-05-2009, 00:37
  2. Como conectarse a Inet en Debian...
    Por Dukersindo en el foro LINUX - MAC - OTROS
    Respuestas: 23
    Último mensaje: 09-10-2008, 15:44
  3. Respuestas: 0
    Último mensaje: 10-05-2006, 00:00
  4. Respuestas: 2
    Último mensaje: 10-09-2002, 23:31
  5. como usar una cuenta host de arnet adsl como proxy
    Por darthMenem en el foro INGENIERIA INVERSA
    Respuestas: 1
    Último mensaje: 14-06-2002, 04:30

Marcadores

Marcadores