Una colección de mejoras para los dispositivos basados en EdgeMax.
- Acceso a la CLI y comandos básicos
- Configuración inicial del EdgeRouter
- Hardening del dispositivo
- Firewall EdgeRouter
- Routing
- LAN
- Añadir listas de seguridad al firewall
- Certificado localhost
- OpenVPN
- Squidguard
- Syslog
- WireGuard
- Diagnóstico de red
- Conclusión
Recordar que los pasos aquí expuestos son orientativos.
Recomiendo su lectura y compresión antes de aplicarlo sobre un entorno de producción.
Los 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.
commit:
para activar los cambios.save:
para almacenar la configuración "activa" en la configuración de inicio.compare:
Para ver qué cambios se han realizado en la configuración.configure:
modo configuración.show:
mostrar -> Ejemplo: show firewallset:
establecer configuración. -> Ejemplo: set firewall name TEST default-action dropedit:
Para crear la misma acción y reducir la cantidad de repeticiones en la sintaxis completa. -> Ejemplo: edit firewall name TESTup:
Para subir un nivel de edición -> Ejemplo: volver al set de configuración anteriortop:
Para volver al nivel de edición superior -> Ejemplo: Volver al ser de configuración incialdiscard:
para deshacer los cambios no confirmadoscopy:
Para crear una nueva acción existente -> Ejemplo: copy name WAN1_LOCAL to name WAN2_LOCALrename:
Para cambiar el nombre de la nueva acción -> Ejemplo: rename name WAN2_LOCAL to name WAN2_INload:
cargar configuración.? o tecla de tab:
para mostrar opciones para el nivel de edición especificadowq
Guardar y salir.:q!
Salir sin guardar.u
Deshace última acción.i
modo inserción por la izquierda.a
modo inserción por la derecha.dd
Elimina la línea actual.p
Copia la palabra actual.A
Pone le puntero al final de la línea.w
Salta de palabra en palabra.D
Borra desde el puntero hacia el final de la línea.o
Agrera una línea debajo de la actual.O
Agrega una línea encima de la actual.P
Copia la palabra pegada.gw
Copia la palabra actual.help
Ayuda.Mediante un navegador, accedemos a https://192.168.1.1
. Cargara una web donde deberemos introducir unas credenciales. En este caso las que vienen de fábrica.
La contraseña por defecto:
Usuario:
ubntContraseña:
ubntUna vez introducidas las credenciales, se cargará la web de gestión del EdgeRouter.
- Acceda a la interfaz de usuario web de EdgeRouter
- Navegue a la parte superior derecha de la interfaz de usuario web.
En 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.
Cuando intentamos acceder vía web, nos indica que el certificado es inválido al ser autofirmado:Podemos ver el contenido del archivo de certificado .PEM
:
openssl x509 -in CERTIFICATE.pem -text -noout
Para poder solucionar, debemos descargar el certificado del navegador. Nos descarga un archivo .pem
:
Una vez descargado tenemos que cambiar el .pem
a .crt
con OpenSSL:
openssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.crt
Despues de haber cambiado el formato, procedemos a instalar el certificado en la raiz de confianza:
Una vez importado el certificado y borrado las cookies, ya no nos indicará que el certificado no es de confianza.
Tambien podemos migrar el .pem
a .pfx
con OpenSSL:
openssl pkcs12 -export -in CERTIFICATE.pem -inkey CERTIFICATE.key -out CERTIFICATE.pfx
Para ello necesitas la private key del certificado.
El EdgeRouter se puede restablecer a los valores predeterminados de fábrica utilizando un hardware o software método de restablecimiento
Hardware Reset: Borra todos los archivos de configuración y del sistema, restableciendo el dispositivo al estado predeterminado de fábrica. Software Reset: Solo borra la configuración y deja intactos los demás archivos del sistema.
ATENCIÓN: Los métodos de reinicio de hardware a continuación borrarán todos los archivos de configuración y del sistema.
Realización de un restablecimiento de hardware :
- Verifique que EdgeRouter esté completamente iniciado.
- Mantenga presionado el reinicio.
- Los LED del puerto comenzarán a encenderse en secuencia, comenzando por el puerto 1 y terminando en el último puerto.
- Continúe presionando el botón de reinicio durante aproximadamente 10 segundos hasta que el LED del puerto 1 se encienda nuevamente.
- Suelte el botón de reinicio.
- El EdgeRouter se reiniciará.
- Espere a que se complete el reinicio.
- Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la
https://192.168.1.1
dirección IP predeterminada.
- Desconecte el cable de alimentación del EdgeRouter.
- Mientras vuelve a conectar el cable de alimentación al EdgeRouter, mantenga presionado el reinicio .
- Los LED del puerto comenzarán a encenderse en secuencia, comenzando por el puerto 1 y terminando en el último puerto.
- Continúe presionando el botón de reinicio durante aproximadamente 10 segundos hasta que el LED del puerto 1 se encienda nuevamente.
- Suelte el botón de reinicio.
- El EdgeRouter se reiniciará.
- Espere a que se complete el reinicio.
- Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la
https://192.168.1.1
dirección IP predeterminada.
Realización de un reinicio de software:
- Acceda a la interfaz de usuario web de EdgeRouter.
- Navegue a la Sistema en la parte inferior izquierda de la interfaz de usuario web.
- Restablezca la configuración a los valores predeterminados presionando el Restablecer a los valores predeterminados en la Restablecer predeterminados .
- El EdgeRouter solicitará que se reinicie el dispositivo para completar el restablecimiento.
- Espere a que se complete el reinicio.
- Conéctese al eth0 y administre el dispositivo abriendo un navegador y navegando a la
https://192.168.1.1
dirección IP predeterminada
- acceda a la interfaz de línea de comandos de EdgeRouter.
- Sobrescriba el archivo de inicio actual (config.boot) con el archivo de inicio predeterminado (config.boot.default).
sudo cp /opt/vyatta/etc/config.boot.default /config/config.boot
reboot
Proceed with reboot? [confirm]
https://192.168.1.1
dirección IP predeterminada
Antes de Realizar cualquier cambio o configuración en los equipos Ubiquiti EdgeMax debe contar con la última versión del Firmware.
Y seguir la guía que indica fabricante: Cómo actualizar el firmware de EdgeOS
Opción 1:
- Conecte un cable Ethernet desde el puerto Ethernet del ordenador al puerto eth0 del EdgeRouter.
- Configure el adaptador de Ethernet en su sistema host con una dirección IP estática en la subred
192.168.1.x
. - Inicie el explorador web. Escriba
https://192.168.1.1
en la barra de direcciones. Pulse Intro (PC) o Retorno (Mac). - 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).
Opción 2:
- Conecte un cable Ethernet de eth1 en el EdgeRouter a un segmento de LAN que ya tiene un servidor DHCP.
- Para comprobar la dirección IP del EdgeRouter, utilice uno de los métodos siguientes:
- 2.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).
- 2.2 Deje que el EdgeRouter obtenga una dirección IP y luego compruebe el servidor DHCP para ver qué dirección IP se asignó.
Realizar una copia de seguridad y restaurar el archivo de configuración de un EdgeRouter.
Realización copia de seguridad y restauración vía GUI:
- Navegue al sistema en la parte inferior izquierda de la GUI para descargar el archivo de configuración de la copia de seguridad.
**Sistema** > **Gestión de configuración** y **mantenimiento de dispositivos** > **Back Up Config**
- Navegue al sistema en la parte inferior izquierda de la GUI para descargar el archivo de configuración de la copia de seguridad.
**Sistema** > **Gestión de configuración** y **mantenimiento de dispositivos** > **Restore Config**
Para realizar o restaurar vía UNMS deben seguir los pasos de este artículo:
Realización copia de seguridad y restauración vía CLI:
1. Puede hacerlo usando el botón CLI en la GUI o usando un programa como PuTTY.
2. 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.
commit ; save
3. Guarde el archivo de configuración config.boot
en una máquina remota mediante una de estas opciones: TFTP, SCP, FTP o SFTP.
scp://<user>:<passwd>@<host>/<file> Save to file on remote machine
sftp://<user>:<passwd>@<host>/<file> Save to file on remote machine
ftp://<user>:<passwd>@<host>/<file> Save to file on remote machine
tftp://<host>/<file> Save to file on remote machine
Y con el comando save tftp://host/config.boot
guardamos el archivo de configuración.
4. Verifique el contenido de la configuración de inicio abriendo el config.boot
con un editor de texto y compare con el del equipo que se haya exportado correctamente.
cat /config/config.boot
1. Puede hacerlo usando el botón CLI en la GUI o usando un programa como PuTTY.
2. Compare las diferencias entre la respaldo/funcionamiento y la activa.
3. Guarde el archivo de configuración config.boot
en una máquina remota mediante una de estas opciones: TFTP, SCP, FTP o SFTP.
scp://<user>:<passwd>@<host>/<file> Load from file on remote machine
sftp://<user>:<passwd>@<host>/<file> Load from file on remote machine
ftp://<user>:<passwd>@<host>/<file> Load from file on remote machine
http://<host>/<file> Load from file on remote machine
tftp://<host>/<file> Load from file on remote machine
Y con el comando load tftp://host/config.boot
guardamos el archivo de configuración.
4. Verifique que la restauración ha sido correcta y con el contenido de la configuración del config.boot
con un editor de texto y compare con el del equipo que se haya importado correctamente.
cat /config/config.boot
y con el comando compare
5. 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.
commit ; save
- 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. Ubiquiti 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.
Puede 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.
- Para empezar, vaya a UISP - Guía de instalación
- Despues logarse en la web de UISP uisp.ui.com
- Pueden utilizar la aplicación móvil, enlace de configuración: UISP-Mobile-App
Cuidado con la opción cloud. Cuando creas la cuenta indica:
Una 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.
Offloading 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: EdgeRouter-Hardware-Offloading
UTILIZAR CON CUIDADO.Para ER-X,ER-X-SPF,EP-R6
configure
set system offload hwnat enable
set system offload ipsec enable
commit ; save
Para todos los demás modelos de Edgerouter
configure
set system offload ipv4 forwarding enable
set system offload ipv4 gre enable
set system offload ipv4 pppoe enable
set system offload ipv4 vlan enable
set system offload ipv6 forwarding enable
set system offload ipv6 pppoe enable
set system offload ipv6 vlan enable
set system offload ipsec enable
commit ; save
Antes de eliminar el usuario por defecto, crear un usuario, en la GUI en la pestaña USERS o por CLI:
set system login user <user>
set system login user <user> level admin
set system login user <user> authentication plaintext-password <contraseña>
set system login user <user> full-name <Nombre>
commit ; save
La contraseña se encripta una vez introducida en texto plano
Despues eliminarmos el usuario por defecto
configure
delete system login user ubnt
commit ; save
PD: Si creas un usuario como operador, no tiene acceso por ssh.
This account is currently not available.
Connection to 192.168.1.1 closed.
Para poder generar una clave pública hay muchas opciones, pero os recomiendo con Putty.
Si no lo conocen, os dejo el tutorial: Generar SSH Keys (Llaves SSH) en PuTTY
$ scp ~/.ssh/id_rsa.pub <ip-of-edgerouter>:/tmp
Pueden utilizar Filezilla o similar para enviar el archivo.
Accedemos al equipo y configuramos la clave pública generada:
configure
loadkey <user> /tmp/id_rsa.pub
sudo chown -R <user> /home/<user>
commit ; save
Asegúrate de que puedes acceder con tu clave pública antes de salir de la sesión SSH actual. Probamos acceso sin salir de la sesión SSH por si tienes que hacer un rollback:
$ ssh <user>@<ip-of-edgerouter>
exit
Si 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.
Asegúrate de que puedes acceder con tu clave pública antes de desactivar la autenticación en texto plano.
configure
set service ssh disable-password-authentication
commit ; save
Pueden asegurar el acceso al ssh o gui con vuestro rango de IPs, es opcional, pero seguro. (opcional)
configure
set service gui listen-address <lan ip address/range>
set service ssh listen-address <lan ip address/range>
commit ; save
Recomendado, cambiar el puerto de ssh y habilitar V2
configure
set service ubnt-discover disable
set service ssh protocol-version v2
set service ssh port <port>
delete service telnet
commit ; save
-
Para poder añadir una regla, deben saber que hay 3 WAN en Ubiquiti:
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.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.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.
-
Tipos de LAN
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)LAN_LOCAL
= Todo lo que ingresa al enrutador desde su LAN destinado al enrutador.
Las reglas se añaden en las WAN
, dependiendo del sentido que queramos hacer.
Si 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.
Ejemplo para una WAN
con pppoe,
- Indicamos la interfaz a la WAN_IN la pppoe en modo
IN
- Indicamos la interfaz a la WAN_LOCAL la pppoe en modo
LOCAL
- Indicamos la interfaz a la WAN_IN la pppoe en modo
OUT
.- No olvidar poner la acción por defecto en ACCEPT, o denegará todo el tráfico desde la red interna.
- Añadiríamos la regla en la IN u OUT y en el LOCAL.
- Despues realizar una prueba para comprobar la acción deseada.
En EdgeMax no es necesario añadir la misma regla en IN y OUT. Denegará o permitirá la acción deseada en cualquiera de ellas.
Aquí 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.
- Configuración básica del firewall. Asignar la interfaz de la WAN que vayan a utilizar:
configure
set firewall name WAN_IN default-action drop
set firewall name WAN_IN description 'WAN to internal'
set firewall name WAN_IN rule 10 action accept
set firewall name WAN_IN rule 10 description 'Allow established/related'
set firewall name WAN_IN rule 10 state established enable
set firewall name WAN_IN rule 10 state related enable
set firewall name WAN_IN rule 20 action drop
set firewall name WAN_IN rule 20 description 'Drop invalid state'
set firewall name WAN_IN rule 20 state invalid enable
set firewall name WAN_LOCAL default-action drop
set firewall name WAN_LOCAL description 'WAN to router'
set firewall name WAN_LOCAL rule 10 action accept
set firewall name WAN_LOCAL rule 10 description 'Allow established/related'
set firewall name WAN_LOCAL rule 10 state established enable
set firewall name WAN_LOCAL rule 10 state related enable
set firewall name WAN_LOCAL rule 20 action drop
set firewall name WAN_LOCAL rule 20 description 'Drop invalid state'
set firewall name WAN_LOCAL rule 20 state invalid enable
set interfaces ethernet eth0 firewall in name WAN_IN
set interfaces ethernet eth0 firewall local name WAN_LOCAL
commit ; save
Asegúrate de cambiar los parámetros del ISP y utilizar los que el ISP os indique.
1. 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.
2. Internet port: En esta sección definiremos como está conectado nuestro Edgerouter al router HGU de Movistar o O2.
Port
: En el menú despegable seleccionamos el puerto de ethernet con el que está conectado al router HGU de Movistar o O2, etho o eth4.
Internet connection type
: Aquí seleccionamos PPPoE y rellenamos los campos de ls siguiente manera:
Account name
: adsl@telefonicapa
Password
: adslppp
3. 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.
Tener 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á.4. User setup: Por último, es recomendable cambiar la contraseña del usuario ubnt que viene por defecto por otra más segura.
Para aplicar la configuración definida, pulsamos sobre Apply.
No toméis estos pasos al pie de la letra. 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.
Puedes asignar la MAC del HGU a la WAN:
El 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.
Primero, es importante que configuremos el firewall ya que la política predeterminada es "aceptar" y sus clientes de LAN tendrán IP enrutables.
En comparación con nuestras reglas de firewall IPv4, hay una diferencia importante: debemos permitir ICMPv6 y DHCP para que DHCPv6-PD funcione.
- Cree una política para clientes WAN->LAN:
edit firewall ipv6-name WAN6_IN
set default-action dropset rule 10 action accept
set rule 10 description "allow established"
set rule 10 protocol all
set rule 10 state established enable
set rule 10 state related enableset rule 20 action drop
set rule 20 description "drop invalid packets"
set rule 20 protocol all
set rule 20 state invalid enableset rule 30 action accept
set rule 30 description "allow ICMPv6"
set rule 30 protocol icmpv6
top
- Ahora cree una política para WAN->Router (también conocido como local):
edit firewall ipv6-name WAN6_LOCAL
set default-action dropset rule 10 action accept
set rule 10 description "allow established"
set rule 10 protocol all
set rule 10 state established enable
set rule 10 state related enableset rule 20 action drop
set rule 20 description "drop invalid packets"
set rule 20 protocol all
set rule 20 state invalid enableset rule 30 action accept
set rule 30 description "allow ICMPv6"
set rule 30 protocol icmpv6set rule 40 action accept
set rule 40 description "allow DHCPv6 client/server"
set rule 40 destination port 546
set rule 40 source port 547
set rule 40 protocol udp
top
- Ahora adjunte las políticas a su interfaz WAN:
set interfaces ethernet eth1 firewall in ipv6-name WAN6_IN
set interfaces ethernet eth1 firewall local ipv6-name WAN6_LOCAL
- 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.
Nota: Usaremos SLAAC (Configuración automática de direcciones sin estado) en lugar de DHCP con estado (que es como funciona DHCP IPv4).
edit interfaces ethernet eth1
set dhcpv6-pd pd 0 prefix-length /64
set dhcpv6-pd pd 0 interface eth0 host-address ::1
set dhcpv6-pd pd 0 interface eth0 prefix-id :0
set dhcpv6-pd pd 0 interface eth0 service slaac
top
En 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.
Para cualquiera que use vlans, lo siguiente también funciona:
set interfaces ethernet eth2 vif 17 ipv6 router-advert prefix ::/64
Este 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).
set firewall ipv6-name ipv6-fw default-action drop
set firewall ipv6-name ipv6-fw description 'IPv6 firewall'
set firewall ipv6-name ipv6-fw rule 1 action accept
set firewall ipv6-name ipv6-fw rule 1 log disable
set firewall ipv6-name ipv6-fw rule 1 protocol icmpv6
set firewall ipv6-name ipv6-fw rule 1 description 'allow ICMPv6 traffic'
set firewall ipv6-name ipv6-fw rule 10 action accept
set firewall ipv6-name ipv6-fw rule 10 state established enable
set firewall ipv6-name ipv6-fw rule 10 state related enable
set firewall ipv6-name ipv6-fw rule 4 action accept
set firewall ipv6-name ipv6-fw rule 4 description 'allow access to host x'
set firewall ipv6-name ipv6-fw rule 4 destination address '2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxx
set load-balance group LB-GROUP interface eth3 failover-only
set load-balance group LB-GROUP interface eth3 route-test initial-delay 60
set load-balance group LB-GROUP interface eth3 route-test interval 10
set load-balance group LB-GROUP interface eth3 route-test type ping target 8.8.8.8
set load-balance group LB-GROUP interface pppoe0 route-test initial-delay 60
set load-balance group LB-GROUP interface pppoe0 route-test interval 10
set load-balance group LB-GROUP interface pppoe0 route-test type ping target 8.8.8.8
set load-balance group LB-GROUP lb-local enable
set load-balance group LB-GROUP lb-local-metric-change disable
Ejemplo de como configurar NAT:
configure
set service nat rule 5000 description NAT-TO-WAN
set service nat rule 5000 log disable
set service nat rule 5000 outbound-interface eth0
set service nat rule 5000 protocol all
set service nat rule 5000 source address 172.22.1.0/24
set service nat rule 5000 type masquerade
commit && save && exit
Seleccione las interfaces WAN y LAN que se utilizarán para el reenvío de puertos.
- Pueden realizar el procedimiento mediante la GUI o mediante CLI.
- Mediante CLI: Firewall/NAT > Port Forwarding
Asegúrate de cambiar el rando de la red a la de tu red y la interfaz a modificar
configure
set port-forward auto-firewall enable
set port-forward hairpin-nat enable
set port-forward wan-interface eth0
set port-forward lan-interface eth1
set port-forward rule 1 description https
set port-forward rule 1 forward-to address 192.168.1.10
set port-forward rule 1 forward-to port 443
set port-forward rule 1 original-port 443
set port-forward rule 1 protocol tcp
commit ; save
Estos 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.
Asegúrate de cambiar el rando de la red a la de tu red y la interfaz a modificar
configure
set interfaces ethernet eth1 description LAN
set interfaces ethernet eth1 address 192.168.1.1/24
set service dhcp-server disabled false
set service dhcp-server shared-network-name LAN authoritative enable
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 default-router 192.168.1.1
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 dns-server 192.168.1.1
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 lease 86400
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 start 192.168.1.38 stop 192.168.1.243
set service dns forwarding listen-on eth3
commit ; save
Lo 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 Services
y después en la sub-pestaña DHCP Server
. Aquí se podrán ver los servicios DHCP
que tenemos en marcha, si es la primera este listado estará vacío por lo que pulsamos en el botón + Add DHCP Server
.
Nos aparecerá un formulario que deberemos rellenar con los datos adecuados a nuestras necesidades.
DHCP Name
: Podremos darle un nombre al servicio pero eso si, no se pueden utilizar espacios.
Subnet
: Definimos la subred que ya tengamos configurada en alguna interfaz de nuestro router.
Range Start
: metemos la dirección IP por la que empezara el rango que queremos que sirva nuestro DHCP.
Range Stop
: la dirección IP fin del rango de direcciones a repartir.
Router
: Este sería el Gateway, es decir, la salida a otras redes de nuestra LAN, ya sea internet o aotras redes.
DNS 1
: Dirección IP del servidor DNS primario.
DNS 2
:: Dirección IP del servidor DNS secundario.
:Enable
:* 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.
Por ultimo pulsamos en el botón Save
. 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.
Ahora que está en marcha podemos interactuar con el servicio pudiendo cambiar su configuración o viendo el estado de asignaciones (leases)
de direcciones IP.
Para ello en basta con pulsar en el menú desplegable Actions
y después en Viewe Details
.
Se 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.
Tambié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 Create New Mapping
y asignar un IP del rango a la dirección MAC del dispositivo.
En la pestaña Leases
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.
- Vía CLI:
show dhcp leases
muestre la dirección IP, la dirección MAC, el grupo y el nombre del cliente
set service dhcp-server shared-network-name MGMT-VLAN subnet 10.10.99.0/24 static-mapping cgn-monitor ip-address 10.10.99.11
set 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'
El router también puede actuar como un conmutador. Aquí hay un ejemplo:
set interfaces switch switch0 address 172.22.1.1/24
set interfaces switch switch0 mtu 1500
set interfaces switch switch0 switch-port interface eth2
set interfaces switch switch0 switch-port interface eth3
set interfaces switch switch0 switch-port interface eth4
set interfaces switch switch0 switch-port vlan-aware disable
Mediante interfaz GUI:
ATENCIÓN: Para poder obtener el token y el dominio DuckDNS pueden obtenerlo desde este repositorio DuckDNS.
- Estando dentro de la web de gestión entramos en la pestaña
Service
y a continuación enDNS
. Por ultimo en la sección Dynamic DNS pulsamos el botón+ Add DDNS Interface
. - Se cargará un formulario vació que deberemos rellenar con los datos adecuados:
Interface: Aquí hay que seleccionar la interfaz en la que está configurada nuestra IP pública.
Service: En el menú desplegable hay varios servicios ya pre-configurados, pero entre ellos al no estar DuckDNS optamos por la opción custom.
Hostname: Aquí hay que meter el subdominio DuckDNS que queremos asignar a nuestro router. Solamente el subdominio, no hace falta meter .duckdns.org.
Login: poniendo nouser servirá, ya que nos identificaremos mediante nuestro Token.
Password: Aquí deberemos introducir el Token de nuestra cuenta.
Protocol: Seleccionamos el protocolo dyndns2.
Server: por último metemos la url del servidor de DuckDNS, www.duckdns.org.
Mediante interfaz CLI:
Esto podemos realizarlo conectando al router mediante el protocolo SSH o usando el intérprete CLI incorporado en la propia web de gestión. En 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.
- Accedemos por ssh o cli web.
ATENCIÓN: Teneis que cambiar el "SUBDMIONIO" y "TOKEN".
configure
set service dns dynamic interface INTERFAZ service custom-duckdns
set service dns dynamic interface INTERFAZ service custom-duckdns host-name SUBDMIONIO
set service dns dynamic interface INTERFAZ service custom-duckdns login nouser
set service dns dynamic interface INTERFAZ service custom-duckdns password TOKEN
set service dns dynamic interface INTERFAZ service custom-duckdns protocol dyndns2
set service dns dynamic interface INTERFAZ service custom-duckdns server www.duckdns.org
commit ; save
- 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.
update dns dynamic interface INTERFAZ
interface : INTERFAZ
ip address : xxx.xxx.xxx.xxx
host-name : SUBDOMINIO
last update : Tue Sep 29 22:28:09 2020
update-status: good
Si en el apartado update-status:
vemos que aparece good
es que todo está funcionando perfectamente.
Antes de crear el script, asegurar que lista van a escoger, si IPv4
o IPv6
. Una vez sepan que lista, escoger el script correspondiente:
SCRIPT_IPv4:
SCRIPT_IPv6:
- Creamos un nuevo grupo y modificamos nombre de grupo.
Para ver los grupos que tenemos: show firewall group network-group
.
set firewall group network-group SPAMHAUS_DROP
commit
- Para añadir la regla en el firewall, modificamos el número de regla y cambiamos el
network-group
con el nombre del grupo creado.
Para ver la regla y el orden: show firewall name WAN_IN
.
set firewall name WAN_IN rule 10 source group network-group SPAMHAUS_DROP
set firewall name WAN_IN rule 10 description "networks to drop from spamhaus.org list"
set firewall name WAN_IN rule 10 action drop
set firewall name WAN_IN rule 10 state established enable
set firewall name WAN_IN rule 10 state related enable
set firewall name WAN_IN rule 10 protocol all
commit ; save
Modificamos en el script el nombre de los argumentos: NETGROUP
, con el nombre del grupo creado.
Las listas a añadir tienen que tener formato .raw
o .txt
.
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.
sudo vi /config/scripts/post-config.d/update-spamhaus
- Ahora pegan el scrip escogido en el punto:
^ Escoger script a utilizar ^
Importante sustituir las listas si son IPv4
o si son IPv6
, en los siguientes ejemplos son IPv4
.
El comando VI del equipo no está completo, por lo que para guardar, utilizar ZZ
o :wq
sudo chmod +x /config/scripts/post-config.d/update-spamhaus
EJECUTAR:
sudo /config/scripts/post-config.d/update-spamhaus
No pensar que se ha quedado bloqueado al insertar el comando, tarda un poco si la lista es muy grande.
Resultado:
Added 561 entries to SPAMHAUS_DROP
OPCIÓN 1:
set system task-scheduler {task update_spamhaus {crontab-spec "00 12 * * *"ejecutable {path /config/scripts/post-config.d/update-spamhaus}
set system task-scheduler SPAMHAUS {crontab-spec "00 24 * * *" executable {path /config/scripts/post-config.d/update-spamhaus}}
OPCIÓN 2:
Simplemente agregue el script al programador de tareas tal como está, cambiando el nombre del task y el path de su script:
set system task-scheduler task update-spamhaus executable path /config/scripts/post-config.d/update-spamhaus
- Las tareas se programan en horas:
24h,48h...
set system task-scheduler task update-spamhaus interval 24h
- Ajustes de
system task-scheduler interval
minutes
Execution interval in minutes
minutes m
Execution interval in minutes
hours h
Execution interval in hours
days d
Execution interval in days
--> Despues vemos las tareas
show system task-scheduler
Buenas prácticas para un correcto funcionamiento del firewall:
- 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.
- Ponga la regla de spamhaus en WAN_OUT, otra vez antes que cualquier otra cosa.
- 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ó.
- Debería asignar las reglas de firewall solo en el pppoe
He realizado un README en la carpeta list
con listas de IPs públicas y mis listas creadas.
Dejo enlace a la carpeta del README:
Listar
sudo /sbin/ipset list update-spamhaus o sudo /sbin/ipset list -L update-spamhaus
- Sin que muestre las ips:
sudo /sbin/ipset list -t
Comprobar una ip
sudo /sbin/ipset test update-spamhaus 192.168.1.100
Limpiar grupo de IPs
sudo /sbin/ipset flush update-spamhaus
Utilice este comando a través de la CLI para ver las entradas:
show firewall group SPAMHAUS_DROP
Despues vemos las tareas
show system task-scheduler
Ver log
cat /var/log/messages
He creado un script para poder informar al telegram de las IPs bloqueadas por una regla desde el log.
Modificar en el script la WAN con la regla a buscar y añadir vuestro ID CHAT y token del bot.
El scrip pueden descargarlo o verlo desde la carpeta del repositorio en este enlace:
name WAN_IN {
default-action drop
description "WAN to internal"
enable-default-log
rule 10 {
action drop
description "Networks to drop from spamhaus.org list"
log enable
source {
group {
network-group SPAMHAUS_DROP
}
}
}
.........................
.........................
name WAN_LOCAL {
default-action drop
description "WAN to router"
enable-default-log
rule 10 {
action drop
description "Networks to drop from spamhaus.org list"
log enable
source {
group {
network-group SPAMHAUS_DROP
}
}
}
.........................
.........................
name WAN_OUT {
default-action accept
description "WAN OUT firewall rules"
rule 10 {
action reject
description "Networks to drop from spamhaus.org list"
destination {
group {
network-group SPAMHAUS_DROP
}
}
log enable
}
ethernet eth1 {
description "Internet (PPPoE)"
duplex auto
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
}
pppoe 0 {
default-route auto
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
}
Usando mkcert por Filippo Valsorda para crear un certificado CA para localhost.
Opción de ir a la ruta de certificados SSL con Let's Encrypt hay varios diferentes para elegir. Por ejemplo, ubnt-letsencrypt por Jesse Miller
configure
set system static-host-mapping host-name <hostname> inet <ip-of-edgerouter>
commit ; save
Crear certificado
$ mkcert <ip-of-edgerouter> <hostname>
cat <ip-of-edgerouter>+1-key.pem <ip-of-edgerouter>+1.pem > server.pem
Copia de seguridad del archivo de certificado existente
sudo cp /etc/lighttpd/server.pem /etc/lighttpd/.server-OLD.pem
exit
Copie el nuevo archivo de certificado en la dirección del usuario de su router
scp /path/to/server.pem <user>@<ip-of-edgerouter>:/home/<user>/server.pem
Copiar el nuevo archivo de certificado desde la dirección del usuario y habilitar el certificado
sudo cp /home/<user>/server.pem /etc/lighttpd/server.pem
# Kill webserver service by PID
sudo kill -SIGINT $(cat /var/run/lighttpd.pid)
# Start webserver
sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
exit
Comprueba tu conexión con curl
Si 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.
$ curl -I http://<ip-of-edgerouter>/
HTTP/1.1 301 Moved Permanently
Location: https://<ip-of-edgerouter>:443/
Date: Sun, 11 Jan 2015 07:46:13 GMT
Server: Server
Este tutorial describe como configurar un servidor OpenVPN en un EdgeRouter.
Aqui hay una lista con los archivos que necesitas. Puedes usar el Software XCA para eso
- ca.crt (CA Raíz)
- server.crt (Certificado del Servidor)
- Para prevenir ataques MITM asegúrese de configurar
- Uso de claves X509v3: Firma digital, cifrado de claves
- Uso extendido de claves X509v3: Autenticación de servidor web TLS
- Para prevenir ataques MITM asegúrese de configurar
- server.key (Archivo de claves para el certificado del servidor)
- dh.pem (clave de intercambio de claves Diffie-Hellman; la buena es de 2048 bits)
- revocation-list.crl (Opcional; Lista de revocación de certificados)
Una vez creados los archivos, cópielos todos en /config/auth/
.
Para la configuración del cliente: Asegúrese de que remote-cert-tls server
está activado.
configure
set interfaces openvpn vtun0
set interfaces openvpn vtun0 mode server
set interfaces openvpn vtun0 server name-server 1.1.1.1 # change to your prepered one
set interfaces openvpn vtun0 server domain-name example.com # change to your prefered one
# set your network
set interfaces openvpn vtun0 server push-route 192.168.178.0/24
# set the ranche for the openvpn clients. Clients will receive a IP address from this subnet
set interfaces openvpn vtun0 server subnet 192.168.177.0/24
Como se ha descrito anteriormente. Asegúrese de que su clave privada tiene chmod 600
.
set interfaces openvpn vtun0 tls ca-cert-file /config/auth/ca.crt
set interfaces openvpn vtun0 tls cert-file /config/auth/server.crt
set interfaces openvpn vtun0 tls dh-file /config/auth/dh2048.pem
set interfaces openvpn vtun0 tls key-file /config/auth/server.key
# optional: set revocation list
set interfaces openvpn vtun0 tls crl-file /config/auth/revocation-list.crl
set interfaces openvpn vtun0 openvpn-option "--log /var/log/openvpn.log"
set interfaces openvpn vtun0 openvpn-option "--status /var/log/openvpn-status.log"
set interfaces openvpn vtun0 openvpn-option "--verb 7"
No olvides configurar NAT para los clientes openvpn
set firewall name XXX rule XX action accept
set firewall name XXX rule XX description 'Allow OpenVPN'
set firewall name XXX rule XX destination port 1194
set firewall name XXX rule XX log disable
set firewall name XXX rule XX protocol udp
Este tutorial describe cómo configurar el EdgeRouter como Cliente OpenVPN.
Usefull links:
- Youtube: EdgeRouter OpenVPN to Private Internet Access!
- Youtube: Dedicated Private Internet VLAN and Wireless Network
Primero necesita hacer ssh en su EdgeRouter. A continuación, cree un directorio donde almacenar sus archivos OpenVPN.
sudo su
mkdir -p /config/auth/example
En este ejemplo tengo los siguientes archivos:
- ca.crt (CA raíz)
- client.key (Clave privada del usuario)
- client.crt (Certificado de usuario)
- openvpn-static-key-v1.key (para tls-auth)
- example.ovpn (configuración del cliente OpenVPN (ver más abajo))
Asegúrese de que key.pem
tiene chmod 600
Este archivo puede variar dependiendo de la configuración de su servidor openvpn.
client
dev tun
proto udp
remote vpn.example.com
resolv-retry infinite
nobind
persist-key
persist-tun
key-direction 1
remote-cert-tls server
auth-nocache
auth SHA512
cipher AES-256-GCM
# files
ca /config/auth/example/ca.crt
cert /config/auth/example/client.crt
key /config/auth/example/key.pem
tls-auth /config/auth/example/openvpn-static-key-v1.key 1
Si ya ha configurado su EdgeRouter como un servidor OpenVPN, entonces usted necesita cambiar la interfaz de red de vtun0
a otra cosa (por ejemplo, vtun1
)
configure
set interfaces openvpn vtun0 description 'example vpn'
set interfaces openvpn vtun0 config-file /config/auth/example/example.ovpn
commit
save
# create a new vlan (VLAN 10)
set interfaces switch switch0 vif 10 address 192.168.40.1/24
set interfaces switch switch0 vif 10 description 'example VLAN'
set interfaces switch switch0 vif 10 mtu 1500
set service dhcp-server shared-network-name EXAMPLE-LAN authoritative disable
set service dhcp-server shared-network-name EXAMPLE-LAN subnet 192.168.40.0/24 default-router 192.168.40.1
set service dhcp-server shared-network-name EXAMPLE-LAN subnet 192.168.40.0/24 dns-server 1.1.1.1
set service dhcp-server shared-network-name EXAMPLE-LAN subnet 192.168.40.0/24 domain-name example.com
set service dhcp-server shared-network-name EXAMPLE-LAN subnet 192.168.40.0/24 lease 86400
set service dhcp-server shared-network-name EXAMPLE-LAN subnet 192.168.40.0/24 start 192.168.40.10 stop 192.168.40.100
# setup NAT
set service nat rule 5020 description NAT-EXAMPLE-VPN
set service nat rule 5020 log disable
set service nat rule 5020 outbound-interface vtun0
set service nat rule 5020 source address 192.168.40.0/24
set service nat rule 5020 type masquerade
# setup routing
set protocols static table 1 interface-route 0.0.0.0/0 next-hop-interface vtun0
set firewall modify VPN_EXAMPLE_ROUTE rule 10 description 'Subnet to VPN'
set firewall modify VPN_EXAMPLE_ROUTE rule 10 source address 192.168.40.0/24
set firewall modify VPN_EXAMPLE_ROUTE rule 10 modify table 1
# apply the firewall route to VLAN 10
set interfaces switch switch0 vif 10 firewall in modify VPN_EXAMPLE_ROUTE
Puede utilizar su router Edge como un servidor proxy para bloquear ciertas categorías, por ejemplo, anuncios o malware.
- SSH en su enrutador Edge.
- Descargue las categorías disponibles. Dependiendo de su dispositivo, esto puede tardar unos minutos (en mi dispositivo tardó unos 100 minutos).
- Actualizar y configurar webproxy
update webproxy blacklists
set service webproxy cache-size 0
set service webproxy default-port 3128
set service webproxy listen-address 172.22.3.1
set service webproxy mem-cache-size 5
set service webproxy url-filtering squidguard block-category ads
set service webproxy url-filtering squidguard block-category porn
set service webproxy url-filtering squidguard default-action allow
set service webproxy url-filtering squidguard redirect-url 'https://brainoftimo.com/not-for-you'
- ads
- adult
- aggressive
- agressif
- arjel
- associations_religieuses
- astrology
- audio-video
- bank
- bitcoin
- blog
- celebrity
- chat
- child
- cleaning
- cooking
- cryptojacking
- dangerous_material
- dating
- ddos
- dialer
- download
- drogue
- drugs
- educational_games
- filehosting
- financial
- forums
- gambling
- games
- hacking
- jobsearch
- lingerie
- liste_blanche
- liste_bu
- local-ok-default
- local-ok-url-default
- malware
- manga
- marketingware
- mixed_adult
- mobile-phone
- phishing
- porn
- press
- proxy
- publicite
- radio
- reaffected
- redirector
- remote-control
- sect
- sexual_education
- shopping
- shortener
- social_networks
- special
- sports
- strict_redirector
- strong_redirector
- translation
- tricheur
- update
- violence
- warez
- webmail
Configure el dispositivo para iniciar sesión en un SYSLOG
Nuestro Servidor Syslog tiene la ip de: 10.10.99.111
Estamos registrando todo: (level debug
) pero puede establecer otro nivel de registro, por ejemplo level err
.
configure
set system syslog global facility all level notice
set system syslog global facility protocols level debug
set system syslog host 10.10.99.111 facility all level debug
commit
save
exit
Este tutorial describe como configurar un servidor WireGuard en un EdgeRouter. Adjunto el enlace al repositorio de GitHub:
test IPv6/IPv4:
Pagina para comprobar IPv6/IPv4
Con esta información puedes configurar un EdgeMax© para sustituir un router neutro. Aquí podrás encontrar todo lo que he conseguido hacer con este router. Los pasos anteriormente explicados están basados en una red que puede diferir de la que tú tienes montada. Si sigues al pie de la letra todos los pasos, pueden no coincidir con la configuración de tu red
y dejarla inservible. Adapta en todo momento la documentación que se ha expuesto para que cuadre con tu red.
Estos archivos/textos se proporcionan "TAL CUAL", sin garantías de ningún tipo, expresas o implícitas, incluidas, entre otras, las garantías de comerciabilidad, idoneidad para un fin determinado y no infracción. En ningún caso los autores o los titulares de los derechos de autor serán responsables de ninguna reclamación, daño u otra responsabilidad derivada de, o relacionada con los archivos o el uso de los mismos.
Todas y cada una de las marcas registradas son propiedad de sus respectivos dueños.
Iré actualizando información y añadiendo procedimientos cuando tenga tiempo libre.