Un servidor Debian …

… pequeño y autosuficiente.

Introducción

Hace tiempo que escuché a Eugenia Bahit hablar sobre un script que había creado para configurar fácil y correctamente un servidor Debian desde el punto de vista de la seguridad. Perdí el enlace a la herramienta pero descubrí un proyecto sucesor de Jason Soto llamado JShielder que incluye un manual de uso en español informativo y práctico.

Con él como base he creado una definición de servidor Debian autosuficiente y que estoy utilizando en un par de proyectos con características similares: máquinas virtuales (VPS) con presencia en Internet y que ofrecen servicios web principalemente.

Aunque he estado tentado de crear esta entrada como una página, al final me he decidido por que permanezca como tal e ir actualizándola según convenga. Si no la incluyo en mi wiki es porque empiezo a estar un poco harto de las limitaciones organizativas de Mediawiki (al menos la versión que empleo) y quiero evitar dispersar información. Por ello estoy creando otras entradas y las iré enlazando aquí.

Premisas

Para que estas notas tengan sentido cada servidor de este tipo tiene que cumplir lo siguiente:

  1. Dirección IP fija.
  2. Un único interfaz de red físico.
  3. Nombre en la red completo (FQDN).

Operaciones

  1. Configurar los parámetros básicos del servidor.
  2. Configurar el envío (y la recepción) del correo electrónico.
  3. Crear accesos seguros (SSL) para los servicios que ofrece y asegurar su uso todo lo posible.
  4. Asegurar el servidor para que sufra el menor riesgo posible:
    1. Configurar servicios de acceso con unos mínimos
    2. Crear un usuario específico para tareas administrativas.
    3. Activar un cortafuegos restrictivo.
  5. Instalar un agente de monitorización.
  6. Establecer un mecanismo autónomo de copias de seguridad del sistema operativo.
Parámetros básicos
  1. Nombre completo del servidor (/etc/hostname).
  2. Direcciones IP locales (/etc/hosts).
  3. Mensajes de sistema para conexiones (/etc/motd,/etc/issue,/etc/issue.net).
  4. Ajustar la zona temporal (dpkg-reconfigure tzdata).
  5. Definir una máscara de permisos global (umask 027).
  6. Asegurar el directorio temporal.