Tự kiểm tra bảo mật VPS của bạn: Hướng dẫn sử dụng Lynis và diễn giải kết quả

Tác giả: Tran Thao 14 tháng 08, 2025

Bạn đã dựng tường lửa, niêm phong các lối vào yếu kém, và cài đặt các “vệ sĩ” tự động. Nhưng làm sao để biết chắc chắn rằng bạn không bỏ sót điều gì? Đã đến lúc gọi một “chuyên gia kiểm toán” để khám sức khỏe toàn diện cho VPS của bạn.

Chào mừng bạn đến với bài viết chuyên sâu về Lớp phòng thủ thứ 9, một phần trong hướng dẫn toàn diện Bảo mật VPS từ A-Z: 10 lớp phòng thủ thiết yếu (cập nhật 2025) của chúng tôi. Chúng ta sẽ cùng nhau học cách sử dụng Lynis để quét, phân tích và biến những gợi ý của nó thành hành động cụ thể, nâng cấp bảo mật VPS lên một tầm cao mới.

Trong bài này, bạn sẽ học được:

  • Lynis là gì: Hiểu rõ vai trò của công cụ kiểm toán bảo mật hàng đầu.
  • Cách cài đặt: Hướng dẫn cài đặt Lynis trên Ubuntu/Debian và CentOS.
  • Cách quét VPS: Thực hiện các lệnh quét từ cơ bản đến nâng cao.
  • Cách đọc kết quả: Diễn giải Warnings, Suggestions và chỉ số Hardening Index.
  • Cách khắc phục: Hướng dẫn thực hành xử lý các đề xuất phổ biến nhất (SSH, Kernel).

Lynis là gì và tại sao bạn nên tin tưởng “chuyên gia” này?

Lynis là một công cụ kiểm toán bảo mật (security auditing) mã nguồn mở, cực kỳ mạnh mẽ cho các hệ thống dựa trên Unix (như Linux, macOS, BSD). Hãy tưởng tượng Lynis như một chuyên gia an ninh mạng dày dặn kinh nghiệm, được bạn mời đến để “khám sức khỏe” toàn diện cho VPS của mình.

Không giống các công cụ khác, Lynis không tự động thay đổi hệ thống của bạn. Nó chỉ quét, phân tích và đưa ra một bản báo cáo chi tiết, kèm theo các đề xuất (Suggestions) cụ thể. Chính bạn là người ra quyết định cuối cùng.

Những lý do bạn nên sử dụng Lynis:

  • Toàn diện: Quét hàng trăm hạng mục từ kernel, phần mềm, người dùng, mạng, đến các thiết lập mã hóa.
  • Hướng đến hành động: Cung cấp các đề xuất rõ ràng để bạn có thể khắc phục vấn đề.
  • Linh hoạt: Có thể chạy mà không cần cài đặt, phù hợp để kiểm tra nhanh hoặc dùng trong môi trường hạn chế.
  • Đáng tin cậy: Được phát triển bởi CISOfy, một công ty chuyên về an ninh mạng, và được cộng đồng tin dùng.

Cài đặt Lynis – Chuẩn bị cho buổi kiểm toán

Trước khi chuyên gia bắt tay vào việc, chúng ta cần mời họ vào hệ thống. Có hai cách chính: cài từ kho lưu trữ của hệ điều hành hoặc cài trực tiếp từ mã nguồn.

Cách 1: Cài đặt từ kho lưu trữ hệ điều hành

Đây là cách đơn giản nhất, nhưng hãy đọc lưu ý quan trọng ngay bên dưới.

Trên Ubuntu/Debian:

sudo apt update
sudo apt install lynis -y
Ảnh chụp màn hình quá trình cài đặt công cụ kiểm toán bảo mật Lynis trên Ubuntu bằng lệnh sudo apt install.

Ảnh chụp màn hình quá trình cài đặt công cụ kiểm toán bảo mật Lynis trên Ubuntu bằng lệnh sudo apt install.

Quy trình này hoạt động tốt trên các phiên bản phổ biến như Ubuntu 20.04 và Ubuntu 22.04.

Trên CentOS/RHEL/Fedora:

Với các hệ điều hành này, Lynis thường nằm trong kho lưu trữ EPEL (Extra Packages for Enterprise Linux). Hướng dẫn cài Lynis CentOS 7 và các phiên bản tương tự như sau:

