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.
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
- de lo anterior, mi nombre de servidor es tiburón .
- muchas líneas como esta están en audit.log, quiero esta basada en exe = "/ usr / sbin / sshd"
- el uid de la cuenta en la que se ingresa es el valor de auid, que es 23456 para este ejemplo
- el nombre de la cuenta de usuario asociada con auid se especifica mediante acct = "ron"
- la mayoría de las veces el sistema de auditoría registrará el nombre de host dns del sistema que intenta conectarse, pero siempre tiene su dirección IP
- la fecha de la entrada que está en tiempo de época, por lo que tendrá que convertirla a través de algo como lo
date --date @1480622612.317
que resulta Thu 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
y auid=0
y acct=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.