Как да използвате последната команда в Linux

Кой, кога и откъде? Добрите практики за сигурност казват, че трябва да знаете кой е осъществявал достъп до вашия Linux компютър. Ние ви показваме как.

Файлът wtmp

Linux и други подобни на Unix операционни системи като MacOS са много добри в регистрирането. Някъде в недрата на системата има дневник за почти всичко, за което се сетите. Регистрационният файл, който ни интересува, се нарича wtmp. „w“ може да означава „кога“ или „кой“ – изглежда никой не е съгласен. Частта „tmp“ вероятно означава „временен“, но може да означава и „timestamp“.

Това, което знаем, е, че wtmp е дневник, който улавя и записва всяко събитие за влизане и излизане. Прегледът на данните в дневника на wtmp е основна стъпка в предприемането на подход, насочен към сигурността, към задълженията на системния администратор. За типичен семеен компютър може да не е толкова критично от гледна точка на сигурността, но е интересно да можете да прегледате комбинираната ви употреба на компютъра.

За разлика от много текстови лог файлове в Linux, wtmp е двоичен файл. За достъп до данните в него трябва да използваме инструмент, предназначен за тази задача.

Този инструмент е последната команда.

Последната команда

Последната команда чете данни от дневника на wtmp и ги показва в прозорец на терминала.

Ако въведете последно и натиснете Enter, ще стане покажете всички записи от регистрационния файл.

last

Всеки запис от wtmp се показва в прозореца на терминала.

Отляво надясно всеки ред съдържа:

Потребителското име на лицето, което е влязло.
Терминалът, в който бяха влезли. Запис в терминал :0 означава, че са били влезли на самия компютър с Linux.
IP адресът на машината, в която са влезли.
Печат за час и дата за влизане.
Продължителност на сесията.

  Как да архивирате SD карти и флаш устройства на Linux с DD

Последният ред ни казва датата и часа на най-ранната записана сесия в дневника.

Запис за влизане за фиктивния потребител ‘reboot’ се въвежда в дневника всеки път, когато компютърът се стартира. Терминалното поле се заменя с версията на ядрото. Продължителността на сесията за влизане в системата за тези записи представлява времето за работа на компютъра.

Показване на определен брой линии

Използването на последната команда самостоятелно създава дъмп на целия дневник, като по-голямата част от него преминава през прозореца на терминала. Частта, която остава видима, е най-ранните данни в дневника. Това вероятно не е това, което сте искали да видите.

Можете да кажете последно да ви даде определен брой изходни редове. Направете това, като посочите броя на редовете, който искате в командния ред. Обърнете внимание на тирето. За да видите пет реда, трябва да въведете -5, а не 5:

last -5

Това дава първите пет реда от дневника, който е най-новите данни.

Показване на мрежови имена за отдалечени потребители

Опцията -d (Система за имена на домейни) казва на последния да се опита да разреши IP адресите на отдалечените потребители в име на машина или мрежа.

last -d

Не винаги е възможно last да преобразува IP адреса в име на мрежа, но командата ще го направи, когато може.

Скриване на IP адреси и мрежови имена

Ако не се интересувате от IP адреса или името на мрежата, използвайте опцията -R (без име на хост), за да потиснете това поле.

Тъй като това дава по-чист изход без грозни обвивки, тази опция е използвана във всички следващи примери. Ако използвате last, за да се опитате да идентифицирате необичайна или подозрителна дейност, няма да потиснете това поле.

Избиране на записи по дата

Можете да използвате опцията -s (оттогава), за да ограничите изхода, за да показва само събития за влизане, които са се случили след определена дата.

Ако искате да видите само събития за влизане, които са се случили от 26 май 2019 г., ще използвате следната команда:

last -R -s 2019-05-26

Резултатът показва записи със събития за влизане, които са се случили от часа 00:00 на посочения ден, до най-новите записи в регистрационния файл.

  Как да преинсталирате Grub на Arch Linux

Търсене до крайна дата

