Mail quando a raiz efetua login, mas não a partir do host local

1

Eu segui estas instruções

Como obter alertas de e-mail de login SSH de raiz e usuário

Você tem que adicionar este código a .bashrc

'echo 'ALERT - Root Shell Access (ServerName) on:' 'date' 'who' | mail -s "Alert: Root Access from 'who | cut -d'(' -f2 | cut -d')' -f1'" [email protected]'

Eu recebo as notificações, mas também estou recebendo aquelas que surgem para se originar do localhost também (a cada alguns minutos) Posso excluir o localhost ou há uma maneira melhor de obter apenas o email quando alguém registra remotamente?

    
por Sl33py 13.06.2017 / 07:54

2 respostas

1

O melhor & a única abordagem apropriada é Desativar login SSH raiz . Não há necessidade de alertas por e-mail. Se algo de ruim acontecer, já será tarde demais quando você finalmente ler a notificação por e-mail. Isso já está explicado no artigo que você estava seguindo:

So it’s not a good practice to allow direct root login via SSH session and recommend to create non root accounts with sudo access. Whenever root access needed, first logged in as normal user and then use su to switch over to root user. To disable direct SSH root logins, follow our below [Disable SSH Root Login and Limit SSH Access] article that shows how to disable and limit root login in SSH.

Se você ainda estiver disposto a usar alertas por e-mail,

A solução .bashrc parece ser muito popular, mas tem alguns problemas. Ele é executado (sempre e somente) quando bash é iniciado. Ele pára de funcionar se for substituído por qualquer outro shell, ou o shell não foi iniciado (por exemplo, o login usado apenas para o encapsulamento no SFTP) e também é executado mesmo quando o SSH não está envolvido. Um invasor pode modificar o .bashrc antes de invocar bash para contornar seu alerta.

Como você provavelmente não usa o SSH internamente, usando ~/.ssh/rc satisfaria as condições desejadas , por exemplo

ip='echo $SSH_CONNECTION | cut -d " " -f 1'
echo "Root login from $ip" | mail -s "Alert: SSH root login from $ip" [email protected]

Em seguida, para alertas de login SSH globais eu não usaria nada nos usuários home ~/ , pois o usuário pode modificá-lo facilmente. O ~/.ssh/rc pode se tornar um padrão global usando /etc/ssh/sshrc e qualquer usuário pode substituir as configurações usando o próprio ~/.ssh/rc , com um retorno fácil removendo o arquivo.

Se você precisar impor o alerta de uma forma que um usuário não pode substituir, use /etc/pam.d/sshd : add line session optional pam_exec.so seteuid /path/to/login-notify.sh , em que o script .sh envia o e-mail (ou o usuário).

    
por 13.06.2017 / 09:27
0

Eu publiquei um script bash no Github Gist que faz o que você está procurando. Ele enviará um e-mail ao administrador do sistema sempre que um usuário fizer login em um novo endereço IP. Eu uso o script examinar os logins em nossos sistemas de produção rigidamente controlados. Se um login for comprometido, seremos notificados sobre o local de login incomum e teremos a chance de bloqueá-lo fora do sistema antes que eles causem danos sérios.

Para instalar o script, basta atualizá-lo com seu e-mail sysadmin e copiá-lo para /etc/profile.d/ .

Se você quisesse restringir isso apenas a logins de usuários root, você poderia implantá-los em /root/.bashrc em vez de /etc/profile.d/

    
por 04.06.2018 / 22:07