Hvordan bruke den siste kommandoen på Linux

Hvem, når og fra hvor? Gode ​​sikkerhetsrutiner sier at du bør vite hvem som har hatt tilgang til Linux-datamaskinen din. Vi viser deg hvordan.

wtmp-filen

Linux og andre Unix-lignende operativsystemer som MacOS er veldig flinke til å logge. Et sted i innvollene i systemet er det en logg for omtrent alt du kan tenke deg. Loggfilen vi er interessert i heter wtmp. «w» kan stå for «når» eller «hvem» – ingen ser ut til å være enige. «tmp»-delen står sannsynligvis for «midlertidig», men den kan også stå for «tidsstempel.»

Det vi vet er at wtmp er en logg som fanger opp og registrerer hver påloggings- og utloggingshendelse. Gjennomgang av dataene i wtmp-loggen er et grunnleggende trinn i å ta en sikkerhetsorientert tilnærming til systemadministratoroppgavene dine. For en typisk familiedatamaskin er det kanskje ikke så kritisk fra et sikkerhetsperspektiv, men det er interessant å kunne se på din kombinerte bruk av datamaskinen.

I motsetning til mange av de tekstbaserte loggfilene i Linux, er wtmp en binær fil. For å få tilgang til dataene i den, må vi bruke et verktøy designet for den oppgaven.

Det verktøyet er den siste kommandoen.

Den siste kommandoen

Den siste kommandoen leser data fra wtmp-loggen og viser dem i et terminalvindu.

Hvis du skriver sist og trykker Enter vil det vise alle postene fra loggfilen.

last

Hver post fra wtmp vises i terminalvinduet.

Fra venstre til høyre inneholder hver linje:

Brukernavnet til personen som logget på.
Terminalen de var pålogget. En terminaloppføring på :0 betyr at de var logget på selve Linux-datamaskinen.
IP-adressen til maskinen de var logget på.
Innloggingstidspunkt og datostempel.
Varigheten av økten.

  Hvordan installere Netstat på Linux

Den siste linjen forteller oss dato og klokkeslett for den tidligste registrerte økten i loggen.

En påloggingsoppføring for den fiktive brukeren «reboot» legges inn i loggen hver gang datamaskinen startes opp. Terminalfeltet erstattes med kjerneversjonen. Varigheten av den påloggede økten for disse oppføringene representerer oppetiden for datamaskinen.

Viser et spesifikt antall linjer

Å bruke den siste kommandoen alene produserer en dump av hele loggen med det meste av den susende forbi terminalvinduet. Den delen som forblir synlig er de tidligste dataene i loggen. Dette er sannsynligvis ikke det du ønsket å se.

Du kan fortelle sist for å gi deg et spesifikt antall utdatalinjer. Gjør dette ved å angi antall linjer du vil ha på kommandolinjen. Legg merke til bindestreken. For å se fem linjer, må du skrive -5 og ikke 5:

last -5

Dette gir de første fem linjene fra loggen, som er de nyeste dataene.

Viser nettverksnavn for eksterne brukere

Alternativet -d (Domain Name System) forteller sist å prøve å løse eksterne brukeres IP-adresser til et maskin- eller nettverksnavn.

last -d

Det er ikke alltid mulig for sist å konvertere IP-adressen til et nettverksnavn, men kommandoen vil gjøre det når den kan.

Skjuler IP-adresser og nettverksnavn

Hvis du ikke er interessert i IP-adressen eller nettverksnavnet, bruk alternativet -R (ingen vertsnavn) for å undertrykke dette feltet.

Fordi dette gir en penere utgang uten stygge omslag, har dette alternativet blitt brukt i alle de følgende eksemplene. Hvis du brukte sist for å prøve å identifisere uvanlig eller mistenkelig aktivitet, ville du ikke undertrykke dette feltet.

Velge poster etter dato

Du kan bruke alternativet -s (siden) for å begrense utdataene til kun å vise påloggingshendelser som har funnet sted siden en bestemt dato.

Hvis du bare ønsket å se påloggingshendelser som fant sted fra 26. mai 2019, ville du bruke følgende kommando:

last -R -s 2019-05-26

Utgangen viser poster med påloggingshendelser som fant sted fra klokken 00:00 den angitte dagen, opp til de nyeste postene i loggfilen.

  Hvordan se ledig diskplass og diskbruk fra Linux-terminalen

Søker til en sluttdato

Du kan bruke -t (til) for å spesifisere en sluttdato. Dette lar deg velge et sett med påloggingsposter som fant sted mellom to interessedatoer.

