{"id":22993983,"url":"https://github.com/azagramac/ubiquiti-edgerouter","last_synced_at":"2026-04-13T08:31:21.092Z","repository":{"id":248917369,"uuid":"819033786","full_name":"azagramac/ubiquiti-edgerouter","owner":"azagramac","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-24T00:25:24.000Z","size":1489,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-01T09:01:30.981Z","etag":null,"topics":["docker","edgemax","edgemax-edgerouter-er-x","edgeos","edgerouter","edgerouter-4","edgerouter-products","ubiquiti","uisp","unifi"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azagramac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-23T15:33:35.000Z","updated_at":"2024-12-24T00:25:27.000Z","dependencies_parsed_at":"2025-10-05T05:32:17.621Z","dependency_job_id":"fe2f72ad-5765-45c3-89c9-31bdeddd34d8","html_url":"https://github.com/azagramac/ubiquiti-edgerouter","commit_stats":null,"previous_names":["azagramac/ubiquiti-edgerouter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/azagramac/ubiquiti-edgerouter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azagramac%2Fubiquiti-edgerouter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azagramac%2Fubiquiti-edgerouter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azagramac%2Fubiquiti-edgerouter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azagramac%2Fubiquiti-edgerouter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azagramac","download_url":"https://codeload.github.com/azagramac/ubiquiti-edgerouter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azagramac%2Fubiquiti-edgerouter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31746101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","edgemax","edgemax-edgerouter-er-x","edgeos","edgerouter","edgerouter-4","edgerouter-products","ubiquiti","uisp","unifi"],"created_at":"2024-12-15T05:16:10.628Z","updated_at":"2026-04-13T08:31:21.073Z","avatar_url":"https://github.com/azagramac.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://www.ui.com/\" target=\"_blank\"\"\u003e\n        \u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/1d7fa910-f90c-4ec6-a8f5-bfa14bf5d4b2\" alt=\"logo\"\u003e\n    \u003c/a\u003e\n    \u003cbr\u003e\n    \u003ch3\u003eUbiquiti networks x EdgeMax©\u003c/h3\u003e\n\u003c/div\u003e\n\n---\n\n## Índice de contenido\n\n- [Acceso a la CLI y comandos básicos](#acceso-a-la-cli-y-comandos-básicos)\n  - [Comandos básicos](#comandos-básicos)\n  - [Comandos VI](#comandos-básicos-de-vi)\n  - [Acceso GUI](#acceso-a-la-gui)\n  - [Certificado](#solucionar-problema-con-certificado-inválido)\n- [Configuración inicial del EdgeRouter](#configuración-inicial-del-edgerouter)\n  - [Reset fábrica](#realización-de-un-hardware-o-software-reset)\n  - [Actualizaciones](#actualizar-edgerouter)\n  - [Acceso interfaz](#acceso-a-la-interfaz-de-configuración-edgeos)\n  - [Copia seguridad](#configuración-de-copia-de-seguridad-y-restauración)\n  - [Copias de seguridad programadas de Edgerouter](#Copias-de-seguridad-programadas-de-Edgerouter)\n  - [UISP](#gestión-de-uisp)\n- [Hardening del dispositivo](#hardening-del-dispositivo)\n  - [Configuración incial](#configuración-incial)\n  - [Usuarios](#remover-default-user-y-crear-un-usuario)\n  - [SSH](#ssh)\n  - [Autenticador de Google para SSH](#autenticador-de-google-para-ssh)\n  - [Restringir la gestión de SSH y GUI](#restringir-la-gestión-de-ssh-y-gui)\n- [Firewall EdgeRouter](#firewall-edgerouter)\n  - [Tipos de reglas](#tipos-de-reglas)\n  - [Firewall básico](#firewall-básico)\n  - [PPPoE O2 Movistar](#configurar-una-interfaz-PPPoE-de-Movistar-u-O2-en-un-edgerouter-de-Ubiquiti)\n  - [IPv6](#ipv6-on-the-edgerouter)\n  - [Dual wan](#dual-wan)\n  - [NAT](#nat)\n    - [Souce NAT](#source-nat-and-masquerade)\n    - [Destination NAT](#destination-nat)\n    - [Organización de reglas](#reordenación-de-las-reglas-de-firewall-y-nat)\n    - [Port forwarding](#port-forwarding)\n  - [ICMP](#ICMP)\n- [LLDP]\n  - [Habilitar servicio LLDP]\n- [Routing](#routing)\n  - [Load Balancing](#load-balancing)\n  - [OSPF](#ospf)\n  - [BGP](#bgp)\n  - [VRRP](#vrrp)\n  - [Public Static IP Addresses](#public-static-ip-addresses)\n  - [Static Route](#static-route)\n  - [VLAN](#VLANS)\n- [LAN](#lan)\n  - [DHCP](#dhcp)\n  - [IP estáticas LAN](#configurar-IP-estática-para-dispositivo)\n  - [Router switch](#router-switch)\n  - [DNS dinámico](#dns-dinamico)\n- [Añadir listas de seguridad al firewall](#añadir-listas-de-seguridad-al-firewall)\n  - [Crear script](#Crear-script)\n  - [Programar tarea](#programar-tarea)\n  - [Listas IPs](#readme-con-listas-de-ips-públicas)\n  - [Revision](#revisión)\n  - [Monitorización IPs bloqueadas](#monitorización-de-ips-bloqueadas)\n  - [Cortafuegos por país en Edgerouter](#Cortafuegos-por-país-en-Edgerouter)\n- [Certificado localhost](#posibilidad-de-añadir-un-certificado-a-localhost)\n- [OpenVPN](#openvpn)\n  - [EdgeRouter como Servidor](#configuración-edgerouter-como-servidor-openvpn.-(servidor))\n  - [EdgeRouter como Cliente](#configuración-edgerouter-como-cliente-openvpn.-(cliente))\n- [Squidguard](#squidguard-proxy)\n  - [Requisitos](#requisito-previo)\n  - [Configuración](#ejemplo-de-configuración)\n- [Syslog](#syslog)\n- [WireGuard](#wireguard)\n- [Diagnóstico de red](#herramientas-de-diagnostico-de-red)\n- [Unifi](#unifi)         \n- [Conclusión](#conclusión)\n---\n\n\u003cdiv class=\"warning\"\u003e\n  :warning:\n  \u003cp\u003e\u003cem\u003eRecordar que los pasos aquí expuestos son orientativos.\u003c/em\u003e\u003c/p\u003e\n  \u003cp\u003e\u003cem\u003eRecomiendo su lectura y compresión antes de aplicarlo sobre un entorno de producción.\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\nWriten by [Juan](https://github.com/juanico10) 👌🏻\n\n\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# Acceso a la CLI y comandos básicos\nLos lectores aprenderán cómo conectarse y configurar un EdgeRouter por primera vez. Hay muchos entornos diferentes en los que es posible que sea necesario realizar ajustes específicos. Este artículo muestra un escenario de instalación común, pero no es necesario aplicarlo en todos los entornos de red.\n\n## Comandos básicos\n\u003cul\u003e\u003ccode\u003ecommit:\u003c/code\u003epara activar los cambios.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ecommit-confirm:\u003c/code\u003eEste comando reinicia el dispositivo en 10 minutos (puedes personalizar este valor) a menos que el commit sea confirmado con el comando \u003ccode\u003econfirm\u003c/code\u003e. Esto es útil cuando estás haciendo cambios en un dispositivo remoto y no quieres arriesgarte a perder el acceso a él.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003esave:\u003c/code\u003e para almacenar la configuración \"activa\" en la configuración de inicio.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ecompare:\u003c/code\u003e Para ver qué cambios se han realizado en la configuración.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003econfigure:\u003c/code\u003e modo configuración.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eshow:\u003c/code\u003e mostrar -\u003e Ejemplo: show firewall\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eset:\u003c/code\u003e establecer configuración. -\u003e Ejemplo: set firewall name TEST default-action drop\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eedit:\u003c/code\u003e Para crear la misma acción y reducir la cantidad de repeticiones en la sintaxis completa. -\u003e Ejemplo: edit firewall name TEST\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eup:\u003c/code\u003e Para subir un nivel de edición -\u003e Ejemplo: volver al set de configuración anterior\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003etop:\u003c/code\u003e Para volver al nivel de edición superior -\u003e Ejemplo: Volver al ser de configuración incial\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ediscard:\u003c/code\u003e para deshacer los cambios no confirmados\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ecopy:\u003c/code\u003e Para crear una nueva acción existente -\u003e Ejemplo: copy name WAN1_LOCAL to name WAN2_LOCAL\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003erename:\u003c/code\u003e Para cambiar el nombre de la nueva acción -\u003e Ejemplo: rename name WAN2_LOCAL to name WAN2_IN\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eload:\u003c/code\u003e cargar configuración.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003e? o tecla de tab:\u003c/code\u003e para mostrar opciones para el nivel de edición especificado\u003c/ul\u003e\n\n## Comandos básicos de VI\n\u003cul\u003e\u003ccode\u003ewq\u003c/code\u003eGuardar y salir.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003e:q!\u003c/code\u003eSalir sin guardar.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eu\u003c/code\u003eDeshace última acción.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ei\u003c/code\u003emodo inserción por la izquierda.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ea\u003c/code\u003emodo inserción por la derecha.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003edd\u003c/code\u003eElimina la línea actual.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ep\u003c/code\u003eCopia la palabra actual.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eA\u003c/code\u003ePone le puntero al final de la línea.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ew\u003c/code\u003eSalta de palabra en palabra.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eD\u003c/code\u003eBorra desde el puntero hacia el final de la línea.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eo\u003c/code\u003eAgrera una línea debajo de la actual.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eO\u003c/code\u003eAgrega una línea encima de la actual.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eP\u003c/code\u003eCopia la palabra pegada.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003egw\u003c/code\u003eCopia la palabra actual.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ehelp\u003c/code\u003eAyuda.\u003c/ul\u003e\n\n## Acceso a la GUI\nMediante un navegador, accedemos a \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e. Cargara una web donde deberemos introducir unas credenciales. En este caso las que vienen de fábrica.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/bad23c40-0039-41ed-900c-e79947521d87\" alt=\"img_login\"\u003e\u003c/p\u003e\n\n\nLa contraseña por defecto:\n\u003cul\u003e\u003ccode\u003eUsuario:\u003c/code\u003e ubnt\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eContraseña:\u003c/code\u003e ubnt\u003c/ul\u003e\n\nUna vez introducidas las credenciales, se cargará la web de gestión del EdgeRouter.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/9dd58c41-de6c-4127-85ae-420d6d436f69\" alt=\"img_dashboard\"\u003e\u003c/p\u003e\n\n\n### Desde la Terminal\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/2396c5d9-a1fe-4e65-ac32-1eda5669e474\" alt=\"img_terminal\"\u003e\u003c/p\u003e\n\n### Instrucciones de uso con GUI:\n0. Acceda a la interfaz de usuario web de EdgeRouter\n1. Navegue a la parte superior derecha de la interfaz de usuario web.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/b9b8d65f-8c13-4a79-8fa6-cd360a45d948\" alt=\"img_terminal_web\"\u003e\u003c/p\u003e\n\n## Solucionar problema con certificado inválido\n\u003cp\u003e\u003csup\u003eEn los comandos de OpenSSL a continuación, reemplace los nombres de archivo en TODAS LAS MAYÚSCULAS con las rutas y nombres de archivo reales con los que está trabajando.\u003c/sup\u003e\u003c/p\u003e\nCuando intentamos acceder vía web, nos indica que el certificado es inválido al ser autofirmado:\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/ab347e86-69d8-452c-89c4-63068a472f4a\" alt=\"img_web_error_cert\"\u003e\u003c/p\u003e\n\nPodemos ver el contenido del archivo de certificado \u003ccode\u003e.PEM\u003c/code\u003e:\n```sh\nopenssl x509 -in CERTIFICATE.pem -text -noout\n```\nPara poder solucionar, debemos descargar el certificado del navegador. Nos descarga un archivo \u003ccode\u003e.pem\u003c/code\u003e:\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/33ccc6bd-068c-467b-918b-f1c0717947c7\" alt=\"cert1\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c4bea63b-7d94-4c73-990c-6c2e9ba223f1\" alt=\"cert2\"\u003e\u003c/p\u003e\n\nUna vez descargado tenemos que cambiar el \u003ccode\u003e.pem\u003c/code\u003e a \u003ccode\u003e.crt\u003c/code\u003e con OpenSSL:\n```sh\nopenssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.crt\n```\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/ed84c2a9-9388-4571-b600-5b7bd826daea\" alt=\"cert3\"\u003e\u003c/p\u003e\n\nDespues de haber cambiado el formato, procedemos a instalar el certificado en la raiz de confianza:\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/096b7db4-f295-4e73-84c9-a038a235f45c\" alt=\"cert4\"\u003e\u003c/p\u003e\n\nUna vez importado el certificado y borrado las cookies, ya no nos indicará que el certificado no es de confianza.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/151fba35-3575-470b-afb3-35d1b42733c1\" alt=\"cert5\"\u003e\u003c/p\u003e\n\nTambien podemos migrar el \u003ccode\u003e.pem\u003c/code\u003e a \u003ccode\u003e.pfx\u003c/code\u003e con OpenSSL:\n```sh\nopenssl pkcs12 -export -in CERTIFICATE.pem -inkey CERTIFICATE.key -out CERTIFICATE.pfx\n```\n\u003cp\u003e\u003csup\u003ePara ello necesitas la private key del certificado.\u003c/sup\u003e\u003c/p\u003e\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# Configuración inicial del EdgeRouter:\n\u003cimg src=\"https://help.ui.com/hc/article_attachments/360064722654\" alt=\"Ubiquiti edgemax\"/\u003e\n\nLa configuración inicial del EdgeRouter implica la configuración básica del dispositivo para que pueda conectarse a Internet y administrar el tráfico de red.\n\n## Realización de un Hardware o Software Reset\nEl EdgeRouter se puede restablecer a los valores predeterminados de fábrica utilizando un hardware o software método de restablecimiento\n\n**Hardware Reset:** Borra todos los archivos de configuración y del sistema, restableciendo el dispositivo al estado predeterminado de fábrica.\n**Software Reset:** Solo borra la configuración y deja intactos los demás archivos del sistema.\n\n:warning: \u003cstrong\u003e\u003cfont style=\"vertical-align: inherit;\"\u003eATENCIÓN: \u003c/font\u003e\u003c/strong\u003e Los métodos de reinicio de hardware a continuación borrarán todos los archivos de configuración y del sistema.\n\n\u003cdetails\u003e\n    \u003csummary\u003eRealización de un restablecimiento de hardware :\u003c/summary\u003e\n\n### Instrucciones de uso para realizar reset button:\n\n1. Verifique que EdgeRouter esté completamente iniciado.\n2. Mantenga presionado el reinicio.\n3. Los LED del puerto comenzarán a encenderse en secuencia, comenzando por el puerto 1 y terminando en el último puerto.\n4. Continúe presionando el botón de reinicio durante aproximadamente 10 segundos hasta que el LED del puerto 1 se encienda nuevamente.\n5. Suelte el botón de reinicio.\n6. El EdgeRouter se reiniciará.\n7. Espere a que se complete el reinicio.\n8. Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e dirección IP predeterminada.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/blob/main/assets/reset.gif\" alt=\"reset\"\u003e\u003c/p\u003e\n\n### Instrucciones de uso para realizar un Power On Reset:\n\n1. Desconecte el cable de alimentación del EdgeRouter.\n2. Mientras vuelve a conectar el cable de alimentación al EdgeRouter, mantenga presionado el reinicio .\n3. Los LED del puerto comenzarán a encenderse en secuencia, comenzando por el puerto 1 y terminando en el último puerto.\n4. Continúe presionando el botón de reinicio durante aproximadamente 10 segundos hasta que el LED del puerto 1 se encienda nuevamente.\n5. Suelte el botón de reinicio.\n6. El EdgeRouter se reiniciará.\n7. Espere a que se complete el reinicio.\n8. Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e dirección IP predeterminada.\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n\u003cdetails\u003e\n    \u003csummary\u003eRealización de un reinicio de software:\u003c/summary\u003e\n\n### Instrucciones de uso con GUI:\n0. Acceda a la interfaz de usuario web de EdgeRouter.\n1. Navegue a la Sistema en la parte inferior izquierda de la interfaz de usuario web.\n2. Restablezca la configuración a los valores predeterminados presionando el Restablecer a los valores predeterminados en la Restablecer  predeterminados .\n3. El EdgeRouter solicitará que se reinicie el dispositivo para completar el restablecimiento.\n4. Espere a que se complete el reinicio.\n5. Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e dirección IP predeterminada \n\n### Instrucciones de uso con CLI:\n0. acceda a la interfaz de línea de comandos de EdgeRouter.\n1. Sobrescriba el archivo de inicio actual \u003ccode\u003econfig.boot\u003c/code\u003e con el archivo de inicio predeterminado \u003ccode\u003econfig.boot.default\u003c/code\u003e.\n\u003cul\u003e\u003ccode\u003esudo cp /opt/vyatta/etc/config.boot.default /config/config.boot\u003c/code\u003e\u003c/ul\u003e\nHaga clic para copiar\n2. Reinicie EdgeRouter.\n\u003cul\u003e\u003ccode\u003ereboot\u003c/code\u003e\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eProceed with reboot? [confirm]\u003c/code\u003e\u003c/ul\u003e\n3. Espere a que se complete el reinicio.\n4. Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e dirección IP predeterminada  \n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n## Actualizar EdgeRouter\nAntes de realizar cualquier cambio o configuración en los equipos Ubiquiti EdgeMax debe contar con la última versión del Firmware.\n- Pueden buscar en la web de descargas de Ubiquiti:\n\u003cp\u003e\u003cul\u003e\u003ca title=\"download\" href=\"https://www.ui.com/download/edgemax/\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/5396b9aa-5f7f-41bc-a713-974b3ad7c4a5\" alt=\"download\" width=\"80\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/p\u003e\n\n- Pueden buscar en la web de lanzamientos de Ubiquiti:\n\u003cp\u003e\u003cul\u003e\u003ca title=\"download\" href=\"https://community.ui.com/releases?q=EdgeMAX\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/e7486209-8360-44ac-971d-4fe300d6db61\" alt=\"rss\" width=\"80\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/p\u003e\n\nY seguir la guía que indica fabricante: \u003ca href=\"https://help.ui.com/hc/en-us/articles/205146110-EdgeRouter-How-to-Upgrade-the-EdgeOS-Firmware\" target=\"_blank\"\u003eCómo actualizar el firmware de EdgeOS\u003c/a\u003e\n\n## Acceso a la interfaz de configuración EdgeOS\n\u003cdetails\u003e\n    \u003csummary\u003eOpción 1:\u003c/summary\u003e\n\n### Instrucciones de uso con IP ESTÁTICA:\n1. Conecte un cable Ethernet desde el puerto Ethernet del ordenador al puerto eth0 del EdgeRouter.\n2. Configure el adaptador de Ethernet en su sistema host con una dirección IP estática en la subred  \u003ccode\u003e192.168.1.x\u003c/code\u003e.\n3. Inicie el explorador web. Escriba \u003ccode\u003ehttps://192.168.1.1\u003c/code\u003e en la barra de direcciones. Pulse Intro (PC) o Retorno (Mac).\n4. Introduzca ubnt en los campos de nombre de usuario y contraseña. Lea el acuerdo de licencia de Ubiquiti y marque la casilla junto a I agree to the terms of this License Agreement (Acepto los términos de este acuerdo de licencia) para aceptarlo. Haga clic en Login (Inicio de sesión).\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n\u003cdetails\u003e\n    \u003csummary\u003eOpción 2:\u003c/summary\u003e\n\n### Instrucciones de uso con DHCP:\n1. Conecte un cable Ethernet de eth1 en el EdgeRouter a un segmento de LAN que ya tiene un servidor DHCP.\n2. Para comprobar la dirección IP del EdgeRouter, utilice uno de los métodos siguientes:\n\u003cul\u003e2.1 Configure el servidor DHCP para que proporcione una dirección IP específica al EdgeRouter en función de su dirección MAC (en la etiqueta).\u003c/ul\u003e\n\u003cul\u003e2.2 Deje que el EdgeRouter obtenga una dirección IP y luego compruebe el servidor DHCP para ver qué dirección IP se asignó.\u003c/ul\u003e\n3. Inicie el explorador web. Introduzca la dirección IP correcta en el campo de dirección. Pulse Intro (PC) o Retorno (Mac).\n4. Introduzca ubnt en los campos de nombre de usuario y contraseña. Lea el acuerdo de licencia de Ubiquiti y marque la casilla junto a I agree to the terms of this License Agreement (Acepto los términos de este acuerdo de licencia) para aceptarlo. Haga clic en Login (Inicio de sesión).\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n## Configuración de copia de seguridad y restauración\nRealizar una copia de seguridad y restaurar el archivo de configuración de un EdgeRouter.\n\n\u003cdetails\u003e\n    \u003csummary\u003eRealización copia de seguridad y restauración vía GUI:\u003c/summary\u003e\n\n### Instrucciones de uso para realizar copia vía GUI\n1. Navegue al sistema en la parte inferior izquierda de la GUI para descargar el archivo de configuración de la copia de seguridad.\n\u003cul\u003e\u003ccode\u003e**Sistema** \u003e **Gestión de configuración** y **mantenimiento de dispositivos** \u003e **Back Up Config**\u003c/code\u003e\u003c/ul\u003e\n2. Descargue el archivo de configuración de la copia de seguridad haciendo clic en el Descargar .\n3. EdgeRouter le pedirá que guarde el archivo en su ordenador.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/cbee38cf-3fc9-46ad-9604-6f7e46e61d4c\" alt=\"backup\"\u003e\u003c/p\u003e\n\n### Instrucciones de uso para restaurar copia vía GUI\n1. Navegue al sistema en la parte inferior izquierda de la GUI para descargar el archivo de configuración de la copia de seguridad.\n\u003cul\u003e\u003ccode\u003e**Sistema** \u003e **Gestión de configuración** y **mantenimiento de dispositivos** \u003e **Restore Config**\u003c/code\u003e\u003c/ul\u003e\n2. Cargue el archivo de configuración de la copia de seguridad haciendo clic en el **Upload a file** .\n3. EdgeRouter solicitará que se reinicie el dispositivo para completar la restauración.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/94c88a7e-eed8-47db-b764-24c1a3000be2\" alt=\"restore\"\u003e\u003c/p\u003e\n\n### Instrucciones de uso para realizar/restaurar copia vía UNMS\nPara realizar o restaurar vía UNMS deben seguir los pasos de este artículo:\n\u003cul\u003e\u003ca href=\"https://help.ui.com/hc/en-us/articles/360002535514\" target=\"_blank\"\u003erealizar o restaurar vía UNMS\u003c/a\u003e\u003c/ul\u003e\n\u003cp\u003e\u003cul\u003eTambien hay un contenedor docker unms en el enlace:\u003ca href=\"https://github.com/Nico640/docker-unms\" target=\"_blank\"\u003eGithub\u003c/a\u003e\u003c/ul\u003e\u003c/p\u003e\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n\u003cdetails\u003e\n    \u003csummary\u003eRealización copia de seguridad y restauración vía CLI:\u003c/summary\u003e\n\n### Instrucciones de uso para realizar copia vía CLI\n\n\u003cp\u003e1. Puede hacerlo usando el botón CLI en la GUI o usando el terminal Linux.\u003c/p\u003e\n\u003cp\u003e2. Ingrese al modo de configuración y asegúrese de que todos los cambios en las configuraciones actualmente activas/en funcionamiento se guarden en la arranque/inicio.\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003ecommit ; save\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003e3. Guarde el archivo de configuración \u003ccode\u003econfig.boot\u003c/code\u003e en una máquina remota mediante una de estas opciones: TFTP, SCP, FTP o SFTP.\u003c/p\u003e\n\n```sh\nscp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e   Save to file on remote machine\nsftp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e  Save to file on remote machine\nftp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e   Save to file on remote machine\ntftp://\u003chost\u003e/\u003cfile\u003e                  Save to file on remote machine\n```\nY con el comando \u003ccode\u003e**save tftp://host/config.boot**\u003c/code\u003e guardamos el archivo de configuración.\n\u003cp\u003e4. Verifique el contenido de la configuración de inicio abriendo el \u003ccode\u003econfig.boot\u003c/code\u003e con un editor de texto y compare con el del equipo que se haya exportado correctamente.\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003ecat /config/config.boot\u003c/code\u003e\u003c/ul\u003e\n\n### Instrucciones de uso para restaurar copia vía CLI\n\u003cp\u003e1. Puede hacerlo usando el botón CLI en la GUI o usando un programa como PuTTY.\u003c/p\u003e\n\u003cp\u003e2. Compare las diferencias entre la respaldo/funcionamiento y la activa.\u003c/p\u003e\n\u003cp\u003e3. Guarde el archivo de configuración \u003ccode\u003econfig.boot\u003c/code\u003e en una máquina remota mediante una de estas opciones: TFTP, SCP, FTP o SFTP.\u003c/p\u003e\n\n```sh\nscp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e   Load from file on remote machine\nsftp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e  Load from file on remote machine\nftp://\u003cuser\u003e:\u003cpasswd\u003e@\u003chost\u003e/\u003cfile\u003e   Load from file on remote machine\nhttp://\u003chost\u003e/\u003cfile\u003e                  Load from file on remote machine\ntftp://\u003chost\u003e/\u003cfile\u003e                  Load from file on remote machine\n```\n\nY con el comando \u003ccode\u003e**load tftp://host/config.boot**\u003c/code\u003e guardamos el archivo de configuración.\n\u003cp\u003e4. Verifique que la restauración ha sido correcta y con el contenido de la configuración del \u003ccode\u003econfig.boot\u003c/code\u003e con un editor de texto y compare con el del equipo que se haya importado correctamente.\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003ecat /config/config.boot\u003c/code\u003e y con el comando \u003ccode\u003ecompare\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003e5. Una vez asegurado de que todos los cambios en las configuraciones actualmente activas/en funcionamiento son correctas se procede a guardar en el arranque/inicio.\n\u003cul\u003e\u003ccode\u003ecommit ; save\u003c/code\u003e\u003c/ul\u003e\u003c/p\u003e\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n- También hay una opción que nos indican Ubiquiti, ellos la llaman **desinfectar** o **limpiar** las configuraciones de EdgeRouter para eliminar toda la información personal y confidencial.\nUbiquiti nos dedica un articulo muy detallado para esta opción. Esta opción de **desinfectar** es cuando necesitas ayuda y quieres enviar la plantilla o \"cachos\" de la plantilla al foro o fabricante.\n\u003cul\u003e\u003ca href=\"https://help.ui.com/hc/en-us/articles/360012074414\" target=\"_blank\"\u003eSanear las configuraciones de EdgeRouter\u003c/a\u003e\u003c/ul\u003e\n\n## Copias de seguridad programadas de Edgerouter\nEn esta sección, describiré cómo configurar una copia de seguridad diaria programada de la configuración del Edgerouter a través de SFTP a otro Linux.\n\n#### En el Edgerouter\nPrimero necesitamos generar un par de claves públicas en nuestro Edgerouter. Esto es mucho más seguro que usar una contraseña para la autenticación.\n\n```sh\nsudo bash\nmkdir /config/ssh-keys\ncd /config/ssh-keys\nssh-keygen -f backup -C \"SSH key for backup\" -N \"\"\ncat backup.pub\n```\n\nLa última línea imprime nuestra clave pública. Esta clave es necesaria en nuestro servidor de respaldo. Una clave podría verse así:\n```sh\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjsIf2CJz7cM5axHSsm+Zj1HvfAdbgVFvoWcGEw4rfKo+sRY/QQjNZfFCQyBRLzY5MBBnPrk1y75iILddaLVQvSm/3gSj6ZrEGH1ZS5mxznnwIovrROZ9tJeCPiS/1QDMMZDbTRR+Ez+eQVnaWdIhLGBhBEjj13VFAyV33QVzaaBc0SbtpzfbmUAVFHIjBXuUHoRTw0uZlvEg1GD68Mp7GhC6f1YeNU+zt2pA+6KRP9rZvshLfvAH9IP6uzgu17o2cDowF3tZmlhCFnr062ptbfDSnTO6ywEyzCIue85H6hEItmC3VBdnx SSH key for backup\n```\n\n#### En el servidor de respaldo\nAhora vamos a nuestro servidor que recibirá las copias de seguridad y creamos un usuario para este fin:\n```sh\nadduser backupuser\nsu backupuser\nmkdir /home/backupuser/.ssh\nmkdir /home/backupuser/edge-backups\nvi /home/backupuser/.ssh/authorized_keys\n```\n\nLa última línea edita el archivo `\"authorized_keys\"`, donde debe pegar la clave pública generada en Edgerouter.\n\n\n#### De vuelta en el Edgerouter\nAhora crea este script \"/config/scripts/backup-remote.sh\" y chmod 755:\n```sh\n#!/bin/bash\nsftp_host=192.168.X.X\nsftp_user=backupuser\nsftp_folder=/home/backupuser/edge-backups\nsftp_key=/config/ssh-keys/backup\n\nnow=$(date +%d%m%y-%H%M)\ntar -cf - /config | gzip | \\\n        curl -k --key $sftp_key --pubkey $sftp_key.pub \\\n        -u $sftp_user: -T - sftp://$sftp_host$sftp_folder/backup-$now.tar.gz\n```\n\nAhora debe probar si los scripts funcionan ejecutándolos. Si es así, debe agregar las siguientes líneas a su configuración de Edgerouter para que el script se ejecute diariamente:\n```sh\nset system task-scheduler task backup-conf executable path /config/scripts/backup-remote.sh\nset system task-scheduler task backup-conf interval 1d\n```\n\n## Gestión de UISP\nPuede administrar el dispositivo mediante el UISP, que le permite configurar, supervisar, actualizar y realizar copias de seguridad de sus dispositivos a través de una sola aplicación.\n1. Para empezar, vaya a \u003ca href=\"https://help.ui.com/hc/en-us/articles/115012196527-UNMS-Installation-Guide\" target=\"_blank\"\u003eUISP - Guía de instalación \u003c/a\u003e\n2. Despues logarse en la web de UISP \u003ca href=\"uisp.ui.com\" target=\"_blank\"\u003euisp.ui.com\u003c/a\u003e\n3. Pueden utilizar la aplicación móvil, enlace de configuración: \u003ca href=\"https://help.ui.com/hc/en-us/articles/115010608187-UISP-Mobile-App#2\" target=\"_blank\"\u003eUISP-Mobile-App\u003c/a\u003e\n\u003cp\u003e\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.ubnt.umobile\"\u003e\u003cimg src=\"https://lh3.googleusercontent.com/q1k2l5CwMV31JdDXcpN4Ey7O43PxnjAuZBTmcHEwQxVuv_2wCE2gAAQMWxwNUC2FYEOnYgFPOpw6kmHJWuEGeIBLTj9CuxcOEeU8UXyzWJq4NJM3lg=s0\" width=\"130px\"\u003e\u003c/a\u003e\n\u003ca href=\"https://apps.apple.com/us/app/unms-mobile/id1183022489\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Download_on_the_App_Store_Badge.svg/640px-Download_on_the_App_Store_Badge.svg.png\" width=\"130px\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n:warning: Cuidado con la opción cloud. Cuando creas la cuenta indica:\n\u003cul\u003e\u003ccode\u003eUna consola en la nube de UISP gratuita requiere al menos 10 dispositivos Ubiquiti activos en total después del día 30 de la configuración.\u003c/code\u003e\u003c/ul\u003e\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# Hardening del dispositivo\nEl hardening del dispositivo Edgerouter se refiere a la aplicación de medidas de seguridad para proteger y fortalecer la configuración del enrutador Edgerouter.\n\nEsto incluye medidas de seguridad como cambiar las contraseñas predeterminadas de inicio de sesión, asegurarse de que la última versión del firmware esté instalada, deshabilitar los servicios no utilizados, como SSH o Telnet, y configurar el firewall para bloquear tráfico no deseado que configuraremos en el siguiente punto.\n\n## Configuración incial\nPrimero una pequeña configuración general importante del sistema\n\n```sh\nset system host-name mynameedge\nset system domain-name mydomain.com\nset system name-server 1.1.1.1\nset system time-zone Europe/Madrid\n```\n\n## Habilitar funciones de rendimiento\nOffloading se utiliza para ejecutar funciones del enrutador usando el hardware directamente, en lugar de un proceso de funciones de software.  El beneficio de la descarga en EdgeOS es un mayor rendimiento y rendimiento al no depender de la CPU para las decisiones de reenvío. Enlace a la web oficial de Ubiquiti: \u003ca href=\"https://help.ui.com/hc/en-us/articles/115006567467-EdgeRouter-Hardware-Offloading\" target=\"_blank\"\u003eEdgeRouter-Hardware-Offloading\u003c/a\u003e\u003c/p\u003e\n\n\u003cblockquote\u003e\n  \u003cp\u003e\n    \u003cstrong\u003e\u003cmark\u003eUTILIZAR CON CUIDADO LA FUNCION DE RENDIMIENTO.\u003c/mark\u003e\u003c/strong\u003e\n  \u003c/p\u003e\n\u003c/blockquote\u003e\n\n\nHay dos plataformas que utilizan diferentes modelos de EdgeRouter. Cada plataforma tiene su propio soporte de descarga y comandos únicos para habilitar la funcionalidad. Las plataformas son: \n\n| CPU fabricante | Modelos EdgeRouter |\n|---|---|\n| MediaTek | ER-X, ER-10X, ER-X-SFP, EP-R6 |\n| Cavium | ERLite-3, ERPoE-5, ER-8, ERPro-8, EP-R8, ER-4, ER-6P, ER-12, ER-12P, ER-8-XG |\n\n### Equipos con MediaTek\n```sh\nconfigure\nset system offload hwnat enable\nset system offload ipsec enable\ncommit ; save\n```\n\n### Equipos con Cavium\nPara todos los demás modelos de Edgerouter\n```sh\nconfigure\nset system offload ipv4 forwarding enable\nset system offload ipv4 gre enable\nset system offload ipv4 pppoe enable\nset system offload ipv4 vlan enable\nset system offload ipv6 forwarding enable\nset system offload ipv6 pppoe enable\nset system offload ipv6 vlan enable\nset system offload ipsec enable\ncommit ; save\n```\nUsar una herramienta como [iPerf/iPerf3](https://iperf.fr/) es una forma común de generar y probar el rendimiento. Es importante no utilizar EdgeRouter como servidor o cliente para iPerf al ejecutar la prueba, ya que los enrutadores están diseñados para enrutar/reenviar tráfico y no para generarlo. \n\n## Remover default user y crear un usuario\nAntes de eliminar el usuario por defecto, crear un usuario, en la GUI en la pestaña USERS o por CLI:\n```sh\nset system login user \u003cuser\u003e\nset system login user \u003cuser\u003e level admin\nset system login user \u003cuser\u003e authentication plaintext-password \u003ccontraseña\u003e\nset system login user \u003cuser\u003e full-name \u003cNombre\u003e\ncommit ; save\n```\n\u003csup\u003eLa contraseña se encripta una vez introducida en texto plano\u003c/sup\u003e\n\nDespues eliminarmos el usuario por defecto\n```sh\nconfigure\ndelete system login user ubnt\ncommit ; save\n```\n**PD:** Si creas un usuario como operador, no tiene acceso por ssh.\n```sh\nThis account is currently not available.\nConnection to 192.168.1.1 closed.\n```\n\n## SSH\n\n### Añadir una clave ssh pública a EdgeRouter\nPara poder generar una clave pública SSH RSA.\n```sh\nssh-keygen -t rsa -b 4096\n```\n\n```sh\nssh-copy-id -i ~/.ssh/mykey USER@IP_EDGEROUTER\n```\n\nAccedemos al equipo y configuramos la clave pública generada:\n```sh\nconfigure\nloadkey \u003cuser\u003e /tmp/id_rsa.pub\nsudo chown -R \u003cuser\u003e /home/\u003cuser\u003e\ncommit ; save\n```\n\n### Comprobación de acceso\n:warning:  Asegúrate de que puedes acceder con tu clave pública antes de salir de la sesión SSH actual.\nProbamos acceso sin salir de la sesión SSH por si tienes que hacer un rollback:\n```sh\n$ ssh USER@IP_EDGEROUTER\nexit\n```\n\n### Desactivar la autenticación de contraseñas en texto plano\nSi puede iniciar sesión con éxito en el EdgeRouter, un paso para reforzar la seguridad de su EdgeRouter es eliminar la opción de utilizar una contraseña de texto simple.  \n:warning:  Asegúrate de que puedes acceder con tu clave pública antes de desactivar la autenticación en texto plano.\n\n```sh\nconfigure\nset service ssh disable-password-authentication\ncommit ; save\n```\n### Asegurar acceso a la GUI y ssh\nPueden asegurar el acceso al ssh o gui con vuestro rango de IPs, es opcional, pero seguro.\n(opcional)\n```sh\nconfigure\nset service gui listen-address \u003clan ip address/range\u003e\nset service ssh listen-address \u003clan ip address/range\u003e\ncommit ; save\n```\n\nRecomendado, cambiar el puerto de ssh y habilitar V2\n```sh\nconfigure\nset service ubnt-discover disable\nset service ssh protocol-version v2\nset service ssh port \u003cport\u003e\ndelete service telnet\ncommit ; save\n```\n### Autenticador de Google para SSH\n\u003ccode\u003eOPCIONAL\u003c/code\u003e: Un factor adicional pero recomendado, agregar el autenticador de Google para SSH\n\nEl uso de certificados para la autenticación es un buen paso adelante. Pero, ¿qué pasa si mi máquina con mi certificado se ve comprometida? Luego está el acceso al Edgerouter 24/7. Una contramedida podría ser usar Google Authenticator en mi teléfono. Luego, el atacante necesita mi certificado en mi PC y mi teléfono.\n\nPrimero descargamos e instalamos el paquete debian de Google Authenticator\n\n```sh\nsudo -i\napt-get install libqrencode3 -y\ncd ~ \u0026\u0026 mkdir ./downloaded-packages \u0026\u0026 cd downloaded-packages\ncurl -O http://ftp.us.debian.org/debian/pool/main/g/google-authenticator/libpam-google-authenticator_20170702-1_mips.deb\ndpkg --force-all -i libpam-google-authenticator_20170702-1_mips.deb\nexit\n```\nNota: Para versiones pequeñas de Edgerouter lite, use \"libpam-google-authenticator_20160607-2_mips.deb\" en su lugar... No tienen la arquitectura de 64 bits.\n\nAhora ejecutamos el autenticador para que nos dé una clave privada para nuestro teléfono.\n\n```sh\ngoogle-authenticator\nDo you want authentication tokens to be time-based (y/n) y\nDo you want me to update your \"/home/$USER/.google_authenticator\" file (y/n): y\nDo you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n): y\nBy default, tokens are good for 30 seconds. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of +-1min (window size of 3) to about + 4min (window size of 17 acceptable tokens). Do you want to do so? (y/n): y\nIf the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n): y\n```\n\nSimplemente responda afirmativamente a todas las preguntas. Esto arrojaría una clave privada que puede escribir en la aplicación de autenticación. Si ha instalado el paquete apt \"libqrencode3\", obtendrá un enorme código QR en la pantalla que puede escanear con el teléfono.\n\nAhora necesitamos configurar PAM en Linux para usar Google Authenticator. También deshabilitamos la autenticación de contraseña.\n\n```sh\nsudo -i\necho \"auth required pam_google_authenticator.so\" \u003e\u003e /etc/pam.d/sshd\nsed -i -e 's/@include common-auth/#@include common-auth/g' /etc/pam.d/sshd\nsed -i -e 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /opt/vyatta/etc/ssh/sshd_config\nsed -i -e 's/PasswordAuthentication yes/PasswordAuthentication no/g' /opt/vyatta/etc/ssh/sshd_config\necho \"AuthenticationMethods publickey,keyboard-interactive\" \u003e\u003e /opt/vyatta/etc/ssh/sshd_config\n```\n\nEn este punto sería inteligente probarlo. Guarde la configuración con el comando \"guardar\" y luego reinicie el dispositivo con el comando \"reiniciar\".\n\n### Restringir la gestión de SSH y GUI\nEdgerouter se puede administrar desde cualquier lugar. Esto solo debe permitirse desde redes internas.\n```sh\nconfigure\nset service gui listen-address \u003clan ip address\u003e\nset service ssh listen-address \u003clan ip address\u003e\ncommit ; save\nexit\n```\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# Firewall Edgerouter\nEl Firewall EdgeRouter es conocido por su potencia y flexibilidad. Se basa en una plataforma de hardware de alto rendimiento que puede manejar grandes cantidades de tráfico de red con un bajo impacto en el rendimiento del sistema. Además, el Firewall EdgeRouter es altamente configurable y se puede ajustar para satisfacer las necesidades específicas de una organización o aplicación.\n\nEl Firewall EdgeRouter admite varias funciones avanzadas de firewall, como reglas de filtrado de paquetes, filtrado de contenido, prevención de intrusiones y detección de tráfico anómalo, entre otras. También tiene la capacidad de crear VLANs y segmentar la red en zonas separadas para una mayor seguridad.\n\n\u003cdiv align=\"center\"\u003e\n        \u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c644316f-bfc7-4802-97b3-710059fccdec\" alt=\"network\" width=\"320\"\u003e\n    \u003c/a\u003e\n    \u003cbr\u003e\n    \u003ch4\u003eExplicación del Firewall.\u003c/h4\u003e\n\u003c/div\u003e\n\n### TIPOS DE REGLAS\n* Para poder añadir una regla, deben saber que hay 3 WAN en Ubiquiti:\n  - `WAN_IN` = es para paquetes externos que llegan a su enrutador y se dirigen a su LAN. Deje el destino en blanco. Solo debe preocuparse por el grupo de direcciones de origen BlockedIP. Coloque la regla DESPUÉS de que los dos primeros normales acepten establecidos/relacionados y eliminen los no válidos.\n  - `WAN_LOCAL` = es para paquetes externos que llegan a su enrutador y se dirigen a su propio enrutador. El origen debe volver a ser el grupo de direcciones BlockedIP y dejar el destino vacío. También ponga después de las mismas dos reglas que arriba.\n  - `WAN_OUT` = Para bloquear el saliente, debe crear un nuevo conjunto de reglas y adjuntarlo como OUT a ethX con la aceptación predeterminada. Luego agregue una sola regla para colocar con el grupo de direcciones de destino BlockedIP y nada en el origen. \n\n* Tipos de LAN\n  - `LAN_IN` = Todo lo que ingresa al enrutador desde su LAN que está destinado a otro lugar WAN u otra LAN. En una configuración SMB o SOHO, esto probablemente sea explícitamente permisivo. En un entorno empresarial, esto puede ser permisivo o no (por ejemplo, bloquear todo el tráfico saliente excepto SFTP en un puerto no estándar)\n  - `LAN_LOCAL` = Todo lo que ingresa al enrutador desde su LAN destinado al enrutador.\n\nLas reglas se añaden en las `WAN`, dependiendo del sentido que queramos hacer.\nSi desea bloquear el entrante y saliente, debemos de añadir en la IN u OUT, y en el LOCAL para bloquear los accesos hacia el sentido del router.\n\nEjemplo para una `WAN`con pppoe,\n- Indicamos la interfaz a la WAN_IN la pppoe en modo `IN`\n- Indicamos la interfaz a la WAN_LOCAL la pppoe en modo `LOCAL`\n- Indicamos la interfaz a la WAN_IN la pppoe en modo `OUT`.\n    - \u003csup\u003eNo olvidar poner la acción por defecto en ACCEPT, o denegará todo el tráfico desde la red interna.\u003c/sup\u003e\n- Añadiríamos la regla en la IN u OUT y en el LOCAL.\n- Despues realizar una prueba para comprobar la acción deseada.\n\n\u003csup\u003eEn EdgeMax no es necesario añadir la misma regla en IN y OUT. Denegará o permitirá la acción deseada en cualquiera de ellas.\u003c/sup\u003e\n\nEl EdgeRouter utiliza un cortafuegos de estado, lo que significa que las reglas del cortafuegos del router pueden coincidir en diferentes estados de conexión. Los estados de tráfico son:\n  - `new` Los paquetes entrantes proceden de una nueva conexión.\n  - `established` Los paquetes entrantes están asociados a una conexión ya existente.\n  - `related` Los paquetes entrantes son nuevos, pero están asociados a una conexión ya existente.\n  - `invalid` Los paquetes entrantes no coinciden con ninguno de los otros estados.\nUtilizando estos estados de cortafuegos, el router puede aceptar/rechazar tráfico en diferentes direcciones dependiendo del estado de la conexión.\nPor ejemplo:\n  - En ejemplo, el router puede bloquear todo el tráfico de WAN a LAN, a menos que sea tráfico de retorno asociado a una conexión ya existente. El asistente de configuración básica de EdgeOS añade las siguientes reglas de cortafuegos al router.\n\n### Firewall básico\nAquí viene la parte más difícil. Si anteriormente no te has peleado con un Firewall algunos conceptos te serán extraños, pero intentare explicar cada paso con algún ejemplo, haciéndolo mas fácil de entender.\n\n- Configuración básica del firewall. Asignar la interfaz de la WAN que vayan a utilizar:\n```sh\nconfigure\n\nset firewall name WAN_IN default-action drop\nset firewall name WAN_IN description 'WAN to internal'\nset firewall name WAN_IN rule 10 action accept\nset firewall name WAN_IN rule 10 description 'Allow established/related'\nset firewall name WAN_IN rule 10 state established enable\nset firewall name WAN_IN rule 10 state related enable\nset firewall name WAN_IN rule 20 action drop\nset firewall name WAN_IN rule 20 description 'Drop invalid state'\nset firewall name WAN_IN rule 20 state invalid enable\n\nset firewall name WAN_LOCAL default-action drop\nset firewall name WAN_LOCAL description 'WAN to router'\nset firewall name WAN_LOCAL rule 10 action accept\nset firewall name WAN_LOCAL rule 10 description 'Allow established/related'\nset firewall name WAN_LOCAL rule 10 state established enable\nset firewall name WAN_LOCAL rule 10 state related enable\nset firewall name WAN_LOCAL rule 20 action drop\nset firewall name WAN_LOCAL rule 20 description 'Drop invalid state'\nset firewall name WAN_LOCAL rule 20 state invalid enable\n\nset interfaces ethernet eth0 firewall in name WAN_IN\nset interfaces ethernet eth0 firewall local name WAN_LOCAL\n\ncommit ; save\n```\n\n### Configurar una interfaz PPPoE de Movistar u O2 en un EdgeRouter de Ubiquiti\n\u003cp\u003e:warning: Asegúrate de cambiar los parámetros del ISP y utilizar los que el ISP os indique.\u003c/p\u003e\n\n\n\u003cp\u003e1. Lo primero es entrar en la web de gestión del Edgerouter y pulsar en la pestaña Wizards de la parte superior derecha. Esto nos cargara un grupo de asistentes de configuración en la parte izquierda. Pulsamos sobre el que se llama WAN + +2LAN2. Esto nos cargara un formulario que deberemos rellenar con los datos de acuerdo a nuestras necesidades.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/ea6567fe-133c-4f5f-ab91-04407837d837\" alt=\"pppoe_1.png\"\u003e\u003c/p\u003e\n\n\u003cp\u003e2. Internet port: En esta sección definiremos como está conectado nuestro Edgerouter al router HGU de Movistar/O2.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePort\u003c/code\u003e: En el menú despegable seleccionamos el puerto de ethernet con el que está conectado al router HGU de Movistar o O2, etho o eth4.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eInternet connection type\u003c/code\u003e: Aquí seleccionamos PPPoE y rellenamos los campos de ls siguiente manera:\u003c/p\u003e\n\u003cul\u003e\u003cp\u003eAccount name: \u003ccode\u003eadsl@telefonicapa\u003c/code\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003ePassword: \u003ccode\u003eadslppp\u003c/code\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003eVLAN ID: \u003ccode\u003e6\u003c/code\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/ae5a1242-bd72-403e-b2b1-c3ba71edd9d4\" alt=\"pppoe_2.png\"\u003e\u003c/p\u003e\n\n\u003cp\u003e3. LAN ports: Desplegando está sección podremos configurar la IP que tendrá nuestro router y habilitaremos el DHCP por defecto para que asigne IPs a aquellos equipos que se conecten al router.\u003c/p\u003e\n\u003csup\u003eTener en cuenta que el rango de IP debe ser distinto al que esta nuestro Edgerouter con el router HGU de Movistar o O2. La opción de DHCP viene habilitada por defecto, así que no la tocamos y la dejamos como está.\u003c/sup\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c156db42-b63a-4fa8-bcb0-d11c28e3877c\" alt=\"pppoe_3.png\"\u003e\u003c/p\u003e\n\n\u003cp\u003e4. User setup: Por último, es recomendable cambiar la contraseña del usuario ubnt que viene por defecto por otra más segura.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/24c763d3-4d10-4776-8c86-d2ae797206e5\" alt=\"pppoe_4.png\"\u003e\u003c/p\u003e\n\n\u003cp\u003ePara aplicar la configuración definida, pulsamos sobre Apply.\u003c/p\u003e\n\n\u003cdiv class=\"warning\"\u003e\n  :warning:\n  \u003cp\u003e\u003cem\u003eRecordar que los pasos aquí expuestos son orientativos. Utilízalos como una guía, ya que la configuración de vuestra red puede diferir con la de aquí expuesta. Pudiendo causar un mal funcionamiento de vuestra red.\u003c/em\u003e\u003c/p\u003e\n  \u003cp\u003e\u003cem\u003eRecomiendo su lectura y compresión antes de aplicarlo sobre un entorno de producción.\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n:information_source:\nPuedes asignar la MAC del HGU a la WAN:\n```sh\nset interfaces ethernet ethX mac 'XX:XX:XX:XX:XX:XX'\n```\n\n## IPv6 on the EdgeRouter\nEl cortafuegos para IPv6 es independiente del cortafuegos de IPv4 y actualmente debe configurarse mediante la CLI (\"establecer el nombre de ipv6 del cortafuegos...\", etc.). O el árbol de configuración en la interfaz de usuario web, por lo que deberá crear reglas de IPv6 por separado y aplicarlas a la interfaz/dirección adecuada.\n\n### Firewall\nPrimero, es importante que configuremos el firewall ya que la política predeterminada es \"aceptar\" y sus clientes de LAN tendrán IP enrutables.\n\nEn comparación con nuestras reglas de firewall IPv4, hay una diferencia importante: debemos permitir ICMPv6 y DHCP para que DHCPv6-PD funcione.\n\n- Cree una política para clientes WAN-\u003eLAN:\n```sh\nedit firewall ipv6-name WAN6_IN\nset default-action dropset rule 10 action accept\nset rule 10 description \"allow established\"\nset rule 10 protocol all\nset rule 10 state established enable\nset rule 10 state related enableset rule 20 action drop\nset rule 20 description \"drop invalid packets\"\nset rule 20 protocol all\nset rule 20 state invalid enableset rule 30 action accept\nset rule 30 description \"allow ICMPv6\"\nset rule 30 protocol icmpv6\ntop\n```\n\n- Ahora cree una política para WAN-\u003eRouter (también conocido como local):\n```sh\nedit firewall ipv6-name WAN6_LOCAL\nset default-action dropset rule 10 action accept\nset rule 10 description \"allow established\"\nset rule 10 protocol all\nset rule 10 state established enable\nset rule 10 state related enableset rule 20 action drop\nset rule 20 description \"drop invalid packets\"\nset rule 20 protocol all\nset rule 20 state invalid enableset rule 30 action accept\nset rule 30 description \"allow ICMPv6\"\nset rule 30 protocol icmpv6set rule 40 action accept\nset rule 40 description \"allow DHCPv6 client/server\"\nset rule 40 destination port 546\nset rule 40 source port 547\nset rule 40 protocol udp\ntop\n```\n\n- Ahora adjunte las políticas a su interfaz WAN:\n```sh\nset interfaces ethernet eth1 firewall in ipv6-name WAN6_IN\nset interfaces ethernet eth1 firewall local ipv6-name WAN6_LOCAL\n```\n\n- Ahora solicitaremos direcciones IPv6 a nuestro ISP. Es posible que deba descubrir manualmente la longitud del prefijo que proporciona su ISP. Las dos longitudes más comunes son /56 y /64.\n\u003e Nota: Usaremos SLAAC (Configuración automática de direcciones sin estado) en lugar de DHCP con estado (que es como funciona DHCP IPv4).\n\n```sh\nedit interfaces ethernet eth1\nset dhcpv6-pd pd 0 prefix-length /64\nset dhcpv6-pd pd 0 interface eth0 host-address ::1\nset dhcpv6-pd pd 0 interface eth0 prefix-id :0\nset dhcpv6-pd pd 0 interface eth0 service slaac\ntop\n```\n\nEn resumen, le estamos diciendo a eth1 (WAN) que proporcione delegación de prefijo a eth0 (LAN). Si también está usando eth2 para un segundo puerto LAN, necesitará usar el prefijo-id:1 para esa interfaz.\n\n\u003e Para cualquiera que use vlans, lo siguiente también funciona:\n```sh\nset interfaces ethernet eth2 vif 17 ipv6 router-advert prefix ::/64\n```\n\n- Para hacerlo vía [GUI](https://davidwesterfield.net/2021/03/enabling-ipv6-prefix-delegation-on-att-internet-for-a-second-firewall/). No lo recomiendo.\n\n- Información\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://davidwesterfield.net/2020/06/edgerouter-4-ipv6-setup\"\u003e\u003cimg src=\"https://img.shields.io/badge/Link-green.svg?style=flat\" alt=\"Link\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://noobient.com/2018/08/02/ipv6-on-ubnt-edgerouter-x-with-digi-pppoe/#Firewall\"\u003e\u003cimg src=\"https://img.shields.io/badge/Link-green.svg?style=flat\" alt=\"Link\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://help.pentanet.com.au/hc/en-us/articles/4403292092307-IPv6-configuration-on-Ubiquiti-Edgerouters\"\u003e\u003cimg src=\"https://img.shields.io/badge/Link-green.svg?style=flat\" alt=\"Link\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n### Opciones básicas del cortafuegos\nEste cortafuegos básico permite a los usuarios hacer ping a un dispositivo IPv6 desde Internet. El resto del tráfico hacia el dispositivo está bloqueado (acción por defecto drop).\n\n```sh\nset firewall ipv6-name ipv6-fw default-action drop\nset firewall ipv6-name ipv6-fw description 'IPv6 firewall'\nset firewall ipv6-name ipv6-fw rule 1 action accept\nset firewall ipv6-name ipv6-fw rule 1 log disable\nset firewall ipv6-name ipv6-fw rule 1 protocol icmpv6\nset firewall ipv6-name ipv6-fw rule 1 description 'allow ICMPv6 traffic'\nset firewall ipv6-name ipv6-fw rule 10 action accept\nset firewall ipv6-name ipv6-fw rule 10 state established enable\nset firewall ipv6-name ipv6-fw rule 10 state related enable\n```\n\n### Permitir que un host sea de acceso público\n```sh\nset firewall ipv6-name ipv6-fw rule 4 action accept\nset firewall ipv6-name ipv6-fw rule 4 description 'allow access to host x'\nset firewall ipv6-name ipv6-fw rule 4 destination address '2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxx\n```\n\n## Dual-wan\n\n### Establecer nat para ambas interfaces\n```sh\nset load-balance group LB-GROUP interface eth3 failover-only\nset load-balance group LB-GROUP interface eth3 route-test initial-delay 60\nset load-balance group LB-GROUP interface eth3 route-test interval 10\nset load-balance group LB-GROUP interface eth3 route-test type ping target 1.1.1.1\n\nset load-balance group LB-GROUP interface pppoe0 route-test initial-delay 60\nset load-balance group LB-GROUP interface pppoe0 route-test interval 10\nset load-balance group LB-GROUP interface pppoe0 route-test type ping target 1.1.1.1\n\nset load-balance group LB-GROUP lb-local enable\nset load-balance group LB-GROUP lb-local-metric-change disable\n```\n\n## NAT\nNAT (Network Address Translation) es una técnica utilizada en redes informáticas para permitir que varios dispositivos en una red privada se conecten a Internet utilizando una dirección IP pública única. NAT traduce las direcciones IP privadas de los dispositivos en la red privada en una dirección IP pública antes de enviar los paquetes a Internet y viceversa, cuando los paquetes regresan a la red privada.\n\n### Source NAT and Masquerade\nLas reglas NAT de origen se pueden utilizar para muchas aplicaciones diferentes. Un uso popular de NAT Masquerade es traducir un rango de direcciones privadas a una única dirección IP pública. Esto permite que los hosts detrás de EdgeRouter se comuniquen con otros dispositivos en Internet.\n\nEn la GUI se configura en: `Firewall/NAT \u003e NAT \u003e Add Source NAT Rule`\n\n**Masquerade Rule**\nMasquerade, también conocido como NAT de muchos a uno, PAT o sobrecarga de NAT. Un uso popular de NAT Masquerade es traducir un rango de direcciones privadas a una única dirección IP pública.\n\n```sh\nset service nat rule 5010 description 'masquerade for WAN'\nset service nat rule 5000 log disable\nset service nat rule 5010 outbound-interface eth0\nset service nat rule 5010 type masquerade\nset service nat rule 5010 protocol all\n```\n\n**Source NAT rule**\nSource NAT se usa para proporcionar una traducción 1:1\n\n```sh\nset service nat rule 5000 description 'source NAT for 192.168.1.10'\nset service nat rule 5000 outbound-interface eth0\nset service nat rule 5000 type source\nset service nat rule 5000 protocol all\nset service nat rule 5000 outside-address address 203.0.113.2\nset service nat rule 5000 source address 192.168.1.10\n```\n\n### Destination NAT\nEL destination NAT y el Port Forwarding tienen el mismo propósito y se pueden usar para reenviar puertos a un host interno detrás de NAT. Destination NAT, también conocido como DNAT, es otra variante de NAT en la que se utiliza una dirección IP pública única para traducir las direcciones IP de destino de los paquetes que se envían desde Internet hacia la red privada.\n\nEn la GUI se configura en: `Firewall / NAT \u003e NAT \u003e +Add Destination NAT Rule`\n\n```sh\nset service nat rule 1 description https443\nset service nat rule 1 destination address 203.0.113.1\nset service nat rule 1 destination port 443\nset service nat rule 1 inbound-interface eth0\nset service nat rule 1 inside-address address 192.168.1.10\nset service nat rule 1 inside-address port 443\nset service nat rule 1 log disable\nset service nat rule 1 protocol tcp\nset service nat rule 1 type destination\n```\n\n### Reordenación de las reglas de firewall y NAT\nLas reglas de firewall y NAT coinciden en orden de preferencia. Las reglas con un ID más bajo se comparan antes que las reglas con un ID más alto.\n\nNAT y firewall se pueden reordenar desde la CLI usando el comando de cambio de nombre . Siga los pasos a continuación para reordenar las reglas:\n**CLI**:  acceda a la interfaz de línea de comandos. Puede hacerlo usando el botón CLI en la GUI o usando un programa como PuTTY.\n\nPara las reglas de firewall, edite el subárbol de configuración de firewall específico para cambiar el número de regla:\n```sh\nconfigure\nedit firewall name \u003cname\u003e\nrename rule 10 to rule 20\nexit\ncommit ; save\n```\n\nPara las reglas de NAT, edite el subárbol de configuración de NAT para cambiar el número de regla:\n```sh\nconfigure\nedit service nat\nrename rule 5010 to rule 5020\nexit\ncommit ; save\n```\nNOTE: La CLI también le permite cambiar el nombre de las reglas de firewall modificadas que se usan para el enrutamiento basado en políticas y el equilibrio de carga.\n\n\n**GUI**: acceda a la interfaz de usuario web de EdgeRouter .\n\n1. Navegue a la pestaña Firewall/NAT para modificar la política de firewall existente.\n`Cortafuegos/NAT \u003e Políticas de cortafuegos \u003e Nombre de la política \u003e Acciones \u003e Editar`\n2. Arrastre y reordene las reglas del cortafuegos en el orden deseado.\n3. Guarde el nuevo orden de reglas.\n\nLas reglas NAT se reordenan utilizando un método muy similar. Navegue a la pestaña Firewall/NAT \u003e NAT y arrastre las reglas al orden deseado. Finalmente guarde el nuevo orden de reglas.\n### Port Forwarding\nSeleccione las interfaces WAN y LAN que se utilizarán para el reenvío de puertos.\n- Pueden realizar el procedimiento mediante la GUI o mediante CLI.\n- Mediante CLI: Firewall/NAT \u003e Port Forwarding\n\n:warning:  Asegúrate de cambiar el rando de la red a la de tu red y la interfaz a modificar\n```sh\nconfigure\n\nset port-forward auto-firewall enable\nset port-forward hairpin-nat enable\nset port-forward wan-interface eth0\nset port-forward lan-interface eth1\n\nset port-forward rule 1 description https\nset port-forward rule 1 forward-to address 192.168.1.10\nset port-forward rule 1 forward-to port 443\nset port-forward rule 1 original-port 443\nset port-forward rule 1 protocol tcp\n\ncommit ; save\n```\n\n## ICMP\nPara aquellos de ustedes que desean usar la GUI para habilitar/deshabilitar ICMP en una de sus interfaces WAN de EdgeRouter.\n\n\u003col\u003e\n\u003cli\u003einicie sesión en su EdgeRouter.\u003c/li\u003e\n\u003cli\u003ehaga clic en la pestaña \u003ccode\u003eFirewall/NAT\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ehaga clic en la pestaña \u003ccode\u003eFirewall Policies\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003elocalice el conjunto de reglas llamado \u003ccode\u003eWAN_LOCAL\u003c/code\u003e, aquí es donde permitiremos hacer ping. edite el conjunto de reglas.\u003c/li\u003e\n\u003cli\u003ehaga clic en el botón \u003ccode\u003eAgregar nueva regla\u003c/code\u003e. Aquí es donde agrega una nueva regla.\u003c/li\u003e\n\u003cli\u003eEn la descripción, coloque algo como Permitir ping o denegar ping.\u003c/li\u003e\n\u003cli\u003eEn \u003ccode\u003eAcción\u003c/code\u003e, haga clic en Aceptar o Denegar.\u003c/li\u003e\n\u003cli\u003eEn Protocolo, seleccione Elija un protocolo por nombre y luego seleccione \u003ccode\u003eicmp\u003c/code\u003e en el menú desplegable.\u003c/li\u003e\n\u003cli\u003eHaga clic en la pestaña Destino y luego seleccione su Interfaz WAN del menú desplegable Dirección de interfaz.\u003c/li\u003e\n\u003cli\u003eHaga clic en Guardar\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eAhora su EdgeRouter responderá/denegará a las solicitudes de ping en la interfaz WAN que seleccionó.\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/hTFqZAZeDqQ\"\u003e\u003cimg src=\"https://img.youtube.com/vi/hTFqZAZeDqQ/0.jpg\" alt=\"youtube\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\n#### Avanzado\n\u003cp\u003ePara otros que utilizan este método, también ayuda especificar más el tipo de ICMP dentro de la regla. El método GUI no tiene esta opción cuando establece la regla. Sin embargo, es fácil agregarlo en la pestaña \u003ccode\u003eÁrbol de configuración\u003c/code\u003e.\u003c/p\u003e\n\n\u003col\u003e\n\u003cli\u003eHaga clic en la pestaña \u003ccode\u003eÁrbol de configuración\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDebajo del panel \u003ccode\u003eConfiguración\u003c/code\u003e a la izquierda, expanda el nodo \u003ccode\u003efirewall\u003c/code\u003e, expanda el nodo \u003ccode\u003enombre\u003c/code\u003e, expanda el nodo de \u003ccode\u003eWAN_LOCAL\u003c/code\u003e(donde hayan creado la regla icmp) y expanda el nodo de \u003ccode\u003eregla\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUna vez expanda el nodo \u003ccode\u003eregla\u003c/code\u003e, expanda la regla que hayan creado la regla ICMP. (cualquiera que sea el último, que debería ser la regla que acaba de establecer)\u003c/li\u003e\n\u003cli\u003eUna vez sepan la regla buscar el apartado \u003ccode\u003eicmp\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eIngrese el número de tipo de icmp como el valor de \u003ccode\u003etipo\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eHaga clic en Vista previa y haga clic en Aplicar en el cuadro de diálogo de configuración emergente.\u003c/li\u003e\n\u003c/ol\u003e\n\n#### Vía ***CLI*** sería:\n```sh\nset firewall name WAN_LOCAL rule 21 icmp type 8\n```\n#### :point_right: Tabla de tipos de ICMP\nEn la siguiente tabla aparece una recopilación de los tipos de paquetes más importantes basados en el Internet Control Message Protocol:\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"text-align:center\"\u003eTipo ICMP\u003c/th\u003e\n\u003cth style=\"text-align:center\"\u003eTipo ICMPv6\u003c/th\u003e\n\u003cth style=\"text-align:center\"\u003eNombre del tipo\u003c/th\u003e\n\u003cth style=\"text-align:center\"\u003eDescripción\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e0\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e129\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eEcho Reply\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eRespuesta a un ping de red para comprobar la accesibilidad\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e3\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e1\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eDestination Unreachable\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eMensaje ICMP que informa acerca de, por ejemplo, la accesibilidad de red de los componentes del campo “Código” (red, protocolo, puerto, host), sobre problemas de enrutamiento o sobre el bloqueo por parte de los cortafuegos\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e5\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e137\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eRedirect Message\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eMensaje sobre el redireccionamiento de un paquete para la red indicada (0), para el host escogido (1), para el servicio especificado y para la red (2) o para el servicio y host especificados (3)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e8\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e128\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eEcho Request\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003ePing de red\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e9\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e134\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eRouter Advertisement\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eLo utilizan los routers para informarse acerca de los diferentes clientes de red\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e11\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e3\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eTime Exceeded\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eInforme de estado que o bien indica que el tiempo de vida (Time to Live, TTL) de un paquete (0) o el tiempo de espera para el ensamblaje de paquetes IP (1) ha expirado\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e13\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e13\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eTimestamp\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eDota al paquete IP de una marca de tiempo que se corresponde con el momento del envío y que es de utilidad para la sincronización de dos ordenadores\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e14\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e-\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eTimestamp Reply\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eMensaje de respuesta a una petición de marca de tiempo enviado por el destinatario tras la recepción de la misma\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"text-align:center\"\u003e30\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003e-\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eTraceroute\u003c/td\u003e\n\u003ctd style=\"text-align:center\"\u003eTipo de mensaje ICMP obsoleto que se utilizaba para el seguimiento de la ruta de un paquete de datos en la red. Hoy en día se utilizan “Echo Request” y “Echo Reply” para estos fines\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# LLDP\nEn este punto vamos habilitar el Protocolo de Descubrimiento de Capa de Enlace (LLDP) en las interfaces de EdgeRouter.\n\n## Habilitar servicio LLDP\nEn el EdgeRouter, es tan sencillo como entrar por cli, de esta forma lo habilitamos para todos los interfaces de red\n```sh\nconfigure\nset service lldp interface all\ncommit ; save\n```\n\nO si queremos en algun interface concreto\n```sh\nconfiguration\nset service lldp interface ethX\ncommit ; save\n```\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# ROUTING\nEstos procediminetos son muy extensos y para que el README no sea muy extenso, añado el enlace a la web donde se configura. Están muy bien explicados y redactados.\n\n## Load Balancing\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/205145990-EdgeRouter-WAN-Load-Balancing\" target=\"_blank\"\u003eLoad Balancing\u003c/a\u003e\n\n## OSPF\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/205204050-EdgeRouter-OSPF-Routing\" target=\"_blank\"\u003eOSPF\u003c/a\u003e\n\n## BGP\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/205222990-EdgeRouter-Border-Gateway-Protocol-BGP-\" target=\"_blank\"\u003eBGP\u003c/a\u003e\n\n## VRRP\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/204962174-EdgeRouter-Virtual-Router-Redundancy-Protocol-VRRP-\" target=\"_blank\"\u003eVRRP\u003c/a\u003e\n\n## Public Static IP Addresses\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/204975244-EdgeRouter-Configuring-Public-Static-IP-Addresses\" target=\"_blank\"\u003ePublic Static IP Addresses]\u003c/a\u003e\n\n## Static Route\n\u003ca href=\"https://help.ui.com/hc/en-us/articles/360024021873-EdgeRouter-How-to-Add-a-Static-Route\" target=\"_blank\"\u003eStatic Route\u003c/a\u003e\n\n## VLANS\n\n#### Creando redes internas en EdgeOS\n\nAcabo de comprar un punto de acceso WiFi y lo conecté a eth3. Esta red no está etiquetada y se usa para que el AP se conecte a su controlador si es necesario. Es solo para fines administrativos y no fluirá tráfico real en esta red.\n\n```sh\nset interfaces ethernet eth3 poe output 24v\n\nset interfaces ethernet eth3 address 192.168.20.1/24\nset interfaces ethernet eth3 description \"WIFI AP management\"\nset service dhcp-server shared-network-name vlan20 subnet 192.168.20.1/24 default-router 192.168.20.1\nset service dhcp-server shared-network-name vlan20 subnet 192.168.20.1/24 dns-server 192.168.20.1\nset service dhcp-server shared-network-name vlan20 subnet 192.168.20.1/24 start 192.168.20.10 stop 192.168.20.100\nset service dhcp-server shared-network-name vlan20 subnet 192.168.20.1/24 unifi-controller 192.168.100.10\nset service dns forwarding listen-on eth3\n```\nAhora creamos un par de redes que deben transmitirse en el AP. Planeo usar vlan 30 como red confiable y vlan 40 como red de invitados. El tráfico a estas dos redes se envía como tráfico etiquetado al AP. El AP se encargará de colocar cada VLAN en su propio SSID.\n```sh\nset interfaces ethernet eth3 vif 30 address 192.168.30.1/24\nset interfaces ethernet eth3 vif 30 description \"WIFI trusted\"\nset service dhcp-server shared-network-name vlan30 subnet 192.168.30.1/24 default-router 192.168.30.1\nset service dhcp-server shared-network-name vlan30 subnet 192.168.30.1/24 dns-server 192.168.30.1\nset service dhcp-server shared-network-name vlan30 subnet 192.168.30.1/24 start 192.168.30.10 stop 192.168.30.100\nset service dns forwarding listen-on eth3.30\n\nset interfaces ethernet eth3 vif 40 address 192.168.40.1/24\nset interfaces ethernet eth3 vif 40 description \"WIFI guest\"\nset service dhcp-server shared-network-name vlan40 subnet 192.168.40.1/24 default-router 192.168.40.1\nset service dhcp-server shared-network-name vlan40 subnet 192.168.40.1/24 dns-server 192.168.40.1\nset service dhcp-server shared-network-name vlan40 subnet 192.168.40.1/24 start 192.168.40.10 stop 192.168.40.100\nset service dns forwarding listen-on eth3.40\n```\n\n\u003cdiv class=\"warning\"\u003e\n  :warning:\n  \u003cp\u003e\u003cem\u003eRecordar que los pasos aquí expuestos son orientativos. Solo mira esto como un \u003cstrong\u003eejemplo\u003c/strong\u003e y utilízalos como una guía, ya que la configuración de vuestra red puede diferir con la de aquí expuesta. Pudiendo causar un mal funcionamiento de vuestra red. Las redes podrían haberse creado en cualquier interfaz para cualquier tipo de propósito, con o sin etiquetas.\u003c/em\u003e\u003c/p\u003e\n  \u003cp\u003e\u003cem\u003eRecomiendo su lectura y compresión antes de aplicarlo sobre un entorno de producción.\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n#### Cortafuegos: Protección de las redes internas\nAhora que tenemos un par de redes, el objetivo es aislar algunas de ellas. Como ejemplo, nos aseguraremos de que la red invitada `(vlan 40)` pueda conectarse a Internet, pero bajo ninguna circunstancia conectarse a nuestras otras redes internas, por ejemplo, `vlan 30`. Hacemos esto haciendo algunas reglas de propósito general que pueden ser reutilizadas si decidimos hacer otras redes protegidas.\n\nEl primer conjunto de reglas permite que todo el tráfico ingrese a través de la interfaz, excepto las nuevas conexiones a nuestras redes internas (192.168.0.0/16).\n```sh\nset firewall name PROTECT_IN default-action accept\nset firewall name PROTECT_IN rule 10 action drop\nset firewall name PROTECT_IN rule 10 description \"Drop new connecions to LAN\"\nset firewall name PROTECT_IN rule 10 destination address 192.168.0.0/16\nset firewall name PROTECT_IN rule 10 state new enable\nset firewall name PROTECT_IN rule 10 protocol all\n```\nNuevamente, necesitamos crear un conjunto de reglas que elimine todo lo destinado a la interfaz, excepto DNS y DHCP.\n```sh\nset firewall name PROTECT_LOCAL default-action drop\nset firewall name PROTECT_LOCAL rule 10 action accept\nset firewall name PROTECT_LOCAL rule 10 description \"Allow DNS\"\nset firewall name PROTECT_LOCAL rule 10 destination port 53\nset firewall name PROTECT_LOCAL rule 10 protocol udp\nset firewall name PROTECT_LOCAL rule 20 action accept\nset firewall name PROTECT_LOCAL rule 20 description \"Accept DHCP\"\nset firewall name PROTECT_LOCAL rule 20 destination port 67\nset firewall name PROTECT_LOCAL rule 20 protocol udp\n```\nAhora solo necesitamos vincular estos conjuntos de reglas generales a nuestra interfaz vlan de invitados. – o cualquier otra interfaz que no queramos conectar a nuestra red interna.\n```sh\nset interfaces ethernet eth3 vif 40 firewall in name PROTECT_IN\nset interfaces ethernet eth3 vif 40 firewall local name PROTECT_LOCAL\n```\n\n# LAN\n:warning: Asegúrate de adaptar el rango de la red a la de tu red y la interfaz a modificar, porque puede no ajustarse a la del ejemplo.\n\n## DHCP\n\n### Modificar DHCP mediante CLI\n```sh\nconfigure\nset interfaces ethernet eth1 description LAN\nset interfaces ethernet eth1 address 192.168.1.1/24\nset service dhcp-server disabled false\nset service dhcp-server shared-network-name LAN authoritative enable\nset service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 default-router 192.168.1.1\nset service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 dns-server 192.168.1.1\nset service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 lease 86400\nset service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 start 192.168.1.38 stop 192.168.1.243\nset service dns forwarding listen-on eth3\ncommit ; save\n```\n\n### Modificar DHCP mediante GUI\nLo primero es acceder a la web de gestión a la web de gestion del router. Una vez dentro en tramos en la pestaña \u003ccode\u003eServices\u003c/code\u003e y después en la sub-pestaña \u003ccode\u003eDHCP Server\u003c/code\u003e. Aquí se podrán ver los servicios \u003ccode\u003eDHCP\u003c/code\u003e que tenemos en marcha, si es la primera este listado estará vacío por lo que pulsamos en el botón \u003ccode\u003e+ Add DHCP Server\u003c/code\u003e.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/f094ef4b-f2a1-49b1-ba21-6892489d48e5\" alt=\"dhcp_1.png\"\u003e\u003c/p\u003e\n\nNos aparecerá un formulario que deberemos rellenar con los datos adecuados a nuestras necesidades.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/27b6f5fc-0955-4c48-9307-d8bd91f6ffdf\" alt=\"dhcp_2.png\"\u003e\u003c/p\u003e\n\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eDHCP Name\u003c/code\u003e: Podremos darle un nombre al servicio pero eso si, no se pueden utilizar espacios.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eSubnet\u003c/code\u003e: Definimos la subred que ya tengamos configurada en alguna interfaz de nuestro router.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eRange Start\u003c/code\u003e: metemos la dirección IP por la que empezara el rango que queremos que sirva nuestro DHCP.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eRange Stop\u003c/code\u003e: la dirección IP fin del rango de direcciones a repartir.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eRouter\u003c/code\u003e: Este sería el Gateway, es decir, la salida a otras redes de nuestra LAN, ya sea internet o aotras redes.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eDNS 1\u003c/code\u003e: Dirección IP del servidor DNS primario.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003eDNS 2\u003c/code\u003e:: Dirección IP del servidor DNS secundario.\n\u003cp\u003e  \u0026nbsp;\u003ccode\u003e:Enable\u003c/code\u003e:* Marcamos este checkbox para que una vez pulsemos el botón Save, se guarde la configuración y esta empiece a funcionar. Si no lo marcamos, la configuración se guardará pero esta no estará habilitada, así que el servicio no empezara a repartir direcciones IP.\n\nPor ultimo pulsamos en el botón \u003ccode\u003eSave\u003c/code\u003e. Desde ese mismo momento cualquier dispositivo que se conecte a la red de nuestro router y solicite una dirección IP, el servicio que acabamos de configurar le asignara una del rango predefinido.\n\n### Ver estado del DHCP\nAhora que está en marcha podemos interactuar con el servicio pudiendo cambiar su configuración o viendo el estado de asignaciones \u003ccode\u003e(leases)\u003c/code\u003e de direcciones IP.\n\nPara ello en basta con pulsar en el menú desplegable \u003ccode\u003eActions\u003c/code\u003e y después en \u003ccode\u003eView Details\u003c/code\u003e.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c5850c1c-0cd6-4f6d-9fe9-929e5d7b8625\" alt=\"dhcp_3.png\"\u003e\u003c/p\u003e\n\nSe nos cargara las características del servicio pudiendo cambiarlas si es que lo deseamos. También aparecerá un resumen del estado del servicio, como la cantidad de IPs tiene de para repartir, cuantas estas asignadas, cuantas dispone para repartir etc.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/7a51ed87-52aa-40e5-a72a-7a006bbdd2a2\" alt=\"dhcp_4.png\"\u003e\u003c/p\u003e\n\nTambién hay opción de asignar una dirección del rango de manera estática a un dispositivo de nuestra red. Bastara con pulsar en \u003ccode\u003eCreate New Mapping\u003c/code\u003e y asignar un IP del rango a la dirección MAC del dispositivo.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c5f5e5ae-4046-4988-bac0-2e73128436de\" alt=\"dhcp_5.png\"\u003e\u003c/p\u003e\n\nEn la pestaña \u003ccode\u003eLeases\u003c/code\u003e nos encontraremos con aquellas direcciones que ya están asignadas a algún dispositivo. Pudiendo ver cuánto tiempo les queda de asignación y pudiendo asignar de manera estática la IP que ya tienen asignada.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/c93be274-8139-4a96-bf68-9cfaef0df53a\" alt=\"dhcp_6.png\"\u003e\u003c/p\u003e\n\n- Vía CLI: `show dhcp leases` muestre la dirección IP, la dirección MAC, el grupo y el nombre del cliente \n\n\n## Configurar IP estática para dispositivo \n```sh\nset service dhcp-server shared-network-name MGMT-VLAN subnet 10.10.99.0/24 static-mapping cgn-monitor ip-address 10.10.99.11\nset service dhcp-server shared-network-name MGMT-VLAN subnet 10.10.99.0/24 static-mapping cgn-monitor mac-address '52:54:xx:xx:xx:xx'\n```\n\n## Router switch\nEl router también puede actuar como un conmutador. Aquí hay un ejemplo:\n```sh\nset interfaces switch switch0 address 172.22.1.1/24\nset interfaces switch switch0 mtu 1500\nset interfaces switch switch0 switch-port interface eth2\nset interfaces switch switch0 switch-port interface eth3\nset interfaces switch switch0 switch-port interface eth4\nset interfaces switch switch0 switch-port vlan-aware disable\n```\n\n## DNS DINAMICO\n\n\u003cdetails\u003e\n    \u003csummary\u003eMediante interfaz GUI:\u003c/summary\u003e\n\n### Instrucciones de uso con GUI:\n1. Estando dentro de la web de gestión entramos en la pestaña \u003ccode\u003eService\u003c/code\u003e y a continuación en \u003ccode\u003eDNS\u003c/code\u003e. Por ultimo en la sección \u003cem\u003eDynamic DNS\u003c/em\u003e pulsamos el botón \u003ccode\u003e+ Add DDNS Interface\u003c/code\u003e.\n2. Se cargará un formulario vació que deberemos rellenar con los datos adecuados:\n\u003cul\u003e\u003ccode\u003eInterface:\u003c/code\u003e Aquí hay que seleccionar la interfaz en la que está configurada nuestra IP pública.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eService:\u003c/code\u003e En el menú desplegable hay varios servicios ya pre-configurados, pero entre ellos al no estar DuckDNS optamos por la opción custom.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eHostname:\u003c/code\u003e Aquí hay que meter el subdominio DuckDNS que queremos asignar a nuestro router. Solamente el subdominio, no hace falta meter \u003ccode\u003e.duckdns.org \u003c/code\u003e\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eLogin:\u003c/code\u003e poniendo nouser servirá, ya que nos identificaremos mediante nuestro Token.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003ePassword:\u003c/code\u003e Aquí deberemos introducir el Token de nuestra cuenta dyndns2.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eProtocol:\u003c/code\u003e Seleccionamos el protocolo.\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eServer:\u003c/code\u003e por último metemos la url del servidor de DuckDNS, www.duckdns.org.\u003c/ul\u003e\n\n3. Para terminar pulsamos en Apply para guardar todo lo que hemos metido.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/e40473fb-b7cb-4e81-92c0-05fd417b98ba\" alt=\"GUI1\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/4a8523fd-642a-4f82-b833-9b2cdae3ea7c\" alt=\"GUI2\"\u003e\u003c/p\u003e\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n\u003cdetails\u003e\n    \u003csummary\u003eMediante interfaz CLI:\u003c/summary\u003e\n\n### Instrucciones de uso con CLI:\n\nEsto podemos realizarlo conectando al router mediante el protocolo SSH o usando el intérprete CLI incorporado en la propia web de gestión.\nEn todo caso ya sea mediante un método u otro, deberemos iniciar sesión utilizando las mismas credenciales que usamos para acceder vía web.\n\n1. Accedemos por ssh o cli web.\n2. Configuramos lo siguiente y con atención:\n:warning:  \u003csup\u003e\u003cstrong\u003e\u003cfont style=\"vertical-align: inherit;\"\u003eATENCIÓN: \u003c/font\u003e\u003c/strong\u003e Teneis que cambiar el \"SUBDMIONIO\", \"TOKEN\" y la \"INTERFAZ\".\u003c/sup\u003e\n```sh\nconfigure\nset service dns dynamic interface INTERFAZ service custom-duckdns\nset service dns dynamic interface INTERFAZ service custom-duckdns host-name SUBDMIONIO\nset service dns dynamic interface INTERFAZ service custom-duckdns login nouser\nset service dns dynamic interface INTERFAZ service custom-duckdns password TOKEN\nset service dns dynamic interface INTERFAZ service custom-duckdns protocol dyndns2\nset service dns dynamic interface INTERFAZ service custom-duckdns server www.duckdns.org\ncommit ; save\n```\n3. Periódicamente el router ira actualizando nuestra IP pública en el DNS de DuckDNS. En caso de querer forzar la actualización, se puede realizar lanzando el siguiente comando.\n\u003cul\u003e\u003ccode\u003eupdate dns dynamic interface INTERFAZ\u003c/code\u003e\u003c/ul\u003e\n4. Si hemos realizado bien todos los pasos anteriores, ejecutando el siguiente comando veremos si todo está funcionando como debería.\n\u003cp\u003e\u003ccode\u003eshow dns dynamic status\u003c/code\u003e\u003c/p\u003e\n\n```sh\ninterface    : INTERFAZ\nip address   : xxx.xxx.xxx.xxx\nhost-name    : SUBDOMINIO\nlast update  : Tue Jun 23 16:28:09 2024\nupdate-status: good\n```\n \n\u003cp\u003eSi en el apartado \u003ccode\u003eupdate-status:\u003c/code\u003e vemos que aparece \u003ccode\u003egood\u003c/code\u003e es que todo está funcionando perfectamente.\u003c/p\u003e\n\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n\u003cdetails\u003e\n    \u003csummary\u003eMediante interfaz CLI: Configuración de un servicio de DNS dinámico personalizado\u003c/summary\u003e\n\n\u003cp\u003e\u003ch2 id=\"configuraci-n-de-un-servicio-de-dns-din-mico-personalizado\"\u003eConfiguración de un servicio de DNS dinámico personalizado\u003c/h2\u003e\u003c/p\u003e\n\nEn este ejemplo, se utiliza el servicio DNS dinámico de **Cloudflare**.\n\n\u003cp\u003e\u003ch3 id=\"panel-de-control-de-cloudflare\"\u003ePanel de control de Cloudflare\u003c/h3\u003e\u003c/p\u003e\nAntes de comenzar a configurar, vamos a configurar primero el panel de Cloudflare:\n1. Creamos en el panel de \u003ccode\u003e/dns/records\u003c/code\u003e creamos un subdominio que usaremos. En IP usar por ejemplo la localhost, luego Cloudflare la actualizará.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/39dd0e60-006f-42c5-9581-8a71c7ccac47\" alt=\"subdomain\"\u003e\u003c/p\u003e\n\n2. Creamos un Token API, tomen ejemplo de la imagen. Para acceder es en \u003ccode\u003e/profile/api-tokens\u003c/code\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/09f18f1d-5ab7-42f4-b459-736b48cf34dd\" alt=\"TokenAPI\"\u003e\u003c/p\u003e\n\n3. Para la password de configuración se usa la Global KEY.\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/bd4adbfe-223c-4beb-9ab8-e7504f12cab7\" alt=\"TokenGlobal\"\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003ch3 id=\"comenzamos-configuraci-n-del-router\"\u003eComenzamos configuración del router\u003c/h3\u003e\u003c/p\u003e\n\u003cstrong\u003eCLI:\u003c/strong\u003e  acceda a la interfaz de línea de comandos. Puede hacerlo usando el botón CLI en la GUI o usando un programa como PuTTY.\n\n1. Ingrese al modo de configuración.\n```sh\nconfigure\n```\n\n2. Configure el nombre de host de DNS dinámico.\n```sh\nset service dns dynamic interface pppoe0 service custom-cloudflare host-name subdomain.domain.com\n```\n\n3. Defina las credenciales de DNS dinámico.\n\n```sh\nset service dns dynamic interface pppoe0 service custom-cloudflare login user@domain.com\nset service dns dynamic interface pppoe0 service custom-cloudflare password your_cloudflare_global_API_key\n```\n\n\u003cstrong\u003eNOTA:\u003c/strong\u003e  La clave API de Cloudflare se utiliza en Ubiquiti la Global KEY. Esta clave se puede encontrar en su perfil de Cloudflare indicado anteriormente.\n\n4. Defina el protocolo DNS dinámico y el servidor a conectar.\n\n```sh\nset service dns dynamic interface pppoe0 service custom-cloudflare protocol cloudflare\nset service dns dynamic interface pppoe0 service custom-cloudflare server api.cloudflare.com/client/v4/\n```\n\n5. Especifique un nombre de dominio para la zona de Cloudflare.\n\n```sh\nset service dns dynamic interface pppoe0 service custom-cloudflare options zone=domain.com\n```\n\nSi desea establecer múltiples opciones, debe usar comillas dobles. Ejemplo:\n\u003ccode\u003e\"zone=yourdomain.com use=web ssl=yes ttl=1\"\u003c/code\u003e\n\u003cp\u003e\u003csup\u003eSi desea establecer opciones y no saben el significado, acceder al siguiente link: \u003ca href=\"https://ddclient.net/#documentation\"\u003e\u003cimg src=\"https://img.shields.io/badge/Link-green.svg?style=flat\" alt=\"Link\"\u003e\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\n**NOTA:** Si se establece un subdominio, **también debe** existir en el portal de Cloudflare. El comando anterior solo actualizará un dominio existente.\n\n6. Confirme los cambios y guarde la configuración.\n\n```sh\ncommit ; save\n```\n\n\u003cp\u003e\u003ch3 id=\"atenci-n-problemas-de-cloudflare\"\u003eATENCIÓN: Problemas de Cloudflare\u003c/h3\u003e\u003c/p\u003e\n\u003cp\u003eLa versión actual de ddclient es v3.8.3 (para Edge Router 4 con firmware [v2.0.9](https://ui.com/download/edgemax)). Esta versión anterior de ddclient no funciona con los nuevos tokens de API de cloudflare, por lo que debe usar el \u003cstrong\u003etoken de clave de API global\u003c/strong\u003e anterior en su lugar.\u003c/p\u003e\n\u003cp\u003eLas versiones v3.9.x de ddclient deberían funcionar con los tokens api más nuevos, así que verifique cuál es la versión de ddclient que usa su firmware:\u003c/p\u003e\n\n```sh\n/usr/sbin/ddclient --version\n```\n\nPuede averiguar qué parte del proceso está fallando llamando directamente a ddclient. Para obtener una salida de depuración, use lo siguiente (cambie el nombre del archivo conf para que coincida con la interfaz que está usando, por ejemplo, eth0 o pppoe0, etc.):\n\n```sh\nsudo /usr/sbin/ddclient -daemon=0 -debug -verbose -noquiet -file /etc/ddclient/ddclient_eth0.conf\n```\n\nPuede editar su ddclient.conf con el comando siguiente: (cambiar la interfaz que esté usando):\n\n```sh\nsudo vi /etc/ddclient/ddclient_eth0.conf\n```\n\nEsto facilitará probar diferentes configuraciones y solucionar su problema.  Si no está usando su nueva configuración, intente eliminar el archivo de caché, por ejemplo `sudo rm /var/cache/ddclient/ddclient_eth0.cache`(recuerde cambiar el nombre del archivo para que coincida con su interfaz nuevamente).\n\nUna vez que lo tengas funcionando, actualiza tu configuración con `update dns dynamic interface eth0` y comprobar de nuevo `show dns dynamic status`\n\n\u003cp\u003e\u003cem\u003eEn versiones de firmware más antiguas (anteriores a la v1.10.5), o para algunos proveedores (p. ej., Google Domains), también es necesario especificar la dirección del servidor remoto mediante el siguiente comando.\u003c/em\u003e\u003c/p\u003e\n\n7. Especifique el servidor remoto.\n\n```sh\nset service dns dynamic interface pppoe0 service custom-cloudflare server api.cloudflare.com/client/v4/\n```\n\nPuede verificar el estado y forzar una actualización del servicio DNS dinámico usando los siguientes comandos:\n\n```sh\nshow dns dynamic status\nupdate dns dynamic interface \u003cinterface-name\u003e\n```\n\nEjemplo de salida del comando \u003ccode\u003eshow dns dynamic status\u003c/code\u003e:\n\u003cp\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/f207defd-504f-43de-92c8-c8fc1cadcab1\" alt=\"command\"\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eNOTA:\u003c/strong\u003e  Los servidores pueden tardar algún tiempo en actualizarse y resolver el nombre de host en la dirección correcta.\u003c/p\u003e\n\n\u0026nbsp;\n\u003c/details\u003e\n\u0026nbsp;\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# Añadir listas de seguridad al firewall\nAgregar listas de seguridad al firewall es una práctica común para mejorar la seguridad de un sistema informático. Una lista de seguridad es un conjunto de reglas que se configuran en el firewall para controlar el acceso a recursos del sistema o a la red. Estas reglas permiten o bloquean el tráfico entrante o saliente en función de ciertas condiciones, como la dirección IP de origen, el protocolo utilizado, el puerto de origen o destino, entre otros.\n\nLa configuración de una lista de seguridad puede ayudar a prevenir ataques maliciosos, como el acceso no autorizado a recursos del sistema, la propagación de malware o la denegación de servicio.\n    \n## Crear script\n\n### Escoger script a utilizar\nAntes de crear el script, asegurar que lista van a escoger, si `IPv4` o `IPv6`. Una vez sepan que lista, escoger el script correspondiente:\n\u003cp\u003e\u003cul\u003e\u003cli\u003e\u003ccode\u003eIPv4.sh:\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cul\u003e\u003ca title=\"list\" href=\"https://github.com/azagramac/ubiquiti-edgerouter/blob/main/scripts/IPv4.sh\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/5396b9aa-5f7f-41bc-a713-974b3ad7c4a5\" alt=\"download\" width=\"100\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/ul\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003cul\u003e\u003cli\u003e\u003ccode\u003eIPv6.sh:\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cul\u003e\u003ca title=\"list\" href=\"https://github.com/azagramac/ubiquiti-edgerouter/blob/main/scripts/IPv6.sh\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/5396b9aa-5f7f-41bc-a713-974b3ad7c4a5\" alt=\"download\" width=\"100\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/ul\u003e\u003c/p\u003e\n\n\n### Creamos el grupo y agregamos una regla de firewall a la WAN:\n* Creamos un nuevo grupo y modificamos nombre de grupo.\n\u003cp\u003e\u003csup\u003ePara ver los grupos que tenemos: \u003ccode\u003eshow firewall group network-group\u003c/code\u003e.\u003c/sup\u003e\u003c/p\u003e\n\n```sh\nset firewall group network-group SPAMHAUS_DROP\ncommit\n```\n\n* Para añadir la regla en el firewall, modificamos el número de regla y cambiamos el \u003ccode\u003enetwork-group\u003c/code\u003e con el nombre del grupo creado.\n\u003cp\u003e\u003csup\u003ePara ver la regla y el orden: \u003ccode\u003eshow firewall name WAN_IN\u003c/code\u003e.\u003c/sup\u003e\u003c/p\u003e\n\n```sh\nset firewall name WAN_IN rule 10 source group network-group SPAMHAUS_DROP\nset firewall name WAN_IN rule 10 description \"networks to drop from spamhaus.org list\"\nset firewall name WAN_IN rule 10 action drop\nset firewall name WAN_IN rule 10 state established enable\nset firewall name WAN_IN rule 10 state new enable\nset firewall name WAN_IN rule 10 state related enable\nset firewall name WAN_IN rule 10 log enable\nset firewall name WAN_IN rule 10 protocol all\ncommit ; save\n```\n\n\u003cp\u003eImportante, deshabilitamos el `auto-firewall` del port forwarding\u003c/p\u003e\n\n```sh\nconfigure\nset port-forward auto-firewall disable\ncommit ; save\n```\n\n\u003cp\u003e\u003csup\u003eEl \u003ccode\u003eauto-firewall\u003c/code\u003e del \u003ccode\u003eport forwarding\u003c/code\u003e anula el cortafuegos real, por lo que establece reglas de permiso para esos puertos.\u003c/sup\u003e\u003c/p\u003e\n\n### Crear y Añadir el script /config/scripts/post-config.d/update-spamhaus\n\u003cp\u003eModificamos en el script el nombre de los argumentos: \u003ccode\u003eNETGROUP\u003c/code\u003e, con el nombre del grupo creado.\u003c/p\u003e\n\u003cp\u003eLas listas a añadir tienen que tener formato \u003ccode\u003e.raw\u003c/code\u003e o \u003ccode\u003e.txt\u003c/code\u003e.\u003c/p\u003e\n\n\u003e EDIT: Crear el script en `/config/scripts/post-config.d` mejor que en `/config/scripts/` porque después de un reinicio el grupo de firewall volverá a estar vacío, pero si el script está en ese directorio `/config/scripts/post-config.d`, se ejecutará automáticamente después del arranque.\n\n```sh\nsudo vi /config/scripts/post-config.d/update-spamhaus\n```\n\n- Ahora pegan el scrip escogido en el punto: **[`^ Escoger script a utilizar ^`](#escoger-script-a-utilizar)**\n\u003cp\u003e\u003csup\u003eImportante sustituir las listas si son \u003ccode\u003eIPv4\u003c/code\u003e o si son \u003ccode\u003eIPv6\u003c/code\u003e, en los siguientes ejemplos son \u003ccode\u003eIPv4\u003c/code\u003e.\u003c/sup\u003e\u003c/p\u003e\n\u003cp\u003eEl comando VI del equipo no está completo, por lo que para guardar, utilizar \u003ccode\u003eZZ\u003c/code\u003e o \u003ccode\u003e:wq\u003c/code\u003e\u003c/p\u003e\n\n### Hazlo ejecutable:\n```sh\nsudo chmod +x /config/scripts/post-config.d/update-spamhaus\n```\n\nEJECUTAR:\n```sh\nsudo /config/scripts/post-config.d/update-spamhaus\n```\n\u003cp\u003e\u003csup\u003eNo pensar que se ha quedado bloqueado al insertar el comando, tarda un poco si la lista es muy grande.\u003c/sup\u003e\u003c/p\u003e\n\nResultado:\n\u003cul\u003e\u003ccode\u003eAdded 561 entries to SPAMHAUS_DROP\u003c/code\u003e\u003c/ul\u003e\n\n## PROGRAMAR TAREA:\n\nOPCIÓN 1:\n### Este es el programador de tareas, configura para ejecutar un cron diario cada 12h:\n\u003cul\u003e\u003ccode\u003eset system task-scheduler {task update_spamhaus {crontab-spec \"00 12 * * *\"ejecutable {path /config/scripts/post-config.d/update-spamhaus}\u003c/code\u003e\u003c/ul\u003e\n\n### También puede colocar su configuración para que sobreviva a una actualización cada 24h:\n\u003cul\u003e\u003ccode\u003eset system task-scheduler SPAMHAUS {crontab-spec \"00 24 * * *\" executable {path /config/scripts/post-config.d/update-spamhaus}}\u003c/code\u003e\u003c/ul\u003e\n\n\nOPCIÓN 2:\n###  Simplemente agregue el script al programador de tareas tal como está, cambiando el nombre del task y el path de su script:\n\u003cul\u003e\u003ccode\u003eset system task-scheduler task update-spamhaus executable path /config/scripts/post-config.d/update-spamhaus\u003c/code\u003e\u003c/ul\u003e\n\u003cul\u003eLas tareas se programan en horas:\u003ccode\u003e24h,48h...\u003c/code\u003e\u003c/ul\u003e\n\u003cul\u003e\u003ccode\u003eset system task-scheduler task update-spamhaus interval 24h\u003c/code\u003e\u003c/ul\u003e\n\n* Ajustes de \u003ccode\u003esystem task-scheduler interval\u003c/code\u003e\n\u003cul\u003e\u003cp\u003e\u003ccode\u003eminutes\u003c/code\u003e      Execution interval in minutes\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003e\u003ccode\u003eminutes m\u003c/code\u003e    Execution interval in minutes\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003e\u003ccode\u003ehours h\u003c/code\u003e      Execution interval in hours\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003e\u003ccode\u003edays d\u003c/code\u003e       Execution interval in days\u003c/ul\u003e\u003c/p\u003e\n\n--\u003e Despues vemos las tareas\n\u003cul\u003e\u003ccode\u003eshow system task-scheduler\u003c/code\u003e\u003c/ul\u003e\n\n\n### Buenas prácticas.\n\u003cp\u003eBuenas prácticas para un correcto funcionamiento del firewall:\u003c/p\u003e\n\n- Coloque la regla spamhaus en primer lugar en WAN_IN y WAN_LOCAL (es decir, antes de la regla de permiso para conexiones establecidas y relacionadas). Esto es para evitar la situación \"rara\" de que un host interno (por ejemplo, infectado con malware) de alguna manera establezca una conexión con un host listado de spamhaus, dando la oportunidad de usar la conexión establecida para fines de spam.\n- Ponga la regla de spamhaus en WAN_OUT, otra vez antes que cualquier otra cosa.\n- Hoy noté en mis registros que el WAN_OUT coincidió (y rechazó) con el tráfico saliente a la dirección IP 185.3.135.146 (búsqueda de spamhaus aquí, listado desde el 29/2/2016). Este tráfico se originó en el cliente bittorrent que se ejecuta en mi NAS. No sé si los spammers usan bittorrent para infiltrarse en hosts posiblemente vulnerables, pero lo considero como un paso de protección adicional que funcionó.\n- Debería asignar las reglas de firewall solo en el pppoe\n\n## README con listas de IPs públicas\n\u003cp\u003e\u003ca title=\"list\" href=\"https://github.com/azagramac/ubiquiti-edgerouter/tree/main/list\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/deef8e5a-a511-4848-9e70-7b6437a0dc3e\" alt=\"list\" width=\"60\" align=\"center\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\n## REVISIÓN\n\u003cp\u003eListar\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003esudo /sbin/ipset list update-spamhaus o sudo /sbin/ipset list -L update-spamhaus\u003c/code\u003e\u003c/ul\u003e\n\u003cul\u003e\u003cli\u003eSin que muestre las ips: \u003ccode\u003esudo /sbin/ipset list -t\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\n\u003cp\u003eComprobar una ip\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003esudo /sbin/ipset test update-spamhaus 192.168.1.100\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003eLimpiar grupo de IPs\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003esudo /sbin/ipset flush update-spamhaus\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003eUtilice este comando a través de la CLI para ver las entradas:\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003eshow firewall group SPAMHAUS_DROP\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003eDespues vemos las tareas\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003eshow system task-scheduler\u003c/code\u003e\u003c/ul\u003e\n\u003cp\u003eVer log\u003c/p\u003e\n\u003cul\u003e\u003ccode\u003ecat /var/log/messages\u003c/code\u003e\u003c/ul\u003e\n\n\n### EJEMPLO DE REGLAS:\n```sh\n    name WAN_IN {\n        default-action drop\n        description \"WAN to internal\"\n        enable-default-log\n        rule 10 {\n            action drop\n            description \"Networks to drop from spamhaus.org list\"\n            log enable\n            source {\n                group {\n                    network-group SPAMHAUS_DROP\n                }\n            }\n        }\n.........................\n.........................\n\n name WAN_LOCAL {\n        default-action drop\n        description \"WAN to router\"\n        enable-default-log\n        rule 10 {\n            action drop\n            description \"Networks to drop from spamhaus.org list\"\n            log enable\n            source {\n                group {\n                    network-group SPAMHAUS_DROP\n                }\n            }\n        }\n.........................\n.........................\n\n    name WAN_OUT {\n        default-action accept\n        description \"WAN OUT firewall rules\"\n        rule 10 {\n            action reject\n            description \"Networks to drop from spamhaus.org list\"\n            destination {\n                group {\n                    network-group SPAMHAUS_DROP\n                }\n            }\n            log enable\n        }\n```\n### EJEMPLO DE INTERFAZ WAN:\n```sh\nethernet eth1 {\n        description \"Internet (PPPoE)\"\n        duplex auto\n        firewall {\n            in {\n                name WAN_IN\n            }\n            local {\n                name WAN_LOCAL\n            }\n        }\n        pppoe 0 {\n            default-route auto\n            firewall {\n                in {\n                    name WAN_IN\n                }\n                local {\n                    name WAN_LOCAL\n                }\n            }\n```\n\n## Monitorización de IPs bloqueadas\nHe creado un script para poder informar al telegram de las IPs bloqueadas por una regla desde el log.\n\u003cul\u003e\u003cp\u003e\u003csup\u003eModificar en el script la WAN con la regla a buscar y añadir vuestro ID CHAT y token del bot.\u003c/sup\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003eEl script pueden descargarlo o verlo desde la carpeta del repositorio en este enlace:\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003e\u003ca title=\"download\" href=\"https://github.com/azagramac/ubiquiti-edgerouter/blob/main/scripts/TelegramQueryLog.sh\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/5396b9aa-5f7f-41bc-a713-974b3ad7c4a5\" alt=\"download\" width=\"100\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003eTambien he dejado la consulta con AbuseIPDB.\u003c/ul\u003e\u003c/p\u003e\n\u003cul\u003e\u003cp\u003e\u003ca title=\"download\" href=\"https://github.com/azagramac/ubiquiti-edgerouter/blob/main/scripts/TelegramQueryLog_ABUSEIPDB\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/5396b9aa-5f7f-41bc-a713-974b3ad7c4a5\" alt=\"download\" width=\"100\" align=\"center\" /\u003e\u003c/a\u003e\u003c/ul\u003e\u003c/p\u003e\n\n## Cortafuegos por país en Edgerouter\nEjemplo:\n`Tengo un pequeño servidor web ejecutándose dentro de mi red en el puerto 55555. Solo quiero que mis amigos puedan acceder a él. Sé que viven en Dinamarca, Noruega y Suecia. Quiero asegurarme de que China, Rusia y otras partes del mundo no tengan acceso, para minimizar el riesgo de explotar los días cero en mi servidor.`\n\n#### Configuración del Edgerouter\n\nEsta es la configuración que agrego:\n```sh\nset firewall group network-group countries_allowed description 'Allowed countries'\nset firewall group network-group countries_allowed network 10.254.254.254/31\nset service nat rule 10 description 'My funny dmz server'\nset service nat rule 10 destination group address-group ADDRv4_eth0\nset service nat rule 10 destination port 55555\nset service nat rule 10 inbound-interface eth0\nset service nat rule 10 inside-address address 192.168.xxx.xxx\nset service nat rule 10 inside-address port 55555\nset service nat rule 10 protocol tcp\n\nset firewall name WAN_IN rule 20 action accept\nset firewall name WAN_IN rule 20 description 'My funny dmz server'\nset firewall name WAN_IN rule 20 destination port 55555\nset firewall name WAN_IN rule 20 protocol tcp\nset firewall name WAN_IN rule 20 source group network-group countries_allowed\n\ncommit\n```\n\nEsto básicamente hace lo siguiente:\n\n  1. Crea un grupo de red que será un marcador de posición para todas las subredes a las que quiero permitir el acceso a mi servidor. Solo agrego una regla, que estará allí cuando se inicie Edgerouter. Eso significa que todo (excepto una IP arbitraria/aleatoria `10.254.254.254`) está bloqueado hasta que las reglas reales del país se carguen más tarde.\n  2. Luego crea una regla de reenvío NAT que reenvía todo el tráfico al puerto `55555` que ingresa en mi interfaz externa (`eth0`) a mi servidor interno\n  3. Permite el tráfico a mi servidor en el cortafuegos si el tráfico se origina en mi grupo de red \"countries_allowed\"\n\n#### Obtener subredes de países\n\nAhora creo un archivo de script \"`/config/scripts/post-config.d/country-load`\" (`chmod 755`):\n```sh\n#!/bin/bash\ncountryList=\"dk no se\"\nfirewallGroupName=countries_allowed\n\n#mkdir /config/zonefiles\nfunction loadcountry () {\n        firewallGroupName=$1\n        country=$2\n\n        echo \"Downloading country definition for $country...\" \u003e\u003e /var/log/alex\n        wget http://www.ipdeny.com/ipblocks/data/countries/${country}.zone -O /config/zonefiles/${country}.zone -q\n        echo \"Adding rules to firewall group $firewallGroupName...\" \u003e\u003e /var/log/alex\n        for rule in `cat /config/zonefiles/${country}.zone`; do\n                ipset add $firewallGroupName $rule\n        done\n}\n\nipset -F $firewallGroupName\nfor country in $countryList; do\n        loadcountry $firewallGroupName $country\ndone\n```\n\nEste script se ejecutará cuando se inicie Edgerouter:\n\n  1. Recorra la lista de países definidos en la parte superior del script\n  2. Descarga una lista de subredes en cada país\n  3. Agréguelo a la tabla ipset (eso es lo que usa Edgerouter para los grupos de red)\n\n#### Pruebas\n\nDespués de reiniciar el enrutador de borde o ejecutar manualmente el script, puede verificar que realmente tenemos algunas subredes en nuestro grupo de red:\n```sh\nipset -L countries_allowed\n```\n\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# POSIBILIDAD DE AÑADIR UN CERTIFICADO A LOCALHOST\n\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/cd6c628f-ade0-4841-a2ff-4dafc94ae429\" alt=\"Ubiquiti edgemax\" width=\"40\"/\u003e\n\n### Añadir certificado CA para localhost\nUsando [mkcert](https://words.filippo.io/mkcert-valid-https-certificates-for-localhost/) para crear un certificado CA para localhost.  \nOpción de ir a la ruta de certificados SSL con Let's Encrypt hay varios diferentes para elegir. Por ejemplo, [ubnt-letsencrypt](https://github.com/j-c-m/ubnt-letsencrypt) por [Jesse Miller](https://github.com/j-c-m)\n\n```sh\nconfigure\nset system static-host-mapping host-name \u003chostname\u003e inet \u003cip-of-edgerouter\u003e\ncommit ; save\n```\n\n**Crear certificado**\n```sh\nmkcert \u003cip-of-edgerouter\u003e \u003chostname\u003e\ncat \u003cip-of-edgerouter\u003e+1-key.pem \u003cip-of-edgerouter\u003e+1.pem \u003e server.pem\n```\n\n**Copia de seguridad del archivo de certificado existente**\n```sh\nsudo cp /etc/lighttpd/server.pem /etc/lighttpd/.server-OLD.pem\nexit\n```\n\n**Copie el nuevo archivo de certificado en la dirección del usuario de su router**\n```sh\nscp /path/to/server.pem \u003cuser\u003e@\u003cip-of-edgerouter\u003e:/home/\u003cuser\u003e/server.pem\n```\n\n**Copiar el nuevo archivo de certificado desde la dirección del usuario y habilitar el certificado**\n```sh\nsudo cp /home/\u003cuser\u003e/server.pem /etc/lighttpd/server.pem\n# Kill webserver service by PID\nsudo kill -SIGINT $(cat /var/run/lighttpd.pid)\n# Start webserver\nsudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf\nexit\n```\n\n**Comprueba tu conexión con curl**\nSi se hace correctamente, una forma de comprobarlo es utilizar curl. Si obtiene una redirección a un puerto de protocolo SSL, es decir, 443, el certificado está instalado correctamente en su router.\n\n```sh\n$ curl -I http://\u003cip-of-edgerouter\u003e/\nHTTP/1.1 301 Moved Permanently\nLocation: https://\u003cip-of-edgerouter\u003e:443/\nDate: Sun, 11 Jan 2015 07:46:13 GMT\nServer: Server\n```\n---\n**[`^        back to top        ^`](#wiki-ubiquiti)**\n# OpenVPN\nEste tutorial describe como configurar un servidor OpenVPN en un EdgeRouter.\n\n## Configuración EdgeRouter como servidor OpenVPN. (Servidor)\n\n### Crear certificados\nAqui hay una lista con los archivos que necesitas. Puedes usar el Software XCA \u003ca href=\"https://github.com/chris2511/xca/\"\u003eXCA\u003c/a\u003e para eso.\n- ca.crt (CA Raíz)\n- server.crt (Certificado del Servidor)\n  - Para prevenir ataques MITM asegúrese de configurar\n     - Uso de claves X509v3: Firma digital, cifrado de claves\n     - Uso extendido de claves X509v3: Autenticación de servidor web TLS\n- server.key (Archivo de claves para el certificado del servidor)\n- dh.pem (clave de intercambio de claves Diffie-Hellman; la buena es de 2048 bits)\n- revocation-list.crl (Opcional; Lista de revocación de certificados)\n\nUna vez creados los archivos, cópielos todos en `/config/auth/`.\n\nPara la configuración del cliente: Asegúrese de que `remote-cert-tls server` está activado.\n\n### Configuración básica de OpenVPN\n```sh\nconfigure\nset interfaces openvpn vtun0\nset interfaces openvpn vtun0 mode server\nset interfaces openvpn vtun0 server name-server 1.1.1.1 # change to your favourite\nset interfaces openvpn vtun0 server domain-name example.com # change to your favourite\n# set your network\nset interfaces openvpn vtun0 server push-route 192.168.178.0/24 \n# Establece el rango para los clientes openvpn. Los clientes recibirán una dirección IP de esta subred\nset interfaces openvpn vtun0 server subnet 192.168.177.0/24\n```\n\n### Configuración del certificado\nComo se ha descrito anteriormente. Asegúrese de que su clave privada tiene `sudo chmod 600`.\n```sh\nset interfaces openvpn vtun0 tls ca-cert-file /config/auth/ca.crt\nset interfaces openvpn vtun0 tls cert-file /config/auth/server.crt\nset interfaces openvpn vtun0 tls dh-file /config/auth/dh2048.pem\nset interfaces openvpn vtun0 tls key-file /config/auth/server.key\n# optional: set revocation list\nset interfaces openvpn vtun0 tls crl-file /config/auth/revocation-list.crl\n```\n\n### Configurar el registro\n```sh\nset interfaces openvpn vtun0 openvpn-option \"--log /var/log/openvpn.log\"\nset interfaces openvpn vtun0 openvpn-option \"--status /var/log/openvpn-status.log\"\nset interfaces openvpn vtun0 openvpn-option \"--verb 7\"\n```\n\n### Configuración del cortafuegos\nNo olvides configurar NAT para los clientes openvpn.\n```sh\nset firewall name XXX rule XX action accept\nset firewall name XXX rule XX description 'Allow OpenVPN'\nset firewall name XXX rule XX destination port 1194\nset firewall name XXX rule XX log disable\nset firewall name XXX rule XX protocol udp\n```\n## WireGuard server\n\u003cimg src=\"https://github.com/azagramac/ubiquiti-edgerouter/assets/571796/0635ed8a-4df3-4faf-a47f-33ddbbecbe78\" alt=\"Wireguard\" width=\"64\"/\u003e\n\n### Instalar servidor Wireguard, for ER-4, ER-6P, ER-12 and ER-12P solamente.\n```sh\ncd /home/ubnt\ncurl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e300-v2-v1.0.20220627-v1.0.20210914.deb\nsudo dpkg -i e300-v2-v1.0.20220627-v1.0.20210914.deb\nconfigure\nsudo modprobe wireguard\nload\ncommit ; save\nexit\n```\n### Generar claves\n```sh\ncd /home/ubnt\nmkdir -p wireguard/server; cd wireguard/server/\nwg genkey | tee private_server.key | wg pubkey \u003e public_server.key\ncat private_server.key\ncat public_server.key\n```\n\n### Crear semillas, los clientes.\n```sh\ncd /home/ubnt/wireguard/\nmkdir peer1; cd peer1 ## aqui crearas tantos usuarios necesites, cambia el numero por cada cliente que generes. \nwg genkey | tee private_peer.key | wg pubkey \u003e public_peer.key\nwg genpsk \u003e presharedkey_peer.key\ncat private_peer.key \ncat public_peer.key\ncat presharedkey_peer.key\n```\n\n### Configuracion del servidor\n```sh\nconfigure\nset interfaces wireguard wg0 private-key /home/ubnt/wireguard/server/private_server.key\nset interfaces wireguard wg0 route-allowed-ips true\nset interfaces wireguard wg0 listen-port 51820       ## El puerto por defecto de Wireguard, recomendable cambiarlo.\nset interfaces wireguard wg0 address 10.10.1.0/24    ## el rango de IP pondremos el que queramos que tengan los clientes que se vayan a conectar y el [CIDR](https://azagramac.gitbook.io/myblog/linux/cidr-mascaras-de-subred).\n```\n\n### Configuramos los clientes\n```sh\nset interfaces wireguard wg0 peer1 $(cat /home/ubnt/wireguard/peer1/public_peer.key) allowed-ips 10.10.1.10/32          ## Añadimos la public key de cada peer, y le asignamos su IP\nset interfaces wireguard wg0 peer1 $(cat /home/ubnt/wireguard/peer1/public_peer.key) endpoint YOUR_DDNS_DOMAIN:51820    ## Ponemos nuestro DDNS y el puerto\nset interfaces wireguard wg0 peer1 $(cat /home/ubnt/wireguard/peer1/public_peer.key) description OnePlus                ## Ponemos una descripcion\n```\n\n### Aplicamos las reglas\n```sh\nset firewall name WAN_LOCAL rule 20 action accept\nset firewall name WAN_LOCAL rule 20 protocol udp\nset firewall name WAN_LOCAL rule 20 destination port 51820\nset firewall name WAN_LOCAL rule 20 description 'WireGuard'\n\nset firewall name WG_IN default-action drop\nset firewall name WG_IN description 'Wireguard to LAN'\n\nset interfaces wireguard wg0 firewall in name WG_IN\nset interfaces wireguard wg0 firewall local name WG_LOCAL\n```\n\n### Guardamos los cambios\n```sh\ncommit ; save\n```\n\n### Fichero de configuracion\n```sh\nvi /home/ubnt/wireguard/peer1/peer.conf\n\n[Interface]\nAddress = 10.10.1.10\nPrivateKey = ## Clave publica del cliente, /home/ubnt/wireguard/peer1/private_peer.key\nListenPort = 51820\nDNS = 1.1.1.1,1.0.0.1\n\n[Peer]\nPublicKey = ## Clave publica del servidor, /home/ubnt/wireguard/peer1/private_peer.key\nPresharedKey = ## Clave preshared de","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazagramac%2Fubiquiti-edgerouter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazagramac%2Fubiquiti-edgerouter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazagramac%2Fubiquiti-edgerouter/lists"}