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 conpostsuper -d ALL
- Error de autenticación: revisar
/var/log/mail.log
- Servicio no iniciado:
systemctl status postfix
ysystemctl status dovecot
Casos Prácticos: Resolución Paso a Paso¶
Caso 1: Un cliente no recibe IP (DHCP)¶
Diagnóstico¶
- Verificar si el cliente está conectado correctamente.
- Comprobar si hay una IP asignada:
ip a
- Intentar renovar la IP:
dhclient -v
- Revisar el estado del servidor DHCP:
systemctl status isc-dhcp-server
- 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¶
- Probar resolución con
dig
onslookup
:dig google.com
- Comprobar contenido de
/etc/resolv.conf
. - 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¶
- Probar con
curl
o navegador local:curl http://localhost
- Verificar estado de Apache:
systemctl status apache2
- 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¶
- Probar búsqueda con
ldapsearch
. - Revisar DN y credenciales usadas.
- 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¶
- Probar conexión desde otro equipo:
ssh usuario@ip
- Verificar estado del servicio:
systemctl status ssh
- 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¶
- Revisar la cola de correo:
mailq
- Consultar logs:
tail -f /var/log/mail.log
- 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