Configuración punto de acceso con Openwrt para empresa.

Objetivo: Configurar un router con Openwrt para que una empresa comparta entre sus clientes su red Wifi.

Vamos a configurar un router con Openwrt con las siguientes condiciones:

  • El router se pondrá en modo punto de acceso para compartir sólo un porcentaje de ancho de banda.
  • Aislar el router de la red de área local para no permitir acceso a la red interna.
  • Se le añade un ratón para que la contraseña cambie por una aleatoria cada vez que se pulsa el botón izquierdo.
  • Al cambiar la contraseña enviará la contraseña nueva a un correo que el dueño de la empresa quiera.
  • En caso de necesidad al pulsar el botón derecho pondrá una clave genérica enviándola igualmente por correo.

Utilizaremos un router Huawei HG556A

Paso 1 – Instalar firmware en el router.

Lo haremos como se describe en un tutorial anterior: http://openwrt.tuinstituto.es/instalacion-de-openwrt-en-router-hg556a

Paso 2 – Poner una boca del router como WAN.

Pondremos una boca del router como WAN. Esta boca se conectará al router de la empresa. cogerá una dirección IP del router principal que da el servicio de Internet.WAN-HG556A

 

Conectamos nuestro ordenador por red al router nuevo. Si lo tenemos configurado para que nuestro ordenador pille una dirección IP automáticamente no tenemos que hacer nada. Si no es este tu caso, le pondremos a nuestro equipo una dirección IP del rango 192.168.1.X. Podrias ponerle por ejemplo la IP 192.168.1.2.

Es aconsejable que conectemos el cable de red de nuestro equipo a cualquier boca menos la última etiquetada como (LAN 4) ya que esta será la que conectemos a Internet más tarde.

Accedemos a la dirección ip 192.168.1.1 y entramos dentro del router. Recién flasheado nuestro router no tendrá password. Pulsaremos Login:

2a

A continuación pulsamos en el Menú Network -> Switch:

2b

Le damos a Add para añadir una nueva Vlan:

2c

Ponemos la Boca Lan4 del Switch como de salida hacia Internet y le damos a Save:

2d

A continuación vamos al menú Network -> Interfaces:

2e

Añadimos una nueva interface:

2f

Nombramos la nueva interface como WAN, le ponemos que pida una IP al router al que nos conectemos, le decimos que pertenece a la VLAN 2 y le damos a Submit para enviar los cambios

2g

Vamos a Advanced Settings

2h

Desmarcamos Use DNS servers advertised by peer (No debería dar problemas cuando un router le dice al nuestro el servidor de DNS que debe usar mediante el protocolo DHCP pero yo sí los he tenido. Es por ello por lo que ponemos un servidor DNS fijo. Yo he elegido el de google 8.8.8.8)

2i

Una vez hecho esto pinchamos en Firewall Settings:

2i2

Le decimos que esta interfaz nueva pertenece a la zona del firewall que tiene etiquetada como WAN y le damos a Save&Apply para que haga los cambios:

2j

Paso 3. Cambiar la dirección IP del router.

Un router no puede tener el mismo rango de direcciones IP por la LAN que por la WAN. Es muy normal que nuestro proveedor de Internet nos haya configurado el router para que la LAN sea del rango 192.168.1.0/24. En Openwrt también utilizan por defecto este rango por lo que es muy aconsejable utilizar otro. Nosotros utilizaremos el rango 192.168.24.0/24 por la LAN.

Red-PorrtalVolvemos a acceder a la IP 192.168.1.1 y le damos a Network -> Interfaces en el menú:

2e

Editamos la Red LAN:

3a

Le ponemos una dirección IP nueva al router que no entre en conflicto con la dirección IP de nuestro router principal. En nuestro caso la 192.168.24.1

3b

Hacemos clic en Save & Apply para guardar los cambios:

3c

A continuación desconectaremos nuestro cable de red del router con Openwrt , esperamos  un momento hasta que nuestro ordenador nos diga que el cable se ha desconectado y lo volvemos a conectar a cualquier boca menos la LAN4.

Al realizar esta operación nuestro equipo debe haber cogido una dirección del rango 192.168.24.0

En este punto procedemos a conectar la boca de WAN (LAN4) de nuestro router con Openwrt a nuestra red de área local. El nuevo router tomará una dirección IP de nuestro router principal y a partir de aquí ya podremos tener salida a Internet a través del router.

Paso 4. Acceder al router.

Accederemos al router en un principio por telnet desde Linux o con Putty desde Windows a la dirección IP 192.168.24.1.

telnet 192.168.24.1

A continuación le pondremos una clave al router con la orden:

passwd

4a