Denne kommandoen ber sist om å hente og vise påloggingspostene fra 00:00 (daggry) den 26. til klokken 00:00 (daggry) den 27.. Dette begrenser oppføringen til påloggingsøkter som bare fant sted den 26.

Tids- og datoformater

Du kan bruke tider og datoer med alternativene -s og -t.

De forskjellige tidsformatene som kan brukes med de siste alternativene som bruker datoer og klokkeslett er (angivelig):

ÅÅÅÅMMDDhhmmss
ÅÅÅÅ-MM-DD tt:mm:ss
ÅÅÅÅ-MM-DD tt:mm – sekunder er satt til 00
ÅÅÅÅ-MM-DD – tiden er satt til 00:00:00
tt:mm:ss – datoen er satt til i dag
tt:mm – datoen settes til i dag, sekunder til 00

i går – klokken er satt til 00:00:00
i dag – klokken er satt til 00:00:00
i morgen – klokken er satt til 00:00:00
+5 min
-5 dager

Hvorfor «angivelig»?

Det andre og tredje formatet i listen fungerte ikke under forskningen for denne artikkelen. Disse kommandoene ble testet på Ubuntu-, Fedora- og Manjaro-distribusjoner. Disse er derivater av henholdsvis Debian-, RedHat- og Arch-distribusjonene. Det dekker alle hovedfamiliene av Linux-distribusjon.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Som du kan se, returnerte kommandoen ingen poster i det hele tatt.

Ved å bruke det første dato- og klokkeslettet fra listen med samme dato og klokkeslett som den forrige kommandoen, returneres poster:

last -R -s 20190526110000 -t 20190527130000

Søke etter relative enheter

Du spesifiserer også tidsperioder som måles i minutter eller dager, i forhold til gjeldende dato og klokkeslett. Her ber vi om rekorder fra to dager siden til en dag siden.

last -R -s -2days -t -1days

I går, i dag og nå

Du kan bruke gårsdagen og i morgen som stenografi for gårsdagens dato og dagens dato.

last -R -s yesterday -t today

Ikke at dette ikke vil inkludere noen poster for i dag. Det er den forventede oppførselen. Kommandoen ber om poster fra startdatoen til sluttdatoen. Det inkluderer ikke poster fra sluttdatoen.

  Slik bruker du chgrp-kommandoen på Linux

Nå-alternativet er en forkortelse for «i dag på gjeldende tidspunkt.» For å se påloggingshendelsene som har funnet sted siden 00:00 (daggry) til tidspunktet da du utsteder kommandoen, bruk denne kommandoen:

last -R -s today -t now

Dette vil vise alle påloggingshendelser akkurat nå, inkludert de som fortsatt er pålogget.

Det nåværende alternativet

Alternativet -p (present) lar deg finne ut hvem som var pålogget på et tidspunkt.

Det spiller ingen rolle når de logget inn eller ut, men hvis de var logget på datamaskinen på tidspunktet du spesifiserer, vil de bli inkludert i oppføringen.

Hvis du spesifiserer et tidspunkt uten dato sist, antar du at du mener «i dag.»

last -R -p 09:30

Personer som fortsatt er pålogget (åpenbart) har ikke utloggingstid; de beskrives som fortsatt pålogget. Hvis datamaskinen ikke har blitt startet på nytt etter tidspunktet du spesifiserte, vil den bli oppført som fortsatt kjørende.

Hvis du bruker nå stenografi med alternativet -p (present) kan du finne ut hvem som er pålogget på det tidspunktet du gir kommandoen.

last -R -p now

Dette er en litt langdryg måte å oppnå det som kan oppnås ved å bruke who-kommandoen.

Lastb-kommandoen

Lastb-kommandoen fortjener å nevnes. Den leser data fra en logg kalt btmp. Det er litt mer konsensus om dette loggnavnet. «b’en» står for dårlig, men «tmp»-delen er fortsatt gjenstand for debatt.

lastb viser de dårlige (mislykkede) påloggingsforsøkene. Den godtar de samme alternativene som sist. Fordi de var mislykkede påloggingsforsøk, vil alle oppføringene ha en varighet 00:00.

Du må bruke sudo med lastb.

sudo lastb -R

Det siste ordet om saken

Å vite hvem som har logget på Linux-datamaskinen din, og når og hvorfra er nyttig informasjon. Ved å kombinere dette med detaljene om mislykkede påloggingsforsøk, får du de første trinnene i etterforskningen av mistenkelig oppførsel.