¿Qué está haciendo este servidor?

13

Tengo un montón de servidores virtuales de Linux de un departamento de TI anterior. Tienen nombres como 'magia' o 'cosas'. No estoy muy seguro de lo que están haciendo ... o si los necesito ...

¿Cómo harían ustedes, chicos y chicas, para descubrir el propósito de estas máquinas? (además de apagarlos y ver qué se rompe)

blsub6
fuente
2
¿Tiene credenciales para iniciar sesión en estas máquinas?
Skyhawk
Tengo las credenciales para hacer lo que necesito a las máquinas
blsub6
99
Comentario totalmente inútil, pero el título de esta pregunta sería un excelente programa de juegos.
Matt Simmons

Respuestas:

20

Un par de lugares para comenzar:

  • servicios de escucha ( netstat): en general, esto debería darle una idea decente de lo que está sucediendo con el sistema.
  • /root/.bash_history (o el de otros usuarios, si no usaron root), lo que sea que haya estado sucediendo en la consola, idealmente, estará relacionado con el propósito del sistema.
  • /var/log - Eche un vistazo a los registros estándar y busque cualquier cosa relacionada con la aplicación.
  • Paquetes instalados: esto es específico para la distribución de Linux que están ejecutando, pero si los registros están allí, eche un vistazo. /var/log/dpkg.log, /var/log/yum.logetc.
Shane Madden
fuente
2
Otras cosas a tener en cuenta son los trabajos cron (tanto el sistema /etc/crontabcomo /etc/cron.*los trabajos por usuario)
DerfK
1
¿Y qué hay de un ps uaxwo top, para ver qué está pasando? :)
KARASZI István
12

Apenas científico, lo sé, pero si obtienes el permiso de tu administración, consideraría pausar las máquinas virtuales: descubrirás si son importantes más rápido de lo que piensas, si permanece en pausa sin que nadie se queje ... bueno, eso dice usted otra cosa

En serio, podrías pasar una carrera tratando de resolverlos sin saber realmente todo lo que hacen. Pausarlos puede parecer extraño / draconiano, pero en ausencia de documentación, estoy seguro de que podría vender la idea a la gerencia, como una excepción al principio para ver cómo funciona de todos modos.

Chopper3
fuente
44
+1: la única forma de averiguar qué servicios está ejecutando algo es desactivarlo. Mi último trabajo tenía un "servidor de impresión" de Windows NT4 que funcionó años después de que debería haber muerto. El día que se apagó, se rompió un montón de cosas que nadie sabía que se estaba ejecutando en esa caja.
voretaq7
1
Pausa y espera. Y después de que pasaron dos meses y un usuario aleatorio se queja de que un recurso compartido, un acceso directo u otra cosa no funciona (¡pero funcionó!) Los activa.
adamo
55
@adamo ... momentáneamente para migrar los datos / funcionalidad a una máquina / VM compatible reconocida y luego apagarla nuevamente.
Chopper3
7

Me sorprendió ver que la primera respuesta sugerida no era ps -ef, así que la agregaré: si desea saber qué está haciendo un sistema en este momento , lea la lista de procesos, prestando especial atención a lo que está haciendo la raíz, y si hay procesos propiedad de usuarios con nombres conspicuos (mysql, named, etc.).

Luego compararía mi lista de procesos con la lsofejecución como root para ver qué procesos están escuchando en la red y cuáles contienen archivos abiertos. Por lo general, esto le da una imagen bastante buena de los procesos de larga ejecución en la caja, que comúnmente son su función principal.

Las excepciones notables incluyen el correo (consulte el syslog local y los mailqdetalles sobre lo que se procesa mediante sendmail) y los servicios de ejecución bajo demanda de tipo /etc/xinetd.confinted , para lo cual es una buena apuesta, al menos para las Linux más recientes basadas en Redhat.

Espero que ayude; háganos saber si se encuentra con algo en particular, ¡podemos ayudarlo a identificarlo!

Jeff Albert
fuente
+1 para lsof. lsof -ipuede ser tu mejor amigo en estas situaciones.
Brian
1

Comenzaría por ver qué servicios se están ejecutando ... Luego, intente relacionarlos con lo que están hospedando. Bajo ninguna circunstancia apague lo que no tiene idea de lo que está haciendo, ya que podría romper lo que esté ejecutando y si es una misión crítica (si esa es la ruta que está muriendo por tomar, pause) ... También debe verificar ver si hay algún tipo de documentación.

Jacob
fuente
1

Oh querido, esa es divertida.

¿Tienes alguna idea de para qué se usan? ¿Puede reducirlo a "estos se usaron para servicios de red", o podría ser realmente algo?

Diría que es necesaria una captura de paquetes en cada servidor, junto con una auditoría de todos los servicios en ejecución. Localice los archivos de configuración para cada servicio en ejecución y verifique cuándo se actualizaron los archivos por última vez, eso le dará una pista sobre si algo se ha personalizado y, de ser así, hace cuánto tiempo.

También puede ejecutar un escaneo de puertos en cada servidor para ver qué puertos están abiertos y responden.

Puede obtener pistas al consultar los servicios de red conocidos: EG, DNS, LDAP, etc. Debería poder encontrar una lista de todos los servidores DNS para una zona en particular al buscar registros NS. Tenga en cuenta que puede terminar con una lista más larga de registros NS que los servidores DNS realmente activos, pero le dará un punto de partida.

Ninguno de estos métodos es seguro por sí solo, pero si arroja múltiples métodos de auditoría en un cuadro en particular, sus posibilidades de encontrar todo lo que valga la pena encontrar aumentan.

¡Buena suerte!

Jeremy
fuente
+1 para la primera oración, que estoy seguro es lo que todos pensamos al leer la pregunta. :)
John Gardeniers
0

Un escaneo de puertos revelaría cualquier servicio accesible a la red

Desde el servidor localmente: nmap 127.0.0.1

O puede decirle a nmap que escanee una determinada subred / máscara

sreimer
fuente
2
O incluso solo netstat.
John Gardeniers
0

Otro ángulo es mirar lo que está configurado para conectarse a los servidores. Si foozle.example.com está configurado en el cliente de correo electrónico del CEO, probablemente sea el servidor de correo. Los clientes FTP probablemente apuntan a un servidor web de algún tipo. Etcétera etcétera.

Wyatt Barnett
fuente
Si bien eso funcionaría, el problema es que cualquier otra máquina y posiblemente incluso cada cuenta de usuario en esas máquinas tendría que verificarse, en lugar de solo las máquinas objetivo.
John Gardeniers
En realidad no: si de hecho se trata de servidores, la comprobación de una muestra debería indicarle cuál es la mayor parte de los cuadros. O al menos los comúnmente accedidos internamente. Me sorprende que también pueda mirar las reglas del firewall para cubrir los servicios accesibles externamente.
Wyatt Barnett
0

ps -ef para procesos, netstat -a para servicios de escucha y tcpdump para ver qué tráfico va y viene son excelentes sugerencias. Además, dado que es Linux, existe una buena posibilidad de que se esté ejecutando un firewall. Consulte las reglas configuradas para ello, debería darle una buena idea de qué servicios se espera que se usen en este host y en los hosts remotos a los que se conecta este host. . por ejemplo, iptables --list Por supuesto, qué firewall hay, hay otra cosa que debe verificarse, intente lsmod para buscar módulos de firewall y verifique / var / log

Bob T
fuente