# Cài đặt kho lưu trữ EPEL nếu chưa có
sudo yum install epel-release -y

# Cài đặt Lynis
sudo yum install lynis -y

Lưu ý: Trên các phiên bản mới hơn, bạn có thể dùng dnf thay cho yum.

Lưu ý quan trọng: Các phiên bản Lynis trong kho lưu trữ mặc định của hệ điều hành (thông qua apt hoặc yum) có thể không phải là phiên bản mới nhất. Theo khuyến nghị từ nhà phát triển CISOfy, để đảm bảo bạn có các bài kiểm tra bảo mật cập nhật nhất, hãy cân nhắc cài đặt trực tiếp từ mã nguồn trên GitHub như hướng dẫn bên dưới.

Cách 2: Cài từ mã nguồn (khuyến nghị)

Đây là cách tốt nhất để đảm bảo bạn luôn sử dụng phiên bản Lynis mới nhất với đầy đủ các bài kiểm tra bảo mật.

# Clone mã nguồn từ GitHub của CISOfy
git clone https://github.com/CISOfy/lynis

# Di chuyển vào thư mục vừa tạo
cd lynis
Sử dụng lệnh wget để tải về mã nguồn của công cụ Lynis từ trang chủ chính thức của nhà phát triển CISOfy.

Sử dụng lệnh wget để tải về mã nguồn của công cụ Lynis từ trang chủ chính thức của nhà phát triển CISOfy.

Màn hình terminal hiển thị kết quả giải nén file cài đặt Lynis bằng lệnh tar -xvf.

Màn hình terminal hiển thị kết quả giải nén file cài đặt Lynis bằng lệnh tar -xvf.

Lưu ý bảo mật: Thay đổi quyền sở hữu về cho root
Khi bạn chạy Lynis với quyền root (sudo), các nhà phát triển khuyến nghị thay đổi quyền sở hữu của thư mục mã nguồn về cho người dùng root. Điều này tuân thủ thực hành bảo mật tốt nhất và tránh cảnh báo từ chính Lynis.

sudo chown -R 0:0 .

Thực hiện kiểm toán – Từ cơ bản đến nâng cao

Giờ là lúc để Lynis bắt đầu công việc của mình.

Lệnh quét cơ bản nhất

Đây là lệnh bạn sẽ sử dụng thường xuyên nhất. Nó yêu cầu quyền sudo để có thể truy cập và phân tích toàn bộ các file cấu hình quan trọng trong hệ thống.

sudo lynis audit system
Giao diện khởi tạo của Lynis khi bắt đầu thực hiện quét bảo mật hệ thống với lệnh lynis audit system.

Giao diện khởi tạo của Lynis khi bắt đầu thực hiện quét bảo mật hệ thống với lệnh lynis audit system.

Quá trình quét sẽ mất khoảng 1-3 phút. Lynis sẽ hiển thị các hạng mục nó đang kiểm tra. Đôi khi, nó sẽ tạm dừng để bạn có thể đọc kết quả của một nhóm kiểm tra, chỉ cần nhấn Enter để tiếp tục.

Các tùy chọn quét nâng cao

Lynis cung cấp nhiều “cờ” (flags) để tùy chỉnh việc quét:

  • Quét nhanh (--quick): Bỏ qua các lần tạm dừng, phù hợp khi bạn đã quen với Lynis hoặc muốn tự động hóa.
    sudo lynis audit system --quick
  • Kiểm thử xâm nhập (--pentest): Quét hệ thống mà không cần quyền root. Lệnh này giả lập góc nhìn của một hacker có quyền truy cập thông thường, giúp bạn tìm ra các con đường leo thang đặc quyền.
    ./lynis audit system --pentest
Kết quả của lệnh 'lynis show commands', liệt kê các lệnh chính như audit, show, và update để người dùng khám phá.

Kết quả của lệnh ‘lynis show commands’, liệt kê các lệnh chính như audit, show, và update để người dùng khám phá.

Đọc vị báo cáo Lynis như một chuyên gia

Sau khi quét xong, màn hình terminal của bạn sẽ tràn ngập thông tin. Đừng hoảng sợ! Chúng ta chỉ cần tập trung vào những phần quan trọng nhất ở cuối báo cáo.

