Saturday, January 18, 2025

Thông tin về file lastlog và auth.log

-

1. File lastlog

Mục đích

  • File lastlog được hệ thống sử dụng để ghi nhận lần đăng nhập gần nhất của từng người dùng trên hệ thống.
  • Mỗi người dùng trên hệ thống có một bản ghi riêng trong file này, dựa theo UID.

Nội dung

  • Đây là một file nhị phân (binary), không phải văn bản thông thường, với cấu trúc cố định để lưu thông tin sau:
    • UID: Mã định danh người dùng.
    • TTY: Tên thiết bị đầu cuối (ví dụ: pts/0) mà người dùng sử dụng để đăng nhập.
    • Thời gian đăng nhập cuối cùng: Ghi nhận thời gian cụ thể của lần đăng nhập gần nhất.
    • Địa chỉ IP (trong một số hệ thống): Địa chỉ IP của máy thực hiện kết nối.

Cách đọc

Dùng lệnh lastlog để chuyển nội dung nhị phân thành dạng văn bản dễ hiểu:

lastlog

Ví dụ đầu ra:

Username         Port     From             Latest
root             pts/0    192.168.1.100    Mon Dec  4 10:15:00 +0000 2024
user1            pts/1    192.168.1.101    Sun Dec  3 09:45:00 +0000 2024

Để đọc file lastlog ở một đường dẫn khác với lệnh lastlog, thường sử dụng khi bạn backup file này sang một thư mục khác thì bạn không thể chỉ định trực tiếp đường dẫn file khác do lệnh này mặc định chỉ đọc từ /var/log/lastlog. Tuy nhiên bạn có thể sử dụng script Python sử dụng struct để giải mã như ví dụ sau:

import struct
import pwd
import os

def read_lastlog(file_path):
    if not os.path.exists(file_path):
        print(f"File not found: {file_path}")
        return

    record_size = 292

    with open(file_path, "rb") as f:
        uid = 0
        while chunk := f.read(record_size):
            if len(chunk) < record_size:
                break

            # Giải mã bản ghi
            data = struct.unpack("=I32s256s", chunk)
            tty = data[1].decode('utf-8').strip('\x00')
            timestamp = data[2].decode('utf-8').strip('\x00')

            try:
                username = pwd.getpwuid(uid).pw_name
            except KeyError:
                username = "Unknown"

            print(f"UID: {uid}, Username: {username}, TTY: {tty}, Last Login: {timestamp}")
            uid += 1

read_lastlog("/path/to/your/lastlog")

Thay thế "/path/to/your/lastlog" bằng đường dẫn thực tế. Script này hỗ trợ đọc file nhị phân lastlog ở bất kỳ đường dẫn nào.

Đặc điểm

  • Chỉ lưu một lần đăng nhập gần nhất của mỗi người dùng.
  • Tự động cập nhật mỗi khi có người dùng đăng nhập thành công.
  • Không ghi lại chi tiết các lần đăng nhập trước, cũng không lưu thông tin các lần đăng nhập thất bại.

2. File auth.log

Mục đích

  • File auth.log lưu trữ toàn bộ các sự kiện liên quan đến xác thực trên hệ thống, bao gồm:
    • Các lần đăng nhập thành công.
    • Các lần đăng nhập thất bại (do sai mật khẩu, sai tên người dùng, hoặc bị chặn).
    • Hoạt động liên quan đến quyền truy cập (sudo, ssh, v.v.).
    • Sự kiện liên quan đến các dịch vụ xác thực như PAM hoặc sshd.

Nội dung

  • Đây là một file văn bản (plaintext), lưu trữ theo thời gian thực với các thông tin chi tiết cho từng sự kiện:
    • Thời gian xảy ra sự kiện.
    • Tên người dùng (nếu có).
    • Địa chỉ IP hoặc máy chủ thực hiện kết nối.
    • Loại sự kiện (thành công, thất bại, lỗi xác thực, v.v.).

Cách đọc

  • Dùng các lệnh như cat, less, hoặc grep để tìm kiếm trong file:
grep "sshd" /var/log/auth.log

Ví dụ nội dung.

Dec  4 10:15:00 hostname sshd[12345]: Accepted password for root from 192.168.1.100 port 22 ssh2
Dec  4 10:17:00 hostname sshd[12346]: Failed password for invalid user admin from 192.168.1.101 port 22 ssh2
Dec  4 10:20:00 hostname sudo: pam_unix(sudo:session): session opened for user root by user1(uid=1000)

Đặc điểm

  • Ghi lại toàn bộ lịch sử các sự kiện liên quan đến xác thực.
  • Hữu ích để kiểm tra các hành vi đáng ngờ hoặc sự cố bảo mật.
  • Lưu cả các sự kiện thất bại và thành công.

So sánh lastlogauth.log.

Đặc điểmlastlogauth.log
Loại fileFile nhị phân (binary).File văn bản (plaintext).
Mục đíchLưu lần đăng nhập cuối cùng của mỗi người dùng.Lưu toàn bộ sự kiện liên quan đến xác thực.
Nội dung lưu trữ– UID.
– TTY.
– Thời gian đăng nhập gần nhất.
– Thời gian.
– Loại sự kiện.
– Địa chỉ IP.
Chi tiết sự kiệnChỉ lưu một bản ghi cho mỗi người dùng.Ghi lại tất cả các lần đăng nhập và sự kiện.
Lưu sự kiện thất bạiKhông.Có.
Công cụ đọcLệnh lastlog hoặc script xử lý nhị phân.cat, less, grep, hoặc các công cụ xử lý log.
Cập nhậtTự động ghi đè mỗi lần đăng nhập thành công.Không tự động ghi đè, lưu tất cả lịch sử.

Khi nào dùng file nào?

  • Dùng lastlog:
    • Kiểm tra nhanh người dùng nào đã đăng nhập lần cuối và vào lúc nào.
    • Thích hợp để theo dõi các hoạt động hiện tại, không quan tâm lịch sử chi tiết.
  • Dùng auth.log:
    • Kiểm tra lịch sử đăng nhập, đặc biệt khi điều tra lỗi hoặc hoạt động bất thường.
    • Lưu ý các lần đăng nhập thất bại để phát hiện tấn công brute force hoặc lạm dụng tài khoản.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories