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