
Quem, quando e de onde? Boas práticas de segurança dizem que você deve saber quem está acessando seu computador Linux. Nós mostramos como.
O arquivo wtmp
Linux e outros sistemas operacionais semelhantes ao Unix, como macOS, eles são muito bons para logar. Em algum lugar nas entranhas do sistema, há um registro de quase tudo que você pode pensar. O arquivo de log que nos interessa é chamado wtmp
. o “C” poderia significar “quando” o “quem”, ninguém parece concordar. A parte “tmp” provavelmente significa “temporal”, mas também pode significar “timestamp”.
O que sabemos é que wtmp
é um log que captura e registra todos os eventos de login e logout. Revendo os dados no wtmp
log é uma etapa básica para adotar uma abordagem baseada na segurança para as tarefas de administração do sistema. Para um computador familiar típico, pode não ser tão crítico do ponto de vista da segurança, mas é interessante poder revisar o uso combinado do computador.
Ao contrário de muitos arquivos de log baseados em texto no Linux, wtmp
é um arquivo binário. Para inserir os dados que contém, precisamos usar uma ferramenta projetada para essa tarefa.
Essa ferramenta é o last
comando.
O ultimo comando
a last
comando lê dados de wtmp
registrar e exibi-lo em uma janela de terminal.
Se você escrever last
e pressione Enter mostrar todos os registros do arquivo de log.
último
Cada registro de wtmp
é exibido na janela do terminal.
De esquerda a direita, cada linha contém:
- a nome de usuário da pessoa que logou.
- a terminal eles estavam conectados. Uma entrada de terminal de
:0
significa que eles se conectaram ao próprio computador Linux. - a direção IP da máquina à qual estavam conectados.
- a Acesso carimbo de data e hora.
- a duração da sessão.
A última linha nos informa a data e hora da primeira sessão registrada no registro.
Uma entrada de login para a reinicialização do usuário fictício’ é inserido no registro toda vez que o computador é iniciado. O campo do terminal é substituído pela versão do kernel. A duração da sessão de login para essas entradas representa o tempo de atividade do computador.
Mostra um número específico de linhas
Usando o last
O comando sozinho produz um despejo de todo o log com a maior parte dele passando pela janela do terminal. A parte que fica visível são os primeiros dados do registro. Provavelmente não é o que você queria ver.
Pode dizer last
para lhe dar um número específico de linhas de saída. Faça isso fornecendo o número de linhas que deseja na linha de comando. Observe o script. Para ver cinco linhas, deve escrever -5
e não 5
:
último -5
Isso dá as primeiras cinco linhas do registro, quais são os dados mais recentes.
Mostrar nomes de rede para usuários remotos
a -d
Opção (Sistema de nomes de domínio) indica last
para tentar solucionar problemas de endereços IP de usuários remotos em um nome de host ou rede.
último -d
Nem sempre é viável para last
para converter o endereço IP em um nome de rede, mas o comando fará isso quando possível.
Ocultar endereços IP e nomes de rede
Se você não está interessado no endereço IP ou no nome da rede, Use o -R
(sem nome de host) suprimir este campo.
Porque isso dá uma saída mais limpa, sem envoltórios desagradáveis, esta opção foi usada em todos os exemplos a seguir. Se você estivesse usando last
para tentar identificar atividades incomuns ou suspeitas, deveria não exclua este campo.
Escolha os registros por data
Você pode usar o -s
(a partir de) para restringir a saída para mostrar apenas eventos de login que ocorreram a partir de uma data específica.
Se você só quisesse ver os eventos de login que ocorreram a partir de 26 Poderia 2019, Eu usaria o seguinte comando:
último -R -s 2019-05-26
A saída mostra logs com eventos de login que ocorreram desde o momento 00:00 do dia especificado, até os registros mais recentes no arquivo de log.
Procurando por uma data de término
Você pode usar o -t
(até) para especificar uma data de término. Isso permite que você escolha um conjunto de registros de login que ocorreram entre duas datas de interesse.
Este comando pergunta last
para recuperar e exibir os registros de login do 00:00 (amanheçer) do dia 26 até as 00:00 (amanheçer) do dia 27. Isso reduz a lista para as sessões de login que ocorreram apenas no dia 26.
Formatos de data e hora
Você pode usar horários e datas com o -s
e -t
opções.
Os diferentes formatos de hora que podem ser usados com o last
As alternativas que usam datas e horas são (supostamente):
- AAAAMMDDhhmmss
- AAAA-MM-DD hh: milímetros: WL
- AAAA-MM-DD hh: milímetros – segundos estão configurados para 00
- AAAA-MM-DD: o tempo está definido para 00:00:00
- hh: milímetros: WL – a data está marcada para hoje
- hh: milímetros: a data será marcada para hoje, os segundos em 00
- agora
- Ontem – o tempo está definido para 00:00:00
- hoje – o tempo está definido para 00:00:00
- Manhã – o tempo está definido para 00:00:00
- + 5min
- -5 dias
Por que 'supostamente'?
O segundo e o terceiro formato da lista não funcionaram durante a pesquisa para este post. Esses comandos foram testados em distribuições Ubuntu, Fedora e Manjaro. Eles são derivados de distribuições Debian, RedHat y Arch, respectivamente. Isso cobre todas as principais famílias de distribuição Linux.
último -R -s 2019-05-26 11:00 -t 2019-05-27 13:00
Como você pode ver, o comando não retornou nenhum registro.
Use o primeiro formato de data e hora na lista com a mesma data e hora que o comando acima retorna os registros:
último -R -s 20190526110000 -t 20190527130000
Pesquisa por unidades relativas
Também especifica períodos de tempo medidos em minutos ou dias., em conexão com a data e hora atuais. Aqui estamos solicitando registros de dois dias atrás até um dia atrás.
last -R -s -2days -t -1days
Ontem, hoje e agora
Você pode usar yesterday
e tomorrow
como uma abreviatura para a data de ontem e a data de hoje.
último -R -s ontem -t hoje
Não que isso não inclua nenhum registro de hoje. Esse é o comportamento esperado. O comando solicita registros da data de início. Até que a data de término. Não o faça incluir registros dentro da data de término.
a now
A opção é curta para “hoje no momento atual”. Para ver os eventos de login que ocorreram desde o 00:00 (amanheçer) até o momento em que você emite o comando, use este comando:
último -R -s hoje-agora
Isto irá mostrar todos os eventos de login até a hora atual, incluindo aqueles que ainda estão conectados.
A opção atual
a -p
Opção (Aqui estou) permite que você descubra quem está logado em um horário específico.
Não importa quando eles entraram ou saíram, mas se eles se conectaram ao computador no momento que você especificar, será incluído na lista.
Se você especificar uma hora sem data last
assumir que você quer dizer “hoje”.
último -R -p 09:30
Pessoas que ainda estão conectadas (evidentemente) eles não têm tempo para se desconectar; são descritos como still logged in
. Se o computador não reiniciou desde o momento que você especificou, aparecerá como still running
.
Se você usar o now
taquigrafia com -p
(Aqui estou) opção, você pode descobrir quem está online no momento em que emitir o comando.
último -R -p agora
Este é um caminho um tanto longo para alcançar o que pode ser alcançado usando o who
comando.
RELACIONADO: Como determinar a conta de usuário atual no Linux
O ultimo comando
a lastb
comando merece menção. Leia os dados de um registro chamado btmp
. Há um pouco mais de consenso sobre este nome de registro. La ‘b’ significa mal, mas a parte 'tmp’ ainda está em debate.
lastb
liste os bandidosfracassado) tentativas de acesso. Aceite as mesmas opções que last
. Porque foram tentativas de login malsucedidas, todas as entradas terão uma extensão de 00:00.
Você deve usar sudo
com lastb
.
sudo lastb -R
A última palavra sobre o assunto
Saiba quem está conectado ao seu computador Linux, e quando e de onde vêm as informações úteis. Combinar isso com os detalhes de tentativas de login malsucedidas fornece as primeiras etapas na investigação de comportamentos suspeitos..
setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);