Làm thế nào để hiểu Warnings và Suggestions của Lynis?

  • Warnings (màu vàng): Đây là những vấn đề có mức độ rủi ro cao hoặc các cấu hình sai rõ ràng. Chúng nên được ưu tiên xử lý trước.
  • Suggestions (màu xanh lá): Đây là những gợi ý để “cứng hóa” (hardening) hệ thống. Chúng không phải là lỗ hổng trực tiếp nhưng việc thực hiện chúng sẽ giúp tăng cường khả năng phòng thủ.
Danh sách các đề xuất (Suggestions) để cứng hóa hệ thống từ báo cáo của Lynis, kèm theo TEST-ID và link tham khảo.

Danh sách các đề xuất (Suggestions) để cứng hóa hệ thống từ báo cáo của Lynis, kèm theo TEST-ID và link tham khảo.

Hardening Index – Thang điểm bảo mật

Đây là điểm số mà Lynis chấm cho mức độ bảo mật của VPS, trên thang điểm 100. Nó không phản ánh việc bạn có đang bị tấn công hay không, nhưng nó là một chỉ số tuyệt vời để đo lường sự tiến bộ.

Hãy tham khảo thang điểm sau:

  • Dưới 60: Đáng báo động. Bạn cần hành động ngay.
  • 60 – 75: Tạm ổn, nhưng còn nhiều không gian để cải thiện.
  • 75 – 85: Mức độ tốt. Bạn đã làm rất tốt các bước cơ bản.
  • Trên 85: Xuất sắc! Hệ thống của bạn được cấu hình rất an toàn.
Chỉ số Hardening Index của Lynis ở mức 63, cho thấy hệ thống cần được cải thiện cấu hình bảo mật.

Chỉ số Hardening Index của Lynis ở mức 63, cho thấy hệ thống cần được cải thiện cấu hình bảo mật.

TEST-ID: Mã định danh của mỗi vấn đề

Đây là khái niệm then chốt để làm việc với Lynis. Mỗi Warning và Suggestion đều đi kèm một mã định danh duy nhất, ví dụ SSH-7408 hay FILE-7524. Mã này chính là chìa khóa để chúng ta tìm hiểu sâu hơn về vấn đề.

Lưu ý: Các TEST-ID và nội dung đề xuất có thể thay đổi giữa các phiên bản của Lynis. Đó là lý do tại sao việc sử dụng phiên bản mới nhất luôn được khuyến khích.

File Log và mẹo lọc nhanh

Lynis lưu lại toàn bộ kết quả vào /var/log/lynis.log và một bản tóm tắt vào /var/log/lynis-report.dat.

Mẹo chuyên nghiệp: Để xem lại nhanh tất cả các đề xuất mà không cần mở file, hãy dùng lệnh grep:

sudo grep Suggestion /var/log/lynis.log
Sử dụng lệnh grep để lọc nhanh và chỉ hiển thị các dòng đề xuất (Suggestion) từ file báo cáo của Lynis.

Sử dụng lệnh grep để lọc nhanh và chỉ hiển thị các dòng đề xuất (Suggestion) từ file báo cáo của Lynis.

Thực hành tăng cứng hệ thống với lynis show details

Đây là phần quan trọng nhất của bài viết. Chúng ta sẽ học cách sử dụng “vũ khí bí mật” của Lynis để giải quyết các đề xuất.

Báo cáo của Lynis với các đề xuất chi tiết để cứng hóa cấu hình SSH, có mã TEST-ID là SSH-7408.

Báo cáo của Lynis với các đề xuất chi tiết để cứng hóa cấu hình SSH, có mã TEST-ID là SSH-7408.

Suggestion 1: Cứng hóa cấu hình SSH (SSH-7408)

Đây gần như là đề xuất mà mọi VPS mới đều gặp.

Tìm hiểu đề xuất với lynis show details

lynis show details SSH-7408

Lệnh này sẽ hiển thị thông tin chi tiết, giải thích rằng bạn nên xem xét lại các thiết lập trong file /etc/ssh/sshd_config để tăng cường bảo mật.

Phân tích rủi ro

Cấu hình SSH mặc định có thể cho phép những phương thức đăng nhập kém an toàn. Kẻ tấn công có thể lợi dụng điều này để thực hiện tấn công Brute Force (thử mật khẩu liên tục) hoặc chiếm quyền root.

Thực hiện khắc phục

