CodeGym /Các khóa học /Docker SELF /Giám sát người dùng đang hoạt động và đăng nhập: các lệnh...

Giám sát người dùng đang hoạt động và đăng nhập: các lệnh `who`, `w`, `last`

Docker SELF
Mức độ , Bài học
Có sẵn

Giám sát người dùng đang hoạt động và đăng nhập: các lệnh who, w, last

1. Tại sao việc giám sát người dùng lại quan trọng?

Linux, cũng giống như bất kỳ máy chủ nào khác (hoặc thậm chí một cái hộp "ác độc" chứa trang web), cho phép nhiều người dùng làm việc cùng lúc. Nhưng nếu máy chủ của bạn bị xâm nhập thì sao? Hoặc có đồng nghiệp nào đó "tình cờ" xóa các tệp quan trọng vào ban đêm? Việc giám sát hoạt động của người dùng giúp chúng ta hiểu được ai, khi nào và từ đâu đã truy cập vào hệ thống, cũng như các quá trình họ đã thực hiện. Nó giống như một chiếc camera giám sát, nhưng dành cho máy chủ của bạn.

Các công cụ giám sát chính

Để đánh giá hoạt động của người dùng trên máy chủ, Linux cung cấp ba lệnh quan trọng:

  • who — hiển thị những người dùng hiện tại đang làm việc trong hệ thống.
  • w — cung cấp thêm thông tin: các hành động của người dùng và tải hệ thống.
  • last — hiển thị lịch sử các lần đăng nhập vào hệ thống.

Mỗi lệnh này có các đặc điểm riêng và phù hợp với các kịch bản khác nhau. Hãy cùng phân tích từng cái qua các ví dụ nhé.


2. Lệnh who

Lệnh who hiển thị danh sách những người dùng hiện đang đăng nhập vào hệ thống. Nó giống như một "cuốn sổ đăng ký", nơi bạn có thể xem ai đang ở trên server.

who

Ví dụ đầu ra của lệnh:

user1    pts/0        2023-10-20 09:10 (192.168.1.100)
root     pts/1        2023-10-20 09:15 (192.168.1.101)

Chúng ta thấy gì ở đây:

  • Tên người dùng user1, root.
  • Terminal mà họ kết nối thông qua pts/0, pts/1.
  • Thời gian đăng nhập 2023-10-20 09:10.
  • Kết nối từ đâu 192.168.1.100.

Các tùy chọn cho who:

  • who -a: Cũng hiển thị dữ liệu hệ thống, như thời gian khởi động, các tiến trình đang chạy và người dùng.
  • who am i: Chỉ hiển thị thông tin về người dùng đã chạy lệnh.

3. Lệnh w

Nếu who chỉ đơn giản ghi lại ai đã đăng nhập, thì w cung cấp nhiều thông tin hơn - nó nói về người dùng hiện đang làm gì. Điều này hữu ích để biết liệu họ có đang làm gì có ích hay nên dừng lại ngay lập tức.

w

Ví dụ đầu ra:

10:20:42 up 1 day,  5:12,  2 users,  load average: 0.00, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.1.100    09:10    1:00   0.01s  0.01s nano app.py
root     pts/1    192.168.1.101    09:15    2:00   0.02s  0.02s htop

Điều gì đang diễn ra:

  • Dòng trên cùng cung cấp thông tin hệ thống: thời gian hiện tại, thời gian máy chủ đã hoạt động, số lượng người dùng và tải trung bình của hệ thống load average.
  • Bảng hiển thị:
    • Tên người dùng user1, root.
    • Giao diện mà người dùng kết nối qua pts/0, pts/1.
    • Địa chỉ IP của người dùng 192.168.1.100.
    • Thời gian người dùng đăng nhập vào hệ thống 09:10.
    • Thời gian nhàn rỗi IDLE.
    • Hoạt động hiện tại của người dùng WHAT, ví dụ, chỉnh sửa tệp app.py bằng nano.

Các tùy chọn cho w:

  • w -h: Loại bỏ tiêu đề của bảng.
  • w username: Chỉ hiển thị thông tin về một người dùng cụ thể.

