Recogiendo las piezas después de faltar el administrador de Linux [cerrado]

8

Entonces, nuestro administrador de Linux dejó nuestro proyecto y de repente yo (el codificador web con conocimientos básicos de Linux / servidor) soy responsable de nuestro servidor dedicado (Servidor Ubuntu) que ejecuta principalmente un sitio web (apache / mysql / php) y correo (Postfix). Nuestro administrador no era realmente un administrador profesional de Linux, sino un tipo con conocimientos básicos de Linux que descubrió cosas a medida que avanzaba. Así que espero configuraciones funky, servicios inseguros, etc.

Mis preguntas son:

  1. ¿Cómo realizo una "auditoría" del servidor para determinar su estado actual, para asegurarme de que las cosas están configuradas correctamente, que no hay cuentas de usuario innecesarias, que no estamos ejecutando servicios innecesarios, etc.

  2. No estoy seguro de cómo hacer una copia de seguridad de nuestro sitio web de producción. Además de los archivos CMS y db reales, hay configuraciones de apache, bases de datos de correo y más que necesitan copia de seguridad. ¿Alguna sugerencia sobre cómo automatizar esto?

  3. ¿Cuáles son las tareas diarias más importantes de un administrador de Linux que tengo que realizar absolutamente? Gran pregunta, lo sé.


fuente
¿Qué quieres decir con una configuración "funky"? Cuando mi generación usó la palabra significaba que algo estaba bien.
John Gardeniers

Respuestas:

11

Guau. Donde empezar.

Esto es lo que haría, pero espero que otros salten con más / mejores sugerencias.

Primero no entres en pánico. Supongo que ahora eres root. Actualmente es la amenaza más peligrosa para el servidor en este momento, ya que tiene mucho poder y no tiene mucha idea de qué hacer con él.

