Configuraciones adicionales recomendadas para servidores Ubuntu 14.04

Introducción

Después de configurar los ajustes mínimos para un nuevo servidor, hay algunos pasos adicionales que son altamente recomendados en la mayoría de los casos. En esta guía, continuaremos con la configuración de nuestros servidores abordando algunos procedimientos recomendados pero opcionales.

Prerrequisitos y Objetivos

Antes de comenzar esta guía, debes tener una configuración inicial del servidor Ubuntu 14.04. Esto es necesario para configurar tus cuentas de usuario, configurar la elevación de privilegios sudo y bloquear SSH por seguridad.

Una vez que haya completado esa configuración inicial, puedes continuar con este artículo. En esta guía, nos centraremos en la configuración de algunos componentes opcionales pero recomendados. Esto implicará configurar nuestro sistema con un servidor de seguridad, sincronización de protocolo de tiempo de red y archivos de intercambio.

Configuración de un firewall básico

Los firewalls proporcionan un nivel básico de seguridad para tu servidor. Estas aplicaciones son responsables de denegar el tráfico a todos los puertos de tu servidor con excepciones para los puertos/servicios que tú hayas aprobado. Ubuntu viene con una herramienta llamada ufw que se puede usar para configurar las políticas de tu firewall. Nuestra estrategia básica será bloquear todo lo que no tenemos una buena razón para mantenerlos abiertos.

Antes de habilitar o volver a cargar nuestro firewall, crearemos las reglas que definen las excepciones a nuestra política. Primero, debemos crear una excepción para las conexiones SSH para que podamos mantener el acceso para la administración remota.

El demonio SSH se ejecuta en el puerto 22 de manera predeterminada y ufw puede implementar una regla por nombre si el valor predeterminado no se ha cambiado. Así que, si has no modificado el puerto SSH, se puede habilitar la excepción escribiendo:

Si has modificado el puerto en el que está escuchando el demonio SSH, deberás permitirlo especificando el número de puerto real, junto con el protocolo TCP:

Esta es la configuración mínima del firewall. Solo permitirá el tráfico en su puerto SSH y todos los demás servicios serán inaccesibles. Si planeas ejecutar servicios adicionales, deberás abrir el firewall en cada puerto requerido.

Si planeas ejecutar un servidor web HTTP convencional, deberás permitir el acceso al puerto 80:

Si planeas ejecutar un servidor web con SSL/TLS habilitado, también debes permitir el tráfico a ese puerto:

Si necesitas habilitar el correo electrónico SMTP, deberás abrir el puerto 25:

Una vez que hayas terminado de agregar las excepciones, puedes revisar tus selecciones escribiendo:

Si todo se ve bien, puedes habilitar el firewall escribiendo:

Se te pedirá que confirmes tu selección, así que escribe “y” si deseas continuar. Esto aplicará las excepciones que hiciste, bloqueará el resto del tráfico y configurará tu firewall para que se inicie automáticamente en el arranque.

Recuerda que tendrás que abrir explícitamente los puertos para cualquier servicio adicional que puedas configurar más adelante.

Configurar zonas horarias y sincronización de protocolo de tiempo de red

El siguiente paso es establecer la configuración de localización para tu servidor y configurar la sincronización del Protocolo de tiempo de red (NTP).

El primer paso asegurará que tu servidor esté funcionando en la zona horaria correcta. El segundo paso configurará tu sistema para sincronizar el reloj de tu sistema con la hora estándar mantenida por una red global de servidores NTP. Esto ayudará a prevenir algunos comportamientos inconsistentes que pueden surgir de los relojes desincronizados.

Configurar zonas horarias

Nuestro primer paso es establecer la zona horaria de nuestro servidor. Este es un procedimiento muy simple que puede lograrse reconfigurando el paquete tzdata:

Se te presentará un sistema de menú que te permite seleccionar la región geográfica de tu servidor:

Después de seleccionar un área, podrás elegir la zona horaria específica que sea adecuada para tu servidor:

Tu sistema se actualizará para utilizar la zona horaria seleccionada, y los resultados se imprimirán en la pantalla:

A continuación, pasaremos a configurar NTP.

Configurar la sincronización NTP

Ahora que ya tienes configurada tu zona horaria, debemos configurar NTP. Esto permitirá que tu computadora se mantenga sincronizada con otros servidores, lo que llevará a una mayor previsibilidad en las operaciones que dependen de tener la hora correcta.

Para la sincronización NTP, usaremos un servicio llamado ntp, que podemos instalar desde los repositorios predeterminados de Ubuntu:

Crear un archivo swap

Al agregar “swap” a un servidor Linux, el sistema puede mover la información a la que se accede con menor frecuencia de un programa en ejecución desde la RAM a una ubicación en el disco. Acceder a los datos almacenados en el disco es mucho más lento que acceder a la memoria RAM, pero tener swap disponible a menudo puede ser la diferencia entre que tu aplicación se mantenga activa y se bloquee. Esto es especialmente útil si planeas alojar bases de datos en tu sistema.

Nota

Aunque swap generalmente se recomienda para los sistemas que utilizan discos duros giratorios tradicionales, el intercambio con SSD puede causar problemas con la degradación del hardware a lo largo del tiempo. Debido a esta consideración, no recomendamos habilitar swap cualquier proveedor que utilice el almacenamiento de SSD. Hacerlo puede afectar la confiabilidad del hardware subyacente para ti y tus vecinos.

Si necesita mejorar el rendimiento de tu servidor,te recomendamos que actualices tu Droplet. Esto llevará a mejores resultados en general y disminuirá la probabilidad de contribuir a problemas de hardware que pueden afectar tu servicio.

El asesoramiento sobre el mejor tamaño para un espacio de swap varía significativamente según la fuente consultada. En general, un buen punto de partida es una cantidad igual o el doble de RAM en tu sistema.

Asigna el espacio que deseas utilizar para tu archivo de intercambio utilizando la utilidad fallocate. Por ejemplo, si necesitamos un archivo de 4 Gigabytes, podemos crear un archivo swap ubicado en /swapfile:

Después de crear el archivo, debemos restringir el acceso al archivo para que otros usuarios o procesos no puedan ver lo que está escrito allí:

Ahora tenemos un archivo con los permisos correctos. Para indicar a nuestro sistema que formatee el archivo para swap, podemos escribir:

Ahora, dile al sistema que puede usar el archivo de swap escribiendo:

Nuestro sistema está utilizando el archivo de swap para esta sesión, pero necesitamos modificar un archivo del sistema para que nuestro servidor lo haga automáticamente en el arranque. Puedes hacerlo escribiendo:

Con esta adicción, tu sistema debería usar su archivo de swap automáticamente en cada arranque.

¿Qué hacer ahora?

Ahora tienes una configuración de inicio muy decente para tu servidor Linux. Desde aquí, hay varias cosas que puedes hacer ahora. Primero, es posible que desees hacer un Snapshot de tu servidor en su configuración actual.

Tomar un Snapshot de su configuración actual

Si estás satisfecho con tu configuración y deseas utilizar esto como base para futuras instalaciones, puedes tomar una instantánea de su servidor

Para prepararte para el Snapshot, cierra tu servidor desde la línea de comandos. Aunque es posible tomar una instantánea de un sistema en ejecución, el apagar conduce a mejores garantías de que el sistema de archivos será consistente:

Después de tomar tu Snapshot, podrás usar esa imagen como base para futuras instalaciones.

Desde aquí, tu ruta depende completamente de lo que desees hacer con tu servidor. La lista de guías a continuación no es de ninguna manera exhaustiva, pero representa algunas de las configuraciones más comunes que los usuarios necesitan:

Conclusión

Para este punto, debes saber cómo configurar una base sólida para tus nuevos servidores. Con suerte, también tienes una buena idea para tus próximos pasos. Siéntete libre de explorar nuestro sitio para obtener más ideas que puedes implementar en tu servidor.