CẢNH BÁO QUAN TRỌNG: Trước khi thực hiện bước này, hãy đảm bảo bạn đã thiết lập SSH Key và có thể đăng nhập thành công bằng key đó. Việc tắt PasswordAuthentication khi SSH Key chưa hoạt động sẽ khiến bạn tự khóa mình khỏi VPS.

Chúng ta sẽ chỉnh sửa file cấu hình SSH.

sudo nano /etc/ssh/sshd_config

Các thiết lập này đã được chúng tôi đề cập chi tiết trong các lớp phòng thủ trước. Về cơ bản, bạn cần đảm bảo:

Tìm và đảm bảo các dòng sau có giá trị chính xác:

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no

Sau đó, khởi động lại dịch vụ SSH để áp dụng thay đổi.

sudo systemctl restart sshd
File cấu hình sshd_config đã được chỉnh sửa với các giá trị an toàn hơn như MaxAuthTries 3 và LogLevel VERBOSE.

File cấu hình sshd_config đã được chỉnh sửa với các giá trị an toàn hơn như MaxAuthTries 3 và LogLevel VERBOSE.

Suggestion 2: Cứng hóa Kernel Runtime (KRNL-5820)

Đề xuất này liên quan đến việc tinh chỉnh các tham số của nhân Linux khi hệ thống đang chạy.

Tìm hiểu đề xuất với lynis show details

lynis show details KRNL-5820

Lynis sẽ gợi ý bạn xem xét các thiết lập trong file /etc/sysctl.conf.

Phân tích rủi ro

Nhân Linux có nhiều tham số mặc định để đảm bảo tính tương thích. Tuy nhiên, một vài trong số chúng có thể bị lợi dụng trong các cuộc tấn công mạng, ví dụ như tấn công giả mạo IP hoặc tấn công từ chối dịch vụ (DDoS).

Thực hiện khắc phục

Chúng ta sẽ tạo một file cấu hình riêng để chứa các thiết lập cứng hóa.

sudo nano /etc/sysctl.d/99-hardening.conf

Dán nội dung sau vào file. Đây là một tập hợp các thiết lập an toàn phổ biến:

# Ngăn chặn tấn công giả mạo IP
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

# Chống lại các cuộc tấn công SYN flood
net.ipv4.tcp_syncookies=1

# Ghi log các gói tin có địa chỉ nguồn không thể định tuyến
net.ipv4.conf.all.log_martians = 1

Lưu file lại và áp dụng các thay đổi ngay lập tức bằng lệnh:

sudo sysctl -p

Suggestion 3: Cài đặt công cụ phát hiện Rootkit (HRDN-7230)

Lynis thường khuyên chúng ta nên có một công cụ để kiểm tra xem hệ thống có bị cài cắm mã độc ở cấp độ cao nhất (rootkit) hay không. rkhunter là một lựa chọn phổ biến.

So sánh nhanh: Lynis vs. Rkhunter

Nhiều người dùng mới có thể nhầm lẫn giữa hai công cụ này. Hãy hiểu đơn giản:

  • Lynis: Là một “nhà tư vấn tổng thể”. Nó kiểm tra cấu hình hệ thống để xem bạn có “khóa cửa” cẩn thận không.
  • Rkhunter: Là một “chó nghiệp vụ săn lùng”. Nó chủ động dò tìm dấu hiệu của mã độc (rootkit) đã biết đang ẩn náu trong hệ thống.

Sử dụng cả hai công cụ sẽ mang lại khả năng phòng thủ toàn diện nhất.

Tìm hiểu đề xuất và cài đặt

Đề xuất này khuyến nghị cài một công cụ chuyên dụng để dò quét các mã độc tinh vi. rkhunter là một trong những công cụ hàng đầu cho việc này.

# Cài đặt rkhunter
sudo apt install rkhunter -y

# Cập nhật cơ sở dữ liệu và quét lần đầu
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

Diễn giải kết quả

Lưu ý quan trọng: Trong lần quét đầu tiên (sudo rkhunter --check), bạn có thể sẽ nhận được một vài cảnh báo (Warning). Điều này khá phổ biến vì rkhunter đang thiết lập trạng thái ban đầu cho hệ thống của bạn. Hãy xem xét kỹ các cảnh báo này, nhưng đừng quá lo lắng nếu đây là lần đầu tiên bạn thực hiện quét.