A partir de aquí vamos a decirle al router que instale el editor nano para poder editar mejor la configuración desde la línea de comandos:

opkg update; opkg install nano

Paso 5. Configuración de punto de acceso WI-FI

Ahora procederemos a darle acceso Wi-Fi. Accedemos desde el navegador al router http://192.168.24.1

Primero vamos al elemento del menú Network -> Wifi

5a

Activamos el wifi en Enable:

5b

A continuación hacemos clic en Edit para modificar la configuración

5c

Le asignamos un nombre a nuestra red Wifi. Le he puesto como nombre “Nombre_Empresa”. Luego le damos a Wireless Security.

5d

Configuramos el cifrado que queramos. Yo he puesto WPA-PSK/WPA2-PSK Mixed Mode ya que es más compatible para toda clase de dispositivos.

Le ponemos una clave de acceso Wifi en Key y le damos a Save & Aply.

Es irrelevante la clave que le pongamos ya que más adelante la cambiaremos por una aleatoria al pulsar un clic de ratón que le pondremos al router.

5e

Hasta ahora no hemos hecho nada del otro mundo. Los pasos anteriores se pueden encontrar fácilmente por Internet. A partir de ahora comenzamos con lo que hace que este proyecto sea interesante.

Paso 6. Permitir que nuestro router envíe correos electrónicos.

Recordemos que nuestro router debe enviar un correo electrónico a la cuenta que deseemos para que nos notifique la clave nueva.

Lo primero será acceder por ssh al router:

ssh root@192.168.24.1

Desde Windows usaremos putty.

En un principio nos dirá que el fingerprint no lo tiene almacenado. Escribimos Yes y ponemos la clave de acceso al router que asignamos en el punto 4.

6a

Una vez dentro instalamos paquete para enviar correos llamado ssmtp.

opkg update; opkg install ssmtp;

Ahora crearemos el script que cambia la clave wifi y envía correo. El script lo almacenaremos en /usr/bin/ y lo llamaremos genpasswifi

touch /usr/bin/genpasswifi
chmod +x /usr/bin/genpasswifi
nano /usr/bin/genpasswifi

Introducimos lo siguiente modificando el correo de envío al que queramos mandar la nueva clave wifi generada.:

#!/bin/sh

CORREO_ENVIO="<correodeenvio>@gmail.com"

#generica=$1

if [ "$1" != "" ]; then
 # Utiliza el parámetro puesto como password WIFI.
 PASSWORD=$1
else
 # Genera passwords de 8 letras minúsculas con número quitando las visualmente confundibles.
 PASSWORD=$(cat /dev/urandom | tr -dc 'abcdefhijklmnprstuvwxyz23456789' | head -c8);
fi

#Comando para cambiar password por la clave generada
uci set wireless.@wifi-iface[0].key=$PASSWORD

#Comandos para hacer efectivos los cambios en wifi
uci commit wireless; wifi

echo -e "To: $CORREO_ENVIO\nFrom: $CORREO_ENVIO\nSubject:Nueva Contraseña Wifi\n\n$PASSWORD" > /tmp/correo.txt
ssmtp $CORREO_ENVIO < /tmp/correo.txt

Guardamos el archivo y salimos (CTRL+O) y (CTRL+X).

La nueva clave será una cadena de 8 letras minúsculas y números quitando los visualmente confundibles. Si queremos que sea más larga cambiamos el -c8 del código por -c10 o -c12. Es tu elección.

Si queremos que incluya más caracteres en la clave añadiremos más letras al conjunto ‘abcdefhijklmnprstuvwxyz23456789’

A continuación editamos el fichero de configuración para que pueda enviar correos.

nano /etc/ssmtp/ssmtp.conf

Quitamos lo que tiene (CTRL+K) y lo sustituimos por esto variando lo que está en rojo con la información de la cuenta de correo que va a enviar los mensajes.

hostname=MIROUTER
root=micorreo@gmail.com
AuthUser=micorreo@gmail.com
AuthPass=mipassword_de_correo
UseSTARTTLS=YES
mailhub=smtp.gmail.com:587
FromLineOverride=YES
UseTLS=YES

Guardamos el archivo y salimos (CTRL+O) y (CTRL+X).

Utilizando una cuenta de correo de gmail, debes habilitar lo siguiente para poder enviar correos con ella en el siguiente sitio: https://www.google.com/settings/security/lesssecureapps.

Para probar si envía sólo tienes que ejecutar el script y comprobar que llega el correo con una clave nueva:

genpasswifi
genpasswifi clavegenerica

7. Ponerle un ratón al router y activar el envío con un clic izquierdo:

Instalamos un módulo para módulo para que reconozca el ratón (kmod-usb-hid) y una aplicación para reconocer eventos del ratón (triggerhappy).

