Minha recomendação é usar o auditd . Isso é feito usando o subsistema de auditoria do kernel do linux e, na minha opinião, a maneira correta de fazer isso, se você estiver falando sério. E dada a natureza da pergunta {relacionada à segurança}, você também deve usar o PAM . No nível padrão de apenas ter o auditd e o PAM instalados, você deve obter automaticamente todas as tentativas de SSH com e sem êxito registradas no seu arquivo audit.log. Então você realmente não precisa configurar nada, apenas instale o auditd e o PAM . Conheço isso em primeira mão para o SLES. E apostaria que o RHEL e qualquer outra versão corporativa do linux funcionariam da mesma forma.
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
no log de auditoria bruto gerado pelo auditd, você pode usar algo como aureport
filtrá-lo, descrito nas páginas do manual auditd , escrever seu próprio analisador de texto ou apenas usar o VI e procurar por palavras-chave.
aqui está uma exceção do meu /var/log/audit/audit.log
arquivo 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)'
- acima, o nome do meu servidor é tubarão .
- muitas linhas como esta estão no audit.log, quero esta com base em exe = "/ usr / sbin / sshd"
- o uid da conta que está sendo transferida para ssh é o valor de auid, que é 23456 para este exemplo
- o nome da conta do usuário associado ao auid é especificado por acct = "ron"
- Na maioria das vezes, o sistema de auditoria registra o nome do host DNS do sistema que está tentando se conectar, mas sempre tem seu endereço IP
- a data da entrada que está na época, então você terá que convertê-la através de algo como o
date --date @1480622612.317
que resulta Thu Dec 1 15:03:32 EST 2016
e é quando eu transferi o SSH para o 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 e com qual tentativa de nome de usuário. E, obviamente, o ssh bem-sucedido tenta entender o que está acontecendo no seu sistema - por exemplo, seu colega de trabalho que fica sentado na mesma mesa todos os dias com hostname = bobscomputer e ip address = 192.168.5.5; se você vir uma tentativa bem-sucedida do ssh às duas da manhã de ontem sob o nome de usuário do endereço IP 10.10.5.6, por exemplo, talvez seja do seu interesse conversar com bob para investigar. Possível tentativa de hack por outra pessoa? E logo após, existem tentativas de fazer root no log de auditoria da conta de bob?
quando você vê repetitivo res=failed
e auid=0
e acct=root
, em seguida, que é alguém tentando ssh em sua caixa para a conta root, e é quando você modifica /etc/hosts.deny
a esse endereço IP para SSHD.