Можете да използвате -t (до), за да посочите крайна дата. Това ви позволява да изберете набор от записи за влизане, които са се осъществили между две интересни дати.

Тази команда иска последно да извлече и покаже записите за влизане от 00:00 (зори) на 26-ти до часа 00:00 (зори) на 27-ми. Това стеснява списъка до сесии за влизане, проведени само на 26-ти.

Формати за час и дата

Можете да използвате времена, както и дати с опциите -s и -t.

Различните формати за време, които могат да се използват с последните опции, които използват дати и часове, са (уж):

ГГГГММДДччммс
ГГГГ-ММ-ДД чч:мм:сс
ГГГГ-ММ-ДД чч:мм – секундите са зададени на 00
ГГГГ-ММ-ДД – времето е настроено на 00:00:00
hh:mm:ss – датата е зададена за днес
hh:mm – датата ще бъде зададена на днес, секунди на 00
сега
вчера – часът е зададен на 00:00:00
днес – часът е зададен на 00:00:00
утре – часът е зададен на 00:00:00
+5мин
-5 дни

Защо „уж“?

Вторият и третият формат в списъка не работиха по време на изследването за тази статия. Тези команди бяха тествани в дистрибуции на Ubuntu, Fedora и Manjaro. Това са производни на дистрибуциите на Debian, RedHat и Arch, съответно. Това обхваща всички основни семейства на дистрибуцията на Linux.

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

Както можете да видите, командата не върна никакви записи.

Използването на първия формат за дата и час от списъка със същата дата и час като предишната команда връща записи:

last -R -s 20190526110000 -t 20190527130000

Търсене по относителни единици

Можете също така да посочите периоди от време, които се измерват в минути или дни, спрямо текущата дата и час. Тук искаме записи от преди два дни до преди един ден.

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

Вчера, днес и сега

Можете да използвате вчера и утре като стенография за вчерашна и днешна дата.

last -R -s yesterday -t today

Не че това няма да включва никакви записи за днес. Това е очакваното поведение. Командата изисква записи от началната дата до крайната дата. Не включва записи от крайната дата.

  Как да играете World Of Warcraft на Linux

Опцията сега е съкращение от „днес в текущото време“. За да видите събитията за влизане, които са се случили от 00:00 (зазоряване) до момента, в който издадете командата, използвайте тази команда:

last -R -s today -t now

Това ще покаже всички събития за влизане в момента, включително тези, които все още са влезли.

Настоящата опция

Опцията -p (настоящ) ви позволява да разберете кой е бил влязъл в даден момент.

Няма значение кога са влезли или излезли, но ако са били влезли в компютъра в момента, който посочите, те ще бъдат включени в списъка.

Ако посочите час без дата, последното предполага, че имате предвид „днес“.

last -R -p 09:30

Хората, които все още са влезли (очевидно) нямат време за излизане; те са описани като все още влезли в системата. Ако компютърът не е рестартиран от времето, което сте посочили, той ще бъде посочен като все още работещ.

Ако използвате съкращенията сега с опцията -p (prisent), можете да разберете кой е влязъл в момента, в който издадете командата.

last -R -p now

Това е донякъде дълъг начин за постигане на това, което може да се постигне с помощта на командата who.

Последната команда

Командата lastb заслужава да се спомене. Той чете данни от дневник, наречен btmp. Има малко повече консенсус относно това име на дневника. „b“ означава лошо, но частта „tmp“ все още е обект на дебат.

lastb изброява лошите (неуспешни) опити за влизане. Приема същите опции като предишния. Тъй като са били неуспешни опити за влизане, всички те ще имат продължителност 00:00.

Трябва да използвате sudo с lastb.

sudo lastb -R

Последната дума по въпроса

Познаването кой е влязъл във вашия Linux компютър, кога и откъде е полезна информация. Комбинирането на това с подробностите за неуспешни опити за влизане ви въоръжава с първите стъпки за разследване на подозрително поведение.