Instalar DNS en Rocky Server (Red Hat Linux)

Entre los principales servicios que podemos encontrar en entornos Linux el DNS es vital para el despliegue de toda un arquitectura web con dominio. En este laboratorio montaremos uno en Rocky Server, el cual maneja paquetes rpm como ya sabemos.

En un laboratorio anterior en este post ya hemos montado un dns en ubuntu server (paquetería deb), notaremos en este laboratorio que la isntalación requiere tratamientos adicionales. Empecemos.

Paso 1

Entorno: VirtualBox (Host-Only)
Dominio: cybersen.local
IP del servidor: 192.168.56.110 (puede varias)

Verfiquemos el sistema operativo:

cat /etc/os-release

Verficar Hostname:

hostnamectl

Paso 2

Cambiar nombre del servidor:

sudo hostnamectl set-hostname cybersen

Verificamos el hostname:

hostnamectl

Editamos archivo host:

sudo nano /etc/hosts

Debemos asegurar que estas 2 lineas esten presente, sobre todo la de cybersen apuntando a la ip del servidor.

127.0.0.1       localhost
192.168.56.110  cybersen

Parte 3

Verificar ip de Rocky, debe ser estatica y debe ser la misma que estamos colocando en el paso anterior.

Asi mismo tener presente la topología que usaremos ya que eso define si usaremos adaptador solo anfitrion o modo puente.

El adaptador solo anfitrion permite al anfitrion comunicarse con la maquina virtual y en muchas ocaciones obtiene su ip por dhcp si es que esta configuración esta activa (lo normal).

El modo puente pone la tarjeta virtual de tu maquia virtual al mismo nivel que las tarjetas de red de tu lan, es decir tu equipo estará disponible en la red lan como si fuese cualquier otro equipo en red.

Paso 4

Instalar BIND (Servidor DNS)

sudo dnf install bind bind-utils -y

Verificamos:

named -v

Habilitamos el servicio:

sudo systemctl enable named

Parte 5

Configurar named.conf

sudo nano /etc/named.conf

Verifica que se cumplan estas configuraciones, ojo no es necesario borrar o sobre escribir todo el documento, solo verificar y actualizar la configuración para permitir solicitudes de cualquier red.

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };

        directory       "/var/named";

        allow-query     { any; };

        recursion yes;

        dnssec-validation yes;

        managed-keys-directory "/var/named/dynamic";
};

Validar que no cometamos errores en named:

sudo named-checkconf

Parte 6

Declarar zona DNS cybersen.local en named.conf

zone "cybersen.local" IN {
    type master;
    file "cybersen.local.zone";
    allow-update { none; };
};

Crear archivo de zona:

sudo nano /var/named/cybersen.local.zone

Contenido del archivo cybersen.local.zone:

$TTL 86400
@   IN  SOA     cybersen.local. admin.cybersen.local. (
        2026030301
        3600
        1800
        604800
        86400 )

@       IN  NS      cybersen.local.
@       IN  A       192.168.56.110
cybersen   IN  A    192.168.56.110
www        IN  A    192.168.56.110

Actualizamos permisos:

sudo chown root:named /var/named/cybersen.local.zone
sudo chmod 640 /var/named/cybersen.local.zone

Validar la zona creada:

sudo named-checkzone cybersen.local /var/named/cybersen.local.zone

Paso 7

Abrir Firewall e Iniciar DNS

Abrir puerto DNS:

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

Iniciamos servicio:

sudo systemctl start named

Verificamos servicio:

sudo systemctl status named

Paso 8

Verificar servicio Web.

Nuestro Rocky server usado en los laboratorios ya tiene apache corriendo, sin embargo se dejan los comandos a fin de instalaer y habilitar el servicio facilmente por si no estuviera presente:

sudo dnf install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

Paso 9

Crear VirtualHost

Crear directorio:

sudo mkdir -p /var/www/cybersen.local

Crear index.html dentro del directorio creado:

sudo nano /var/www/cybersen.local/index.html

Contenido del index.html:

<h1>Servidor DNS + Apache funcionando</h1>
<h2>Dominio: cybersen.local</h2>

Brindamos permisos:

sudo chown -R apache:apache /var/www/cybersen.local
sudo chmod -R 755 /var/www/cybersen.local

Contexto SELinux (IMPORTANTE)

sudo chcon -R -t httpd_sys_content_t /var/www/cybersen.local
sudo restorecon -Rv /var/www/cybersen.local

Creamos el virtual host en apache

sudo nano /etc/httpd/conf.d/cybersen.local.conf

y su contenido:

<VirtualHost *:80>
    ServerName cybersen.local
    ServerAlias www.cybersen.local
    DocumentRoot /var/www/cybersen.local

    <Directory /var/www/cybersen.local>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/cybersen_error.log
    CustomLog /var/log/httpd/cybersen_access.log combined
</VirtualHost>

Reiniciamos Apache:

sudo systemctl restart httpd

Paso 10

Configurar dns en tu tarjeta de red.

Recordar que configuramos dns en la tarjeta de red virtual host onluy si estamos en modo anfitrion o configuramos el dns en nuestra tarjeta fisica (real) si estamos en modo puente.

Presentar al instructor.