Configuración de servidor
La configuración de servidores es el proceso de configurar y gestionar servidores para optimizar rendimiento y seguridad.
¿Qué es la Configuración de Servidores?
La configuración de servidores es el proceso de configurar y gestionar servidores para optimizar rendimiento, seguridad y disponibilidad.
Tipos de Servidores
Por Función
- Web: Servidores web
- Database: Servidores de base de datos
- Email: Servidores de correo
- File: Servidores de archivos
Por Sistema Operativo
- Windows: Windows Server
- Linux: Distribuciones Linux
- Unix: Sistemas Unix
- FreeBSD: FreeBSD
Por Virtualización
- Physical: Servidores físicos
- Virtual: Servidores virtuales
- Containers: Contenedores
- Cloud: Servidores en la nube
Configuración Básica
Sistema Operativo
1
2
3
4
5
6
7
8
9
10
11
| # Actualizar sistema
sudo apt update && sudo apt upgrade -y
# Instalar paquetes básicos
sudo apt install -y curl wget vim htop
# Configurar hostname
sudo hostnamectl set-hostname server01
# Configurar timezone
sudo timedatectl set-timezone Europe/Madrid
|
Red
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Configurar IP estática
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# Aplicar configuración
sudo netplan apply
|
Seguridad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Configurar firewall
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Configurar SSH
sudo nano /etc/ssh/sshd_config
# Permitir solo autenticación por clave
PasswordAuthentication no
PubkeyAuthentication yes
# Reiniciar SSH
sudo systemctl restart ssh
|
Configuración Avanzada
Servicios
1
2
3
4
5
6
7
8
9
10
11
12
| # Configurar Apache
sudo apt install apache2
sudo systemctl enable apache2
sudo systemctl start apache2
# Configurar MySQL
sudo apt install mysql-server
sudo mysql_secure_installation
# Configurar PHP
sudo apt install php libapache2-mod-php
sudo systemctl restart apache2
|
Monitoreo
1
2
3
4
5
6
7
8
| # Instalar herramientas de monitoreo
sudo apt install htop iotop nethogs
# Configurar logrotate
sudo nano /etc/logrotate.d/custom
# Configurar cron para tareas
sudo crontab -e
|
Backup
1
2
3
4
5
6
| # Configurar backup automático
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz /var/www/html
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
|
Casos de Uso
Web
- Sitios web: Hosting de sitios web
- APIs: Servicios de API
- Aplicaciones: Aplicaciones web
- CDN: Content Delivery Network
Base de Datos
- MySQL: Bases de datos MySQL
- PostgreSQL: Bases de datos PostgreSQL
- MongoDB: Bases de datos NoSQL
- Redis: Bases de datos en memoria
Email
- Postfix: Servidor de correo
- Dovecot: Servidor IMAP/POP3
- SpamAssassin: Filtro de spam
- ClamAV: Antivirus
Mejores Prácticas
Seguridad
- Hardening: Aplicar hardening
- Updates: Mantener actualizado
- Firewall: Configurar firewall
- Monitoring: Monitorear seguridad
Rendimiento
- Resources: Asignar recursos apropiados
- Optimization: Optimizar configuración
- Monitoring: Monitorear rendimiento
- Scaling: Planificar escalabilidad
Mantenimiento
- Backup: Respaldos regulares
- Updates: Actualizaciones regulares
- Monitoring: Monitoreo continuo
- Documentation: Documentación
Herramientas
Configuración
- Ansible: Automatización de configuración
- Puppet: Gestión de configuración
- Chef: Gestión de configuración
- Terraform: Infraestructura como código
Monitoreo
- Nagios: Monitoreo de servicios
- Zabbix: Monitoreo de infraestructura
- Prometheus: Monitoreo y alertas
- Grafana: Visualización de métricas
Backup
- rsync: Sincronización de archivos
- tar: Compresión de archivos
- Bacula: Sistema de backup
- Veeam: Backup empresarial
Conceptos Relacionados
Referencias