Gestión Avanzada de Servidores Linux: Mejores Prácticas
La administración de servidores Linux es fundamental para mantener infraestructuras robustas y seguras. En este artículo exploramos las mejores prácticas para la gestión diaria de servidores Linux.
Configuración Inicial del Servidor
Actualización del Sistema
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# RHEL/CentOS/Rocky
sudo dnf update -y
Configuración de SSH Seguro
# Editar configuración SSH
sudo nano /etc/ssh/sshd_config
# Cambios recomendados:
# Port 2222
# PermitRootLogin no
# PubkeyAuthentication yes
# PasswordAuthentication no
Monitoreo de Recursos
Comandos Esenciales
htop- Monitor de procesos interactivoiotop- Monitor de I/O por procesonetstat -tulpn- Conexiones de red activasdf -h- Uso de espacio en discofree -h- Memoria RAM disponible
Scripts de Monitoreo Automatizado
#!/bin/bash
# monitor.sh - Script básico de monitoreo
echo "=== ESTADO DEL SERVIDOR ==="
echo "Fecha: $(date)"
echo "Uptime: $(uptime)"
echo "Uso de CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)"
echo "Memoria: $(free | grep Mem | awk '{printf("%.2f%%\n", ($3/$2) * 100.0)}')"
echo "Disco: $(df -h / | awk 'NR==2{printf "%s\n", $5}')"
Gestión de Usuarios y Permisos
Creación de Usuarios del Sistema
# Crear usuario para aplicaciones
sudo useradd -r -s /bin/false appuser
# Crear usuario administrador
sudo useradd -m -s /bin/bash admin
sudo usermod -aG sudo admin
Configuración de Sudoers
# Editar sudoers de forma segura
sudo visudo
# Ejemplo de configuración
admin ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /usr/bin/tail
Automatización con Cron
Tareas de Mantenimiento
# Backup diario a las 2:00 AM
0 2 * * * /scripts/backup.sh
# Limpieza de logs semanalmente
0 3 * * 0 /usr/sbin/logrotate /etc/logrotate.conf
# Verificación de actualizaciones
0 9 * * 1 /usr/bin/apt list --upgradable
Optimización de Rendimiento
Kernel Parameters
# /etc/sysctl.conf
vm.swappiness=10
net.core.rmem_max=134217728
net.core.wmem_max=134217728
net.ipv4.tcp_rmem=4096 87380 134217728
Configuración de Límites
# /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
Backup y Recuperación
Script de Backup Incremental
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
# Crear backup incremental con rsync
rsync -avz --link-dest=$BACKUP_DIR/latest \
$SOURCE_DIR $BACKUP_DIR/$DATE
# Actualizar enlace simbólico
ln -sfn $BACKUP_DIR/$DATE $BACKUP_DIR/latest
Conclusión
Una gestión eficiente de servidores Linux requiere:
- Configuración segura desde el inicio
- Monitoreo constante de recursos
- Automatización de tareas rutinarias
- Estrategias sólidas de backup
- Optimización continua del rendimiento
Implementar estas prácticas asegura la estabilidad y seguridad de tu infraestructura.