[Linux] Hướng dẫn sử dụng lệnh “last” và “lastb” để kiểm tra hoạt động đăng nhập hệ thống Linux

Hôm nay chúng ta sẽ tìm hiểu về cách thức kiểm tra thông tin về các lần đăng nhập và thoát ra khỏi hệ thống bởi user hệ thống trên Linux bằng 2 chương trình lệnh cơ bản “last” và “lastb”.
 

Mô tả chức năng lệnh “last” và “lastb”

+ last
Chương trình lệnh “last” sẽ đọc file log ở đường dẫn mặc định “/var/log/wtmp” hoặc ở đường dẫn khác với option “-f” để hiển thị thông tin danh sách thời gian các lần user hệ thống đăng nhập vào hệ thống thành công và thoát ra khỏi hệ thống thành công. Chương trình lệnh sẽ chỉ liệt kê được thông tin ở trong file “wtmp” từ khi file này được tạo ra hoặc bắt đầu chứa thông tin.
Thông tin pseudo-user “reboot” sẽ được hiển thị trong danh sách thông tin liệt kê của last mỗi khi hệ thống khởi động lại.
Lưu ý là file “wtmp” không phải là file text ở có thể đọc bình thường bằng các chương trình editor, nó chỉ có thể đọc theo chuẩn format của chương trình lệnh “last” và “lastb” và file này ở dạng binary.
 
+ lastb
Chương trình lệnh “lastb” thì sao ? Hoạt động và chức năng hiển thị thông tin y hệt với chương trình lệnh “last” nhưng khác ở chỗ “lastb” chỉ hiển thị các truy cập user đang cố gắng đăng nhập vào hệ thống nhưng thất bại, như trường hợp hệ thống Linux thường bị các chương trình brute force SSH tự động kiểm tra đăng nhập thì khi kiểm tra bằng “lastb” sẽ thấy rất nhiều thông tin báo login thất bại như vậy.
lastb” sẽ đọc thông tin được lưu trữ ở file log “/var/log/btmp“.
 
Lưu ý chung :
– File log “/var/log/wtmp” chứa log entry về các lần login thành công và được đọc bởi chương trình lệnh “last“.
– File log “/var/log/btmp” chứa log entry về các lần login thành công và được đọc bởi chương trình lệnh “lastb“.
 

Cấu trúc lệnh “last” và “lastb”

last [-R] [-num] [ -n num ] [-adFiowx] [ -f file ] [ -t YYYYMMDDHHMMSS ] [
     name...] [tty...]
lastb [-R] [-num] [ -n num ] [ -f file ] [-adFiowx] [name...] [tty...]
 

Cách đọc output của chương trình lệnh “last” và “lastb”

# last
root     pts/1     14.186.61.123         Fri Nov 14 18:52 - 22:16 (03:23)
root     pts/0     14.186.61.123     Fri Nov 14 05:45 - 03:09 (1+21:23)
 
Cột 1 : thể hiện tên user hệ thống đang/đã đăng nhập vào hệ thống.
Cột 2 : cho chúng ta một số thông tin về phương thức user đang/đã đăng nhập như.
+ pts/0 (pseudo terminal) : nghĩa là user này đang kết nối thông qua các chương trình remote connection như SSH hoặc Telnet.
+ tty (teletypewriter) : user này đang kết nối thông qua local terminal.
+ shutdown/reboot : thể hiện thông tin hệ thống đã được tắt hoặc khởi động lại.
Cột 3 : thể hiện thông tin về hostname hoặc địa chỉ IP của máy tính kết nối tới. Nếu bạn thấy “:0.0” hoặc không có thông tin gì thì chứng tỏ user đó được kết nối local terminal như console.
Cột 4 trở đi : thể hiện thông tin thời gian đăng nhập vào/ thời gian thoát ra khỏi hệ thống và khoảng thời gian hoạt động của terminal session đó.
 

Một số ví dụ chạy chương trình lệnh “last” và “lastb”

Do cả chương trình lệnh “last” và “lastb” đều có cùng cấu trúc hoạt động và thể hiện thông tin thống kê nên ở đây mình chỉ cần nêu ví dụ về chương trình lệnh “last” là được, còn “lastb” thì tương tự nhưng hiển thị kết quả có ý nghĩa ngược lại thôi. Chương trình sẽ xuất ra các thông tin cơ bản gồm : user, tty, ip, thời gian.
 
