Kiểm tra lỗ hổng Ubuntu Server bằng Lynis và lập kế hoạch hardening thực chiến
Một Ubuntu server “chạy ổn” không đồng nghĩa “an toàn”. Dịch vụ vẫn online, CPU/RAM bình thường, log chưa thấy gì lạ — nhưng SSH có thể đang mở quá rộng, kernel thiếu cập nhật, quyền file sai, firewall chưa chặt, audit log chưa đủ, cấu hình TLS yếu, hoặc cron/script ẩn chứa rủi ro.
Vấn đề lớn: nhiều đội vận hành chỉ hardening khi đã có incident. Cách tốt hơn: đo trước → ưu tiên → xử lý → kiểm tra lại. Lynis phù hợp cho việc này: nhẹ, mã nguồn mở, chạy local, không cần agent phức tạp, tạo báo cáo rõ ràng cho Linux/Unix security audit.
Bài này hướng dẫn kiểm tra Ubuntu Server bằng Lynis, đọc kết quả đúng cách, rồi biến findings thành kế hoạch hardening thực chiến.
Lynis là gì?
Lynis → công cụ audit bảo mật cho Linux, macOS, Unix.
Điểm cao hơn → tốt hơn. Nhưng đừng chạy theo điểm mù quáng.
Ví dụ:
– Server public web → SSH/firewall/TLS/logging cực quan trọng.
– Server internal batch job → quyền file, cron, user, outbound network quan trọng.
– DB server → network binding, auth, backup encryption, filesystem permission quan trọng.
Ưu tiên theo rủi ro:
1. Internet-facing?
2. Có dữ liệu nhạy cảm?
3. Có quyền root/sudo rộng?
4. Có exposed service không cần thiết?
5. Finding có exploit phổ biến không?
6. Fix có nguy cơ downtime không?
Lynis → dữ liệu đầu vào. Kế hoạch hardening → cần bối cảnh vận hành.
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
MaxAuthTries 3
X11Forwarding no
AllowUsers deploy adminuser
Test config trước restart:
sudo sshd -t
Reload:
sudo systemctl reload ssh
Cảnh báo: không đóng session hiện tại trước khi test login SSH bằng cửa sổ khác. Sai config → tự khóa khỏi server.
– Mỗi người 1 account riêng.
– Không share user ubuntu, admin, deploy.
– Sudo theo nhóm/command cụ thể nếu có thể.
– Tắt user nghỉ việc ngay.
– SSH key rotate định kỳ.
5. Logging và audit
Không log → không điều tra được. Lynis thường khuyến nghị tăng logging/audit.
– Cập nhật security packages
– Reboot nếu cần
– Kiểm tra service sau reboot
Ngày 3: SSH + firewall
– Tắt root login
– Tắt password auth nếu đã có key
– Bật UFW
– Đóng port không dùng
Ngày 4: User/sudo
– Xóa/lock user thừa
– Review sudoers
– Áp password aging
– Chuẩn hóa SSH key
Ngày 5: Logging/audit
– Bật auditd
– Theo dõi file nhạy cảm
– Kiểm tra logrotate
– Forward log nếu có SIEM/syslog server
Ngày 6: App/service hardening
– Review Nginx/Apache/TLS
– Kiểm tra DB bind address
– Tách quyền app user
– Kiểm tra secret trong repo/config
Ngày 7: Re-audit
sudo lynis audit system
So sánh Hardening Index, warning, suggestion. Mục tiêu không phải 100 điểm. Mục tiêu: giảm rủi ro thật, không làm gãy hệ thống.
Tự động hóa audit định kỳ
Tạo cron weekly:
sudo crontab -e
Thêm:
0 3 1 /usr/sbin/lynis audit system --quiet
Hoặc nếu dùng /opt/lynis:
0 3 1 /opt/lynis/lynis audit system --quiet
Nên gửi report về email/log server. Audit định kỳ giúp phát hiện drift: admin mở port tạm rồi quên, package mới kéo config yếu, user cũ chưa xóa.
Sai lầm thường gặp
– Fix tất cả suggestion ngay → downtime.
– Chỉ nhìn Hardening Index → bỏ qua rủi ro nghiệp vụ.
– Hardening SSH không test session mới → tự khóa.
– Bật firewall trước khi allow SSH → mất truy cập.
– Không backup config → khó rollback.
– Không ghi change log → audit sau không biết đã đổi gì.
– Dùng root cho app → impact lớn khi app bị khai thác.
Kết luận thực tế
Lynis không phải “nút bấm an toàn tuyệt đối”. Nó là công cụ soi hệ thống rất tốt: nhanh, rõ, dễ lặp lại. Giá trị thật nằm ở quy trình phía sau: audit → ưu tiên theo rủi ro → thay đổi có kiểm soát → kiểm tra lại → duy trì định kỳ.
Với Ubuntu Server, hãy bắt đầu từ các điểm có tác động lớn: cập nhật bảo mật, SSH, firewall, user/sudo, logging, service exposure. Sau đó mới tối ưu các hardening sâu hơn như audit rules, filesystem permissions, malware scanning, app-level security.
Một server an toàn không phải server “không có warning”. Đó là server có cấu hình tối thiểu cần thiết, quyền hạn giới hạn, log đủ điều tra, bản vá kịp thời, và mọi thay đổi đều có kế hoạch rollback. Lynis giúp bạn nhìn thấy bức tranh. Hardening tốt là biến bức tranh đó thành hành động đúng thứ tự.