Configuración de Servicios de Red en Linux: DHCP, DNS, FTP y Apache
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
con un tamaño de 13,89 KB
DHCP (Dynamic Host Configuration Protocol)
El Protocolo de Configuración Dinámica de Host (DHCP) es un protocolo de red que permite a los clientes de una red obtener automáticamente su configuración de red (dirección IP, máscara de subred, puerta de enlace predeterminada, servidores DNS, etc.) de un servidor DHCP.
Instalación y Gestión del Servicio (isc-dhcp-server)
- Instalación:
# apt install isc-dhcp-server - Iniciar servicio:
# service isc-dhcp-server start - Detener servicio:
# service isc-dhcp-server stop - Reiniciar servicio:
# service isc-dhcp-server restart - Estado y proceso (PID):
$ systemctl status isc-dhcp-server
Configuración del Servidor DHCP (/etc/dhcp/dhcpd.conf)
El archivo principal de configuración es /etc/dhcp/dhcpd.conf. Aquí se definen los parámetros globales y las configuraciones específicas para subredes y hosts.
Parámetros Globales
- default-lease-time: Tiempo de concesión predeterminado (en segundos).
- max-lease-time: Tiempo máximo de concesión (en segundos).
- authoritative: Indica si el servidor DHCP es el principal (autoritativo) para la red. Se recomienda activarlo.
Parámetros de Subred
subnet dirección_subred netmask máscara_de_subred {
range IP_primera IP_última;
option routers Dirección_IP_del_Gateway;
option domain-name-servers servidor_de_nombres;
}
- subnet: Define la subred para la cual se configura el DHCP.
- range: Especifica el rango de direcciones IP que el servidor DHCP puede asignar.
- option routers: Define la dirección IP de la puerta de enlace predeterminada.
- option domain-name-servers: Especifica las direcciones IP de los servidores DNS.
Asignación de IP Fija a un Host
host etiqueta_cliente {
hardware ethernet dirección_MAC_cliente;
fixed-address dirección_IP;
}
- host: Define un host específico por su dirección MAC.
- hardware ethernet: Especifica la dirección MAC del cliente.
- fixed-address: Asigna una dirección IP fija a ese cliente.
Registro de Concesiones
El archivo /var/lib/dhcp/dhcpd.leases almacena las concesiones actuales de direcciones IP.
Comandos del Cliente DHCP (dhclient)
- Liberar IP (Linux):
# dhclient -v -r enp0s3 - Solicitar IP (Linux):
# dhclient -v enp0s3 - Registro de concesiones del cliente (Linux):
/var/lib/dhcp/dhclient.leases - Liberar IP (Windows):
> ipconfig /release - Solicitar IP (Windows):
> ipconfig /renew
Nota: El sistema usa el tiempo UTC.
Información de Red en Ubuntu
- Dirección IP:
ip a - Puerta de enlace (Gateway):
ip r - Servidores DNS:
/run/systemd/resolve/resolv.confosystemd-resolve --status
DNS (Domain Name System)
El Sistema de Nombres de Dominio (DNS) es un sistema que traduce nombres de dominio legibles por humanos (como www.ejemplo.com) a direcciones IP numéricas (como 192.168.1.1) que las computadoras usan para identificarse en la red.
Instalación y Gestión del Servicio (BIND9)
- Instalación:
# apt install bind9 - Nombre del servicio: bind9
- Proceso: named
- Puerto de escucha: 53 (UDP para consultas, TCP para transferencias de zona)
Archivos de Configuración de BIND9
- named.conf: Archivo principal de configuración (no modificar directamente).
- named.conf.local: Aquí se definen las zonas locales.
- named.conf.options: Opciones globales del servidor.
Definición de Zonas (named.conf.local)
Servidor Primario (Maestro)
Zona Directa
zone "nombre_de_la_zona" {
type master;
file "archivo_donde_están_los_RR";
};
Zona Inversa
zone "z.y.x.in-addr.arpa" {
type master;
file "archivo_donde_están_los_RR";
};
Servidor Secundario (Esclavo)
zone "nombre_de_la_zona" {
type slave;
masters { IP_servidor_maestro; };
file "archivo_donde_se_guardan_los_RR_transferidos";
};
Comprobación de la Configuración
- Verificar named.conf.local:
named-checkconf /etc/bind/named.conf.local
Registros de Recursos (RR) en la Zona Directa
$TTL número_en_segundos
; Zona IN SOA
dominio. IN SOA servidor.dominio. correo.dominio. (
Serial
Refresh
Retry
Expire
default_TTL
)
dominio. IN NS servidor.dominio.
; Otros RR posibles:
; Direcciones IP:
Nombre_máquina IN A Dirección_IP
; Alias:
Nombre_máquina1 IN CNAME Nombre_máquina2
; Servidor de correo electrónico:
dominio. IN MX preferencia mail.dominio.
Registros de Recursos (RR) en la Zona Inversa
$TTL número_en_segundos
; Zona IN SOA
Zona_inversa. IN SOA servidor.dominio. correo.dominio. (
Serial
Refresh
Retry
Expire
default_TTL
)
zona_inversa. IN NS servidor.dominio.
; Registros PTR:
IP_a_la_inversa.in-addr.arpa. IN PTR nombre_máquina.
Comprobación de los Archivos de RR
- Verificar archivos de RR:
named-checkzone zona archivo_con_los_RR_de_la_zona
Transferencia de Zona a un Servidor Esclavo
Para permitir la transferencia de zona a un servidor esclavo, añade la opción allow-transfer y notify en la definición de la zona en el servidor primario:
zone "nombre_de_la_zona" {
type master;
file "archivo_donde_están_los_RR";
allow-transfer { IP_DNS_esclavo; };
notify yes;
};
Comprobación de transferencia: Busca en /var/log/syslog cuándo tuvo lugar la transferencia (zone nombre_zona/IN: Transfer started).
Directiva $GENERATE
La directiva $GENERATE se utiliza para asociar múltiples nombres en registros A con direcciones IP continuas. Es útil para rangos de hosts.
Ejemplo:
$GENERATE 1-15 equipo$.smr2.com. A 192.168.4.$
Cliente DNS
- Configuración de servidores DNS (/etc/netplan/*.yaml):
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.1.10/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
- Comprobar servidores DNS en uso:
/run/systemd/resolve/resolv.confosystemd-resolve --status - Comprobación con ping:
ping nombre_de_dominio(El servidor DNS resuelve el nombre a su IP). - Comprobación con dig:
- Resolución directa:
dig nombre_dns - Resolución inversa:
dig -x IP_a_resolver
- Resolución directa:
- Comando nslookup:
nslookup(Permite consultar los registros RR de una zona. Se puede filtrar por tipo de RR conset type=tipo_de_RR). - Borrado de caché DNS:
- Ubuntu:
sudo systemd-resolve --flush-caches - Windows:
ipconfig /flushdns
- Ubuntu:
vsftpd (Very Secure FTP Daemon)
vsftpd es un servidor FTP (File Transfer Protocol) seguro y eficiente para sistemas Unix y Linux.
Resumen de Configuración
- Instalación:
# apt install vsftpd - Nombre del servicio: vsftpd
- Nombre del proceso: vsftpd
- Puerto de escucha: 21 (TCP)
- Archivo de configuración:
/etc/vsftpd.conf - Directorio compartido de usuario local (por defecto):
/home/nombre_usuario - Registro de actividad:
/var/log/vsftpd.log
Directivas de Configuración (/etc/vsftpd.conf)
- listen=YES: El servidor escucha en modo standalone (solo IPv4).
- listen_ipv6=YES: El servidor escucha en modo standalone (IPv4 e IPv6).
- idle_session_timeout=tiempo-en-segundos: Tiempo de espera para conexiones inactivas.
- write_enable=YES: Permite operaciones de escritura (subir archivos, crear directorios, etc.). El usuario también debe tener permisos de escritura en el sistema de archivos.
- local_enable=YES: Permite el acceso a usuarios locales.
- chroot_local_user=YES: Enjaula a los usuarios locales en sus directorios home. ¡Importante! Requiere configuración adicional (ver más abajo).
- anonymous_enable=YES: Habilita el acceso anónimo.
- anon_root=directorio_compartido: Directorio compartido para el usuario anónimo.
Configuración de chroot para Usuarios Locales
Para que chroot_local_user=YES funcione correctamente y de forma segura, se deben seguir estos pasos:
- Asegurarse de que el directorio home del usuario no tenga permisos de escritura para el usuario. Esto es una medida de seguridad.
- Crear un subdirectorio dentro del directorio home del usuario donde sí tenga permisos de escritura.
Ejemplo:
# Quitar permisos de escritura en el directorio home del usuario a todos: chmod a-w /home/nombre_usuario # Crear un directorio dentro del home del usuario con permisos de escritura: mkdir /home/nombre_usuario/documentos chown nombre_usuario:nombre_grupo /home/nombre_usuario/documentos
Apache2 (Servidor Web HTTP)
Apache2 es un servidor web HTTP de código abierto, multiplataforma, muy popular y ampliamente utilizado.
Instalación y Gestión
- Instalación:
# apt install apache2 - Página de inicio por defecto:
/var/www/html/index.html - Nombre del servicio: apache2
- Detener servicio:
# systemctl stop apache2 - Iniciar servicio:
# systemctl start apache2 - Reiniciar servicio:
# systemctl restart apache2 - Recargar configuración:
# systemctl reload apache2 - Nombre del proceso: apache2
- Puerto de escucha por defecto: 80 (TCP)
- Directorio de instalación:
/etc/apache2 - Archivo de configuración principal:
/etc/apache2/apache2.conf - Puertos de escucha:
/etc/apache2/ports.conf - Variables de entorno:
/etc/apache2/envvars - Directorio de sitios disponibles:
/etc/apache2/sites-available - Archivo de configuración por defecto:
/etc/apache2/sites-available/000-default.conf
Directivas Básicas de un Sitio Virtual
Las directivas se colocan dentro de un bloque <VirtualHost *:80> ... </VirtualHost>.
- ServerName: Nombre DNS o nombre de la máquina por el que se accederá al sitio.
- DocumentRoot: Directorio raíz de los documentos del sitio (por defecto:
/var/www/html). - ErrorLog: Archivo de registro de errores (por defecto:
/var/log/apache2/error.log). - CustomLog: Archivo de registro de accesos (por defecto:
/var/log/apache2/access.log common).
Archivos de registro (logs): Se encuentran en /var/log/apache2 (access.log, error.log).
Habilitar/Deshabilitar Sitios Virtuales
- Habilitar un sitio:
# a2ensite archivo_de_configuración_del_sitio.conf(Crea un enlace simbólico en/etc/apache2/sites-enabled). - Deshabilitar un sitio:
# a2dissite archivo_de_configuración_del_sitio.conf(Elimina el enlace simbólico en/etc/apache2/sites-enabled).
HTTPS en Apache (SSL/TLS)
- Habilitar el módulo SSL:
# a2enmod ssl - Habilitar el sitio SSL por defecto:
# a2ensite default-ssl.conf - Reiniciar Apache:
# systemctl restart apache2