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.