❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.
Bạn đã cài firewall, đổi port SSH, setup fail2ban… nhưng làm sao biết server mình thực sự an toàn đến mức nào? Câu trả lời là chạy một cuộc audit tự động để quét toàn bộ hệ thống, từ kernel cho đến ứng dụng, rồi cho điểm cụ thể.

Lynis chính là tool làm việc đó. Nó miễn phí, mã nguồn mở, và được dùng rộng rãi trong giới sysadmin lẫn pentester. Trong bài này mình sẽ hướng dẫn bạn cài đặt Lynis, chạy audit, đọc kết quả, và fix những vấn đề phổ biến nhất mà nó tìm ra.
Lynis là gì?
Lynis là một công cụ kiểm tra bảo mật mã nguồn mở, được phát triển bởi CISOfy. Nó chạy trực tiếp trên server Linux (cũng hỗ trợ macOS và Unix), quét hàng trăm mục từ cấu hình kernel, quyền file, dịch vụ mạng, tài khoản người dùng, cho đến các ứng dụng đang cài đặt.
Điểm hay của Lynis là nó không cần agent hay kết nối ra bên ngoài. Tool chạy local, đọc trực tiếp cấu hình trên máy, rồi cho ra một bản báo cáo với điểm số gọi là tăng cường bảo mật index. Điểm này giúp bạn biết server đang ở mức nào và cần cải thiện gì.
Một số thứ Lynis kiểm tra:
- Boot loader và kernel configuration
- Cấu hình SSH, firewall, authentication
- File permissions và integrity
- Logging, NTP, DNS
- Malware scanner, package manager
- Database, web server, PHP config
- Và hàng trăm test khác
Cài đặt Lynis
Lynis có sẵn trong repository của hầu hết các distro phổ biến. Cách cài rất đơn giản.
Ubuntu / Debian
sudo apt update
sudo apt install lynis -y
AlmaLinux / Rocky Linux
Lynis nằm trong repo EPEL, nên bạn cần bật EPEL trước:
sudo dnf install epel-release -y
sudo dnf install lynis -y
Kiểm tra phiên bản sau khi cài:
lynis --version
Nếu muốn dùng bản mới nhất, bạn có thể clone trực tiếp từ GitHub: git clone https://github.com/CISOfy/lynis.git rồi chạy ./lynis audit system trong thư mục đó. Cách này không cần cài đặt gì thêm.
Chạy audit lần đầu
Lệnh cơ bản để quét toàn bộ hệ thống:
sudo lynis audit system
Quá trình audit mất khoảng 1-3 phút tuỳ server. Lynis sẽ chạy qua từng nhóm test và in kết quả ra màn hình theo thời gian thực. Bạn sẽ thấy output dạng như thế này:
[+] Boot and services
------------------------------------
- Service Manager [ systemd ]
- Checking UEFI boot [ DISABLED ]
- Checking presence GRUB2 [ FOUND ]
[+] Kernel
------------------------------------
- Checking default run level [ RUNLEVEL 5 ]
- Checking CPU support (NX/PAE) [ CPU-NX-PAE ]
- Checking kernel version and target [ OK ]
...
Cuối cùng, Lynis sẽ hiển thị phần tổng kết quan trọng nhất:
================================================================================
Lynis security scan details:
Hardening index : 62 [############ ]
Tests performed : 256
Plugins enabled : 2
Components:
- Firewall [V]
- Malware scanner [X]
Scan mode:
Normal [V] Forensics [ ] Integration [ ] Pentest [ ]
Lynis update available : YES
Suggestions : 42
Warnings : 5
================================================================================
Ba con số quan trọng cần chú ý:
- Tăng cường bảo mật index: điểm bảo mật tổng thể (0-100). Server mới cài thường ở khoảng 55-65.
- Warnings: các vấn đề nghiêm trọng cần fix ngay.
- Suggestions: các đề xuất cải thiện, sắp xếp theo mức độ quan trọng.
Đọc báo cáo chi tiết
Ngoài output trên màn hình, Lynis ghi log chi tiết vào hai file:
/var/log/lynis.log
File này chứa log đầy đủ quá trình audit, bao gồm từng test đã chạy, kết quả chi tiết, và lý do đánh giá. Nếu muốn hiểu tại sao một mục bị warning, đây là chỗ cần đọc.
sudo cat /var/log/lynis.log | grep -i warning
/var/log/lynis-report.dat
File này chứa kết quả dạng key=value, dễ parse bằng script. Ví dụ muốn xem tất cả suggestion:
sudo grep "^suggestion" /var/log/lynis-report.dat
Xem danh sách warning:
sudo grep "^warning" /var/log/lynis-report.dat
Xem tăng cường bảo mật index:
sudo grep "hardening_index" /var/log/lynis-report.dat
Top 10 findings phổ biến và cách fix
Sau khi chạy Lynis trên một VPS mới, bạn sẽ gặp khá nhiều suggestion. Dưới đây là những finding mình thấy xuất hiện thường xuyên nhất và cách xử lý.
1. SSH configuration warnings
Lynis sẽ cảnh báo nếu SSH vẫn dùng port 22, cho phép root login, hoặc chưa giới hạn authentication method. Đây là finding phổ biến nhất.
Cách fix: tham khảo bài Tăng cường bảo mật SSH trên Linux VPS trong series này, bao gồm đổi port, tắt root login, dùng SSH key, và giới hạn cipher.
2. Firewall not enabled hoặc no firewall active
Nếu server chưa bật firewall, Lynis sẽ đánh dấu đây là warning nghiêm trọng.
Cách fix: setup UFW (Ubuntu) hoặc firewalld (AlmaLinux) theo hướng dẫn trong bài Firewall cơ bản: UFW và firewalld.
3. No toàn vẹn tập tin tool installed
Lynis kiểm tra xem server có cài tool giám sát thay đổi file (như AIDE, Tripwire, OSSEC) hay không. Nếu thiếu, nó sẽ suggest cài một cái.
Cách fix: cài và cấu hình AIDE theo hướng dẫn trong bài File Integrity Monitoring với AIDE.
4. Kernel tăng cường bảo mật – sysctl parameters
Lynis kiểm tra hàng loạt kernel parameter liên quan đến network security (như net.ipv4.conf.all.rp_filter, net.ipv4.icmp_echo_ignore_broadcasts, kernel.randomize_va_space). Nhiều trong số này chưa được set đúng trên VPS mặc định.
Cách fix: xem bài Kernel Tăng cường bảo mật với sysctl để biết cần set những parameter nào.
5. No malware scanner found
Lynis tìm các tool quét malware như ClamAV, rkhunter, chkrootkit. Nếu không có cái nào, nó sẽ gợi ý cài đặt.
Ubuntu / Debian:
sudo apt install clamav rkhunter -y
sudo freshclam
sudo rkhunter --update
AlmaLinux / Rocky Linux:
sudo dnf install clamav clamav-update rkhunter -y
sudo freshclam
sudo rkhunter --update
6. NTP not configured / time synchronization
Đồng bộ thời gian rất quan trọng cho logging và certificate. Nếu NTP chưa bật, fix rất nhanh:
sudo timedatectl set-ntp true
timedatectl status
7. Vulnerable packages / updates available
Lynis kiểm tra xem có package nào cần update hay không. Fix đơn giản:
Ubuntu: sudo apt update && sudo apt upgrade -y
AlmaLinux: sudo dnf update -y
8. USB storage enabled
Trên VPS, bạn hầu như không bao giờ cần USB. Lynis gợi ý disable USB storage module:
echo "install usb-storage /bin/true" | sudo tee /etc/modprobe.d/disable-usb-storage.conf
echo "blacklist usb-storage" | sudo tee -a /etc/modprobe.d/disable-usb-storage.conf
9. No password policy / PAM configuration
Lynis kiểm tra password policy: độ dài tối thiểu, expiration, complexity. Nếu chưa set, bạn nên cấu hình trong /etc/login.defs và PAM modules.
# /etc/login.defs
PASS_MAX_DAYS 365
PASS_MIN_DAYS 1
PASS_MIN_LEN 12
PASS_WARN_AGE 14
10. Logging / audit daemon
Lynis kiểm tra xem auditd có đang chạy hay không. Nếu chưa cài hoặc chưa bật:
Ubuntu:
sudo apt install auditd -y
sudo systemctl enable auditd
sudo systemctl start auditd
AlmaLinux:
sudo dnf install audit -y
sudo systemctl enable auditd
sudo systemctl start auditd
Không cần fix tất cả suggestion cùng lúc. Ưu tiên warnings trước, sau đó lọc suggestion theo mức ảnh hưởng. Mỗi lần fix xong một nhóm, chạy lại lynis audit system để xem điểm tăng.
Lynis profiles: tuỳ chỉnh test
Mặc định Lynis chạy tất cả test. Nhưng nếu bạn muốn bỏ qua một số test không liên quan (ví dụ test Docker trên server không dùng Docker), bạn có thể tạo custom profile.
Profile mặc định nằm ở /etc/lynis/default.prf. Bạn nên tạo file custom thay vì sửa file gốc:
sudo cp /etc/lynis/default.prf /etc/lynis/custom.prf
Trong file custom, bạn có thể skip test cụ thể:
# Bỏ qua test Docker (CONT-8104)
skip-test=CONT-8104
# Bỏ qua test NTP nếu dùng chronyd thay vì ntpd
skip-test=TIME-3104
# Bỏ qua test USB (trên VPS không cần)
skip-test=STRG-1840
Chạy Lynis với custom profile:
sudo lynis audit system --profile /etc/lynis/custom.prf
Cách này giúp kết quả audit chính xác hơn vì loại bỏ những false positive không liên quan đến môi trường của bạn.
Tự động hoá: cron + email report
Chạy Lynis thủ công thì tốt, nhưng tốt hơn là setup cho nó chạy tự động hàng tuần rồi gửi kết quả qua email. Như vậy bạn sẽ biết ngay nếu điểm bảo mật bị giảm.
Tạo script audit:
sudo nano /usr/local/bin/lynis-weekly.sh
Nội dung:
#!/bin/bash
# Lynis weekly security audit
REPORT_FILE="/tmp/lynis-report-$(date +%Y%m%d).txt"
EMAIL="admin@yourdomain.com"
# Chạy audit, ghi output ra file
lynis audit system --no-colors --quiet > "$REPORT_FILE" 2>&1
# Lấy hardening index
SCORE=$(grep "hardening_index" /var/log/lynis-report.dat | cut -d= -f2)
# Đếm warnings
WARNINGS=$(grep -c "^warning" /var/log/lynis-report.dat)
# Gửi email
{
echo "Lynis Weekly Report — $(hostname)"
echo "Date: $(date)"
echo "Hardening Index: $SCORE"
echo "Warnings: $WARNINGS"
echo ""
echo "=== Warnings ==="
grep "^warning" /var/log/lynis-report.dat
echo ""
echo "=== Top Suggestions ==="
grep "^suggestion" /var/log/lynis-report.dat | head -20
} | mail -s "Lynis Report — $(hostname) — Score: $SCORE" "$EMAIL"
# Dọn file tạm
rm -f "$REPORT_FILE"
Phân quyền và thêm vào cron:
sudo chmod +x /usr/local/bin/lynis-weekly.sh
sudo crontab -e
Thêm dòng sau để chạy mỗi Chủ Nhật lúc 3 giờ sáng:
0 3 * * 0 /usr/local/bin/lynis-weekly.sh
Để gửi email được, server cần có mail utility. Trên Ubuntu cài bằng sudo apt install mailutils, trên AlmaLinux dùng sudo dnf install mailx. Hoặc bạn có thể thay lệnh mail bằng cách push notification qua Telegram bot, webhook, hoặc tool giám sát bạn đang dùng.
Tăng cường bảo mật index: đặt mục tiêu bao nhiêu?
Tăng cường bảo mật index là thang điểm 0-100 do Lynis tính dựa trên tỷ lệ test pass/fail. Theo kinh nghiệm và khuyến nghị từ CISOfy:
- Dưới 60: server cần cải thiện ngay, nhiều vấn đề cơ bản chưa xử lý.
- 60-70: mức trung bình, đã có một số biện pháp nhưng còn thiếu nhiều thứ.
- 70-80: mức tốt (good). Server đã được tăng cường bảo mật cơ bản, phù hợp với phần lớn VPS production.
- Trên 80: mức rất tốt (great). Thường chỉ đạt được khi bạn đã xử lý kỹ từ SSH, firewall, kernel, cho đến audit logging.
- Trên 90: hiếm khi cần thiết trừ khi chạy hệ thống compliance (PCI-DSS, HIPAA).
Mục tiêu thực tế cho một VPS chạy web là đạt trên 70. Nếu bạn đã follow các bài trước trong series này (SSH tăng cường bảo mật, firewall, sysctl, AIDE…), con số này hoàn toàn khả thi.
Lynis so với các tool khác
Lynis không phải tool duy nhất trong lĩnh vực này. Dưới đây là so sánh nhanh với hai lựa chọn khác:
OpenSCAP
OpenSCAP là bộ tool audit tuân theo chuẩn SCAP (Security Content Automation Protocol). Nó mạnh hơn Lynis về mặt compliance vì có sẵn các profile chuẩn (DISA STIG, PCI-DSS). Tuy nhiên cấu hình phức tạp hơn nhiều và chủ yếu hỗ trợ tốt trên RHEL/CentOS. Phù hợp với môi trường enterprise cần compliance report chính thức.
CIS Benchmarks
CIS (Center for Internet Security) cung cấp các benchmark chi tiết cho từng distro, từng phiên bản. Đây là “sách giáo khoa” về tăng cường bảo mật. CIS có tool riêng (CIS-CAT) để scan, nhưng bản đầy đủ cần license. Lynis thực tế đã cover phần lớn các recommendation của CIS, nên đối với VPS cá nhân hoặc doanh nghiệp nhỏ, Lynis là lựa chọn thực tế hơn.
Tóm lại: Lynis phù hợp với phần lớn use case vì nó miễn phí, dễ dùng, và cho kết quả nhanh. Nếu bạn cần compliance report theo chuẩn cụ thể, hãy tìm hiểu thêm OpenSCAP hoặc CIS-CAT.
Checkpoint: tự kiểm tra
Đến đây bạn đã biết cách dùng Lynis. Hãy thực hành theo các bước sau:
- Cài Lynis và chạy
sudo lynis audit systemlần đầu. - Ghi lại tăng cường bảo mật index hiện tại.
- Đọc danh sách warnings và suggestions.
- Chọn 5 findings quan trọng nhất và fix theo hướng dẫn ở trên.
- Chạy lại
sudo lynis audit systemvà so sánh điểm. - Setup cron job để Lynis chạy tự động hàng tuần.
Nếu điểm tăng 5-10 sau khi fix, bạn đang đi đúng hướng. Cứ lặp lại quy trình này, fix thêm vài finding mỗi lần, cho đến khi đạt mức bạn hài lòng.
Bài tiếp theo trong series sẽ là tổng kết, nơi mình đưa ra một checklist hoàn chỉnh để bạn review lại toàn bộ những gì đã làm từ bài 1 đến giờ.
Có thể bạn cần xem thêm
- Checklist bảo mật VPS Linux - 15 bước thiết yếu
- Tăng cường bảo mật Kernel và Network trên Linux VPS - sysctl, AppArmor và SELinux
- Backup và phục hồi sự cố cho VPS Linux - Kế hoạch toàn diện
- Bảo mật Docker trên Linux VPS - Từ image đến runtime
- Logging, Monitoring và IDS trên Linux VPS - auditd, AIDE và Wazuh
- Bảo vệ SSH toàn diện trên Linux VPS
Về tác giả
Trần Thắng
Chuyên gia tại AZDIGI với nhiều năm kinh nghiệm trong lĩnh vực web hosting và quản trị hệ thống.