Wie, wanneer en van waar? Goede beveiligingspraktijken zeggen dat je moet weten wie er toegang heeft gehad tot je Linux-computer. We laten je zien hoe.
Het wtmp-bestand
Linux en andere Unix-achtige besturingssystemen zoals MacOS zijn erg goed in loggen. Ergens in de ingewanden van het systeem is er een logboek voor zo ongeveer alles wat je maar kunt bedenken. Het logbestand waarin we geïnteresseerd zijn, wordt genoemd wtmp
. De “w” zou kunnen staan voor “wanneer” of “wie” – niemand lijkt het daarmee eens te zijn. Het ’tmp’-gedeelte staat waarschijnlijk voor’ tijdelijk ‘, maar het kan ook staan voor’ timestamp ‘.
Wat we wel weten is dat wtmp
is een logboek dat elke login en uitloggebeurtenis vastlegt en registreert. De gegevens in het wtmp
log is een basisstap bij het nemen van een beveiligingsgerichte benadering van uw systeembeheerderstaken. Voor een typische gezinscomputer is het misschien niet zo kritisch vanuit een beveiligingsperspectief, maar het is interessant om uw gecombineerd gebruik van de computer te kunnen beoordelen.
In tegenstelling tot veel van de op tekst gebaseerde logboekbestanden in Linux, wtmp
is een binair bestand. Om toegang te krijgen tot de gegevens erin, hebben we een tool nodig die voor die taak is ontworpen.
Die tool is de last
opdracht.
Het laatste commando
De last
commando leest gegevens van het wtmp
log en geeft het weer in een terminalvenster.
Als je typt last
en druk op Enter. Alle records uit het logbestand worden weergegeven.
last
Elk record van wtmp
wordt weergegeven in het terminalvenster.
Elke regel bevat van links naar rechts:
- De gebruikersnaam van de persoon die zich heeft aangemeld.
- De terminal ze waren ingelogd. Een terminalinvoer van
:0
betekent dat ze waren ingelogd op de Linux-computer zelf. - De IP adres van de machine waarop ze waren ingelogd.
- De Log in tijd- en datumstempel.
- De looptijd van de sessie.
De laatste regel vertelt ons de datum en tijd van de eerste geregistreerde sessie in het logboek.
Elke keer dat de computer wordt opgestart, wordt een login-invoer voor de fictieve gebruiker ‘reboot’ in het logboek ingevoerd. Het terminalveld wordt vervangen door de kernelversie. De duur van de aangemelde sessie voor deze vermeldingen vertegenwoordigt de uptime voor de computer.
Een specifiek aantal regels weergeven
De … gebruiken last
op zichzelf produceert een dump van het hele logboek, waarbij het meeste langs het terminalvenster suist. Het gedeelte dat zichtbaar blijft, zijn de vroegste gegevens in het logboek. Dit is waarschijnlijk niet wat u wilde zien.
Je kunt het zien last
om u een specifiek aantal regels output te geven. Doe dit door het gewenste aantal regels op de opdrachtregel op te geven. Let op het koppelteken. Om vijf regels te zien, moet u typen -5
en niet 5
:
last -5
Dit geeft de eerste vijf regels uit het logboek, de meest recente gegevens.
Netwerknamen weergeven voor externe gebruikers
De -d
(Domain Name System) optie vertelt last
om te proberen IP-adressen van externe gebruikers om te zetten in een machine- of netwerknaam.
last -d
Het is niet altijd mogelijk voor last
om het IP-adres naar een netwerknaam te converteren, maar de opdracht zal dit doen wanneer het kan.
IP-adressen en netwerknamen verbergen
Als u niet geïnteresseerd bent in het IP-adres of de netwerknaam, gebruikt u de -R
(geen hostnaam) optie om dit veld te onderdrukken.
Omdat dit een nettere uitvoer geeft zonder lelijke omhullingen, is deze optie in alle volgende voorbeelden gebruikt. Als je last
om te proberen ongebruikelijke of verdachte activiteiten te identificeren, zou u dat doen niet onderdruk dit veld.
Records selecteren op datum
U kunt de -s
(sinds) optie om de uitvoer te beperken om alleen inloggebeurtenissen weer te geven die plaatsvonden sinds een specifieke datum.
Als je alleen inloggebeurtenissen wilt zien die plaatsvonden vanaf 26 mei 2019, zou je het volgende commando gebruiken:
last -R -s 2019-05-26
De uitvoer toont records met inloggebeurtenissen die plaatsvonden vanaf het tijdstip 00:00 op de opgegeven dag tot aan de nieuwste records in het logbestand.
Zoeken tot een einddatum
U kunt de -t
(tot) om een einddatum op te geven. Hiermee kunt u een set aanmeldingsrecords selecteren die plaatsvonden tussen twee interessante datums.
Dit commando vraagt last
om de login-records op te halen en weer te geven van 00:00 (zonsopgang) op de 26e tot 00:00 (zonsopgang) op de 27e. Dit beperkt de lijst tot inlogsessies die alleen op de 26e plaatsvonden.
Tijd- en datumnotaties
U kunt zowel tijden als datums gebruiken met de -s
en -t
opties.
De verschillende tijdnotaties die kunnen worden gebruikt met de last
opties die datums en tijden gebruiken zijn (naar verluidt):
- JJJJMMDDuummss
- JJJJ-MM-DD uu: mm: ss
- JJJJ-MM-DD uu: mm – seconden worden ingesteld op 00
- JJJJ-MM-DD – tijd is ingesteld op 00:00:00
- uu: mm: ss – datum is ingesteld op vandaag
- uu: mm – datum wordt ingesteld op vandaag, seconden op 00
- nu
- gisteren – de tijd is ingesteld op 00:00:00
- vandaag – de tijd is ingesteld op 00:00:00
- morgen – de tijd is ingesteld op 00:00:00
- + 5min
- -5 dagen
Waarom ‘zogenaamd’?
Het tweede en derde format in de lijst werkten niet tijdens het onderzoek voor dit artikel. Deze commando’s zijn getest op Ubuntu-, Fedora- en Manjaro-distributies. Dit zijn afgeleiden van respectievelijk de Debian-, RedHat- en Arch-distributies. Dat omvat alle belangrijke families van Linux-distributie.
last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00
Zoals u kunt zien, retourneerde de opdracht helemaal geen records.
Als u de eerste datum- en tijdnotatie uit de lijst gebruikt met dezelfde datum en tijden als de vorige opdracht, worden records geretourneerd:
last -R -s 20190526110000 -t 20190527130000
Zoeken op relatieve eenheden
U geeft ook tijdsperioden op die worden gemeten in minuten of dagen, ten opzichte van de huidige datum en tijd. Hier vragen we records van twee dagen geleden tot een dag geleden.
last -R -s -2days -t -1days
Gisteren, vandaag en nu
Je kunt gebruiken yesterday
en tomorrow
als afkorting voor de datum van gisteren en de datum van vandaag.
last -R -s yesterday -t today
Niet dat dit geen records voor vandaag bevat. Dat is het verwachte gedrag. De opdracht vraagt om records vanaf de startdatum tot de einddatum. Het niet omvatten records binnen de einddatum.
De now
optie is een afkorting voor ‘vandaag op dit moment’. Gebruik deze opdracht om de inloggebeurtenissen te zien die hebben plaatsgevonden sinds 00:00 (zonsopgang) tot het moment waarop u de opdracht geeft:
last -R -s today -t now
Dit toont alle inloggebeurtenissen tot op het moment, inclusief degene die nog zijn ingelogd.
De huidige optie
De -p
Met de (huidige) optie kunt u achterhalen wie er op een bepaald moment was ingelogd.
Het maakt niet uit wanneer ze zich hebben aangemeld of afgemeld, maar als ze op de computer waren aangemeld op het tijdstip dat u opgeeft, worden ze in de lijst opgenomen.
Als u een tijd zonder datum opgeeft last
gaat ervan uit dat je ‘vandaag’ bedoelt.
last -R -p 09:30
Mensen die nog ingelogd zijn hebben (uiteraard) geen uitlogtijd; ze worden beschreven als still logged in
. Als de computer niet opnieuw is opgestart sinds het tijdstip dat u opgeeft, wordt deze weergegeven als still running
.
Als u de now
steno met de -p
(huidige) optie kunt u zien wie er is ingelogd op het moment dat u de opdracht geeft.
last -R -p now
Dit is een ietwat langdradige manier om te bereiken wat kan worden bereikt met de who
opdracht.
VERWANT: Hoe u het huidige gebruikersaccount in Linux kunt bepalen
Het lastb-commando
De lastb
commando verdient vermelding. Het leest gegevens uit een logboek genaamd btmp
. Er is iets meer consensus over deze lognaam. De ‘b’ staat voor slecht, maar het ’tmp’-gedeelte is nog onderwerp van discussie.
lastb
somt de slechte (mislukt) inlogpogingen. Het accepteert dezelfde opties als last
. Omdat het mislukte inlogpogingen waren, hebben alle vermeldingen een duur van 00:00 uur.
Je moet gebruiken sudo
met lastb
.
sudo lastb -R
Het laatste woord over de kwestie
Weten wie zich op uw Linux-computer heeft aangemeld, wanneer, en waar vandaan is nuttige informatie. Door dit te combineren met de details van mislukte inlogpogingen, kun je de eerste stappen zetten om verdacht gedrag te onderzoeken.