He configurado un servidor ubuntu con openssh para conectarme a él y ejecutar comandos desde un sistema remoto como un teléfono o una computadora portátil. El problema es ... probablemente no soy el único.
¿Hay alguna manera de conocer todos los intentos de inicio de sesión que se han realizado en el servidor?
Respuestas:
En los servidores Ubuntu, puede encontrar quién inició sesión cuando (y desde dónde) en el archivo
/var/log/auth.log
. Allí, encontrará entradas como:fuente
lastb
comando ?/var/log/auth.log
En distribuciones basadas en Red Hat como Fedora / CentOS / RHEL, puede verificar si los usuarios han iniciado sesión dentro del archivo
/var/log/secure
.Si desea obtener más información, lea las preguntas y respuestas de SuperUser tituladas: ¿Cómo puedo registrar los intentos de acceso SSH y realizar un seguimiento de lo que los usuarios SSH terminan haciendo en mi servidor? .
fuente
/var/log/secure
en ninguno de mis sistemas Ubuntu./var/log/auth
en mis sistemas. Es por eso que antes de publicar la respuesta, verifiqué si tenía/var/log/secure
en mi sistema, que también es un servidor Ubuntu :)/var/log/secure
./var/log/secure
es un ismo Fedora / CentOS / RHEL.En Ubuntu, puede iniciar sesión a través de SSH y usar el comando de cola de Linux para mostrar la última x cantidad de líneas de su
/var/log/auth.log
archivo. Cuando inicie sesión a través de SSH, use el siguiente comando para ver 100 últimas líneas de su registro SSH:o incluso más limpio
fuente
Tenga en cuenta que la configuración predeterminada en Ubuntu es NO registrar inicios de sesión ssh en el
/var/log/auth
archivo. Este es elINFO
nivel de registro.Si desea que incluya intentos de inicio de sesión en el archivo de registro, deberá editar el
/etc/ssh/sshd_config
archivo (como root o con sudo) y cambiar elLogLevel
deINFO
aVERBOSE
.Después de eso, reinicie el demonio sshd con
Después de eso, los intentos de inicio de sesión ssh se registrarán en el
/var/log/auth.log
archivo.fuente
Mi recomendación es usar auditado . Esto es iniciar sesión utilizando el subsistema de auditoría del kernel de Linux y, en mi opinión, la forma correcta de hacerlo si es serio. Y dada la naturaleza de la pregunta {relacionada con la seguridad}, también debería usar PAM . En el nivel predeterminado de solo haber auditado e instalado PAM , debería obtener automáticamente todos los intentos SSH exitosos y no exitosos registrados en su archivo audit.log. Entonces, realmente no tiene que configurar nada, solo ha auditado y PAM instalado. Sé esto de primera mano para SLES. Y apostaría a RHEL y cualquier otra versión empresarial de Linux funcionaría de manera similar.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
dentro del registro de auditoría sin procesar generado por auditd , puede usar algo como
aureport
filtrarlo, que se describe en las páginas de manual de auditd , escribir su propio analizador de texto o simplemente usar VI y buscar palabras clave.Aquí hay una excepción de mi
/var/log/audit/audit.log
archivo conmigo en mi servidor Linux.date --date @1480622612.317
que resultaThu Dec 1 15:03:32 EST 2016
y es cuando ingresé a mi servidor.Cuándo
res=failed
es cuando desea investigar esas direcciones IP y nombres de host para ver qué sistemas intentaban conectarse, bajo qué nombre de usuario intentó. Y, obviamente, el exitoso ssh intenta comprender lo que está sucediendo en su sistema, por ejemplo, su compañero de trabajo Bob que se sienta en el mismo escritorio todos los días con hostname = bobscomputer y dirección IP = 192.168.5.5; Si ve un intento de ssh exitoso a las 2 de la mañana de ayer con su nombre de usuario de la dirección IP 10.10.5.6, por ejemplo, podría serle de su interés hablar con Bob para investigar. ¿Posible intento de pirateo por parte de otra persona? Y poco después, ¿hay intentos de rootear el registro de auditoría desde la cuenta de Bob?cuando vea repetitivo
res=failed
yauid=0
yacct=root
entonces eso es alguien que trata de ssh en su caja en la cuenta raíz, y es cuando se modifica/etc/hosts.deny
con esa dirección IP para sshd.fuente
Sé que esto es antiguo, pero escribí algo para monitorear conexiones / intentos ssh exitosos y fallidos. Además de las direcciones IP prohibidas si está utilizando sshguard. El software está escrito en Python. Le enviará un correo electrónico cuando alguien se conecte con éxito a través de ssh, cuando alguien obtenga la contraseña de ssh de forma incorrecta o cuando alguien sea bloqueado debido a muchos intentos fallidos. ¡Espero que esto ayude a alguien en el futuro que busque este problema y encuentre mi código!
Para el script de Python, escribí un script de bash para monitorear el proceso. Comprueba si se ejecuta cada minuto a través de la tarea cron de root. Si no se está ejecutando, inicia otro proceso. El cual es llamado por una tarea cron de root cada minuto.
fuente
Lo mejor que he encontrado para el registro de comandos SSH es que esta herramienta permite al administrador obtener todos los comandos de cada sesión con un nivel extenso de registro.
He escrito un script para instalar y configurar ROOTSH en ubuntu y CentOS / RHEL
descargar desde github aquí está el enlace
fuente