Los servicios de red son el corazón de cualquier infraestructura.
18.1. Introducción
Un administrador de sistemas debe ser capaz de configurar servidores de archivos (NFS), servidores web (Apache), proxies con filtrado de contenido (Squid+SquidGuard) y sistemas de correo (Postfix+Dovecot). En este capítulo exploraremos la instalación, configuración básica, gestión y resolución de problemas de cada uno de ellos.
Aunque el Capítulo 5 ya introdujo NFS, aquí profundizaremos en su configuración como servicio de red junto con los otros.
Apache se trata en detalle (la parte SSL se cubrirá en el Capítulo 23), Squid se complementa con SquidGuard para filtrado y Postfix se integra con Dovecot, para proporcionar IMAP/POP3.
El objetivo es, que puedas desplegar cada servicio en un entorno de laboratorio y entender los archivos de configuración clave.
Parte I: NFS (Network File System)
18.2. Recordatorio y ampliación de NFS
NFS permite compartir directorios entre sistemas Unix/Linux de forma transparente. Ya vimos en el Capítulo 5 los fundamentos; aquí nos centraremos en la configuración avanzada del servidor y en la interacción con el firewall, así como en la resolución de problemas típicos.
18.2.1. Servidor NFS: opciones de exportación
El archivo /etc/exports define qué se comparte y con qué opciones. Además de las vistas, existen opciones importantes:
no_root_squash: desactiva la conversión de root (peligroso). Solo usar en entornos controlados.all_squash: mapea todos los usuarios a un usuario anónimo (por defectonobody).anonuid,anongid: especifican UID/GID para los usuarios mapeados.fsid=0ofsid=root: en NFSv4 define el pseudo-root; útil para exportar múltiples directorios bajo una misma raíz virtual.crossmnt: permite cruzar montajes dentro de la exportación.nohide: muestra los submontajes en lugar de ocultarlos (si se exportan directorios anidados).
Ejemplo de /etc/exports avanzado:
/export 192.168.1.0/24(rw,sync,no_subtree_check,fsid=0)
/export/datos 192.168.1.0/24(rw,sync,no_subtree_check,nohide)
En NFSv4, el cliente montaría servidor:/datos (relativo al pseudo-root /export).
18.2.2. Configuración del firewall
Para NFSv4, solo se necesita abrir el puerto TCP 2049. Con firewalld:
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload
Para NFSv3 se necesitan además rpcbind, mountd y statd. Se puede fijar los puertos en /etc/sysconfig/nfs (RHEL) o /etc/default/nfs-kernel-server (Debian) y abrirlos.
18.2.3. Cliente NFS: opciones de montaje avanzadas
rsizeywsize: tamaño de bloque de lectura/escritura (por defecto 1MB en NFSv4). Ajustar según red.actimeo: tiempo de caché de atributos.nolock: desactiva bloqueos (solo lectura).sec=sysosec=krb5: método de seguridad (krb5 requiere Kerberos).
Ejemplo en /etc/fstab:
servidor:/datos /mnt/datos nfs4 defaults,_netdev,rsize=1048576,wsize=1048576 0 0
Parte II: Apache HTTP Server
18.3. Introducción a Apache
Apache es el servidor web más utilizado en Internet. Es modular, altamente configurable y soporta una amplia variedad de módulos. En el examen LFCS, se espera que puedas instalar Apache, configurar hosts virtuales, controlar acceso y entender los archivos de configuración principales.
18.4. Instalación
- Debian/Ubuntu:
sudo apt install apache2 - RHEL/CentOS/Fedora:
sudo yum install httpdosudo dnf install httpd
Tras la instalación, el servicio se gestiona con systemd:
sudo systemctl enable --now apache2 # Debian
sudo systemctl enable --now httpd # RHEL
La raíz del sitio web por defecto es /var/www/html (Debian) o /var/www/html (RHEL, aunque a veces /var/www/).
18.5. Estructura de configuración
Debian/Ubuntu:
- Configuración principal:
/etc/apache2/apache2.conf - Puertos:
/etc/apache2/ports.conf - Sitios disponibles:
/etc/apache2/sites-available/ - Sitios activados:
/etc/apache2/sites-enabled/(enlaces simbólicos) - Módulos disponibles/activados:
/etc/apache2/mods-available/,/etc/apache2/mods-enabled/ - Logs:
/var/log/apache2/
RHEL/CentOS:
- Configuración principal:
/etc/httpd/conf/httpd.conf - Módulos:
/etc/httpd/conf.modules.d/ - Sitios virtuales:
/etc/httpd/conf.d/*.conf - Logs:
/var/log/httpd/
Para el examen, es importante saber encontrar los archivos y entender la directiva principal.
18.6. Configuración básica de un Virtual Host
Un Virtual Host permite alojar múltiples sitios web con nombres de dominio o direcciones IP diferentes.
Ejemplo de Virtual Host basado en nombre (en /etc/apache2/sites-available/ejemplo.conf o /etc/httpd/conf.d/ejemplo.conf):
<VirtualHost *:80>
ServerAdmin admin@ejemplo.com
ServerName www.ejemplo.com
ServerAlias ejemplo.com
DocumentRoot /var/www/ejemplo
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/ejemplo>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
ServerName: nombre principal del sitio.DocumentRoot: directorio raíz del sitio.ErrorLogyCustomLog: ubicación de logs.<Directory>: control de acceso y opciones.
En Debian, se activa con sudo a2ensite ejemplo.conf y se recarga Apache con sudo systemctl reload apache2. En RHEL, basta con reiniciar/recargar httpd.
18.7. Control de acceso
Apache 2.4 utiliza directivas como Require all granted, Require all denied, Require ip 192.168.1.0/24, Require user usuario (con autenticación básica), etc.
Ejemplo de protección por contraseña de un directorio:
- Crear archivo de contraseñas:
sudo htpasswd -c /etc/apache2/.htpasswd usuario - En el VirtualHost, dentro de
<Directory>:
AuthType Basic
AuthName "Zona restringida"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
18.8. Módulos importantes
mod_rewrite: reescritura de URLs (se activa cona2enmod rewriteen Debian).mod_ssl: para HTTPS (se verá en Capítulo 23).mod_proxyymod_proxy_http: proxy inverso.mod_headers: manipular cabeceras HTTP.
Para listar módulos activos en Debian: apache2ctl -M. En RHEL: httpd -M.
18.9. Verificación de configuración
Antes de reiniciar, siempre verifica la sintaxis:
- Debian:
sudo apache2ctl configtest - RHEL:
sudo httpd -t
Parte III: Squid + SquidGuard
18.10. Squid: Proxy y caché
Squid es un servidor proxy con caché para HTTP/HTTPS/FTP. Permite acelerar el acceso a Internet y controlar el tráfico mediante listas de control de acceso (ACLs). SquidGuard es un complemento que añade filtrado de contenido (bloqueo de dominios, URL, expresiones regulares).
18.11. Instalación de Squid
- Debian/Ubuntu:
sudo apt install squid - RHEL/CentOS:
sudo yum install squid
Archivo de configuración principal: /etc/squid/squid.conf.
18.12. Configuración básica de Squid
Un proxy simple que solo permite el acceso a la red local:
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
http_port 3128
cache_dir ufs /var/spool/squid 100 16 256
visible_hostname proxy.ejemplo.com
acldefine listas (por dirección IP, dominio, puerto, etc.).http_accesspermite o deniega.http_port: puerto de escucha (por defecto 3128).cache_dir: directorio y parámetros de caché.
Tras modificar, reiniciar: sudo systemctl restart squid.
18.13. Configuración del cliente
Los clientes deben configurar el proxy en su navegador o sistema. Para uso temporal en línea de comandos:
export http_proxy=http://proxy.ejemplo.com:3128
export https_proxy=http://proxy.ejemplo.com:3128
18.14. SquidGuard: filtrado de contenido
SquidGuard se integra con Squid mediante el módulo redirect_program. Funciona con listas negras de dominios, URLs o expresiones regulares.
18.14.1. Instalación
- Debian/Ubuntu:
sudo apt install squidguard - RHEL/CentOS: puede requerir repositorios EPEL:
sudo yum install squidGuard
Archivos de configuración: /etc/squidguard/squidGuard.conf y bases de datos en /var/lib/squidguard/db/.
18.14.2. Configuración básica
En squidGuard.conf:
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
dest adultos {
domainlist adultos/domains
urllist adultos/urls
}
acl {
default {
pass !adultos all
redirect http://bloqueado.ejemplo.com
}
}
Se crean listas de dominios/URLs en los directorios correspondientes (un dominio por línea). Luego se compilan las bases de datos con squidGuard -C all.
18.14.3. Integración con Squid
En squid.conf, añadir:
redirect_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
Reiniciar Squid. Ahora las peticiones a dominios bloqueados serán redirigidas.
Parte IV: Postfix + Dovecot
18.15. Introducción al correo
Un sistema de correo completo consta de un MTA (Mail Transfer Agent) como Postfix, que envía y recibe correo entre servidores, y un servidor de buzones como Dovecot, que permite a los usuarios acceder a su correo mediante IMAP o POP3. Para el examen LFCS, se espera configurar un servidor básico de correo local con autenticación.
18.16. Postfix: MTA
18.16.1. Instalación
- Debian/Ubuntu:
sudo apt install postfix(durante la instalación pide tipo de configuración; elegir “Sitio de Internet”) - RHEL/CentOS:
sudo yum install postfix
Archivo de configuración principal: /etc/postfix/main.cf. Se recomienda usar postconf para visualizar o modificar parámetros.
18.16.2. Configuración básica
Parámetros esenciales en main.cf:
myhostname = mail.ejemplo.com
mydomain = ejemplo.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
mynetworks = 127.0.0.0/8 [::1]/128 192.168.1.0/24
myhostname: nombre FQDN del servidor.mydestination: dominios para los que este servidor entrega localmente.home_mailbox: buzón en formato Maildir (más moderno que mbox).mynetworks: redes que pueden retransmitir correo sin autenticación.
Después de editar, aplicar con sudo systemctl reload postfix o sudo postfix reload.
18.16.3. Verificación
postconf -nmuestra la configuración no predeterminada.postfix checkverifica sintaxis.- Logs en
/var/log/mail.log(Debian) o/var/log/maillog(RHEL).
18.17. Dovecot: IMAP/POP3
18.17.1. Instalación
- Debian/Ubuntu:
sudo apt install dovecot-imapd dovecot-pop3d - RHEL/CentOS:
sudo yum install dovecot
Archivos de configuración en /etc/dovecot/.
18.17.2. Configuración básica
En /etc/dovecot/dovecot.conf (o /etc/dovecot/conf.d/10-mail.conf, 10-auth.conf):
- Protocolos:
protocols = imap pop3 - Ubicación de buzones:
mail_location = maildir:~/Maildir - Autenticación: usar PAM (usuarios del sistema) por defecto.
Para habilitar PAM, en /etc/dovecot/conf.d/10-auth.conf:
disable_plaintext_auth = no
auth_mechanisms = plain login
18.17.3. Integración con Postfix
Postfix entrega en el buzón del usuario; Dovecot solo proporciona acceso IMAP/POP3. Para autenticación SMTP (envío) se puede configurar SASL con Dovecot, pero no es imprescindible para un laboratorio local.
18.18. Pruebas del sistema de correo
- Enviar un correo local:
echo "Prueba" | mail -s "Asunto" usuario@localhost - Ver buzón del usuario:
ls ~/Maildir/new/ - Conectar con un cliente de correo (ej.
muttothunderbird) vía IMAP alocalhost.
18.19. Ejercicios prácticos
NFS:
- Configura un servidor NFS que exporte
/srv/nfscon opcionesrw,sync,no_subtree_check. Monta en un cliente y crea archivos. Verifica que el usuario propietario se mapea correctamente. - Cambia a
all_squash,anonuid=1000,anongid=1000y observa cómo cambian los propietarios en el servidor. - Habilita el firewall para NFSv4 y prueba la conectividad.
- Configura un servidor NFS que exporte
Apache:
- Crea dos Virtual Hosts:
sitio1.ejemplo.comysitio2.ejemplo.com, apuntando a/var/www/sitio1y/var/www/sitio2. Configura los archivosindex.htmlcorrespondientes. - Protege el directorio
/var/www/sitio2/privadocon autenticación básica (htpasswd) y comprueba que pide usuario/contraseña. - Usa
apache2ctl -Mpara listar módulos y activamod_rewrite. Comprueba que aparece.
- Crea dos Virtual Hosts:
Squid + SquidGuard:
- Configura Squid en el puerto 3128 permitiendo solo la red local. Establece las variables
http_proxyy descarga una página web mediantecurl. - Instala SquidGuard y crea una lista negra con
facebook.com. Configura la redirección abloqueado.local. Compila y verifica quecurl -I http://facebook.comdevuelve una redirección.
- Configura Squid en el puerto 3128 permitiendo solo la red local. Establece las variables
Postfix + Dovecot:
- Configura Postfix con dominio
example.comy entrega en Maildir. Crea un usuario local y envíale un correo conmail. Verifica que el archivo aparece en~/Maildir/new/. - Configura Dovecot para IMAP y conecta con
mutt -f imap://usuario@localhost(instala mutt si es necesario). Lee el correo.
- Configura Postfix con dominio
18.20. Resumen y consejos para LFCS
- NFS: domina
exports,exportfs -r, opciones de squash y firewall. - Apache: entiende la estructura de sitios (Debian vs RHEL), Virtual Hosts, directivas de acceso y
configtest. - Squid: configura ACLs y
http_access; SquidGuard añade filtrado con listas negras. - Postfix + Dovecot: conoce
main.cfbásico (mydestination,mynetworks),home_mailbox, y la integración simple para IMAP. - En el examen, es probable que te pidan instalar y configurar uno o dos de estos servicios con requisitos específicos (p. ej., exportar un directorio NFS, o crear un Virtual Host Apache). Practica los flujos completos en un entorno de laboratorio hasta que puedas realizarlos sin dudar.
Con esto completas la base de los principales servicios de red. En el próximo capítulo nos enfocaremos en la configuración de un servidor FTP con acceso anónimo, una tarea clásica de administración.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.
