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”.
Contents
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.