Minha recomendação é usar auditd .
Isso é o registro usando o subsistema de auditoria do kernel do linux e, na minha opinião, a maneira correta de fazê-lo se você estiver falando sério.
E, dada a natureza da questão {security related}, você deve usar PAM também. No nível padrão de apenas ter auditd e PAM instalado, você deve obter automaticamente todas as tentativas SSH bem-sucedidas e malsucedidas registradas em seu arquivo audit.log. Então você realmente não precisa configurar nada, apenas auditd e PAM instalados. Eu sei disso em primeira mão para o SLES. E apostaria que o RHEL e qualquer outra versão enterprise do linux operariam de forma semelhante.
link
dentro do registro de auditoria bruto gerado por auditd você pode usar algo como aureport
para filtrar o que é descrito nas páginas do manual auditd , escrever seu próprio analisador de texto, ou apenas use VI e pesquise por palavras-chave.
aqui é uma exceção do meu arquivo /var/log/audit/audit.log
comigo ssh'ing no meu 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)'
- do acima, o nome do meu servidor é shark .
- muitas linhas como essa estão em audit.log, quero essa baseada em exe="/ usr / sbin / sshd"
- o uid da conta que está sendo ssh'd é o valor de auid, que é 23456 para este exemplo
- o nome da conta de usuário associada a auid é especificado por acct="ron"
- na maioria das vezes, o sistema de auditoria registra o nome do host do DNS do sistema tentando se conectar, mas sempre tem seu endereço IP
- a data da entrada que está no horário da época, então você terá que converter isso por meio de algo como
date --date @1480622612.317
, o que resulta em Thu Dec 1 15:03:32 EST 2016
e é quando eu ssh'd no meu servidor.
Quando res=failed
é quando você deseja investigar esses endereços IP e nomes de host para ver quais sistemas estavam tentando se conectar, sob o nome de usuário tentado. E obviamente o ssh bem-sucedido tenta entender o que está acontecendo no seu sistema - por exemplo, seu colega de trabalho bob que senta na mesma mesa todos os dias com hostname = bobscomputer e ip address = 192.168.5.5; Se você ver uma tentativa bem-sucedida de ssh às 2 da manhã de ontem sob seu nome de usuário do endereço IP 10.10.5.6, por exemplo, pode ser de seu interesse falar com Bob para investigar. Possível tentativa de hackear por outra pessoa? E logo após o su tentativas de root no log de auditoria da conta de bob?
quando você vê res=failed
e auid=0
e acct=root
repetitivas, isso é alguém tentando enviar sua caixa ssh para a conta raiz e é quando você modifica /etc/hosts.deny
com esse endereço IP para SSHD.