Adguard es un programa con un comportamiento muy similar al conocido Pi-Hole que a través de listas de bloqueo DNS nos permite librarnos de los anuncios molestos en internet, nos protege del acceso a webs con malware y sobretodo nos da un plus de privacidad en nuestros dispositivos así que es muy buena idea instalarlo en Opnsense y de esta manera proteger todos los dispositivos de la red local.
Si accedemos al apartado Complementos de Opnsense podemos ver una larga lista de esos complementos que podemos decidir si instalarlos o no pero entre ellos NO ESTA ADGUARD. Para poder instalarlo en Opnsense necesitamos instalar un repositorio de complementos externo pero de total seguridad. Una vez instalado aumenta la lista de complementos para instalar consideráblemente entre los que se encuentran, además de Adguard, programas tan conocidos como Grafana, Home Assistant, Traefik, Unifi, etc.
Para instalar ese repositorio de aplicaciones vamos a acceder por SSH a Opnsense desde un ordenador windows - linux y abrimos un Terminal. La ip local de acceso a Opnsense por defecto es la 192.168.1.1 así que vamos a acceder con esa ip, si vosotros habéis cambiado esa ip por otra modificáis el siguiente comando.
En el terminal ponemos ssh root@192.168.1.1 y al darle a la tecla ENTER de nuestro teclado se nos pedirá la contraseña de acceso a Opnsense
Después de ponérsela nos aparecerá lo siguiente:
De las diversas opciones que nos aparecen nos interesa la número 8 así que ponemos ese número en el terminal.
A continuación ponemos el siguiente comando: fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf
Le damos a la tecla ENTER del teclado y en unos pocos minutos el repositorio quedará instalado....no pongo imágen sobre esto porque yo ya lo tenía instalado. Una vez que se haya instalado CERRAMOS EL TERMINAL.
Lo siguiente es irnos a Opnsense al apartado Sistema - Firmware - Complementos
El complemento de Adguard tiene el nombre de os-adguardhome-maxit y como se puede ver en la imagen yo ya lo tengo instalado y por tanto me aparece al principio de la lista, a vosotros os aparecerá un poco más abajo y una vez encontrado le tenemos que dar al símbolo + que se encuentra a su derecha para instalarlo así que lo hacemos.
Los siguientes pasos que voy a explicar hay que seguirlos en ESTRICTO ORDEN sino queremos tener problemas con la instalación. Antes de tocar nada más tenemos que verificar un par de cosas. La primera es irnos a Sistema - Ajustes - General y comprobar que NO tenemos ningún DNS puesto
Aparte de lo anterior en la parte de abajo tenemos que tener las opciones que aparecen configuradas tal como se ven en la imagen que acabo de poner.
Hechas las comprobaciones seguimos. Ahora nos vamos a Servicios - Unbound DNS - General y vamos a cambiar el puerto 53 por defecto por el 5353
Cambiado el puerto le damos al botón Guardar que está abajo. Lo siguiente es irnos a Servicios - Adguardhome - General y activamos Adguard.
A continuación abrimos una nueva pestaña en el navegador que estemos utilizando y dando por hecho que la ip local de acceso a Opnsense sea la 192.168.1.1 ponemos lo siguiente: http://192.168.1.1:3000
Como digo yo ya tengo instalado Adguard pero a vosotros al acceder a esa ip os va a aparecer algo muy similar a esto:
De todo lo que os aparezca no tenéis que TOCAR NADA, sólo ir dando a Siguiente, Siguiente, completados esos pasos se os pedirá que pongáis un nombre de usuario y contraseña y una vez puestos llegaréis a la pantalla principal de Adguard.
Antes de continuar con la explicación voy a comentar un par de cosas que se ven en la imagen que acabo de poner. En esa imagen se ven dos cosas tachadas, una es mi IP Wan y la otra es mi red Wireguard en Opnsense. Otra cosa que se ve es la ip 127.0.0.1 que es una ip interna de Opnsense que utiliza "para sus cosas". Lo que quiero decir con esto es que cuando instalamos Adguard detecta sin ningún problema todos los interfaces que tengamos configurados en ese momento en Opnsense. El problema viene si después de tener instalado Adguard creamos nuevos interfaces como podrían ser uno para OpenVPN o una VLAN y ese problema consiste en que Adguard NO SE ENTERA de que hay nuevos interfaces.
Si accedemos por SSH a Opnsense con, por ejemplo, Filezilla y nos vamos a la ruta usr/local/AdguardHome nos encontraremos el archivo Adguardhome.yaml en el que se encuentra la configuración de Adguard
En ese archivo al abrirlo nos encontraremos con el parámetro bind host y parece que modificándolo y añadiendo los nuevos interfaces se soluciona el problema. Lo que ocurre es que no se cómo se hace así que os doy una solución mucho más sencilla para solventar ese problema.....desinstalar Adguard y volverlo a instalar. Sólo tenemos que desinstalar Adguard, el repositorio que instalamos al principio de este tutorial NO HAY QUE TOCARLO. Una vez desinstalado Adguard lo volveríamos a instalar, que se tarda 5 minutos, y Adguard reconocería los nuevos interfaces.
Explicado esto seguimos. En el apartado Configuración del DNS de Adguard tenemos que poner la ip local de acceso de Opnsense con el puerto 5353
En el mismo apartado en el que estamos pero un poco más abajo repetimos la operación
Aparte de eso marcamos la opción Usar resolutores DNS inversos y privados tal como se ve en la imagen. Hecho todo eso le damos al botón Aplicar.
Os explico el funcionamiento de lo que acabamos de hacer. Cualquier consulta DNS de cualquier dispositivo de nuestra red local llega primero a Adguard que la filtra y una vez filtrada la redirige al componente Unbound DNS de Opnsense en el que se supone que tenemos configurados los DNS que vayamos a utilizar. Esto último está explicado en este post: https://www.qnapclub.es/showthread.php?tid=4943
Con esto ya tenemos en funcionamiento Adguard
En la imagen que acabo de poner se puede ver la ip 127.0.0.1 que es la ip interna de Opnsense y se puede ver que hace una buena cantidad de peticiones DNS, el motivo principal de esas conexiones, entre otras, son las actualizaciones de las reglas de Suricata.
El objetivo principal de este post es la instalación de Adguard en Opnsense así que no voy a hablar nada sobre sus posibles configuraciones como pueden ser añadir listas de bloqueo o identificar los dispositvos de la red local en Adguard.
Otra posibilidad que tenemos a la hora de configurar los DNS en Adguard es hacer que no pasen por Unbound y que sea Adguard el que diréctamente los gestione. Para ello en lugar de poner la ip local de Opnsense con el puerto 5353 pondríamos diréctamente los DNS que nos gusten.
Con esto doy por terminado "el tema Adguard" pero a continuación voy a explicar una configuración que por seguridad deberíamos hacer. De lo que se trata es evitar lo que se conoce como fugas DNS. Se puede dar el caso de que una aplicación o servicio que tengamos instalada en alguno de los dispositivos de nuestra red local "vaya por libre" y haga sus propias conexiones DNS escapando del control de Adguard. Voy a explicar como solventar eso muy fácilmente y el método para hacerlo es muy similar a configurar una apertura de puertos en Opnsense aunque ya adelanto que NO vamos a abrir ningún puerto sino que vamos a hacer una redirección interna en Opnsense.
Para hacerlo nos vamos a Cortafuegos - Nat - Redirección de puertos
En la imagen se ven varias cosas que paso a explicar. Marcada con una flecha está la regla DNS que ahora explico cómo hacerla y debajo de ella se ve la apertura de puertos del Wireguard que tengo configurado en mi NAS que os puede servir para ver cómo se configuran las aperturas de puertos en Opnsense. Por cierto, aparte del Wireguard en el nas tengo configurado también Wireguard en Opnsense, lo que ocurre con este último es que al estar instalado en el propio Opnsense NO hay que hacer una Redirección de puerto sino abrir diréctamente el puerto que utilice Wireguard en Opnsense en la Wan.
Seguimos. En la imagen que he puesto se ve un símbolo + así que le damos ahí y al hacerlo nos aparecerá lo siguiente que tenemos que configurar tal como se ve en la siguiente imagen
Voy explicando lo que está señalado por las flechas de arriba a abajo. En interfaz ponemos LAN, si tuviéramos más interfaces configurados en Opnsense como por ejemplo VLANS tendríamos que repetir en cada uno de ellos la creación de esta regla. La siguiente flecha indica que el parámetro Destino/invertir lo tenemos que activar, el motivo de hacerlo es porque es una redirección interna, si fuera una apertura normal de puertos este parámetro tendría que estar deshabilitado. Como Destino configuramos Este cortafuegos y como ip host configuramos la ip interna de Opnsense, es decir, la 127.0.0.1 que ya hemos visto antes que es una de las ips reconocidas por Adguard cuando lo instalamos. Configurado todo esto en la parte de abajo le damos al botón Guardar.
Una vez hecho todo lo anterior al ser una redirección en la interfaz LAN si nos vamos a Cortafuegos - Reglas - Lan veremos que sin nosotros hacer nada tenemos ya creada la regla que acabamos de configurar.
Si accedemos al apartado Complementos de Opnsense podemos ver una larga lista de esos complementos que podemos decidir si instalarlos o no pero entre ellos NO ESTA ADGUARD. Para poder instalarlo en Opnsense necesitamos instalar un repositorio de complementos externo pero de total seguridad. Una vez instalado aumenta la lista de complementos para instalar consideráblemente entre los que se encuentran, además de Adguard, programas tan conocidos como Grafana, Home Assistant, Traefik, Unifi, etc.
Para instalar ese repositorio de aplicaciones vamos a acceder por SSH a Opnsense desde un ordenador windows - linux y abrimos un Terminal. La ip local de acceso a Opnsense por defecto es la 192.168.1.1 así que vamos a acceder con esa ip, si vosotros habéis cambiado esa ip por otra modificáis el siguiente comando.
En el terminal ponemos ssh root@192.168.1.1 y al darle a la tecla ENTER de nuestro teclado se nos pedirá la contraseña de acceso a Opnsense
Después de ponérsela nos aparecerá lo siguiente:
De las diversas opciones que nos aparecen nos interesa la número 8 así que ponemos ese número en el terminal.
A continuación ponemos el siguiente comando: fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf
Le damos a la tecla ENTER del teclado y en unos pocos minutos el repositorio quedará instalado....no pongo imágen sobre esto porque yo ya lo tenía instalado. Una vez que se haya instalado CERRAMOS EL TERMINAL.
Lo siguiente es irnos a Opnsense al apartado Sistema - Firmware - Complementos
El complemento de Adguard tiene el nombre de os-adguardhome-maxit y como se puede ver en la imagen yo ya lo tengo instalado y por tanto me aparece al principio de la lista, a vosotros os aparecerá un poco más abajo y una vez encontrado le tenemos que dar al símbolo + que se encuentra a su derecha para instalarlo así que lo hacemos.
Los siguientes pasos que voy a explicar hay que seguirlos en ESTRICTO ORDEN sino queremos tener problemas con la instalación. Antes de tocar nada más tenemos que verificar un par de cosas. La primera es irnos a Sistema - Ajustes - General y comprobar que NO tenemos ningún DNS puesto
Aparte de lo anterior en la parte de abajo tenemos que tener las opciones que aparecen configuradas tal como se ven en la imagen que acabo de poner.
Hechas las comprobaciones seguimos. Ahora nos vamos a Servicios - Unbound DNS - General y vamos a cambiar el puerto 53 por defecto por el 5353
Cambiado el puerto le damos al botón Guardar que está abajo. Lo siguiente es irnos a Servicios - Adguardhome - General y activamos Adguard.
A continuación abrimos una nueva pestaña en el navegador que estemos utilizando y dando por hecho que la ip local de acceso a Opnsense sea la 192.168.1.1 ponemos lo siguiente: http://192.168.1.1:3000
Como digo yo ya tengo instalado Adguard pero a vosotros al acceder a esa ip os va a aparecer algo muy similar a esto:
De todo lo que os aparezca no tenéis que TOCAR NADA, sólo ir dando a Siguiente, Siguiente, completados esos pasos se os pedirá que pongáis un nombre de usuario y contraseña y una vez puestos llegaréis a la pantalla principal de Adguard.
Antes de continuar con la explicación voy a comentar un par de cosas que se ven en la imagen que acabo de poner. En esa imagen se ven dos cosas tachadas, una es mi IP Wan y la otra es mi red Wireguard en Opnsense. Otra cosa que se ve es la ip 127.0.0.1 que es una ip interna de Opnsense que utiliza "para sus cosas". Lo que quiero decir con esto es que cuando instalamos Adguard detecta sin ningún problema todos los interfaces que tengamos configurados en ese momento en Opnsense. El problema viene si después de tener instalado Adguard creamos nuevos interfaces como podrían ser uno para OpenVPN o una VLAN y ese problema consiste en que Adguard NO SE ENTERA de que hay nuevos interfaces.
Si accedemos por SSH a Opnsense con, por ejemplo, Filezilla y nos vamos a la ruta usr/local/AdguardHome nos encontraremos el archivo Adguardhome.yaml en el que se encuentra la configuración de Adguard
En ese archivo al abrirlo nos encontraremos con el parámetro bind host y parece que modificándolo y añadiendo los nuevos interfaces se soluciona el problema. Lo que ocurre es que no se cómo se hace así que os doy una solución mucho más sencilla para solventar ese problema.....desinstalar Adguard y volverlo a instalar. Sólo tenemos que desinstalar Adguard, el repositorio que instalamos al principio de este tutorial NO HAY QUE TOCARLO. Una vez desinstalado Adguard lo volveríamos a instalar, que se tarda 5 minutos, y Adguard reconocería los nuevos interfaces.
Explicado esto seguimos. En el apartado Configuración del DNS de Adguard tenemos que poner la ip local de acceso de Opnsense con el puerto 5353
En el mismo apartado en el que estamos pero un poco más abajo repetimos la operación
Aparte de eso marcamos la opción Usar resolutores DNS inversos y privados tal como se ve en la imagen. Hecho todo eso le damos al botón Aplicar.
Os explico el funcionamiento de lo que acabamos de hacer. Cualquier consulta DNS de cualquier dispositivo de nuestra red local llega primero a Adguard que la filtra y una vez filtrada la redirige al componente Unbound DNS de Opnsense en el que se supone que tenemos configurados los DNS que vayamos a utilizar. Esto último está explicado en este post: https://www.qnapclub.es/showthread.php?tid=4943
Con esto ya tenemos en funcionamiento Adguard
En la imagen que acabo de poner se puede ver la ip 127.0.0.1 que es la ip interna de Opnsense y se puede ver que hace una buena cantidad de peticiones DNS, el motivo principal de esas conexiones, entre otras, son las actualizaciones de las reglas de Suricata.
El objetivo principal de este post es la instalación de Adguard en Opnsense así que no voy a hablar nada sobre sus posibles configuraciones como pueden ser añadir listas de bloqueo o identificar los dispositvos de la red local en Adguard.
Otra posibilidad que tenemos a la hora de configurar los DNS en Adguard es hacer que no pasen por Unbound y que sea Adguard el que diréctamente los gestione. Para ello en lugar de poner la ip local de Opnsense con el puerto 5353 pondríamos diréctamente los DNS que nos gusten.
Con esto doy por terminado "el tema Adguard" pero a continuación voy a explicar una configuración que por seguridad deberíamos hacer. De lo que se trata es evitar lo que se conoce como fugas DNS. Se puede dar el caso de que una aplicación o servicio que tengamos instalada en alguno de los dispositivos de nuestra red local "vaya por libre" y haga sus propias conexiones DNS escapando del control de Adguard. Voy a explicar como solventar eso muy fácilmente y el método para hacerlo es muy similar a configurar una apertura de puertos en Opnsense aunque ya adelanto que NO vamos a abrir ningún puerto sino que vamos a hacer una redirección interna en Opnsense.
Para hacerlo nos vamos a Cortafuegos - Nat - Redirección de puertos
En la imagen se ven varias cosas que paso a explicar. Marcada con una flecha está la regla DNS que ahora explico cómo hacerla y debajo de ella se ve la apertura de puertos del Wireguard que tengo configurado en mi NAS que os puede servir para ver cómo se configuran las aperturas de puertos en Opnsense. Por cierto, aparte del Wireguard en el nas tengo configurado también Wireguard en Opnsense, lo que ocurre con este último es que al estar instalado en el propio Opnsense NO hay que hacer una Redirección de puerto sino abrir diréctamente el puerto que utilice Wireguard en Opnsense en la Wan.
Seguimos. En la imagen que he puesto se ve un símbolo + así que le damos ahí y al hacerlo nos aparecerá lo siguiente que tenemos que configurar tal como se ve en la siguiente imagen
Voy explicando lo que está señalado por las flechas de arriba a abajo. En interfaz ponemos LAN, si tuviéramos más interfaces configurados en Opnsense como por ejemplo VLANS tendríamos que repetir en cada uno de ellos la creación de esta regla. La siguiente flecha indica que el parámetro Destino/invertir lo tenemos que activar, el motivo de hacerlo es porque es una redirección interna, si fuera una apertura normal de puertos este parámetro tendría que estar deshabilitado. Como Destino configuramos Este cortafuegos y como ip host configuramos la ip interna de Opnsense, es decir, la 127.0.0.1 que ya hemos visto antes que es una de las ips reconocidas por Adguard cuando lo instalamos. Configurado todo esto en la parte de abajo le damos al botón Guardar.
Una vez hecho todo lo anterior al ser una redirección en la interfaz LAN si nos vamos a Cortafuegos - Reglas - Lan veremos que sin nosotros hacer nada tenemos ya creada la regla que acabamos de configurar.