Anote qué servicios debe ejecutar el servidor. Sabes que apache, mysql y postfix son obligatorios. Supongo que puede tener un servidor ftp allí y puede ingresar ssh, por lo que necesita ejecutar sshd. Anote qué servicios están instalados. Probablemente, la forma más rápida de averiguarlo sea enumerando /etc/init.d/* Luego debe averiguar qué se está ejecutando. No sé cuál es el equivalente al chkconfig de Red Hat, pero si falla una alternativa ps -ef, se enumerarán los procesos que se están ejecutando actualmente. También averigüe si hay un firewall instalado (como iptables) y cómo está configurado.

A continuación, obtenga una lista de todos los cronjobs que se ejecutan. Probablemente no necesite preocuparse demasiado por lo que hacen de inmediato, pero debe tener una idea general de lo que está haciendo el servidor en diferentes momentos.

De nuevo, escribiría todo esto.

Ahora escriba quién debe tener acceso al servidor y quién puede tener acceso de root. Obtenga una lista de usuarios que tienen cuentas de / etc / passwd.

Haga algo similar para el acceso FTP y otros servicios si son relevantes, como Subversion o conexiones remotas de MySQL.

Ahora que sabe un poco más sobre lo que está haciendo su servidor y quién puede acceder a él, debe pasar a ver qué tan bien lo está haciendo. Verifique los archivos de registro en / var / log, especialmente / var / log / messages y pase algún tiempo buscando errores.

Compruebe si hay actualizaciones pendientes que hacer con apt-get update && apt-get upgrade

Cuando se le solicite actualizar, elija no por ahora.

Hasta ahora no deberías haber hecho cambios.

Ahora debe revisar la información que ha recopilado y decidir qué (si es que hay algo) necesita arreglarse. Las prioridades son intentos de descifrado en /var/log/auth.log, cerrando servicios que no son necesarios y ajustando el firewall.

Haga copias de todos los archivos antes de editarlos y pruebe los cambios a menudo para que pueda retroceder fácilmente si algo se rompe.

Copias de seguridad

Deberá decidir qué debe respaldarse. Los candidatos obvios son bases de datos, / home / / etc / / var / log / / var / spool / cron / / var / www / y cualquier script personalizado llamado por crontabs. Luego, la mayoría de la gente escribe un script de shell para respaldar esto localmente y luego usa algo como rsync para copiar los archivos a otra unidad USB de la máquina.

Las tareas diarias incluirán, verificar los archivos de registro para detectar cualquier problema (consulte logwatch para ayudarlo), realizar actualizaciones de seguridad, verificar copias de seguridad y avanzar configurando monitoreo como MRTG y Nagios para eventualmente eliminar el trabajo pesado de ser un administrador .

Sin embargo, no me preocuparía demasiado. Puede parecer desalentador, pero eso se debe a que lo está pidiendo todo de una vez. Probablemente el servidor esté bien como está, vigile los registros y aplique las actualizaciones a medida que se lanzan, planifique lo que desea hacer y trabaje para lograrlo, tome pequeños pasos e intente disfrutarlo.

Richard Holloway
fuente
3
Antes de hacer cualquier otra cosa, imagino y / o P2V ese tonto.
Orangutech
+1 para obtener una instantánea actual. Tarball el servidor sobre SSH o rsync como mínimo.
Gerald Combs
1
Al obtener los servicios que están instalados, ejecute también "dpkg -l> ~ / installation_software". Esto escribirá una lista de los paquetes que se instalaron a través de apt-get en un archivo llamado "software_instalado" en su directorio de inicio. Verifique si hay servicios en ejecución que no se instalaron a través de apt-get. Es posible que el administrador anterior no haya instalado los servidores a través de apt-get, y esos servicios deberán actualizarse por otros medios que no sean "apt-get upgrade". Uno pensaría que esto sería raro, pero no lo es.
Dru
Otra sugerencia adecuada sería obtener los archivos de configuración bajo alguna forma de control de versiones. Luego, a medida que realiza ajustes o cambia las cosas para adaptarse a su forma de pensar, puede rastrear esos cambios y ver exactamente dónde se equivocó. O tal vez tienes suerte, pero sigue siendo un buen consejo.
OldTroll
Todo esto es un gran consejo. Además de lo anterior, ejecutaría netstat -tanp y / o -anp para mostrar detalles sobre las conexiones activas y de escucha y sus procesos asociados.
nedm
5

Algunas cosas para comenzar:

  1. busque a alguien que ya haya realizado una auditoría de este tipo, o al menos tenga algún conocimiento sobre las dificultades comunes para mantener un servidor. En serio, vale la pena.

  2. Realice una copia de seguridad lo mejor que pueda e intente reconstruir un servidor de repuesto, podría ser una instancia virtual en algún lugar, hasta que esté seguro de que a) ha realizado una copia de seguridad de todas las cosas importantes yb) puede reconstruir el servidor de repuesto su respaldo en tan poco tiempo como lo desee. Para agregar karma: intercambie el servidor de producción actual con su servidor de reserva. Mientras no haya demostrado que puede reconstruir desde su copia de seguridad, actúe como si no tuviera ninguno.

  3. Actualice, lea los avisos de seguridad, vigile los archivos de registro y automatice todo esto una vez que sepa qué buscar.

Olaf
fuente
3
+1 por encontrar a alguien que sepa lo que está haciendo. Será más barato a largo plazo.
David Mackintosh
1
+ 1 por lo mismo, pero iría aún más lejos y sugeriría que alguien que sea demostrablemente más experto se asegure de que todo el sistema esté en un estado apropiado. Un sistema en vivo no es un lugar para aprender desde cero.
John Gardeniers
totalmente de acuerdo, pero como el sistema ya está en vivo, supongo que no hay forma de aprender en un sistema en vivo.
Olaf
1

Para manejar más fácilmente los archivos de registro, puede considerar instalar (o activar ... No sé si ubuntu tiene esto en la instalación predeterminada) LOGWATCH. Es muy bueno darle un resumen enviado por correo electrónico todos los días. Por lo general, recoge algunas cosas funky que un vistazo @ configs no pueden descubrir.


fuente
1

Si valora su servidor y sus datos, obtenga ayuda. Haz que alguien lo audite.

Si no sabe cómo se ve "correcto", entonces puede ser difícil detectar dónde está algo "incorrecto" (o como lo dice "funky"). Una vez que alguien el servidor está en un buen estado conocido.

Usar una cosa como VMWare Converter para hacer una VM provisional del servidor es una GRAN idea, deberías investigar eso.

Luego puede hurgar en la máquina virtual de ensayo (copia del servidor) e intentar hacer cada cosa que se le pida que haga primero en el servidor de ensayo de la máquina virtual antes del servidor de producción.

JamesBarnett
fuente
0

Después de hacer lo que dice Richard Holloway; luego haga un escaneo de la red del sistema para verificar qué servicios proporciona el servidor y coteje esto con los datos que tiene hasta ahora. Es posible hacer cosas realmente interesantes con Linux que son difíciles de encontrar simplemente mirando los registros.

Sugiero usar Zenmap desde otro sistema en la misma red y obtener primero las autorizaciones que necesite de sus jefes. Zenmap es simple de instalar, es / tiene una GUI y no intenta explotar nada de lo que se encuentra.

Dru
fuente