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ệpapp.py
bằngnano
.
- Tên người dùng
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 who
và w
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ên00: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:
File log có thể bị xóa. Nếu ai đó ác ý xóa các bản ghi từ
/var/log/wtmp
, thì lệnhlast
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.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
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ó.
GO TO FULL VERSION