¿De qué maneras puedo hacer un seguimiento de los cambios de archivos que los usuarios realizan a través de SSH y las direcciones IP correspondientes?

Mi equipo inicia sesión en un servidor de desarrollo con la misma contraseña de root; No hemos creado cuentas de usuario separadas.

Asumo que tienes una muy buena razón para hacer esto; solo leerlo me provocó escalofríos.

Según tengo entendido, el subsistema de auditoría no rellena automáticamente sus entradas con información de IP / nombre de host asociada; los demonios como sshd tienen que proporcionarlos explícitamente para auditarlos de alguna manera, y los comandos a nivel de usuario como su editor favorito no lo harán en absoluto, ya que no les importa de dónde los está ejecutando.

Dado que todos inician sesión directamente como root (¿ya he mencionado que esta es una idea muy mala ?), Es probable que tenga que registrar números de ses individuales (que creo que son cortos para “sesión”) de los mensajes de auditoría USER_START que sshd emite a través de PAM, luego los correlaciona con los otros mensajes SYSCALL que indican la actividad que desea rastrear.

Estoy de acuerdo con Don Martí para no usar la cuenta raíz para los inicios de sesión SSH y para usar el control de fuente. Git es muy recomendable. En su lugar, otorgue a cada usuario una cuenta separada pero con permisos para modificar un conjunto compartido de archivos utilizando el control de origen.

Puedes comenzar aquí:
http://git-scm.com/book/en/v1/Ge

  • Nunca dejes que nadie ingrese como root. Deshabilitar AllowRootLogin.
  • Configurar sudo.
  • Use un sistema de control de versiones como Git (control de versiones).
  • Los desarrolladores deben tener servidores de prueba con una configuración que coincida con la producción. Debe haber un servidor provisional donde pueda probar y demostrar los cambios antes de implementar.

Parece que faltan muchos conceptos básicos gratuitos o de bajo costo. ¿Has probado la prueba de Joel?

Dado que está permitiendo que cada inicio de sesión como root, simplemente no se moleste. El sistema está comprometido desde el principio. Un usuario podría deshabilitar y reemplazar cualquier cosa que establezca en menos de un segundo, y es muy posible que esto ya haya sucedido y simplemente no lo sepa. Por lo tanto, la suposición más segura es que simplemente no se puede saber qué cambió o quién lo hizo.

Opere bajo el supuesto de que el sistema operativo ha sido parcheado para ocultar ciertos rangos de direcciones IP, que sshd ha sido parcheado para permitir conexiones que nunca se registran, etc. La máquina es, por diseño, propiedad. Simplemente opere bajo estos supuestos hasta que pueda despedir a la parte responsable y configurar adecuadamente un sistema de reemplazo seguro que no permita el inicio de sesión raíz.

Bash tiene una función incorporada de registro de sudo.
Grabar la actividad del usuario si tiene acceso “sudo bash”

O simplemente configure un sistema de control de versiones con múltiples usuarios.
Dejar que todos inicien sesión como root es una locura.