Asuswrt
es el nombre del firmware desarrollado por el fabricante Asus para su uso en sus últimos routers. Esta basado en Tomato, un proyecto de firmware de codigo abierto para routers, este firmware ha sido extensivamente modificado por Asus a lo largo de años para adaptarse a sus propios requisitos y especificaciones.
Asuswrt-Merlin es una iniciativa del desarrollador canadiense Eric Sauvageau el cual ha personalizado una versión del firmware de Asus. En dicha personalización no se producen grandes cambios, se solucionan algunos pequeños errores y limitaciones, manteniendo para ello el mismo nivel de rendimiento que el firmware original. Por ello se mantienen las siguientes características de Asuswrt soporte completo a aceleración NAT (también conocido como aceleración por hardware), rendimiento NTFS mejorado (a través de los controladores propietarios utilizados por Asus de Paragon o Tuxera) y las características exclusivas de Asus, como AiCloud o AiProtection con tecnología Trend Micro. Pero la fuerza de esta iniciativa es que dicho firmware activa una serie de opciones o características avanzadas extra como son una partición JFFS para Scripts, soporte VPN mejorado ... Si quieres ver una lista de routers oficialmente soportados por Asuswrt-Merlin pulsa aquí.
Hace un tiempo os hablaba en mi entrada "[Proyecto] Mejorando mi Red LAN (Introduccion)" que yo había adquirido en su día un router AC87U (Julio del 2015), al que posteriormente cambie el firmware por el Asuswrt-Merlin. El motivo de este cambio es porque yo quería activar una serie de opciones que el firmware oficial de Asus no trae, por ejemplo que cuando reinicie o cambie la IP Publica que me da mi ISP (Internet Service Provider), reciba en un e-mail con dicha IP. Para hacer esto se realiza mediante un Script en la partición JFFS (Sistema de Ficheros Flash con soporte a Transacciones).
¡¡Atención!! Este procedimiento puede ocasionar graves daños a su equipo, proceda bajo su propio riesgo. Ten en cuenta que este procedimiento tiene una complejidad técnica y recomiendo tener nociones de terminal de Linux. Por favor lee atentamente este procedimiento y si tiene alguna duda te recomiende que leas atentamente mis instrucciones, investigues la bibliografía o preguntes.
Requisitos Previos
Por ultimo tener habilitado SSH, no me seáis cabestros y habilitarlo solo para la Red LAN, por defecto la conexión sera a través del puerto 22, tambien hay que habiltar las opciones de aceptar login a través de Password y habilitar protección contra ataques de fuerza bruta SSH.
Pasos a seguir
Compendio Bibliográfico
Información General
Asuswrt-Merlin es una iniciativa del desarrollador canadiense Eric Sauvageau el cual ha personalizado una versión del firmware de Asus. En dicha personalización no se producen grandes cambios, se solucionan algunos pequeños errores y limitaciones, manteniendo para ello el mismo nivel de rendimiento que el firmware original. Por ello se mantienen las siguientes características de Asuswrt soporte completo a aceleración NAT (también conocido como aceleración por hardware), rendimiento NTFS mejorado (a través de los controladores propietarios utilizados por Asus de Paragon o Tuxera) y las características exclusivas de Asus, como AiCloud o AiProtection con tecnología Trend Micro. Pero la fuerza de esta iniciativa es que dicho firmware activa una serie de opciones o características avanzadas extra como son una partición JFFS para Scripts, soporte VPN mejorado ... Si quieres ver una lista de routers oficialmente soportados por Asuswrt-Merlin pulsa aquí.
Hace un tiempo os hablaba en mi entrada "[Proyecto] Mejorando mi Red LAN (Introduccion)" que yo había adquirido en su día un router AC87U (Julio del 2015), al que posteriormente cambie el firmware por el Asuswrt-Merlin. El motivo de este cambio es porque yo quería activar una serie de opciones que el firmware oficial de Asus no trae, por ejemplo que cuando reinicie o cambie la IP Publica que me da mi ISP (Internet Service Provider), reciba en un e-mail con dicha IP. Para hacer esto se realiza mediante un Script en la partición JFFS (Sistema de Ficheros Flash con soporte a Transacciones).
Requisitos Previos
- Tener instalado Asuswrt Merlin, recomendable siempre la ultima versión.
- En Administración > Sistema (Administration > System, si lo tenéis en Inglés) tener activadas las siguientes opciones; nota la primera vez pulsaremos en Si para formatear la partición JFFS en el siguiente arranque (Format JFFS partition at next boot), una vez formateada deberemos dejarla en No. Posteriormente marcaremos en Si Habilitar Scripts y Configuraciones personalizadas en JFFS (Enable JFFS custom scripts and configs).
Persistent JFFS2 partition | |
Format JFFS partition at next boot | Sí No |
---|---|
Enable JFFS custom scripts and configs | Sí No |
Por ultimo tener habilitado SSH, no me seáis cabestros y habilitarlo solo para la Red LAN, por defecto la conexión sera a través del puerto 22, tambien hay que habiltar las opciones de aceptar login a través de Password y habilitar protección contra ataques de fuerza bruta SSH.
Pasos a seguir
- Conectarnos via SSH al router y el puerto que hayamos puesto. Yo lo he realizado desde Windows por lo que lo hice con el cliente de Telnet y SSH Putty. Nos solicitara que hagamos login en el router.
- Nos dirigimos a la ruta Raiz Directorio jffs
cd /jffs
- Nos descargamos un certificado seguro (por motivos de presentación en el blog he introducido saltos de línea)
wget -c -O /jffs/configs/Equifax_Secure_Certificate_Authority.pem http://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.pem --no-check-certificate
- Nos dirigimos a la ruta Raiz Directorio jffs Directorio scripts
cd /jffs/scripts
- Editamos un fichero escribiendo el siguiente comando nano wan-start, sino existe no importa porque este comando lo creara y copiamos en el interior el siguiente script, una vez copiado procederemos a editar los campos FROM, AUTH, PASS, FRONNAME y TO con nuestros datos:
#!/bin/sh FROM="Direccion email origen: por ejemplo pepitodelospalotes@gmail.com" AUTH="Usuario email pepitodelospalotes@gmail.com" PASS="Password XXXX" FROMNAME="Router Asus" TO="Direccion de email destino" ntpclient -h pool.ntp.org -s &> /dev/null sleep 5 echo "Subject: WAN state notification" >/tmp/mail.txt echo "From: \\"$FROMNAME\\"<$FROM>" >>/tmp/mail.txt echo "Date: $(date -R)" >>/tmp/mail.txt echo "" >>/tmp/mail.txt echo "I just got connected to the internet." >>/tmp/mail.txt echo "" >>/tmp/mail.txt echo "My WAN IP is: $(nvram get wan0_ipaddr)" >>/tmp/mail.txt echo "Uptime is: $(uptime | cut -d ',' -f1 | sed 's/^.\{12\}//g')" >>/tmp/mail.txt echo "" >>/tmp/mail.txt echo "---- " >>/tmp/mail.txt echo "Your friendly router." >>/tmp/mail.txt echo "" >>/tmp/mail.txt cat /tmp/mail.txt | sendmail -H"exec openssl s_client -quiet \ -CAfile /jffs/configs/Equifax_Secure_Certificate_Authority.pem \ -connect smtp.gmail.com:587 -tls1 -starttls smtp" \ -f"$FROM" \ -au"$AUTH" -ap"$PASS" $TO rm /tmp/mail.txt
- Salimos del fichero guardando y si nos pregunta el nombre deberemos poner wan-start, no hay que poner extensiones de ningún tipo.
- Cambiamos los permisos a todos los ficheros ubicados en /jffs/scripts añadiendo permisos de lectura y ejecución con el comando:
chmod a+rx /jffs/scripts
- Si el e-mail que vamos a usar para realizar el envío de email es Gmail, deberemos activar la configuración de Acceso de aplicaciones poco seguras. Esta configuración no está disponible para las cuentas que tienen habilitada la verificación en dos pasos (2FA).
- Por ultimo lo único que nos quedaría es probar a reiniciar el router de nuestro ISP y si todo esta correctamente configurado al de unos minutos recibiremos un e-mail con la IP Pública.
Compendio Bibliográfico
Información General
- Información sobre el proyecto Asuswrt Merlin . Página Web en Inglés.
- Entrada en el Blog Naseros.com titulada "Asuswrt Merlin. Cómo vitaminar o potenciar un router ASUS" realizado el 14 de Agosto de 2017 por el autor del blog Mac Josan Artículo consultado para este artículo 20 de Diciembre del 2018. Artículo en Castellano.
- Artículo de la Wikipedia Partición JFFS
- Software Windows PuTTY.
- Wiki GitHub titulada "Sending Email" en el Proyecto oficial RMerl del autor Eric Sauvageau, desarrollador principal del Proyecto Asuswrt-Merlin. Wiki en Inglés.
- Hilo del foro SNB Forums titulada "Notifications (E-Mail)". Hilo en Inglés.
- Acceso de aplicaciones poco seguras Google
- Logo oficial Asuswrt-Merlin obtenido de la pagina Web Asuswrt Merlin para ilustrar esta entrada. Esta imagen se han puesto en esta entrada para ilustrar la entrada e identificar el firmware en cuestión.