# Instalando Pi-hole en Debian

En esta ocasión vamos a utilizar una VM que tiene instalada:&#x20;

* la distribución de Debian 11 Bullseye&#x20;
* conectada a una red NAT

Como estoy utilizando una VM que ya tenía instalada debemos verificar que esté el sistema actualizado y que la IP que utilice sea estática dado que vamos a configurar el servicio DNS y de DHCP. Para ello ejecutamos los comandos:

```
$ sudo apt update
$ sudo apt upgrade
```

Ahora verificamos la instalación de red. Para ello debemos configurar la IP estática. Nos debe quedar algo como lo siguiente:

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FJyR4vyvfudoHOmtqPszu%2Fimage.png?alt=media&#x26;token=4a339a96-436c-4730-b8fb-c9e4bee36cf6" alt=""><figcaption><p>Configuración del archivo /etc/network/interfaces</p></figcaption></figure>

Como puedes ver, he asignado la IP 192.168.2.50/24 al servidor de Debian donde vamos a instalar el Pi-hole. Esta dirección IP se corresponde con la red NAT "NatNet".

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FsMIr0zZQLmp89Te8yN7f%2Fimage.png?alt=media&#x26;token=bb56b96f-d05a-4f25-932d-75cdc1d5e133" alt=""><figcaption><p>Configuración de la red Nat "NatNet"</p></figcaption></figure>

Recuerda que debemos actualizar la configuración:

```
$ systemctl restart networking.service
```

También vamos a editar el fichero `/etc/resolv.conf` y agregamos un par de servidores externos:

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FqpCfc8mKI3js1YDwGPs7%2Fimage.png?alt=media&#x26;token=74a5cee1-d047-4442-bd0b-e27b6e01aaee" alt=""><figcaption><p>Fichero /etc/resolv.conf</p></figcaption></figure>

Recuerda que cualquier modificación que hagas necesitas la actualización del servicio. Como en mi caso lo tengo todo debidamente actualizado me dispongo a verificar que tenga instalado la herramienta `curl`.

`curl` es una herramienta de línea de comandos que sirve para realizar transferencias de datos a partir de una URL. Su nombre viene de `Client for URLs` . Con este comando se puede enviar o recibir datos a través de protocolos, como HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, entre otros.

Para verificar si tenemos o no instalado curl podemos hacer:

```
$ which curl
$ whereis curl
```

En caso de no tenerlo instalado, pues toca instalarlo, así que vamos allá:

```
$ apt install curl
```

## Instalando Pi-hole

Una vez hecho esto, vamos a instalar pi-hole:

```
$ curl -sSL https://install.pi-hole.net | bash
```

Con este comando se conectará a Internet y comenzará la descarga del paquete `pi-hole,` iniciando el asistente de instalación, que es muy simple la verdad. <br>

Lo primero que nos dice es que el servidor será configurado como un `bloqueador de anuncios`. Una vez seguimos adelante, nos advierte que el servidor tiene que tener IP estática con lo cual, estaríamos a tiempo de rectificar nuestra instalación si no lo hemos hecho antes.

El siguiente paso sería seleccionar el servidor DNS. Si en este punto seleccionamos Google por defecto, después podremos modificarlo y establecer nuestro propio servidor.

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FZEYFD1T1VkKlceMN0DVV%2Fimage.png?alt=media&#x26;token=531eccf0-8110-4954-8a16-1740fbff5d31" alt=""><figcaption><p>Establecer el servidor DNS</p></figcaption></figure>

A continuación tenemos que seguir con la selección del asistente. Por ejemplo, si queremos usar una lista de bloqueo de anuncios, podemos hacerlo teniendo en cuenta que Pi-hole nos brinda por defecto `StevenBlack.`

También tenemos que instalar la consola de administración y gestión web, para lo cual instala el servidor *`lighttpd`* y los módulos `PHP` correspondientes.&#x20;

Por si no lo sabías `lighttpd` es un servidor web de código abierto, ligero que ha sido diseñado para ser rápido y eficiente. Su nombre proviene de la combinación de "lighty" y  "HTTP daemon". No es tan utilizado como Apache o Nginx, pero es conocido por su rendimiento y que utiliza pocos  recursos y tiene una configuración flexible.

Una vez terminada la instalación nos muestra una ventana como la siguiente donde nos facilita una contraseña de acceso.

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FAEYqqthqX7xgT9Tm6pAN%2Fimage.png?alt=media&#x26;token=2ecad7ce-2adb-49f7-a0cc-49c0712cedd6" alt=""><figcaption><p>Fin de la instalación de Pihole</p></figcaption></figure>

Para acceder a la web de configuración de Pi-hole tenemos que llamar a la IP del servidor y en algún caso, toca poner al final /admin. Esto es:

```
http://192.168.2.50/admin
```

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2FCMPwtiTYF8d4QzVW5oP6%2Fimage.png?alt=media&#x26;token=d00d058f-2b80-4bc9-939a-4e95473b5419" alt=""><figcaption><p>Dashboard de administración de Pi-hole</p></figcaption></figure>

## Configurando Pi-hole

Ahora es el momento de la configuración de los servicios de DNS y DHCP, así como testear el bloqueo de anuncios.

Podemos establecer el dominio para nuestro servidor y el servidor principal `haven.local.`

Podemos configurar el servicio de DHCP:

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2F9TYUPrH3spo8sFHtcGIc%2Fimage.png?alt=media&#x26;token=cb141d64-6eea-40a5-a312-5098a75914ea" alt=""><figcaption><p>Configuración del servicio de DHCP en Pi-hole</p></figcaption></figure>

Puedes verificar y/o adicionar Adlists:

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2F0hIwP8DUkNaWOSEQyjys%2Fimage.png?alt=media&#x26;token=5bdc0e1d-02b3-422c-baab-b894d7e18f12" alt=""><figcaption><p>Añadir una AdList</p></figcaption></figure>

Una vez tengamos nuestros servicios configurados debemos testear que todo funcione correctamente. Para ello, debemos disponer de una VM que sirva de cliente y que, lógicamente, esté conectada a la misma red NAT: NatNet donde tenemos el servidor. En mi caso también es una VM con una distribución de Debian 11.

Recuerda que el equipo cliente tiene que estar configurado para tomar los parámetros de red por DHCP.&#x20;

Podemos verificar que el cliente está conectado a nuestro servidor:

<figure><img src="https://2817582392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvGN1WZpuVtUpSb3xgLvp%2Fuploads%2Fh4MdSqsJWXwzTZNOgqeD%2Fimage.png?alt=media&#x26;token=7316bd70-780c-4b84-99c9-fc78bdf9e5fe" alt=""><figcaption><p>Currently active DHCP leases en el servidor de Pi-hole</p></figcaption></figure>

Nota: Este tutorial lo tengo que completar. Aquí he mostrado los puntos más básicos.

<mark style="color:red;">To be continued ...</mark>
