Lo Último en IP@P
- Goblin Mine: La Estrategia Económica Detrás del Juego de Minería que está Fascinando a Todos
- Estos son los nuevos Cargadores UGREEN: potencia y portabilidad en dos versiones que no te puedes perder
- UGREEN Nexode Pro: El Cargador Ultradelgado que revoluciona la carga de dispositivos móviles
- La computación en la nube está transformando los juegos Online y estas son sus grandes ventajas
- Actualizaciones del Programa de Afiliados de TEMU: ¡Hasta MX$500,000 al mes!
Uno de los usos más comunes que se les da a las Raspberry Pi es la de convertirlas en un servidor, es así como estos microordenadores te serán de gran ayuda si estás buscando crear tu propio DNS Server.
Hay que tener en cuenta que los servidores DNS son una parte fundamental hoy en día, los mismos te van a permitir convertir dominios a direcciones IP o viceversa, hostear sitios web, distinguirlos por nombres o darle un nombre a los dispositivos de red.
Como se puede ver son realmente importantes ya que básicamente todo el tiempo se hace uso de ellos. Es así como aquí te vamos a enseñar a cómo crear y configurar un DNS Server con Raspberry Pi.
¿Qué es un servidor DNS y para qué sirve en las redes de Internet?
Antes de querer crear tu propio servidor DNS, es muy importante que sepas realmente que es y para qué sirve en las redes de Internet. De esta forma hay que mencionar que se trata de un sistema de nombres de dominio el cual está orientado en las redes basadas en direcciones IP. Mientras los usuarios introducen nombres de dominio como www.internetpasoapaso.com en la barra de direcciones, los ordenadores se encargan de usar direcciones IPv4 o IPv6 para comunicarse.
De esta manera para poder garantizar el entendimiento mutuo va a ser necesario traducir ese nombre de dominio, todo esto es posible a través de un DNS Server, aunque hay que tener presente que el navegador consulta previamente en su caché para saber si ya conoce la dirección y de esa forma puede ahorrarse el proceso de consulta al servidor de nombres. Si el equipo no la conoce, entonces la petición va a ser enviada a uno o varios servidores DNS, el primer servidor que es consultado es el del proveedor de Internet.
El cual va a chequear la petición con su base de datos para así entregar un resultado si consigue una coincidencia. Si por alguna razón en su base de dato no existe ningún registro para ese dominio, la petición va a pasar a uno de los 13 servidores raíz de nombres de Internet donde se encuentran todas las direcciones de la World Wide Web. Es importante tener en cuenta que la mayoría de los participantes de Internet, no poseen una dirección IP fija.
Esto se debe a que la mayoría de los proveedores de este servicio suelen asignar direcciones IP dinámica, es decir, que cambian cada 24 horas. Al transcurrir este tiempo se produce una breve interrupción de la conexión a Internet y el usuario recibe entonces su nueva dirección. Hay que mencionar que se trata de un procedimiento que no genera ningún tipo de problemas, ya que es muy rara la vez que los clientes terminan recibiendo peticiones del exterior de la red local
En este caso solos los clientes envían peticiones al servidor y no en viceversa. También hay que tener en cuenta que en algunos casos como un escritorio remoto o un servidor de juegos, es necesario poder configurar un servidor propio y para ello se usa lo que es un DNS dinámico, ya que el servidor doméstico recibe del proveedor un dominio con el cual siempre está disponible. Ahora si lo que se busca es acceder al DNS Server desde el exterior en cualquier momento, entonces cabe considerar la opción de utilizar un DDNS.
¿Cuáles son los beneficios de crear tu propio servidor DNS en una Raspberry Pi?
Sin duda alguna poder crear tu propio servidor DNS en una Raspberry Pi te será de gran ayuda, especialmente porque estas placas suelen tener un precio bastante accesible, por lo que te podrás ahorrar una gran cantidad de dinero. Además, los motivos para utilizar un servidor DNS propio en lugar de buscar direcciones IP en otros servidores pueden ser diferentes.
En este caso se considera que la instalación de un servidor doméstico podría ser una solución muy efectiva si dentro de una red local acceden a Internet diferentes personas y dispositivos, como sucede cuando una familia es grande y todos ellos usan la conexión de red o cuando se usa en una oficina con varios empleados o es compartida con otras familias.
Por lo tanto, los principales beneficios que esto aporta son los siguientes:
- Velocidad: Cuando no se encuentra ninguna entrada en la memoria caché del navegador, una petición web puede recorrer diferentes routers y servidores antes de que el contenido que se ha solicitado llegue al cliente, este tiempo de espera son milisegundos, si no se tiene que establecer una nueva conexión con el DNS del proveedor de Internet, todo este proceso puede generarse incluso más rápidamente.
- Filtro publicitario: En este caso los bloqueadores de anuncios o como también son conocidos ad blockers recurren a lo que es la lista de servidores web susceptibles de ser bloqueados, pero en el caso de los servidores DNS domésticos también pueden hacerlo. Esto permite que se pueda liberar de publicidad todos los dispositivos de la red local con un solo gesto sin tener que estar instalando software extra en cada uno de los aparatos.
- Seguridad: Cuando está alojado un servidor DNS también se tiene el control sobre los registros. De esta forma los ciberdelincuentes no ceden en el intento de interponerse en el recorrido de las peticiones al servidor DNS del proveedor para entregar una dirección IP falsa, de esta manera, en lugar de la página que se pretendía abrir se accede a otra falsa. Todo esto puede resultar bastante peligroso especialmente si se utilizan servicios de banca digital porque se introducen datos privados de la cuenta, que los ciberdelincuentes pueden usar para acceder a la cuenta y cometer robos.
- Privacidad: Hay que tener presente que el funcionamiento del sistema de nombres de dominio está fundamentado en el envío de peticiones a servicios ajenos, lo que genera huellas digitales que muchos de los usuarios prefieren evitar. Al utilizar un DNS propio mucho de los datos van a permanecer en privado.
- Control parental: Todo aquello que funciona para publicidad, también se va a poder aplicar a la protección de los menores de edad. En este caso un servidor DNS auto gestionado permite bloquear servidores que ofrecen contenido inapropiado, por lo que es útil cuando en la red local hay muchos usuarios que son niños o jóvenes y pueden acceder a este tipo de contenido.
- Aprendizaje: Finalmente se puede decir que la gran mayoría de los usuarios instalan un servidor propio DNS con la intención de poder entender mejor el funcionamiento del Internet, ya que no todos se conforman con saber encender un equipo y acceder a Internet, si no que buscan ir un paso más allá. Es por ello que una forma de poder comprender toda esta tecnología es creando un DNS Server con un Raspberry Pi, principalmente porque se trata de un proceso bastante sencillo de lograr.
¿Qué necesito para convertir mi Raspberry Pi en un servidor de nombres de dominio?
Si has tomado la decisión de crear tu servidor de nombres de dominio con tu Raspberry Pi, entonces debes tener en cuenta que para ello será necesario que cumplas con algunos requisitos.
Los cuales te los vamos a enseñar a continuación:
- Lo primero que debes tener es una tarjeta micro SD que tenga el sistema operativo de Raspbian instalado.
- Tener una conexión Ethernet al router.
- Cliente SSH.
- Alimentación por cable micro USB.
Cuando cumplas con estos cuatro requisitos que te hemos nombrado, ya estarás completamente listo para comenzar con la instalación del DNS server en tu Raspberry Pi.
Aprende paso a paso cómo configurar tu placa Raspberry Pi como un servidor DNS desde cero y sin errores
En este ejemplo se va a basar el servidor DNS en BIND, se trata de un software de código abierto que se remonta al Berkeley Internet Name Domain Server, el cual actualmente está en su novena versión y cuenta con el apoyo del Internet software Consortium (ISC) para su desarrollo. Por lo tanto, antes de iniciar con este procedimiento es importante que te asegures que tu Raspberry Pi obtenga una dirección IP estática dentro de la red local.
Lo primero que tendrás que hacer es ingresar a la configuración de red, para ello introduce la siguiente línea de comando:
Sudo nano /etc/network/interfaces
Y allí vas a tener que asignar a la Raspberry Pi una dirección de IP única. Aquí es importante que tengas en cuenta que nano es un simple editor de Linux por lo que su instalación en la placa es prácticamente indispensable. Después de esto puedes comenzar con la instalación BIND. En este caso no solo es importante llevar a cabo la instalación del programa, es importante instalar los paquetes bind9utils, ya que a pesar de no ser imprescindible, contiene herramientas que son muy útiles para el mantenimiento del servidor DNS.
Por lo tanto, para poder llevar a cabo la instalación de todo el paquete completo debes introducir la siguiente línea de comando:
sudo apt-get install bind9 bind9utils dnsutils
Cuando hayas hecho esto, bind9 ya estará instalado en el sistema, pero a pesar de esto aún son necesarios llevar a cabo algunos ajustes antes de comenzar a utilizar la Raspberry Pi como un servidor DNS.
De acuerdo con esto, será necesario abrir el archivo de configuración de bind9 mediante este comando:
sudo nano /etc/bind/named.conf.local
Una vez allí vas a tener que configurar dos secciones, una para lo que será la búsqueda directa (Forward lookup), por donde se buscará la dirección IP a partir del dominio, y una para la inversa (Reverse lookup):
sudo nano /etc/bind/named.conf.local zone "home.lan" IN { type master; file "/etc/bind/db.home.lan"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.rev.1.168.192.in-addr.arpa"; };
Como se puede ver en el código, se utilizan dos archivos diferentes (db.home.lan y db.rev.1.168.192.in-addr.arpa) para definir las dos zonas, pero antes los debes crear. Ten en cuenta que tienes la posibilidad de decidir libremente como quieres llamarlos, pero deben figurar siempre de la misma forma cada vez que sea necesario.
Para poder crear el archivo para la zona de la búsqueda directa (db.home.lan) será necesario agregar las siguientes líneas de comandos:
sudo nano /etc/bind/db.home.lan lan. IN SOA raspberry.home.lan. hostmaster.home.lan. ( 2017081401 ; serial 8H ; refresh 4H ; retry 4W ; expire 1D ; minimum ) lan. IN NS raspberry.home.lan. lan. IN MX 10 raspberry.home.lan. localhost IN A 127.0.0.1 raspberry IN A 192.168.1.31 router IN A 192.168.1.1
Más en Hardware
- ¿Cómo configurar y usar dos monitores o pantallas desde un mismo ordenador? Guía paso a paso 2024
- ¿Qué es y cómo podemos usar un sensor de infrarrojos en Arduino? Guía paso a paso
- Microduino ¿Qué es, para qué sirve y en qué se diferencia de un kit Arduino?
- ¿Cómo actualizar Raspberry Pi con Raspbian a la última versión disponible? Guía paso a paso
- Ratón o Mouse: ¿Qué es, para qué sirve y cuál es su función principal en informática de usuario?
SÍGUENOS EN 👉 YOUTUBE TV
En el caso de las dos últimas líneas corresponden a la dirección IP de tu Raspberry Pi, al cual se le ha asignado al comienzo una dirección IP estática y la de tu router, por lo que vas a tener que modificarla. Debes recordar que los nombres de dominio se han de cerrar siempre con un punto como por ejemplo: Raspberry.home.lan. Ahora al comienzo del archivo, tras el número de serie (serial) se tendrá que definir la duración del intervalo de tiempo entre acciones regulares.
Tanto los datos NS y MX van a indicar que tanto el servidor de nombres como el de correo están puestos a disposición por Raspberry Pi. Es importante que tengas presente que al comienzo del archivo de ha de indicar siempre un número de serie, para el cual se ha consolidado el formato YYYYMMDDXX el cual va a corresponder a la secuencia año-mes-día, a la que se añade un número de serie que va a aumentando a medida que se van creando versiones en un mismo día.
Después debes crear el archivo de la zona de búsqueda inversa (db.rev.1.168.192.in-addr.arpa) para ello vas a tener que agregar las siguientes líneas de comando:
sudo nano /etc/bind/db.rev.1.168.192.in-addr.arpa @ IN SOA raspberry.home.lan. hostmaster.home.lan. ( 2017081401 ; serial 8H ; refresh 4H ; retry 4W ; expire 1D ; minimum ) IN NS raspberry.home.lan. 1 IN PTR router.home.lan. 31 IN PTR raspberry.home.lan.
Ten presente que este ejemplo parte de la suposición de que la dirección de la red local comienzan con 192.168.1. En el caso que esto no sea así, entonces se tiene que indicar el espacio de nombre correcto en el archivo y en el nombre de dominio. Es importante que también lo definas en el nombre de archivo de configuración de BIND cuando sea necesario (etc/bind/named.conf.local)
.
Al instalar un DNS en la Raspberry Pi, este servidor va a funcionar como caché para peticiones al DNS, pues una vez sea solicitada una resolución de dominio, la entrada va a quedar almacenada en el servidor, lo que quiere decir que la primera petición se enviará también a otros servidores. En el archivo /etc/bind/named.confi.options se establece a cuales.
Aquí vas a tener que abrir el archivo y cambiar la dirección IP en la entrada “Forwarders” para ello escribe las siguientes líneas:
sudo nano /etc/bind/named.conf.options forwarders { 2.3.4; 6.7.8; };
Aquí vas a poder introducir la dirección IP del servidor DNS de tu proveedor de Internet o la de un sistema abierto por ejemplo. Una de las opciones más populares es la de la dirección del servidor DNS de Google (8.8.8.8), pero en el caso que prefieras mantenerla al margen de los proveedores comerciales, vas a poder optar por los servidores 208.67.222.222 y 208.67.220.220 de Open DNS por ejemplo.
Cuando ya hayas configurado el servidor DNS en tu Raspberry Pi con BIND, puedes iniciar el programa con el comando para que los cambios se puedan efectuar:
Sudo service bin9 restart
O también puedes aplicar las siguientes líneas:
Sudo service bin9 stop
Sudo service bin9 start
Si por alguna razón aparece algún tipo de error al iniciar el servidor DNS, pueden resultar útil echar un vistazo al archivo de registro en /var/log/syslog
y si se incluye el servidor DNS en el inicio automático de programas de sistema, entonces ya no tendrás que iniciarlo de forma manual cada vez que reinicies la Raspberry Pi.
Veamos el codigo:
Sudo update-rc.d bind9 defaults
Después de todo esto, sólo queda incluir el nuevo servidor DNS en los ajustes del router para que así todas las peticiones relativas a la resolución de nombre se envíen a Raspberry Pi. Para ello es necesario que introduzcas en la configuración del dispositivo, la cual está normalmente disponible en la interfaz, la dirección IP de la Raspberry Pi. Desde este momento vas a tener todo el control sobre las entradas en el DNS de tal forma que también puedes bloquear determinados servidores con contenido indeseado.
Para esto es necesario definir los bloqueos DNS en un archivo que se incluye en el archivo de configuración de bind9:
Sudo nano /etc/bin/named.conf
El archivo se va a añadir bajó los demás como entrada nueva y se cierra con punto y coma:
Include ,,/etc/bin/named.conf.blocked”;
En este archivo se van a poder incluir aquellos dominios susceptibles de ser bloqueados, si quieres conocerlo puedes recurrir a diversas listas publicitarias. Para este ejemplo se utilizó una lista de proyecto que facilita un archivo zona para BIND, la cual pueda descargarse y abrirse con un editor de texto. Todas las entradas que incluye tienen el formato correcto, por lo que pueden copiarse sin problema en la lista de bloqueos.
Este es el formato que deben tener las entradas incluso aunque utilicen una fuente diferente:
zone "malware-example.ga" {type master; file "/etc/namedb/blockeddomain.hosts";};
Al final de la línea se indica el archivo que ha de ejecutarse cuando se solicita el dominio bloqueado en cuestión, para poder crearlo debes escribir el siguiente comando:
sudo nano /etc/namedb/blovkeddomain.hosts
Aquí vas a tener que introducir el siguiente código:
$TTL 86400 @ IN SOA home.lan. hostmaster.home.lan. ( 2017081401 ; serial 8H ; refresh 2H ; retry 10D ; expire 1D ; minimum ) NS raspberry.home.lan. A 127.0.0.1 * IN A 0.0.1
Es importante que te asegures de introducir tu dominio correctamente, Raspberry.home.lan en este caso. Después reinicia bind9 de nuevo y allí vas a comprobar que tu servidor DNS esté bien configurado y listo para empezar a funcionar.