– Chạy lệnh “last” không kèm theo bất cứ biến option nào thì sẽ có output thống kê cơ bản như dưới. Mỗi dòng sẽ bắt đầu bằng thông tin tên account đăng nhập vào hệ thống, như ở dưới là user “root” và “cuongqc”, giúp cho chúng ta biết được những user nào đã login trong khoảng thời gian gần đây vào hệ thống.
# last
root     pts/1     14.186.61.123         Fri Nov 14 18:52 - 22:16 (03:23)
root     pts/0     14.186.61.123     Fri Nov 14 05:45 - 03:09 (1+21:23)
cuongqc     pts/0     14.186.61.123     Wed Nov 12 06:51 - 03:14 (1+20:22)
root     pts/1     42.118.38.112     Tue Nov 11 19:53 - 05:03 (09:09)
root     pts/1     42.118.38.112         Wed Nov 5 07:35 - 11:14 (03:39)
root     pts/0     42.118.38.112     Wed Nov 5 06:20 - 21:10 (6+14:49)
root     pts/0     42.118.38.112         Tue Nov 4 13:32 - 14:02 (00:30)
 
– Liệt kê những lần đăng nhập của 1 user, ta chỉ cần thêm tên của user đó vào sau câu lệnh “last“.
# last root
root     pts/1        42.118.38.112        Tue Aug  2 07:04   still logged in   
root     pts/1        42.118.38.112        Mon Aug  1 21:32 - 01:10  (03:37)    
root     pts/1        118.69.190.12     Mon Aug  1 09:04 - 17:46  (08:41)    
root     pts/1        118.69.190.12     Thu Jul 28 16:22 - 16:28  (00:05)    
root     pts/1        118.69.190.12     Thu Jul 28 13:00 - 13:00  (00:00)
 
– Liệt kê đầy đủ toàn bộ thông tin thời gian đăng nhập và thời gian thoát ra khỏi hệ thống với option “-F“. Nói chung là ở mức
# last -F
root     pts/1        113.172.30.59    Mon Aug  1 21:32:52 2016 - Tue Aug  2 01:10:41 2016  (03:37)    
root     pts/1        123.30.108.100   Mon Aug  1 09:04:35 2016 - Mon Aug  1 17:46:04 2016  (08:41)    
root     pts/1        123.30.108.100   Thu Jul 28 16:22:59 2016 - Thu Jul 28 16:28:58 2016  (00:05)    
root     pts/1        123.30.108.100   Thu Jul 28 13:00:24 2016 - Thu Jul 28 13:00:41 2016  (00:00)    
root     pts/1        14.186.239.95    Thu Jul 28 05:17:10 2016 - Thu Jul 28 05:17:16 2016  (00:00)    
root     pts/1        123.30.108.100   Wed Jul 27 12:57:00 2016 - Wed Jul 27 13:00:41 2016  (00:03)    
root     pts/2        123.30.108.100   Wed Jul 27 10:32:16 2016 - Wed Jul 27 10:32:46 2016  (00:00)
 
– Liệt kê thời gian các lần hệ thống đã khởi động lại.
# last reboot 
reboot   system boot  2.6.32-573.26.1. Mon May 23 07:08 - 09:31 (71+02:23)  
reboot   system boot  2.6.32-573.26.1. Fri May 13 11:00 - 09:31 (80+22:30)  
reboot   system boot  2.6.32-573.26.1. Fri May 13 11:00 - 11:00  (00:00)    
reboot   system boot  2.6.32-573.26.1. Thu May  5 09:07 - 11:00 (8+01:52)   
reboot   system boot  2.6.32-573.el6.x Thu May  5 08:43 - 09:07  (00:24)    
reboot   system boot  2.6.32-573.el6.x Thu May  5 08:39 - 08:43  (00:04)
 
– Liệt kê thời gian các lần hệ thống tắt (shutdown).
# last -x shutdown
shutdown system down  2.6.32-573.26.1. Fri May 13 11:00 - 11:00  (00:00)    
shutdown system down  2.6.32-573.el6.x Thu May  5 09:07 - 09:07  (00:00)    
shutdown system down  2.6.32-573.el6.x Thu May  5 08:43 - 08:43  (00:00)
 
Một số các option khác các bạn có thể xem manual trực tiếp của lệnh trên Linux.
# man last
# man lastb
 
– Hiển thị đầy đủ thông tin user và thông tin domain với option “-w“. Do thông thường “last” sẽ hiển thị tên domain đăng nhập vào hệ thống thay vì hiển thị trực tiếp địa chỉ IP, nếu muốn hiển thị địa chỉ IP thay vì tên domain thì ta thêm option “-i“.
# last -w
# last -i
 
Bài viết đến đây là kết thúc rồi. Cám ơn các bạn đã theo dõi.
Previous article[Ebook] UNIX and Linux System Administration Handbook, 4th Edition – Download PDF
Next article[Linux] Hướng dẫn xoá log lịch sử đăng nhập vào hệ thống Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !