informatica:certificaciones:lpic:lpic-2:207_domain_name_server:207.3
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:certificaciones:lpic:lpic-2:207_domain_name_server:207.3 [2021/04/12 12:15] – tempwin | informatica:certificaciones:lpic:lpic-2:207_domain_name_server:207.3 [2021/04/23 13:51] (actual) – [TSIG] tempwin | ||
|---|---|---|---|
| Línea 16: | Línea 16: | ||
| * ''/ | * ''/ | ||
| * DNSSEC | * DNSSEC | ||
| - | * dnssec-keygen | + | * '' |
| - | * dnssec-signzone | + | * '' |
| ===== Limitar los accesos al servidor ==== | ===== Limitar los accesos al servidor ==== | ||
| Línea 36: | Línea 36: | ||
| Para limitar los hosts o las redes a los que el servidor tiene permitido responder: | Para limitar los hosts o las redes a los que el servidor tiene permitido responder: | ||
| + | |||
| + | < | ||
| + | allow-query { | ||
| + | redes_autorizadas; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Por ejemplo: | ||
| < | < | ||
| Línea 48: | Línea 56: | ||
| ===== Limitar Tranferencias de zonas ===== | ===== Limitar Tranferencias de zonas ===== | ||
| - | Una transferencia de zona es la solicitud de información sobre un dominio que utilizan los servidores secundarios para actualizar su propia base de dtos del dominio | + | Una transferencia de zona es la solicitud de información sobre un dominio que utilizan los servidores secundarios para actualizar su propia base de dtos del dominio. |
| + | |||
| + | La transferencia siempre va desde el maestro a los esclavos. Las modificaciones se producen en el maestro. Los esclavos solo almacenan copias. | ||
| Para securizar e impedir que por otros mecanismos se solicite esa información, | Para securizar e impedir que por otros mecanismos se solicite esa información, | ||
| Línea 72: | Línea 82: | ||
| ===== Bind en modo chroot ===== | ===== Bind en modo chroot ===== | ||
| - | El objetivo es hacer creer al proceso se está ejecutando en un sistema normal, mientras está enjaulado en una estructura de directorio paralela. | + | El objetivo es hacer creer al proceso |
| - | Lo primer es crear un directorio de chroot (''/ | + | * [[https:// |
| + | |||
| + | <WRAP center round info 60%> | ||
| + | En sistemas Red Hat (como CentOS) si instalamos el paquete '' | ||
| + | </ | ||
| + | ==== Estructura de directorios ==== | ||
| + | |||
| + | Lo primer es crear un directorio de chroot (''/ | ||
| Creación de la estructura de directorios falsa ''/'' | Creación de la estructura de directorios falsa ''/'' | ||
| Línea 80: | Línea 97: | ||
| {{ : | {{ : | ||
| - | Copiar los archivos de configuración al directorio | + | <code bash> |
| + | mkdir -p /var/bind9/chroot/{etc,dev,var/ | ||
| + | </ | ||
| - | Ejecución del proceso | + | ==== Copia de ficheros y permisos ==== |
| + | |||
| + | Copiar los archivos de configuración, | ||
| + | |||
| + | <code bash> | ||
| + | cp -r /etc/bind / | ||
| + | </ | ||
| + | |||
| + | También aprovechamos para copiar ''/ | ||
| + | |||
| + | <code bash> | ||
| + | cp / | ||
| + | </ | ||
| + | |||
| + | En Debian 10 **bind** también requiere ''/ | ||
| + | |||
| + | <code bash> | ||
| + | mkdir -p / | ||
| + | cp / | ||
| + | </ | ||
| + | |||
| + | Configuración de permisos de la estructura chroot: | ||
| + | |||
| + | <code bash> | ||
| + | chown bind:bind / | ||
| + | chmod 775 / | ||
| + | chgrp bind / | ||
| + | </ | ||
| + | |||
| + | Cremos los ficheros de dispositivo (''/ | ||
| + | |||
| + | <code bash> | ||
| + | mknod / | ||
| + | mknod / | ||
| + | mknod / | ||
| + | </ | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | Modificamos los permisos de estos ficheros recién creados: | ||
| + | |||
| + | <code bash> | ||
| + | chmod 660 / | ||
| + | </ | ||
| + | |||
| + | ==== Ejecución del servicio | ||
| <code bash> | <code bash> | ||
| Línea 90: | Línea 154: | ||
| De esta manera, si alguien lograse tomar el control de este bind, no podría acceder al resto del sistema, solo en esta jaula. | De esta manera, si alguien lograse tomar el control de este bind, no podría acceder al resto del sistema, solo en esta jaula. | ||
| + | En sistemas con systemd, por ejemplo Debian 10, editamos el fichero ''/ | ||
| + | |||
| + | < | ||
| + | OPTIONS=" | ||
| + | </ | ||
| + | |||
| + | En Debian 10 se incluye AppArmor, así que necesitamos indicarle que nos deje acceder a ciertos directorios. Creamos el fichero ''/ | ||
| + | |||
| + | < | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Y descomentamos la siguiente línea de ''/ | ||
| + | |||
| + | < | ||
| + | include < | ||
| + | </ | ||
| + | |||
| + | Recargamos AppArmor: | ||
| + | |||
| + | <code bash> | ||
| + | systemctl reload apparmor | ||
| + | </ | ||
| + | |||
| + | Ya podríamos arracancarlo con: | ||
| + | |||
| + | <code bash> | ||
| + | systemctl start bind9 | ||
| + | </ | ||
| + | |||
| + | Y se ejecutará en la jaula creada. | ||
| ===== Securizando las conexiones ===== | ===== Securizando las conexiones ===== | ||
| El diseño original del Domain Name System (DNS) no incluía la seguridad, sino que fue diseñado para ser un sistema distribuido escalable. | El diseño original del Domain Name System (DNS) no incluía la seguridad, sino que fue diseñado para ser un sistema distribuido escalable. | ||
| - | • Las Extensiones de seguridad para el Sistema de Nombres de | + | |
| - | Dominio (DNSSEC) intentan aumentar la seguridad. | + | ==== DNSSEC ==== |
| - | • DNSSEC fue diseñado para proteger a los resolvers de Internet | + | |
| - | (clientes) de datos de DNS falsificados, | + | Las Extensiones de seguridad para el Sistema de Nombres de Dominio (**DNSSEC**) intentan aumentar la seguridad. Usamos cifrado asimétrico (claves privadas y públicas) con las que firmaremos las peticiones y las respuestas del DNS para saber que vienen de donde deben venir. |
| - | envenenamiento de caché DNS. | + | |
| - | • Todas las respuestas en DNSSEC son firmadas digitalmente. | + | DNSSEC fue diseñado para proteger a los resolvers de Internet (clientes) de datos de DNS falsificados, |
| - | Securizando las conexiones: | + | |
| - | DNSSEC: firma los mensajes enviados por los servidores DNS utilizando una | + | Todas las respuestas en DNSSEC son firmadas digitalmente. |
| - | MAC (Message Authentication Code). Utilizan cifrado asimétrico | + | |
| - | dnssec-keygen: comando que genera las claves. | + | |
| - | - a algoritmo Algoritmo de cifrado HMAC-MD5, DSA, RSA | + | |
| - | -b size Tamaño de la clave | + | '' |
| - | -n nametype ZONE|HOST|ENTITY|USER|OTHER | + | |
| - | # | + | * '' |
| - | OUTPUT: Kdns1.+157+21526.key ZONE lpic2.org | + | * '' |
| - | Kdns1.+157+21526.private | + | * '' |
| - | Securizando las conexiones: | + | |
| - | dnssec-sigzone: | + | |
| - | • Realiza el firmado de una zona. | + | |
| - | • Genera los registros NSEC y RRSIG, y crea una versión | + | |
| - | firmada de la zona. | + | |
| - | # | + | |
| - | OUTPUT: db.example.com.signed | + | |
| - | Securizando las conexiones: | + | |
| - | TSIG (Transaction SIGnature, firma de transacciones): | + | |
| - | • Se basa en el uso de una clave compartido entre los | + | |
| - | servidores que intercambian datos. | + | |
| - | • Proporciona un canal seguro de comunicación entre los | + | |
| - | servidores DNS para la transferencia de zonas. | + | |
| - | Securizando las conexiones: | + | |
| - | 1.Generamos las claves: | + | |
| <code bash> | <code bash> | ||
| - | dnssec-keygen | + | dnssec-keygen |
| </ | </ | ||
| - | Salida: | + | Genará dos ficheros: |
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | '' | ||
| < | < | ||
| - | Krndc-key.+157+21526.key | + | dnssec-sigzone –o example.com db.micasa.local |
| - | Krndc-key.+157+21526.private | + | |
| </ | </ | ||
| - | 2. Una vez tenemos la claves, debemos declararlas en el fichero '' | + | Obtenemos un fichero '' |
| + | |||
| + | ==== TSIG ==== | ||
| + | |||
| + | **T**ransaction **SIG**nature, firma de transacciones. | ||
| + | |||
| + | * Se basa en el uso de una clave compartida entre los servidores que intercambian datos. | ||
| + | * Proporciona | ||
| + | |||
| + | Maestro y esclavo intercambian unas claves para confirmar que la transferencia de zonas es correcta. | ||
| + | |||
| + | Primero se generan las claves con el comando | ||
| < | < | ||
| - | key " | + | dnssec-keygen -a HMAC-MD5 -b tamaño_de_clave -n nametype nombreclave |
| - | | + | </ |
| - | secret "asdf89uas9dfuasikdf=="; | + | |
| + | ^ Parámetros ^ Descripción ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Ejemplo: | ||
| + | |||
| + | <code bash> | ||
| + | dnssec-keygen -a HMAC-MD5 -b 128 -n HOST supersecret | ||
| + | </ | ||
| + | |||
| + | Salida: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Una vez tenemos la claves, debemos declararlas en el fichero '' | ||
| + | |||
| + | < | ||
| + | key nombre_clave | ||
| + | | ||
| + | secret "yItYGlAQtGcM7VqGjZdJAg=="; | ||
| }; | }; | ||
| + | </ | ||
| + | ^ Elemento | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | # | + | La clave compartida se declara en ambos servidores. Ahora hay que hacer que sepan que tienen que utilizarla para garantizar la seguridad de ciertas comunicaciones. Por lo tanto, habrá que añadir un nuevo comando en '' |
| - | server | + | < |
| - | | + | server |
| - | TRANSFER; | + | keys { nombre_clave; }; |
| - | | + | |
| }; | }; | ||
| </ | </ | ||
| + | ^ Elemento | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | Securizando las conexiones: | + | Si generamos el fichero |
| - | 3.Si generamos el fichero tsig.key, debemos incluirlo en el fichero de configuración '' | + | |
| < | < | ||
| include "/ | include "/ | ||
| </ | </ | ||
| - | |||
| Recargamos la configuración: | Recargamos la configuración: | ||
| Línea 169: | Línea 300: | ||
| </ | </ | ||
| - | 5. En el servidor esclavo debemos realizar los mismos pasos, aunque cambiando la IP por la del master: | + | En el servidor esclavo debemos realizar los mismos pasos, aunque cambiando la IP por la del master: |
| < | < | ||
| Línea 176: | Línea 307: | ||
| secret " | secret " | ||
| }; | }; | ||
| - | |||
| # | # | ||
| Línea 187: | Línea 317: | ||
| </ | </ | ||
| - | PREGUNTA DE EXAMEN: | + | |
| - | DNSSEC is used for? | + | |
| - | A. Encrypted DNS queries between nameservers. | + | |
| - | B. Cryptographic authentication of DNS zones. | + | |
| - | C. Secondary DNS queries for local zones. | + | |
| - | D. Defining a secure DNS section. | + | |
| - | E. Querying a secure DNS section. | + | |
| - | •Localización de los ficheros de configuración y utilidades de | + | |
| - | sevidor BIND. | + | |
| - | •Tipos de servidores DNS (master, slave, cache). | + | |
| - | •Definición de zonas. | + | |
| - | •Creación y modificación de ficheros de zonas directa e inversa. | + | |
| - | •Uso de directivas allow-query/ | + | |
| - | •Configuración Bind en chroot. | + | |
| - | •Conocimiento de DNSSEC. | + | |
| - | •Configuración y uso de firmas de transacción (TSIG). | + | |
| - | </ | + | |
informatica/certificaciones/lpic/lpic-2/207_domain_name_server/207.3.1618222559.txt.gz · Última modificación: por tempwin
