El envío de correo automático en ssh-login falla


1

Estoy tratando de permitir que mi servidor me envíe automáticamente un correo electrónico en ssh-login.

Qué he hecho:

  1. Creó un login-notify.sharchivo (raíz del usuario, raíz del grupo, chmod 755) y lo colocó dentro/etc/ssh/

    #!/bin/sh 
    if [ "$PAM_TYPE" != "close_session" ]; then
        # assembling my variable $TEXT ...
    echo $TEXT | mail -r "root@.... " - s "Subject line" root
    
  2. Modificado /etc/pam.d/sshd:

    echo "session required pam_exec.so seteuid /etc/ssh/login-notify.sh" | sudo tee -a /etc/pam.d/sshd
    
  3. reinició el servidor sshd e incluso reinició la máquina

  4. Encendido manualmente /etc/ssh/login-notify.sh-> correo enviado con éxito

  5. Inició sesión a través de ssh -> no se ha enviado ningún correo

Pasos adicionales / Información

  1. para enviar correos electrónicos desde la línea de comandos, uso ssmtp y una cuenta de gmail

  2. en lugar de enviar un correo, he intentado agregar una cadena a un archivo y ver si funciona (echo "ssh login> / home / user / ssh-test) -> sin suerte ...

  3. el servidor solo acepta la autenticación pública / clave para ssh-logins

  4. /var/log/syslog no proporciona información útil:

    Dec 27 14:20:51 srv1 fwknopd[2155]: Removed rule 1 from FWKNOP_INPUT with expire time of 1419686451 
    Dec 27 14:41:48 srv1 fwknopd[2155]: (stanza #1) SPA Packet from IP: xxx.xxx.xxx.xxx received with Access source match 
    Dec 27 14:41:48 srv1 fwknopd[2155]: [xxx.xxx.xxx.xxx] (stanza #1) Incoming SPA data signed by 'XXXXXX'. 
    Dec 27 14:41:48 srv1 fwknopd[2155]: Added Rule to FWKNOP_INPUT for xxx.xxx.xxx.xxx, tcp/xxx expires at 1419687738
    

    Después de esta línea, inicié sesión a través de ssh ... no se escribió ningún texto adicional en /var/log/syslog


Si todos sus usuarios usan bash, también puede hacerlo desde el script de perfil o bashrc. He hecho esto en el pasado y funcionó. No sé sobre PAM.
— Marki

@janos - Sí. He puesto dos líneas "echo" test1 / 2> / home / user / ssh-test "al lado de mi .sh. Una fuera de" if [$ PAM_TYPE ... "y otra dentro.
— vigri

@janos Sí, tienes razón.
— vigri

Aquí hay una respuesta bastante desarrollada: askubuntu.com/a/729841/723997
— Craig Hicks el

Respuestas:


1

hm, instale el cortafuegos csf u OSSEC, con la funcionalidad integrada que necesita ... de acuerdo con el asunto de su pregunta.

Cortafuegos CSF:

lfd on cluster-master-acl: SSH login alert for user root from 86.234.45.45 (IE/Ireland/cm-86.234.45.045.ntlworld.ie)

Time:    Fri Dec 26 13:59:51 2014 +0000
IP:      86.234.45.45 (IE/Ireland/cm-86.234.45.045.ntlworld.ie)
Account: root
Method:  publickey authentication 

.

lfd on web1: SU login alert - Successful login from admin(uid=0) to root
Time:    Sat Dec 27 11:45:26 2014 -0500
From:    admin(uid=0)
To:      root
Status:  Successful login

OSSEC:

OSSEC HIDS Notification.
2014 Dec 28 10:58:53

Received From: (web-node-3) 138.71.183.65->/var/log/secure
Rule: 1002 fired (level 2) -> "Unknown problem somewhere in the system."
Portion of the log(s):

Dec 28 05:58:49 ID13412 sudo: pam_unix(sudo:auth): conversation failed

De hecho, puede modificar las alertas como las necesita.

http://configserver.com/cp/csf.html
http://www.ossec.net/


1

No lo hagas demasiado complicado. Simplemente puede configurar fail2bancon una acción de solo correo para notificarle sobre intentos fallidos.


1
Una solución pam-exec es mucho más simple que fail2ban.

El punto es: fail2ban se está instalando, cambiando como una línea en la configuración. pam-exec puede ser más ligero, pero no es más fácil ni más fácil de mantener. Por lo tanto, es mejor tener la solución lista para usar (e instalar y olvidar) en lugar de escribir sus propios scripts.
— allo

Buen punto. Aquí hay una buena respuesta basada en pam, pero pierde la última línea de registro. Entonces fail2ban puede ser la mejor respuesta.
— Craig Hicks
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.