Saltar a contenido

Servicios de Redes: DHCP, DNS, Apache, LDAP, SSH y Email

DHCP (Dynamic Host Configuration Protocol)

Conceptos Básicos

  • Asigna IPs automáticamente a los dispositivos de una red.
  • Utiliza puertos UDP 67 (servidor) y 68 (cliente).

Comprobación del Servicio

systemctl status isc-dhcp-server
journalctl -xe | grep dhcp

Configuración Común (Ubuntu/Debian)

Archivo principal: /etc/dhcp/dhcpd.conf Ejemplo básico:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.10 192.168.1.100;
  option routers 192.168.1.1;
  option domain-name-servers 8.8.8.8;
}

Problemas Comunes

  • La interfaz no está especificada: editar /etc/default/isc-dhcp-server.
  • El archivo de configuración tiene errores: usar dhcpd -t para validar.
  • No hay permisos o conflictos con NetworkManager.

DNS (Domain Name System)

Conceptos Básicos

  • Traduce nombres de dominio en direcciones IP.
  • Servicio típico: BIND9.

Comprobación

dig ejemplo.com
nslookup ejemplo.com
host ejemplo.com

Archivos Clave

  • /etc/bind/named.conf
  • /etc/bind/named.conf.local
  • Zonas: /var/cache/bind/db.ejemplo.com

Problemas Comunes

  • Error de sintaxis en zonas: named-checkzone.
  • Servidor caído: systemctl status bind9.
  • Resolver mal configurado: revisar /etc/resolv.conf.

Apache (Servidor HTTP)

Conceptos Básicos

  • Servidor web para alojar sitios estáticos y dinámicos.

Comprobación

systemctl status apache2      # Debian/Ubuntu
systemctl status httpd        # CentOS/RHEL

Configuración

  • Archivos: /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf
  • Sitios habilitados: /etc/apache2/sites-enabled/
  • Revisar hosts virtuales:
    apachectl -S
    

Problemas Comunes

  • Puerto ocupado: revisar con netstat -tuln | grep 80
  • Archivos de logs: /var/log/apache2/error.log
  • Permisos incorrectos o faltan módulos habilitados.

LDAP (Lightweight Directory Access Protocol)

Conceptos Básicos

  • Protocolo de acceso y mantenimiento de servicios de directorio distribuidos.

Comprobación

ldapsearch -x -H ldap://localhost -b dc=ejemplo,dc=com

Configuración

  • Archivos: /etc/ldap/ldap.conf, /etc/openldap/slapd.d/
  • Requiere definición de esquemas (/etc/ldap/schema/)

Problemas Comunes

  • Esquemas no cargados correctamente.
  • Problemas de autenticación (bind DN incorrecto).
  • Logs: journalctl -xe | grep slapd

SSH (Secure Shell)

Conceptos Básicos

  • Permite acceso remoto seguro a otros dispositivos.

Comprobación

ssh usuario@ip_del_servidor

Configuración

  • Archivo principal: /etc/ssh/sshd_config
  • Servicio:
    systemctl status ssh
    

Problemas Comunes

  • Puerto bloqueado por firewall.
  • Claves públicas/privadas no coinciden.
  • Usuarios no permitidos: revisar opción AllowUsers.

Correo Electrónico (Postfix + Dovecot)

Conceptos Básicos

  • Postfix: MTA (envío de correo)
  • Dovecot: MDA (recepción de correo)

Comprobación

telnet localhost 25   # SMTP Postfix
telnet localhost 110  # POP3 Dovecot

Archivos Clave

  • Postfix: /etc/postfix/main.cf
  • Dovecot: /etc/dovecot/dovecot.conf

Problemas Comunes

  • Cola de correo llena: postqueue -p, limpiar con postsuper -d ALL
  • Error de autenticación: revisar /var/log/mail.log
  • Servicio no iniciado: systemctl status postfix y systemctl status dovecot

Casos Prácticos: Resolución Paso a Paso

Caso 1: Un cliente no recibe IP (DHCP)

Diagnóstico

  1. Verificar si el cliente está conectado correctamente.
  2. Comprobar si hay una IP asignada:
    ip a
    
  3. Intentar renovar la IP:
    dhclient -v
    
  4. Revisar el estado del servidor DHCP:
    systemctl status isc-dhcp-server
    
  5. Analizar los logs para ver si la solicitud llegó:
    journalctl -xe | grep dhcp
    

Solución

  • Asegurarse de que el archivo /etc/dhcp/dhcpd.conf esté correctamente configurado.
  • Verificar que la interfaz esté bien especificada en /etc/default/isc-dhcp-server.

Caso 2: No resuelven los dominios (DNS)

Diagnóstico

  1. Probar resolución con dig o nslookup:
    dig google.com
    
  2. Comprobar contenido de /etc/resolv.conf.
  3. Revisar si el servicio DNS (ej. BIND9) está activo:
    systemctl status bind9
    

Solución

  • Verificar sintaxis de zonas con named-checkzone.
  • Reiniciar el servicio si está caído.
  • Asegurar que el firewall permita el puerto 53.

Caso 3: El sitio web no carga (Apache)

Diagnóstico

  1. Probar con curl o navegador local:
    curl http://localhost
    
  2. Verificar estado de Apache:
    systemctl status apache2
    
  3. Revisar archivos de configuración y virtual hosts:
    apachectl -S
    

