Linux에서 마지막 명령을 사용하는 방법

누가, 언제, 어디서? 좋은 보안 관행에 따르면 누가 Linux 컴퓨터에 액세스했는지 알아야 합니다. 우리는 방법을 보여줍니다.

wtmp 파일

Linux 및 MacOS와 같은 기타 유닉스 계열 운영 체제는 로깅에 매우 능숙합니다. 시스템 내부 어딘가에는 생각할 수 있는 거의 모든 것에 대한 로그가 있습니다. 관심 있는 로그 파일은 wtmp입니다. “w”는 “언제” 또는 “누가”를 의미할 수 있습니다. 아무도 동의하지 않는 것 같습니다. “tmp” 부분은 아마도 “임시”를 나타내지만 “타임스탬프”를 나타낼 수도 있습니다.

우리가 아는 것은 wtmp가 모든 로그인 및 로그아웃 이벤트를 캡처하고 기록하는 로그라는 것입니다. wtmp 로그의 데이터를 검토하는 것은 시스템 관리자 업무에 보안을 고려한 접근 방식을 취하는 기본 단계입니다. 일반적인 가족용 컴퓨터의 경우 보안 측면에서 그다지 중요하지 않을 수 있지만 컴퓨터를 함께 사용하는 것을 검토할 수 있다는 것은 흥미로운 일입니다.

Linux의 많은 텍스트 기반 로그 파일과 달리 wtmp는 바이너리 파일입니다. 그 안에 있는 데이터에 액세스하려면 해당 작업을 위해 설계된 도구를 사용해야 합니다.

그 도구가 마지막 명령입니다.

마지막 명령

마지막 명령은 wtmp 로그에서 데이터를 읽어 터미널 창에 표시합니다.

마지막으로 입력하고 Enter 키를 누르면 모든 기록을 표시 로그 파일에서.

last

wtmp의 각 레코드는 터미널 창에 표시됩니다.

왼쪽에서 오른쪽으로 각 줄에는 다음이 포함됩니다.

로그인한 사람의 사용자 이름입니다.
로그인한 터미널입니다. 터미널 항목 :0은 Linux 컴퓨터 자체에 로그인했음을 의미합니다.
로그인한 컴퓨터의 IP 주소입니다.
로그인 시간 및 날짜 스탬프입니다.
세션 기간입니다.

마지막 줄은 로그에 가장 먼저 기록된 세션의 날짜와 시간을 알려줍니다.

가상 사용자 ‘reboot’에 대한 로그인 항목은 컴퓨터가 부팅될 때마다 로그에 입력됩니다. 터미널 필드는 커널 버전으로 대체됩니다. 이러한 항목에 대한 로그인 세션 기간은 컴퓨터의 가동 시간을 나타냅니다.

특정 라인 수 표시

마지막 명령을 단독으로 사용하면 전체 로그의 덤프가 생성되고 대부분이 터미널 창을 지나갑니다. 계속 표시되는 부분은 로그에서 가장 오래된 데이터입니다. 이것은 아마도 당신이보고 싶었던 것이 아닙니다.

마지막에 특정 수의 출력 라인을 제공하도록 지정할 수 있습니다. 명령줄에 원하는 줄 수를 제공하여 이 작업을 수행합니다. 하이픈에 유의하십시오. 다섯 줄을 보려면 5가 아니라 -5를 입력해야 합니다.

last -5

이것은 가장 최근 데이터인 로그의 처음 5개 라인을 제공합니다.

원격 사용자의 네트워크 이름 표시

-d(도메인 이름 시스템) 옵션은 마지막에 원격 사용자의 IP 주소를 시스템 또는 네트워크 이름으로 확인하도록 지시합니다.

last -d

last 가 IP 주소를 네트워크 이름으로 변환하는 것이 항상 가능한 것은 아니지만 명령은 가능할 때 그렇게 할 것입니다.

IP 주소 및 네트워크 이름 숨기기

IP 주소나 네트워크 이름에 관심이 없으면 -R(호스트 이름 없음) 옵션을 사용하여 이 필드를 표시하지 않습니다.

