Eu configurei um servidor ubuntu com o openssh para conectar-se a ele e executar comandos de um sistema remoto como um telefone ou laptop. O problema é que ... provavelmente não sou o único.
Existe uma maneira de saber todas as tentativas de login que foram feitas no servidor?
Respostas:
Nos servidores Ubuntu, você pode encontrar quem fez login quando (e de onde) no arquivo
/var/log/auth.log
. Lá, você encontra entradas como:fonte
lastb
comando ?/var/log/auth.log
Nas distros baseadas no Red Hat, como o Fedora / CentOS / RHEL, você pode verificar os usuários logados dentro do arquivo
/var/log/secure
.Se você quiser obter mais informações, leia as perguntas e respostas do superusuário intitulado: Como registrar as tentativas de acesso ao SSH e acompanhar o que os usuários do SSH acabam fazendo no meu servidor? .
fonte
/var/log/secure
nenhum dos meus sistemas Ubuntu./var/log/auth
em meus sistemas. É por isso que antes de postar a resposta, eu verifiquei se eu tinha/var/log/secure
no meu sistema, que é também um servidor Ubuntu :)/var/log/secure
./var/log/secure
é um ismo do Fedora / CentOS / RHEL.No Ubuntu, você pode efetuar login via SSH e usar o comando tail do Linux para exibir o último número x de linhas do seu
/var/log/auth.log
arquivo. Quando você estiver conectado via SSH, use o seguinte comando para visualizar as 100 últimas linhas do seu log SSH:ou ainda mais limpo
fonte
Observe que a configuração padrão no Ubuntu é NÃO registrar logins ssh no
/var/log/auth
arquivo. Este é oINFO
nível de log.Se você deseja que ele inclua tentativas de login no arquivo de log, será necessário editar o
/etc/ssh/sshd_config
arquivo (como root ou com sudo) e alterarLogLevel
de deINFO
paraVERBOSE
.Depois disso, reinicie o daemon sshd com
Depois disso, as tentativas de login do ssh serão registradas no
/var/log/auth.log
arquivo.fonte
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.date --date @1480622612.317
que resultaThu 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
eauid=0
eacct=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.fonte
Eu sei que isso é antigo, mas escrevi algo para monitorar conexões / tentativas ssh bem-sucedidas e com falha. Assim como IPs banidos, se você estiver usando o sshguard. O software está escrito em Python. Enviará um e-mail quando alguém se conectar com êxito via ssh, quando alguém errar a senha do ssh ou quando alguém for banido devido a muitas tentativas falhas. Espero que isso ajude alguém no futuro que procurar esse problema e encontrar meu código!
Para o script python, escrevi um script bash para monitorar o processo. Ele verifica se está sendo executado a cada minuto através da tarefa cron do root. Se não estiver em execução, inicia outro processo. Que é chamado por uma tarefa cron raiz a cada minuto.
fonte
A melhor coisa que eu já encontrei para o log de comandos SSH é o rootsh, essa ferramenta permite que o administrador obtenha todos os comandos de todas as sessões com amplo nível de log.
Eu escrevi um script para instalar e configurar o ROOTSH no ubuntu e CentOS / RHEL
baixar do github aqui está o link
fonte