opkg install kmod-usb-hid triggerhappy

Haremos que actúe al pulsar el botón izquierdo del ratón. Para ello crearemos un fichero llamado /etc/triggerhappy/triggers.d/botones.conf

De un tirón lo haremos con esta sentencia:

echo -e "BTN_LEFT\t\t1\t\t/usr/bin/genpasswifi" > /etc/triggerhappy/triggers.d/botones.conf

Ahora le añadimos que al pulsar el botón derecho nos asigne una clave genérica que llamaremos “NombreEmpresa“. Cámbiala por la que tú quieras.

echo -e "BTN_LEFT\t\t1\t\t/usr/bin/genpasswifi NombreEmpresa" >> /etc/triggerhappy/triggers.d/botones.conf

A continuación CON EL RATÓN CONECTADO iniciamos el triggerhappy y hacemos que arranque al iniciar el router:

/etc/init.d/triggerhappy start
/etc/init.d/triggerhappy enable

Para probarlo conecta el ratón y reinicia el router con el siguiente comando.

reboot

Una vez que haya reiniciado, haz clic con ambos botones del ratón  y comprueba si envía la clave nueva y la genérica.

8. Compartir sólo un porcentaje de ancho de banda de nuestro Internet.

Vamos a instalar el paquete SQM  (Smart Queue Management).

Para ello sólo tenemos que hacer lo siguiente accediendo por ssh

ssh root@192.168.24.1

y poniendo lo siguiente:

opkg update; opkg install luci-app-sqm;

A continuación accedemos a nuestro router a través del navegador: http://192.168.24.1

Accedemos en el menú a network-> SQM QoS (Smart Queue Management Quality of Service)

8a

En mi caso solo tengo contratados 10 Mbps de bajada y 1 Mbps de subida con mi compañía. Lo he configurado para que los que se conecten sólo tengan 4Mbps de bajada y 500 kbps de subida.

Tenemos que marcar Enable this SQM instance, poner como interfaz eth0.2 y rellenar los campos siguientes con los valores que necesitemos sabiendo que los valores hay que ponerlos en kbps.

Al finalizar le damos a Save & Apply.

8b

Para realizar cálculos de conversión de valores de tasas de transmisión de datos puedes usar este servicio de google: https://www.google.es/search?q=mbps+to+kbps

8c

9. Aislar los clientes entre sí y el acceso a la red local de la empresa.

Para aislar los clientes entre ellos, entramos por SSH y ponemos:

uci set wireless.@wifi-iface[0].isolate=1;uci commit wireless; wifi;

Para aislarlos de nuestra red repasemos lo siguiente:

Red-Porrtal

Mi router deja pasar todo el tráfico por lo que también se podrá acceder a las direcciones IP del rango 192.168.1.0/24 que estén conectadas en el router principal.

Para que desde detrás de este router no se pueda acceder a ninguna dirección IP del rango 192.168.1.0/24 debemos añadir una regla al firewall.

Accederemos al firewall a través del interface de configuración web del router.

A continuación hacemos clic en custom rules.

Y le metemos la siguiente línea para que rechace los paquetes dirigidos a la red 192.168.1.0

iptables -I FORWARD -d 192.168.1.0/24 -j REJECT

Con esto ya lo habremos bloqueado.

 

6 comentarios en “Configuración punto de acceso con Openwrt para empresa.

  1. Buen dia!!

    Hola, yo quisiera tener un tutorial para instalar y configurar el OpenWrt para que pequeños negocios puedan ofrecer WiFi a sus clientes, pero que dicho acceso sea con Facebook, Instagram o Twitter.

    Debe ser esto como empaquetado, para no estar haciendo siempre TODO este proceso en cada nuevo router. Que sea como una especie de programa que se instale. Dios, espero haberme explicado bien.

  2. Hola.
    Despues de seguir las instrucciones, no consigo que el router con Openwrt me de ips en el nuevo rango. Ni por wifi ni por lan. Me sigue dando ips desde el router principal. ¿Dónde puede estar mi error?
    Un saludo y muchas gracias.

  3. Hey, muy buen proyecto y bien explicado, espero que pronto puedas terminar esta publicación con lo que queda [PENDIENTE] es muy interesante esta parte. Imagino que usarás el firewall del router para denegar el acceso a la 192.168.1.0/24, habrá que probar que tan seguro es, jeje. Con este y con tus tutos de Zsun estás en mis blogs favoritos.

  4. Supongo que ya no vas a acabar lo de [PENDIENTE]
    Pero de todas formas, muchas gracias. Me ha ayudado mucho esta entrada para configurar el router.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *