Soy responsable de administrar tanto nuestro servidor de producción (correo, web, base de datos están en un solo servidor) como nuestro servidor de prueba. Ambos están construidos en Debian. Sin embargo, como soy muy nuevo en la administración del sistema, solo he estado instalando actualizaciones, ya que me encuentro con cosas que deben actualizarse para poder tener nuevas funciones y obtener correcciones de errores. Es un proceso bastante ad hoc en este momento, y me gustaría hacerlo menos.
Entonces, me pregunto cómo las personas que saben lo que están haciendo manejan esto. ¿Con qué frecuencia realiza actualizaciones en sus servidores? ¿El proceso de actualización es diferente entre prueba y producción? ¿Siempre actualiza primero los servidores de prueba? ¿Y realiza una actualización completa de todo el software, o simplemente instala las actualizaciones seleccionadas?
Además de las respuestas anteriores, un par de cosas más específicamente sobre Debian: debe suscribirse a debian-security-anunciar y debian-anunciar y / o visitar la página de Debian Security .
fuente
Suponiendo que esté ejecutando la versión estable de Debian, la mayoría de los parches estarán relacionados con la seguridad o los errores, lo que significa que no habrá demasiados cambios importantes entre las versiones de un paquete dado. De acuerdo con la política de parches de Debian, los parches también deberían haberse estado probando durante algún tiempo antes de que el mantenedor los trasladara a la rama estable. Obviamente, esto no detendrá las roturas al parchar, pero debería evitarlas en la mayoría de los casos.
Sería prudente asegurarse de que su servidor de pruebas se mantenga actualizado y que los paquetes que tengan errores que lo afecten a usted y a sus servidores deben mantenerse actualizados. Todos los paquetes que tienen avisos de seguridad contra ellos deben actualizarse tan pronto como sepa que el parche es estable.
Debian suele ser un sistema operativo muy estable y no debe preocuparse demasiado por las roturas, sin embargo, siempre lea lo que se actualizará antes de actualizarse y esté atento a cualquier cosa que parezca extraña. También uso VCS en mi / etc / dir para asegurarme de que cualquier cambio en el archivo de configuración se pueda ver con un comando 'git diff'.
fuente
Hago una prueba en seco (primero) para ver qué se va a actualizar. A veces, las bibliotecas (llamémoslo libfoo para este ejemplo) cambian su API, lo que rompe los programas que escribimos / instalamos nosotros mismos. Si se actualiza alguna biblioteca crítica, tomo la fuente e intento reconstruir nuestras cosas antes de actualizar.
También verifico que no saltemos a una versión intermedia de algún servicio público, es decir, apache, etc. Prefiero quedarme un año atrás y no encontrar roturas al azar, a menos que la actualización sea crítica.
Si usted es un administrador del sistema, debería extraer los canales RSS de sitios como Secunia , lo que debería informarle con anticipación si su distribución va a generar algunos parches.
Nunca, nunca, solo actualice / actualice ciegamente. Desafortunadamente, la tarea de saber qué está roto recae en usted, no en su administrador de paquetes de distribución, especialmente si sus sistemas admiten programadores.
fuente
Cuando trabajo, tenemos un proceso bastante extenso que implica el uso de un software llamado PatchLink para notificarnos sobre las actualizaciones más importantes relacionadas con la seguridad, y las aplicamos después de las pruebas, paquete por paquete. Sin embargo, tenemos miles de servidores.
Si solo tiene dos servidores, el proceso debería ser mucho más simple. Aunque no creo que hacer una "actualización / actualización apt-get" sea su mejor opción.
Monitorearía los parches para el software que está ejecutando y tomaría decisiones basadas en las correcciones en esas versiones sobre cuándo actualizar.
Como tiene un servidor de prueba, obviamente, siempre pruebe la actualización antes de aplicarla.
fuente
Las actualizaciones manuales son mejores como se menciona aquí en el sentido de que puede ver lo que está sucediendo. Sin embargo, para un gran número de servidores que pueden ser poco prácticos. La ejecución en seco es una práctica estándar, de hecho, la mayoría de los administradores de paquetes le preguntarán antes de continuar.
La actualización periódica suele ser la mejor, aunque puede ser un poco un acto de equilibrio. Las actualizaciones frecuentes significan menos de una vez y menos de fallar a la vez. Si las cosas salen mal, hay menos candidatos para inspeccionar. Los paquetes también son un poco mejores para actualizar en pasos más pequeños, ya que generalmente cuando las actualizaciones del programador están mirando desde la última versión a la siguiente, si puede prestar atención más allá de la última versión puede variar, aunque esto tiende a importar principalmente para software que evoluciona rápidamente.
No todas las actualizaciones no son disruptivas. Querrás tener cuidado con esto. Algunos reiniciarán los servicios y provocarán un tiempo de inactividad.
En una configuración ideal, puede tener lo siguiente:
Algunos de estos pueden ser excesivos en diversos grados para configuraciones pequeñas, pero deben tenerse en cuenta.
En términos generales, las actualizaciones suelen ser relativamente indoloras para las distribuciones de servidores. Esto se debe a que casi siempre solo se adhieren a correcciones de errores y actualizaciones de seguridad. Sin embargo, puede tener problemas si la gente ha hecho cosas extrañas al sistema o si agrega fuentes de paquetes adicionales.
Aunque es moderadamente raro, ocasionalmente cometen errores y rompen la compatibilidad entre versiones de paquetes menores.
fuente
Me gusta cron-apt para automatizar este proceso, pero como @dinomite señaló en otra pregunta con respecto a las actualizaciones, configurarlo específicamente para automatizar las actualizaciones relacionadas con la seguridad es una idea muy inteligente: luego puede actualizar manualmente lo que necesita. Había estado usando cron-apt para todas las actualizaciones, pero en realidad cambié esto en función de su respuesta. Si te gusta, probablemente deberías votar su respuesta en lugar de esta.
fuente
En Debian, instalo cron-apt y edito su archivo de configuración para enviarme un correo electrónico si hay algún cambio. de esta manera me notifican si hay actualizaciones para mis sistemas y hago las actualizaciones a mano
fuente
En la misma línea que cron-apt, debería echar un vistazo al paquete de actualizaciones desatendidas http://packages.debian.org/lenny/unattended-upgrades .
Es muy fácil de configurar y le permitirá descargar y aplicar actualizaciones de seguridad automáticamente, pero dejará otras actualizaciones para la actualización manual (o, a su discreción, ¡actualice todo!
La Guía oficial de Ubuntu Server tiene una sección razonablemente detallada que cubre el uso del paquete de actualizaciones desatendidas https://help.ubuntu.com/9.04/serverguide/C/automatic-updates.html
Nota: dependiendo de su nivel de precaución / paranoia, primero puede hacer una actualización progresiva en un grupo de servidores de prueba, luego, si no hay problemas, permita que se actualicen sus cajas de producción, aunque personalmente no he encontrado ningún problema con las actualizaciones de seguridad causando estragos hasta ahora (toco madera) ...
También hay una opción de configuración para enviarle los resultados de cada actualización de seguridad, una vez que se aplica. Además, si hubo algún cuadro de diálogo o mensajes interactivos que se presentaron durante la actualización, los que necesitarán ajustes manuales por parte de un administrador de sistemas, también los mencionará.
fuente
Personalmente apago las actualizaciones automáticas y no realizo regularmente ningún tipo de actualización de paquetes en servidores en mis entornos, a menos que: (a) haya un importante aviso CERT para uno de los paquetes en mi sistema; (b) Necesito actualizar paquetes individuales por razones específicas; (c) El sistema operativo o los paquetes están llegando al final del ciclo, ya no serán compatibles y debemos seguir teniendo soporte. Mi razonamiento es que la actualización sin saber qué se está cambiando o por qué deja demasiado espacio para que algo se rompa. Llevo 14 años haciendo cosas como esta y funciona bien.
fuente
Además de las cosas que se mencionan, debe usar algún tipo de herramienta de monitoreo (Nagios o lo que sea que flote en su bote) para alertarlo sobre las actualizaciones.
En cuanto a la frecuencia: ¡Tan pronto como haya una actualización disponible!
fuente