En la actualidad es bastante fácil montar una instalación para un servidor dedicado basado en Linux y ponerlo en línea. Ya sea para montar un sitio web, una aplicación o cualquier otra necesidad relacionada, montar un servidor dedicado basado en Linux puede ser una tarea que nos lleve solo unas cuantas horas realizar incluso para un desarrollador que no tenga tanta experiencia en hacerlo siguiendo las muchísimas guías que al respecto existen en internet. Incluso existen también muchas compañías que rentan servidores dedicados con las que podemos tener un servidor corriendo en unas cuantas horas.
En cambio, la facilidad de instalar un servidor y comenzar a utilizarlo contrasta mucho con la necesidad de mantenerlo y estarlo vigilando constantemente para asegurarse de que el sistema es estable y tiene lo necesario para mantenerse en línea en un futuro cercano. El éxito de mantener un servidor activo y en línea en el corto plazo depende directamente de la previsión que tengamos por adelantado.
El problema de la falta de previsión respecto al mantenimiento de un servidor web es que uno se puede “salir con la suya” durante meses o años, con lo que pareciera que nuestro servidor corre perfectamente, pero esta falta de previsión puede volverse una situación crítica durante los peores momentos por los que atraviesa nuestro sistema, como los impactos de un tráfico elevado repentino, un disco duro que falla o un intento de hackeo.
Algunos de los aspectos principales que debemos de cuidar en la administración de nuestro servidor dedicado son los siguientes:
Backups o respaldos: el corazón de nuestra previsión
Un aspecto que puede parecer bastante obvio y que probablemente la mayoría de los administradores de sistemas cuidan, al menos en parte, es el de la realización de respaldos de la información. Si no tenemos un esquema sólido de respaldos, simplemente hay que hacerlo ya. No hay otra manera de estar seguros que nuestra información está a salvo más que teniéndola respaldada de tal forma que si algo catastrófico sucede con nuestro servidor, nosotros podemos recuperar al menos la mayor parte de nuestra información desde nuestra fuente de respaldos. Existen ciertas tecnologías a explorar para apoyarnos a elaborar nuestra estrategia de backups como lo son rsync, tar y similares. También debemos de tener cuidado de como respaldamos otro tipo de información como son las bases de datos de MySQL. Dependiendo de nuestros requerimientos podremos elaborar nuestra propia estrategia de backup, pero en general debemos de pensar en que esta debe considerar las siguientes condiciones:
– Debe correr con suficiente regularidad (diaria, cada dos días, etc.)
– Debe mantener varias versiones de nuestro respaldo (a veces es conveniente mantener un respaldo diario, uno semanal y uno mensual)
– Debe de limpiar los respaldos viejos
– Debe realizarse en localidades físicas externas a dónde se encuentra nuestro servidor o infraestructura principal (¿que tal si se incendia el centro de datos donde se encuentra el servidor principal y también el de backup?)
– La información debe estar muy segura en nuestra infraestructura de respaldo también, no solo en la principal.
– Hay que verificar que se están incluyendo todos los datos críticos para poder recuperar nuestro sistema.
En alguna publicación futura profundizaremos sobre las estrategias de backup adecuadas para mantener nuestra infraestructura a flote.
Probar nuestros backups: si ya hicimos respaldos, hay que verificar que funcionen
Una vez que ya tenemos una excelente (o por lo menos suficiente) estrategia de respaldos para nuestro servidor, es importantísimo que verifiquemos que los respaldos automatizados se están haciendo correctamente y que los archivos producidos por nuestros respaldos son válidos (no están corruptos) y se pueden utilizar efectivamente para restaurar nuestro sistema en caso de una catástrofe de datos.
Rotación de logs: que no se coman tu espacio
Un aspecto secundario, pero no por eso menos importante, es verificar que los logs o registros de actividad que nuestro servidor web genera de forma automáticamente están siendo limpiados cada cierto tiempo, esto para prevenir que sigan creciendo y creciendo sin parar y eventualmente terminen por acabarse todo nuestro espacio disponible en el peor momento posible y sin que nos hayamos podido prevenir.
Monitorear los recursos: el “check-up” de la salud de nuestro servidor
Importantísimo: debemos de monitorear con regularidad las cargas de nuestro CPU, el uso de la memoria, el espacio en disco disponible, el ancho de banda usado. Esto es importantísimo para saber la salud de nuestro sistema y detectar posibles upgrades que debamos realizar antes de que el hardware de nuestro servidor se vea rebasado por la demanda del mismo y se nos vaya a “caer” un tiempo antes de que podamos hacer un upgrade no previsto.
Monitoreo de procesos y servicios: ¿está todo funcionando en éste momento?
Mantener Apacha, MySQL, los servicios de e-mail (pop, smtp, imap) y otros servicios corriendo puede ser crucial para el funcionamiento de nuestro servidor. Es muy recomendable apoyarnos en alguna herramienta que automatice el proceso de monitoreo de servicios para que no nos enteremos que algún servicio de nuestro servidor no está en línea hasta que un usuario se queja amargamente con nosotros.
Endurecer nuestro servidor (Hardening): Solo los servidores rudos sobreviven
El proceso de hardening o endurecimiento consiste en muchas acciones distintas que se pueden tomar para fortalecer la seguridad de nuestro servidor. Para comenzar, es muy importante que sepamos qué procesos están corriendo en nuestro servidor, qué puertos tenemos abiertos, si tenemos o no habilitada alguna herramienta de prevención de intrusiones, etc. Es importantísimo investigar un poco más y llevar la vanguardia en cuanto a los procedimientos de seguridad que podemos llevar en nuestro servidor previniendo cualquier tipo de ataque.
Actualizaciones de seguridad: a veces tedioso pero muy importante
Muchos de los creadores de los programas que utilizamos en nuestro servidor, regularmente liberan nuevos parches y actualizaciones de seguridad que desarrollan al descubrirse nuevas vulnerabilidades en sus sistemas. El proceso de aplicar estos parches y actualizaciones es muchas veces olvidado y/o pasado por alto por algunos administradores de sistemas, sin embargo el ignorar estas actualizaciones de seguridad es una de las principales rutas por las que los atacantes pueden ingresar a un sistema (ya que en general estas vulnerabilidades de los programas son bien conocidas y publicadas en internet y son relativamente fáciles de emplear para vulnerar un sistema).
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.