Giám sát đăng nhập bất thường để secure Ubuntu server bằng auditd và logwatch
Một Ubuntu server thường không bị “hack” bằng kỹ thuật quá phức tạp. Nhiều sự cố bắt đầu từ SSH mở public, mật khẩu yếu, key lộ, user cũ chưa xoá, bot brute-force, đăng nhập ngoài giờ, IP lạ, hoặc leo quyền qua sudo. Vấn đề: nếu không giám sát, bạn chỉ biết khi đã muộn.
auditd và logwatch là 2 công cụ nhẹ nhưng rất hữu ích:
– auditd → ghi nhận sự kiện bảo mật cấp hệ thống.
– logwatch → tổng hợp log hằng ngày, gửi báo cáo dễ đọc.
– Kết hợp → phát hiện đăng nhập bất thường, hành vi đáng nghi, sai lệch auth.
Mục tiêu bài này: cấu hình Ubuntu server để theo dõi login, SSH, sudo, thay đổi file nhạy cảm; nhận báo cáo định kỳ; có checklist xử lý khi thấy dấu hiệu lạ.
1. Tư duy giám sát đăng nhập bất thường
Đăng nhập bất thường không chỉ là “login failed”. Cần nhìn rộng hơn:
– Nhiều lần SSH failed từ 1 IP → brute-force.
– Đăng nhập thành công từ IP lạ → credential/key có thể lộ.
– Login ngoài khung giờ thường lệ → rủi ro.
– User không dùng lâu bỗng login → nghi vấn.
– sudo bất thường → leo quyền.
– Sửa /etc/passwd, /etc/shadow, /etc/sudoers → cực nhạy cảm.
– Thêm SSH key vào authorized_keys → persistence.
– Đăng nhập root trực tiếp → cấu hình nguy hiểm.
Accepted password for root
Accepted publickey for root
Failed password for invalid user
sudo: pam_unix(sudo:auth): authentication failure
session opened for user root
– Đổi password.
– Thay SSH key.
– Thu hồi token.
– Kiểm tra CI/CD secret.
Nếu nghi server đã bị chiếm quyền root → ưu tiên dựng server sạch từ image tin cậy, restore data đã kiểm tra. Root compromise → không nên “vá tại chỗ”.
9. Hardening bổ sung cho SSH
Giám sát tốt, nhưng phòng thủ vẫn cần chặt.
Sửa SSH config:
sudo nano /etc/ssh/sshd_config
Khuyến nghị:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers deploy admin
Kiểm tra config:
sudo sshd -t
Reload:
sudo systemctl reload ssh
Bật UFW:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
10. Checklist vận hành hằng ngày
Mỗi ngày:
– Đọc email logwatch.
– Kiểm tra SSH successful login.
– Kiểm tra failed login tăng đột biến.
– So IP login với danh sách IP hợp lệ.
– Xem sudo commands bất thường.
– Xem audit key: identity, sudoers, ssh_config.
Mỗi tuần:
– Review user còn cần quyền SSH không.
– Kiểm tra authorized_keys.
– Kiểm tra sudoers.d.
– Update OS:
sudo apt update && sudo apt upgrade
Mỗi tháng:
– Diễn tập incident response.
– Kiểm tra backup restore.
– Rotate key quan trọng.
– Rà lại firewall rules.
Kết luận thực tế
Secure Ubuntu server không chỉ là cài firewall rồi quên. Đăng nhập bất thường là tín hiệu sớm của brute-force, credential leak, insider risk, hoặc compromise. auditd giúp ghi nhận sự kiện sâu ở cấp hệ thống. logwatch giúp biến log dài khó đọc thành báo cáo hằng ngày dễ hành động.