이것은 보기 흉한 랩어라운드 없이 더 깔끔한 출력을 제공하기 때문에 이 옵션은 다음 모든 예에서 사용되었습니다. 비정상적이거나 의심스러운 활동을 식별하기 위해 last를 사용한 경우 이 필드를 표시하지 않을 것입니다.

날짜별 레코드 선택

-s(이후) 옵션을 사용하여 특정 날짜 이후에 발생한 로그인 이벤트만 표시하도록 출력을 제한할 수 있습니다.

2019년 5월 26일부터 발생한 로그인 이벤트만 보려면 다음 명령을 사용합니다.

last -R -s 2019-05-26

출력은 지정된 날짜의 시간 00:00부터 로그 파일의 최신 레코드까지 발생한 로그인 이벤트가 있는 레코드를 표시합니다.

종료일까지 검색

-t(까지)를 사용하여 종료 날짜를 지정할 수 있습니다. 이를 통해 관심 있는 두 날짜 사이에 발생한 로그인 기록 세트를 선택할 수 있습니다.

이 명령어는 26일 00:00(새벽)부터 27일 00:00(새벽)까지 로그인 기록을 조회하여 표시하도록 마지막으로 요청합니다. 이렇게 하면 26일에만 발생한 로그인 세션으로 목록이 좁혀집니다.

시간 및 날짜 형식

-s 및 -t 옵션과 함께 날짜와 시간을 사용할 수 있습니다.

날짜와 시간을 사용하는 마지막 옵션과 함께 사용할 수 있는 다양한 시간 형식은 다음과 같습니다.

YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm – 초가 00으로 설정됨
YYYY-MM-DD – 시간이 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

여기에 오늘의 기록이 포함되지 않는다는 것은 아닙니다. 예상되는 동작입니다. 이 명령은 시작 날짜부터 종료 날짜까지의 레코드를 요청합니다. 종료 날짜 이내의 레코드는 포함되지 않습니다.

now 옵션은 “오늘에 현재 시간”의 줄임말입니다. 00:00(새벽)부터 명령을 실행할 때까지 발생한 로그인 이벤트를 보려면 다음 명령을 사용하십시오.

last -R -s today -t now

이렇게 하면 아직 로그인한 이벤트를 포함하여 현재 시간까지의 모든 로그인 이벤트가 표시됩니다.

현재 옵션

-p(현재) 옵션을 사용하면 특정 시점에 누가 로그인했는지 확인할 수 있습니다.

그들이 언제 로그인했는지, 로그아웃했는지는 중요하지 않지만 지정한 시간에 컴퓨터에 로그인한 경우 목록에 포함됩니다.

마지막 날짜 없이 시간을 지정하면 “오늘”을 의미한다고 가정합니다.

last -R -p 09:30

여전히 로그인되어 있는 사람들은 (분명히) 로그아웃 시간이 없습니다. 그들은 여전히 ​​로그인 상태로 설명되어 있습니다. 지정한 시간 이후에 컴퓨터가 재부팅되지 않은 경우 여전히 실행 중인 것으로 나열됩니다.

-p(현재) 옵션과 함께 now 속기를 사용하면 명령을 실행할 때 누가 로그인했는지 알 수 있습니다.

last -R -p now

이것은 who 명령을 사용하여 달성할 수 있는 것을 달성하기 위한 다소 장황한 방법입니다.

lastb 명령

lastb 명령은 언급할 가치가 있습니다. btmp라는 로그에서 데이터를 읽습니다. 이 로그 이름에 대한 합의가 조금 더 있습니다. ‘b’는 bad를 의미하지만 ‘tmp’ 부분은 여전히 ​​논쟁의 여지가 있습니다.

lastb는 잘못된(실패한) 로그인 시도를 나열합니다. last와 동일한 옵션을 허용합니다. 로그인 시도에 실패했기 때문에 항목의 기간은 모두 00:00입니다.

lastb와 함께 sudo를 사용해야 합니다.

sudo lastb -R

이 문제에 대한 마지막 말씀

Linux 컴퓨터에 누가, 언제, 어디서 로그인했는지 아는 것은 유용한 정보입니다. 이를 실패한 로그인 시도의 세부 정보와 결합하면 의심스러운 동작을 조사하는 첫 번째 단계를 준비할 수 있습니다.