Bên cạnh rkhunter (dò tìm mã độc đã biết), bạn cũng nên cân nhắc cài đặt một hệ thống giám sát sự toàn vẹn của file như AIDE. Công cụ này sẽ được chúng tôi đề cập chi tiết ở Lớp 10: Giám sát ‘dấu vân tay’ file với AIDE, đây là một lớp phòng thủ bổ sung hoàn hảo.

Tự động hóa – Biến Lynis thành người giám sát 24/7

Kiểm tra bảo mật một lần là tốt, nhưng kiểm tra định kỳ mới là điều làm nên một hệ thống an toàn bền vững. Chúng ta có thể dùng cronjob để ra lệnh cho VPS tự động chạy Lynis mỗi tuần.

Mở bảng lập lịch của người dùng root:

sudo crontab -e

Thêm dòng sau vào cuối file. Dòng này yêu cầu hệ thống chạy Lynis vào lúc 3 giờ sáng Chủ nhật hàng tuần.

Cách cơ bản: Ghi ra file log

# Chạy Lynis audit hàng tuần và lưu báo cáo
0 3 * * 0 /usr/bin/lynis audit system --quick > /var/log/lynis-weekly.log

Bằng cách này, bạn luôn có một bản báo cáo mới để xem xét mà không cần phải nhớ chạy lệnh thủ công.

Mẹo nâng cao: Nhận báo cáo qua Email
Nếu bạn muốn chủ động hơn, bạn có thể để hệ thống gửi email báo cáo. (Yêu cầu VPS của bạn đã được cấu hình để gửi mail, ví dụ như cài đặt postfix hoặc ssmtp).

0 3 * * 0 /usr/bin/lynis audit system --quick | mail -s "Lynis Weekly Report on $(hostname)" [email protected]

Nếu bạn quản lý nhiều hệ thống và cần một giải pháp tập trung, hãy tham khảo Lynis Enterprise. Đây là phiên bản thương mại với giao diện web và nhiều tính năng nâng cao.

Câu hỏi thường gặp (FAQ)

1. Chạy Lynis có làm thay đổi hệ thống của tôi không?

Không. Lynis chỉ hoạt động ở chế độ chỉ đọc. Nó quét và báo cáo mà không tự động thay đổi bất kỳ cấu hình nào. Bạn là người quyết định thực hiện các thay đổi.

2. Chỉ số Hardening Index thấp có nghĩa là VPS của tôi đang bị hack?

Không nhất thiết. Chỉ số này đo lường mức độ “cứng hóa” của cấu hình hệ thống, không phải trạng thái bị tấn công. Điểm thấp cho thấy bạn cần cải thiện nhiều cấu hình để phòng thủ tốt hơn.

3. Tôi có cần chạy Lynis thường xuyên không?

Có. Nên chạy Lynis định kỳ (ví dụ: hàng tuần hoặc hàng tháng) và sau mỗi lần có thay đổi lớn trên hệ thống để đảm bảo an ninh luôn được duy trì.

Kết luận

Qua bài viết này, chúng ta đã đi từ một người dùng đơn thuần trở thành một nhà quản trị hệ thống chủ động. Bạn không chỉ chạy một công cụ, bạn đã học được cách phân tích, hiểu và hành động dựa trên những dữ liệu chuyên sâu.

Hãy nhớ quy trình vàng:

  1. Quét: Chạy lynis audit system định kỳ.
  2. Phân tích: Xem xét các WarningsSuggestions, chú ý đến TEST-ID.
  3. Tìm hiểu: Dùng lynis show details <TEST-ID> để hiểu gốc rễ vấn đề.
  4. Hành động: Thực hiện các bước cứng hóa hệ thống.
  5. Lặp lại: Quét lại để xem chỉ số Hardening Index tăng lên và tận hưởng thành quả của mình.
Chỉ số Hardening Index của Lynis đã tăng lên 73 sau khi thực hiện các đề xuất, cho thấy hiệu quả của việc tối ưu hóa.

Chỉ số Hardening Index của Lynis đã tăng lên 73 sau khi thực hiện các đề xuất, cho thấy hiệu quả của việc tối ưu hóa.

Bảo mật không phải là một đích đến, mà là một quá trình liên tục. Với Lynis trong bộ công cụ của mình, bạn đã có một người cố vấn đáng tin cậy, luôn sẵn sàng giúp bạn giữ cho pháo đài số của mình đứng vững trước mọi thử thách.

Tài liệu tham khảo