4. Lệnh last

Nếu whow nói về hiện tại, thì last cho phép nhìn về quá khứ. Nó hiển thị lịch sử tất cả các lần đăng nhập vào hệ thống. Lệnh này đọc file /var/log/wtmp, nơi lưu trữ tất cả các lần đăng nhập của người dùng.

last

Ví dụ kết quả đầu ra:

user1    pts/0        192.168.1.100    Fri Oct 20 09:10 - 09:30  (00:20)
root     pts/1        192.168.1.101    Fri Oct 20 09:15 - down   (00:15)

Chúng ta thấy gì ở đây:

  • Tên người dùng user1, root.
  • Terminal pts/0, pts/1.
  • Địa chỉ IP hoặc tên máy chủ 192.168.1.100, 192.168.1.101.
  • Thời gian đăng nhập Fri Oct 20 09:10.
  • Thời gian đăng xuất 09:30 và tổng thời gian phiên 00:20.

Các tùy chọn cho last:

  • last -n 10: Hiển thị chỉ 10 bản ghi cuối cùng.
  • last username: Lịch sử đăng nhập cho một người dùng cụ thể.
  • last reboot: Hiển thị khi máy chủ được khởi động lại.

5. Ví dụ thực tế: phân tích hoạt động của người dùng

Giả sử bạn muốn biết ai đã làm việc trên máy chủ vào ban đêm để xem có điều gì đáng nghi hay không. Bắt đầu bằng cách kiểm tra người dùng hiện tại:

who

Tiếp theo, kiểm tra họ đang làm gì:

w

Nếu phát hiện điều gì đó lạ (ví dụ: một tiến trình không rõ nguồn gốc), bạn cần kiểm tra ai đã đăng nhập vào ban đêm. Để làm điều này, sử dụng:

last

Xem các bản ghi cho người dùng cụ thể đã thu hút sự chú ý:

last user1

Nếu phát hiện bất thường, chẳng hạn đăng nhập từ IP không quen thuộc, bạn cần thực hiện các biện pháp: hạn chế quyền truy cập, bật xác thực hai yếu tố hoặc khóa người dùng.


6. Đặc điểm và lỗi phổ biến

Khi làm việc với các lệnh giám sát, bạn cần nhớ rằng:

  1. File log có thể bị xóa. Nếu ai đó ác ý xóa các bản ghi từ /var/log/wtmp, thì lệnh last sẽ không hiển thị gì cả. Đây là lý do tại sao việc sao lưu log thường xuyên hoặc gửi chúng đến một máy chủ từ xa là rất quan trọng.

  2. Dễ dàng hiểu kết quả hơn. Đôi khi kết quả lệnh có thể quá tải (ví dụ: khi có nhiều người dùng). Hãy dùng các bộ lọc như grep để tìm thông tin cần thiết:

    last | grep user1
    
  3. Phụ thuộc vào cấu hình hệ thống. Một số hệ thống có thể không ghi lại đăng nhập nếu điều đó bị tắt do cấu hình. Đảm bảo rằng /var/log/wtmp được cập nhật thường xuyên.

Kiến thức này áp dụng vào thực tế như thế nào?

  • Quản trị server. Ví dụ, bạn là quản trị viên công ty và cần theo dõi an ninh hệ thống để không ai vô tình hoặc cố ý "phá hỏng mọi thứ".
  • Phát hiện mối đe dọa. Công cụ giám sát sẽ giúp bạn phát hiện các cố gắng truy cập trái phép.
  • Kiểm toán hệ thống. Khi kiểm tra các server về tiêu chuẩn bảo mật, các lệnh này thường được sử dụng để phân tích hoạt động của người dùng.
  • Chuẩn đoán. Bạn nhận thấy server chạy chậm hơn? Hãy xem ai và đang làm gì ở đó!

Bây giờ bạn đã sẵn sàng giám sát hệ thống của mình như một boss! Đừng quên rằng bảo vệ hệ thống bắt đầu từ việc hiểu rõ những gì đang diễn ra bên trong nó.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION