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 español 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.conf
osystemd-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.conf
osystemd-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