Solución

  • Corregir errores de configuración.
  • Verificar permisos de los archivos del sitio.
  • Reiniciar Apache: systemctl restart apache2.

Caso 4: Error de inicio de sesión por LDAP

Diagnóstico

  1. Probar búsqueda con ldapsearch.
  2. Revisar DN y credenciales usadas.
  3. Ver logs del servicio slapd.

Solución

  • Verificar el archivo /etc/ldap/ldap.conf.
  • Corregir DN base o credenciales.
  • Asegurar que el esquema esté correctamente cargado.

Caso 5: Conexión SSH denegada

Diagnóstico

  1. Probar conexión desde otro equipo:
    ssh usuario@ip
    
  2. Verificar estado del servicio:
    systemctl status ssh
    
  3. Revisar logs:
    journalctl -xe | grep sshd
    

Solución

  • Comprobar si el usuario está permitido (AllowUsers).
  • Revisar claves públicas/privadas.
  • Asegurar que el puerto 22 no esté bloqueado.

Caso 6: Correos no se envían (Postfix)

Diagnóstico

  1. Revisar la cola de correo:
    mailq
    
  2. Consultar logs:
    tail -f /var/log/mail.log
    
  3. Verificar configuración en main.cf.

Solución

  • Corregir errores en main.cf.
  • Vaciar la cola si hay errores permanentes:
    postsuper -d ALL
    
  • Reiniciar el servicio:
    systemctl restart postfix
    

Ejemplos de Configuración

DHCP - /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.10 192.168.10.100;
  option routers 192.168.10.1;
  option domain-name-servers 192.168.10.2;
}

host impresora {
  hardware ethernet 00:11:22:33:44:55;
  fixed-address 192.168.10.200;
}

Comprobaciones

  • Validar configuración:
    dhcpd -t
    
  • Reiniciar servicio:
    sudo systemctl restart isc-dhcp-server
    
  • Ver concesiones:
    cat /var/lib/dhcp/dhcpd.leases
    

DNS (BIND) - /etc/bind/named.conf.local

Archivos importantes

  • /etc/bind/named.conf
  • /etc/bind/named.conf.options
  • /etc/bind/named.conf.local
  • /var/cache/bind/ (zonas en caché)

Configuración típica

acl "redlocal" {
  192.168.10.0/24;
};

options {
  directory "/var/cache/bind";
  recursion yes;
  allow-recursion { redlocal; };
  listen-on port 53 { 127.0.0.1; 192.168.10.2; };
  forwarders {
    8.8.8.8;
    1.1.1.1;
  };
};

Zona directa - named.conf.local

zone "midominio.local" {
    type master;
    file "/etc/bind/db.midominio.local";
};

Zona inversa

zone "10.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192";
};

/etc/bind/db.midominio.local

zone "midominio.local" {
    type master;
    file "/etc/bind/db.midominio.local";
};
$TTL    604800
@       IN      SOA     ns1.midominio.local. admin.midominio.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.midominio.local.
ns1     IN      A       192.168.10.2
www     IN      A       192.168.10.3

Apache - /etc/apache2/sites-available/misitio.conf

Activar Apache

apt-get install apache2

Ficheros de configuración

  • /etc/apache2/apache2.conf
  • /etc/apache2/sites-available/

Crear sitios

cd /etc/apache2/sites-available
cp 000-default.conf iesgn.conf
cp 000-default.conf departamentos.conf

Ejemplo de VirtualHost

iesgn.conf

<VirtualHost *:80>
    ServerName www.iesgn.org
    DocumentRoot /var/www/iesgn
    ErrorLog ${APACHE_LOG_DIR}/iesgn_error.log
    CustomLog ${APACHE_LOG_DIR}/iesgn_access.log combined
</VirtualHost>

departamentos.conf

<VirtualHost *:80>
    ServerName www.departamentosgn.org
    DocumentRoot /var/www/departamentos
    ErrorLog ${APACHE_LOG_DIR}/dept_error.log
    CustomLog ${APACHE_LOG_DIR}/dept_access.log combined
</VirtualHost>

Habilitar sitios

a2ensite iesgn
a2ensite departamentos
systemctl reload apache2

Autenticación en Apache

Autenticación básica
<Directory "/var/www/miweb/privado">
  AuthUserFile "/etc/apache2/claves/passwd.txt"
  AuthName "Palabra de paso"
  AuthType Basic
  Require valid-user
</Directory>
Crear archivo de contraseñas
htpasswd -c /etc/apache2/claves/passwd.txt usuario1
Autenticación digest
<Directory "/var/www/miweb/privado">
  AuthType Digest
  AuthName "dominio"
  AuthUserFile "/etc/claves/digest.txt"
  Require valid-user
</Directory>
htdigest -c /etc/claves/digest.txt dominio usuario1

LDAP - /etc/ldap/ldap.conf

BASE    dc=midominio,dc=local
URI     ldap://localhost
TLS_REQCERT allow

SSH - /etc/ssh/sshd_config

Port 22
PermitRootLogin no
PasswordAuthentication yes
AllowUsers usuario1 usuario2

Postfix - /etc/postfix/main.cf

myhostname = mail.midominio.local
myorigin = /etc/mailname
mydestination = $myhostname, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

Dovecot - /etc/dovecot/dovecot.conf

protocols = imap pop3
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
auth_mechanisms = plain login
!include conf.d/*.conf
!include_try local.conf