Vấn đề: Khi lịch sử lệnh (History) là một kẻ nói dối
Đã bao giờ bạn thức trắng đêm để truy tìm xem ai đã gõ lệnh rm -rf nhầm trên server chưa? Mình từng rơi vào cảnh đó khi một con bot brute-force SSH thành công. Cảm giác lục lại đống log vụn vặt lúc 2 giờ sáng thực sự rất tồi tệ.
Nhiều người vẫn tin tưởng tuyệt đối vào file .bash_history. Tuy nhiên, kẻ xấu chỉ cần một lệnh history -c hoặc unset HISTFILE là mọi dấu vết biến mất sạch sẽ. Nguy hiểm hơn, history chỉ ghi lại những gì người dùng gõ, chứ không cho bạn thấy kết quả trả về hay nội dung họ đã sửa trong vi hoặc nano.
Nếu bạn đang quản lý hệ thống có nhiều Admin hoặc thuê vendor ngoài bảo trì, việc thiếu giám sát là một lỗ hổng chết người. Tlog chính là giải pháp để bạn “xử đẹp” bài toán này.
Tại sao phải là tlog mà không phải công cụ khác?
Dân kỹ thuật thường phân vân giữa vài lựa chọn. Hãy nhìn vào thực tế:
- Lệnh script: Có sẵn trên mọi máy Linux. Nó ghi log ra file text nhưng cực kỳ dễ bị xóa. Chỉ cần
rmmột phát là bạn “trắng tay”. - Auditd: Rất mạnh để theo dõi system call. Ngược lại, log của nó cực kỳ khó đọc với con người và không có tính năng xem lại (replay).
- tlog: Ghi lại phiên làm việc dưới dạng JSON và đẩy thẳng vào
journald. Bạn có thể đẩy log này về server tập trung (như ELK hoặc Graylog). Người dùng gần như không có cách nào can thiệp hay xóa log này.
Những điểm cộng đáng giá của tlog:
- Ghi lại từng phím bấm, phím xóa (backspace) và mọi kết quả hiển thị.
- Tính năng Replay giúp bạn xem lại phiên làm việc như một đoạn video quay màn hình.
- Định dạng JSON giúp việc tìm kiếm log bằng công cụ quản lý tập trung trở nên cực kỳ đơn giản.
Cài đặt tlog chỉ trong 30 giây
Tlog là con cưng của dòng Red Hat (RHEL, AlmaLinux, Rocky Linux), nhưng nó vẫn chạy rất mượt trên Ubuntu.
Cho dòng RHEL/CentOS/Rocky:
sudo dnf install tlog -y
Cho dòng Ubuntu/Debian:
sudo apt update && sudo apt install tlog -y
Cấu hình ghi lại phiên làm việc
Bạn có hai lựa chọn: cấu hình nhanh cho vài người hoặc setup bài bản cho toàn hệ thống.
Cách 1: Ép user đi qua tlog (Dành cho cá nhân)
Thay vì cho user vào thẳng /bin/bash, chúng ta sẽ bọc họ trong tlog-rec-session. Hãy thử với user dev-user:
sudo usermod -s /usr/bin/tlog-rec-session dev-user
Kể từ giờ, mỗi khi dev-user đăng nhập SSH, mọi hành động của họ sẽ nằm gọn trong tầm mắt bạn.
Cách 2: Dùng SSSD (Dành cho doanh nghiệp)
Nếu server kết nối Active Directory, hãy sửa file /etc/sssd/conf.d/sssd-session-recording.conf:
[session_recording]
scope = all # Ghi lại tất cả mọi người trên hệ thống
Đừng quên khởi động lại service để áp dụng thay đổi:
sudo systemctl restart sssd
Cách xem lại (Replay) như xem phim
Đây là lúc tlog tỏa sáng. Vì dữ liệu nằm trong journald, chúng ta sẽ dùng journalctl để lấy dữ liệu và tlog-play để phát lại.
Tìm mã phiên làm việc (Recording ID):
journalctl -t tlog-rec-session
Bắt đầu phát lại:
Để xem lại phiên làm việc gần nhất, bạn gõ lệnh:
journalctl -t tlog-rec-session -o cat | tlog-play
Màn hình sẽ hiện ra từng phím họ gõ, từng lỗi typo họ xóa đi. Cảm giác như bạn đang ngồi ngay sau lưng họ vậy.
Kinh nghiệm thực chiến và con số cần lưu ý
Đừng chỉ ghi log trên chính server đó. Nếu hacker chiếm được quyền root, họ vẫn có thể quậy phá journald.
Hãy đẩy log về server tập trung bằng systemd-journal-remote. Khi đó, dù server chính bị xóa sạch dữ liệu, bạn vẫn giữ được bằng chứng số an toàn ở nơi khác.
Cẩn thận với dung lượng ổ đĩa
Tlog ghi lại mọi thứ. Nếu user chạy các lệnh refresh liên tục như top hoặc htop trong 10 phút, log có thể chiếm tới 5-10MB. Với 100 user hoạt động liên tục, file log sẽ phình to rất nhanh. Hãy đảm bảo bạn đã cấu hình Log Rotation cho journald để tránh treo server vì đầy disk.
Hiệu năng hệ thống
Theo thử nghiệm thực tế, tlog chỉ gây ra độ trễ (latency) cực thấp, thường dưới 1-2% CPU. Người dùng bình thường sẽ không bao giờ nhận ra họ đang bị ghi hình.
Kết luận
Tlog không đơn thuần là công cụ giám sát nhân viên. Nó là lớp bảo mật giúp bạn trả lời câu hỏi: “Ai đã đổi config Nginx lúc 2 giờ sáng khiến web sập?”.
Thay vì ngồi đoán mò, bạn chỉ cần mở replay lên và tìm ra nguyên nhân trong vài phút. Hãy cài đặt tlog ngay hôm nay. Đừng đợi đến khi sự cố xảy ra mới hối hận vì không biết chuyện gì đã thực sự diễn ra.
