Introducción
Después de configurar la configuración mínima necesaria para un nuevo servidor, hay algunos pasos adicionales que se recomienda altamente en la mayoría de los casos. En esta guía, continuaremos la configuración de nuestros servidores abordando algunos procedimientos recomendados, pero opcionales.
Requisitos previos y objetivos
Antes de comenzar esta guía, deberías seguir la guía de Configuración inicial del servidor CentOS 7. Esto es necesario para configurar tus cuentas de usuario, configurar la elevación de privilegios con sudo
y bloquear SSH por seguridad.
Una vez que hayas completado la guía anterior, puedes continuar con este artículo. En esta guía, nos centraremos en configurar algunos componentes opcionales pero recomendados. Esto implicará configurar nuestro sistema con un cortafuegos y un archivo de intercambio, y configurar la sincronización del Protocolo de Tiempo de Red.
Configuración de un cortafuegos básico
Los fuegos abiertos proporcionan un nivel básico de seguridad para tu servidor. Estas aplicaciones son responsables de rechazar el tráfico a cada puerto en tu servidor con excepciones para los puertos/servicios que hayas aprobado. CentOS incluye una firewall llamada firewalld
. Se utiliza una herramienta llamada firewall-cmd
para configurar políticas de la policía de fuego. Nuestra estrategia básica será bloquear todo lo que no tengamos una buena razón para mantener abierto. Primero instale firewalld
:
La aplicación firewalld
tiene la capacidad de hacer modificaciones sin perder las conexiones actuales, por lo que podemos activarla antes de crear nuestras excepciones.
Ahora que el servicio está up y corriendo, podemos usar la utilidad firewall-cmd
para obtener y establecer información sobre la política del fuego. La aplicación firewalld
se basa en el concepto de “zonas” para etiquetar la confiabilidad de otros host en una red. Este método nos permite asignar diferentes reglas dependiendo de cuánto confiamos en una red.
En este guía, solo ajustaremos las políticas de la firewall para la zona predeterminada. Cuando recargue nuestro firewall, esta será la zona aplicada a nuestras interfaces. Deberíamos comenzar agregando excepciones a nuestra firewall para servicios aprobados. El más esencial de ellos es SSH, ya que necesitamos mantener acceso administrativo remoto al servidor.
Si no ha modificado el puerto en el que el daemon SSH está ejecutándose, puede habilitar el servicio por nombre escribiendo:
Si has cambiado el puerto SSH para tu servidor, tendrás que especificar el nuevo puerto explícitamente. También necesitarás incluir el protocolo que utiliza el servicio. Solo escribe lo siguiente si tu servidor SSH ya ha sido reiniciado para utilizar el nuevo puerto:
Esto es lo mínimo necesario para mantener el acceso administrativo al servidor. Si planeas ejecutar servicios adicionales, también necesitas abrir el firewall para esos servicios.
Si planeas ejecutar un servidor web HTTP convencional, necesitarás habilitar el servicio http
:
Si planeas ejecutar un servidor web con SSL/TLS habilitado, también deberías permitir el tráfico para https
:
Si necesitas habilitar correo electrónico SMTP, puedes escribir:
Para ver servicios adicionales que puedes habilitar por nombre, escribe:
Cuando hayas terminado, puedes ver la lista de excepciones que se implementarán escribiendo:
Cuando estés listo para implementar los cambios, recarga el firewall:
Si, después de las pruebas, todo funciona como se esperaba, deberías asegurarte de que el firewall se inicie en el arranque:
Recuerda que tendrás que abrir el firewall explícitamente (con servicios o puertos) para cualquier servicio adicional que configure más tarde.
Configurar Zonas Horarias y Sincronización del Protocolo de Tiempo de Red
El siguiente paso es ajustar las configuraciones de localización para tu servidor y configurar la sincronización del Protocolo de Tiempo de Red (NTP).
El primer paso consistirá en asegurarte que el servidor funcione bajo el horario correcto. El segundo paso consistirá en configurar tu sistema para sincronizar su reloj de sistema con la hora estándar mantenida por una red global de servidores NTP. Esto ayudará a prevenir algunos comportamientos inconsistentes que puedan surgir de relojes desafinados.
Configurar zonas horarias
Primero debes establecer la zona horaria de tu servidor. Este proceso es muy simple y se puede realizar utilizando la comanda timedatectl
.
Primero, mira la lista de zonas horarias disponibles escribiendo:
Esto te mostrará una lista de las zonas horarias disponibles para tu servidor. Cuando encuentres la configuración de región/hora correcta para tu servidor, la establece escribiendo:
Por ejemplo, para establecerla en el tiempo oriental de los Estados Unidos, puedes escribir:
Tu sistema será actualizado para usar la zona horaria seleccionada. Puedes confirmar esto escribiendo:
Configura la sincronización de NTP
Ahora que tengas tu zona horaria configurada, deberías configurar NTP. Esto permitirá que tu computadora se mantenga sincronizada con otros servidores, lo que llevará a una mayor predicabilidad en operaciones que dependan de tener la hora correcta.
Para sincronización NTP usaremos un servicio llamado ntp
, el cual podemos instalar desde los repositorios predeterminados de CentOS:
A continuación, necesitarás iniciar el servicio para esta sesión. También debes habilitar el servicio para que se inicie automáticamente cada vez que el servidor se encuentre arranqueado:
Tu servidor ahora corregirá automaticamente su reloj de sistema para alinearse con las servidores globales.
Cree un Archivo de Swap
Agregando “swap” a un servidor Linux permite al sistema mover la información menos frecuentemente accesible de un programa en ejecución desde la RAM hacia un lugar en disco duro. Acceder a datos almacenados en el disco duro es mucho más lento que acceder a la RAM, pero tener disponible swap a menudo puede ser la diferencia entre que tu aplicación siga vivo y caiga. Eso es especialmente útil si planeas hospedar cualquier base de datos en tu sistema.
La asuncion sobre el mejor tamaño para un espacio de intercambio varía significativamente según la fuente consultada. Generalmente, un tamaño igual o doble del que tiene RAM en tu sistema es un buen punto de partida.
Asignar la cantidad de espacio que deseas utilizar para tu archivo de swap usando la utilidad fallocate
. Por ejemplo, si necesitas un archivo de swap de 4 Gigabytes ubicado en /swapfile
, podrías crearlo escribiendo:
Después de crear el archivo, necesitaré restringir el acceso al archivo para que otros usuarios o procesos no puedan ver lo que se escribe allí:
Ya tenemos un archivo con permisos correctos. Para indicarle a nuestro sistema que formatee el archivo para intercambio, podrías teclear:
Ahora, dirige a tu sistema que pueda usar la imagen de intercambio pulsando:
Nuestro sistema está usando la imagen de intercambio para esta sesión, pero necesitas modificar un archivo del sistema para que nuestro servidor haga esto automáticamente al arrancar. Puedes hacerlo teclando:
Con esta adición, tu sistema debería usar tu archivo de intercambio automaticamente en cada arranque.
¿Dónde Ir desde aquí?
Ahora tienes una configuración muy decente para tu servidor Linux. Desde aquí, hay muchos lugares donde ir. Primero, podrías desear hacer una instantánea de tu configuración actual.
Tomar una Instantánea de tu Configuración Actual
Si estás contento con tu configuración y deseas usar esta como base para futuras instalaciones, puedes tomar una instantánea de tu servidor a través del panel de control de DigitalOcean. A partir de octubre de 2016, las instantáneas cuestan $0.05 por gigabyte al mes basado en el espacio utilizado dentro del sistema de archivos.
Para hacer eso, debe apagar su servidor desde la línea de comandos. Aunque es posible hacer una imagen en ejecución, apagarlo garantiza que todos los archivos en el disco estén en un estado consistente:
Ahora, en el panel de control de DigitalOcean, puedes tomar una instantánea visitando la pestaña “Snapshots” de tu servidor:
Después de tomar tu instantánea, podrás usar esa imagen como base para instalaciones futuras seleccionando la instantánea de la pestaña “My Snapshots” durante el proceso de creación:
Después de tomar una instantánea, tendrás la libertad de elegir una imagen de la lista “My Snapshots” para usarla como base durante la creación de imágenes futuras:
Desde aquí, tu camino depende completamente de lo que desees hacer con tu servidor. La lista de guías siguientes es en ningún caso exhaustiva, pero representa algunas configuraciones más comunes que los usuarios adoptan posteriormente:
- Configuración de una pila LAMP (Linux, Apache, MySQL/MariaDB, PHP)
- Configuración de una pila LEMP (Linux, Nginx, MySQL/MariaDB, PHP)
- Instalación del CMS WordPress
- Instalando Node.js
- Instalando Puppet para administrar tu infraestructura
Conclusión
Ahora, deberías tener una buena base para configurar los servidores nuevos. Espero que también tengas una buena idea sobre qué pasos siguientes deberás tomar. No dude en explorar el sitio para más ideas que puedas implementar en tu servidor. ¡Libre de explorar!