Chuyển tới nội dung chính

Phát Hiện Xâm Nhập với OSSEC HIDS

Giới Thiệu

Trong bối cảnh an ninh mạng ngày càng phức tạp, việc phát hiện sớm các hành vi xâm nhập và thay đổi trái phép trên hệ thống là cực kỳ quan trọng. OSSEC (Open Source Security Event Corrector) là một hệ thống phát hiện xâm nhập dựa trên host (HIDS - Host-based Intrusion Detection System) mạnh mẽ, giúp giám sát tính toàn vẹn của file, phát hiện rootkit, giám sát log và thực hiện các phản ứng chủ động.

Bài viết này sẽ hướng dẫn bạn cách cài đặt và cấu hình OSSEC trên một máy chủ Linux để thiết lập một hệ thống giám sát an ninh cơ bản, giúp bạn nâng cao khả năng bảo vệ cho các tài sản số của mình.

📋 Thời gian: 30 phút | Độ khó: Trung bình

Yêu Cầu

Để thực hiện hướng dẫn này, bạn cần có:

  • Một máy chủ Linux (Ubuntu 20.04+ hoặc CentOS 7/8 được khuyến nghị).
  • Quyền truy cập sudo hoặc quyền root trên máy chủ.
  • Kết nối Internet ổn định để tải các gói và mã nguồn.
  • 💡 Kiến thức cơ bản về dòng lệnh Linux.

Các Bước Thực Hiện

Bước 1: Chuẩn Bị Hệ Thống

Trước tiên, chúng ta cần cập nhật hệ thống và cài đặt các gói phụ thuộc cần thiết để biên dịch OSSEC.

# Cập nhật hệ thống và cài đặt các gói phụ thuộc trên Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libssl-dev libpcre2-dev zlib1g-dev wget tar

# Hoặc trên CentOS/RHEL
# sudo yum update -y
# sudo yum install -y gcc make openssl-devel pcre2-devel zlib-devel wget tar

✅ Hệ thống của bạn giờ đã sẵn sàng để cài đất OSSEC.

Bước 2: Cài Đặt OSSEC Server

Chúng ta sẽ tải mã nguồn OSSEC, giải nén và chạy trình cài đặt. Trong hướng dẫn này, chúng ta sẽ cài đặt OSSEC với vai trò là một server.

# Di chuyển đến thư mục /opt để tải mã nguồn
cd /opt

# Tải phiên bản OSSEC HIDS mới nhất từ GitHub
# ⚠️ Luôn kiểm tra phiên bản mới nhất tại: https://github.com/ossec/ossec-hids/releases
sudo wget https://github.com/ossec/ossec-hids/archive/3.7.0/ossec-hids-3.7.0.tar.gz

# Giải nén file đã tải
sudo tar -xzf ossec-hids-3.7.0.tar.gz

# Di chuyển vào thư mục OSSEC
cd ossec-hids-3.7.0/

# Chạy trình cài đặt
sudo ./install.sh

Trong quá trình cài đặt, bạn sẽ được hỏi một số câu hỏi. Hãy trả lời như sau:

  • Chọn ngôn ngữ: en (English)
  • Chọn loại cài đặt: server
  • Đường dẫn cài đặt: Nhấn Enter để chấp nhận mặc định (/var/ossec).
  • Bật Syscheck (kiểm tra tính toàn vẹn của file): y
  • Bật Rootcheck (phát hiện rootkit): y
  • Bật Active Response (phản ứng tự động): y
  • Bật Firewall-drop (chặn IP độc hại): y
  • Cấu hình email cảnh báo: y (Bạn có thể cấu hình chi tiết sau)
  • Địa chỉ email người nhận: [email protected]
  • Máy chủ SMTP: smtp.yourprovider.com (ví dụ: smtp.gmail.com nếu dùng Gmail)
  • Địa chỉ email người gửi: [email protected]

Sau khi quá trình cài đặt hoàn tất, hãy khởi động OSSEC và cấu hình nó tự động chạy khi khởi động hệ thống.

# Khởi động OSSEC
sudo /var/ossec/bin/ossec-control start

# Kích hoạt OSSEC để tự động khởi động cùng hệ thống
sudo systemctl enable ossec

✅ OSSEC Server đã được cài đặt và đang chạy.

Bước 3: Cấu Hình OSSEC Server

File cấu hình chính của OSSEC là /var/ossec/etc/ossec.conf. Chúng ta sẽ chỉnh sửa một số phần để tối ưu hóa việc giám sát.

sudo nano /var/ossec/etc/ossec.conf

Dưới đây là một số cấu hình quan trọng bạn có thể xem xét:

Giám sát tính toàn vẹn của File (Syscheck): Đảm bảo rằng các thư mục quan trọng được giám sát. Bạn có thể thêm hoặc bớt các thư mục tùy theo nhu cầu.

<syscheck>
<!-- Giám sát các thư mục quan trọng, báo cáo thay đổi, theo dõi thời gian thực -->
<directories report_changes="yes" realtime="yes" check_all="yes">/etc</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/usr/bin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/root</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/var/www/html</directories> <!-- Ví dụ: Thư mục chứa website -->

<!-- Các file/thư mục bỏ qua để tránh cảnh báo giả (false positives) -->
<ignore>/etc/mtab</ignore>
<ignore>/etc/resolv.conf</ignore>
<ignore>/etc/network/interfaces.d</ignore>
<ignore>/var/ossec/etc/ossec.conf</ignore> <!-- OSSEC tự quản lý cấu hình của nó -->
<ignore>/var/ossec/logs</ignore>
<!-- Thêm các file log hoặc thư mục thay đổi thường xuyên mà bạn không muốn giám sát -->
</syscheck>

Giám sát Log (Log Analysis): OSSEC tự động giám sát các file log hệ thống phổ biến. Bạn có thể thêm các file log ứng dụng của riêng mình.

<localfile>
<log_all>yes</log_all> <!-- Ghi lại tất cả các sự kiện -->
<location>/var/log/auth.log</location> <!-- Ví dụ: log xác thực trên Ubuntu -->
</localfile>

<localfile>
<log_all>yes</log_all>
<location>/var/log/apache2/access.log</location> <!-- Ví dụ: log truy cập Apache -->
</localfile>

<localfile>
<log_all>yes</log_all>
<location>/var/log/apache2/error.log</location> <!-- Ví dụ: log lỗi Apache -->
</localfile>

Cảnh báo Email: Nếu bạn đã cấu hình email ở bước cài đặt nhưng muốn thay đổi, hãy tìm đến phần <alerts> và cập nhật thông tin SMTP.

<alerts>
<email_alert_level>7</email_alert_level> <!-- Mức độ cảnh báo (level) để gửi email. Mức 7 là mặc định cho các sự kiện quan trọng. -->
<email_reformat>yes</email_reformat>
<email_to>[email protected]</email_to>
<smtp_server>smtp.yourprovider.com</smtp_server>
<email_from>[email protected]</email_from>
</alerts>

Sau khi chỉnh sửa file ossec.conf, bạn cần khởi động lại OSSEC để các thay đổi có hiệu lực.

sudo /var/ossec/bin/ossec-control restart

✅ OSSEC Server của bạn đã được cấu hình với các quy tắc giám sát cơ bản.

Bước 4: Thêm Agent (Tùy chọn nhưng được khuyến nghị)

Nếu bạn có nhiều máy chủ muốn giám sát, bạn có thể cài đặt OSSEC Agent trên các máy đó và kết nối chúng với OSSEC Server.

Trên OSSEC Server: Sử dụng công cụ manage_agents để thêm một agent mới và trích xuất key.

sudo /var/ossec/bin/manage_agents

Chọn A để thêm agent, nhập name (tên máy chủ agent), IP address của agent, sau đó chọn E để trích xuất key. Sao chép key này.

Trên OSSEC Agent Machine (máy chủ khác): Thực hiện Bước 1 để chuẩn bị hệ thống. Sau đó, cài đặt OSSEC nhưng chọn loại agent.

# Trên máy Agent
cd /opt
sudo wget https://github.com/ossec/ossec-hids/archive/3.7.0/ossec-hids-3.7.0.tar.gz
sudo tar -xzf ossec-hids-3.7.0.tar.gz
cd ossec-hids-3.7.0/
sudo ./install.sh

Trong quá trình cài đặt agent:

  • Chọn loại cài đặt: agent
  • Đường dẫn cài đặt: Nhấn Enter để chấp nhận mặc định (/var/ossec).
  • Địa chỉ IP của OSSEC Server: Nhập IP của máy chủ OSSEC của bạn.
  • Nhập key đã sao chép từ OSSEC Server.

Sau khi cài đặt xong, khởi động OSSEC Agent:

sudo /var/ossec/bin/ossec-control start
sudo systemctl enable ossec

⚠️ Đảm bảo rằng tường lửa trên OSSEC Server cho phép kết nối từ Agent trên cổng UDP 1514.

# Trên OSSEC Server (nếu dùng UFW trên Ubuntu)
sudo ufw allow 1514/udp
sudo ufw reload

# Hoặc trên CentOS/RHEL (nếu dùng firewalld)
# sudo firewall-cmd --add-port=1514/udp --permanent
# sudo firewall-cmd --reload

✅ Agent đã được kết nối thành công.

Bước 5: Kiểm Tra và Giám Sát

Để kiểm tra OSSEC đang hoạt động và nhận cảnh báo, bạn có thể xem các file log chính của nó.

# Xem các sự kiện OSSEC nói chung
sudo tail -f /var/ossec/logs/ossec.log

# Xem các cảnh báo được tạo ra bởi OSSEC
sudo tail -f /var/ossec/logs/alerts/alerts.log

Để tạo một sự kiện để kiểm tra, bạn có thể thử sửa đổi một file quan trọng mà OSSEC đang giám sát:

# Trên OSSEC Server hoặc Agent
sudo echo "Test entry by OSSEC guide" >> /etc/passwd

Sau vài giây, bạn sẽ thấy một cảnh báo tương tự như sau trong file /var/ossec/logs/alerts/alerts.log và có thể cả email cảnh báo (nếu cấu hình đúng):

** Alert 1679093400.12345: - host.example.com
2023 Mar 17 10:50:00 host.example.com->syscheck
Rule: 550 (level 7) -> 'Integrity checksum changed for: /etc/passwd'
User: root
File '/etc/passwd' has changed size, md5sum, and sha1sum.
Old size: 1234, New size: 1245
Old md5sum: 123...
New md5sum: 456...
Old sha1sum: 789...
New sha1sum: abc...

Đây là dấu hiệu cho thấy OSSEC đã phát hiện một thay đổi trên file /etc/passwd và đã tạo cảnh báo.

Troubleshooting

  • OSSEC không khởi động:

    • Kiểm tra log chính của OSSEC: sudo tail -f /var/ossec/logs/ossec.log.
    • Kiểm tra quyền của các thư mục và file trong /var/ossec.
    • Đảm bảo không có tiến trình OSSEC nào đang chạy ẩn: sudo ps aux | grep ossec. Nếu có, hãy kill chúng và thử khởi động lại.
  • Không nhận được cảnh báo email:

    • Kiểm tra cấu hình email trong /var/ossec/etc/ossec.conf (phần <alerts>) đã chính xác chưa.
    • Đảm bảo email_alert_level đủ thấp để nhận được các cảnh báo bạn muốn.
    • Kiểm tra cài đặt máy chủ SMTP và tường lửa (firewall) để đảm bảo OSSEC có thể gửi email ra ngoài.
    • Kiểm tra thư mục spam/junk mail của bạn.
  • Agent không kết nối với Server:

    • Đảm bảo địa chỉ IP của OSSEC Server trong cấu hình agent là chính xác (/var/ossec/etc/ossec.conf trên agent).
    • Kiểm tra tường lửa trên OSSEC Server đã cho phép kết nối UDP trên cổng 1514 chưa.
    • Kiểm tra log của agent (/var/ossec/logs/ossec.log trên agent) để xem có lỗi kết nối nào không.
    • Đảm bảo key đã được trao đổi đúng cách. Bạn có thể xóa agent trên server và thêm lại, sau đó trao đổi key mới.

Kết Luận

OSSEC HIDS là một công cụ mạnh mẽ và linh hoạt để phát hiện xâm nhập và giám sát an ninh cho các máy chủ Linux của bạn. Bằng cách thiết lập OSSEC, bạn đã tạo ra một lớp bảo vệ quan trọng, giúp bạn nhận biết sớm các mối đe dọa, thay đổi trái phép và hành vi đáng ngờ trên hệ thống.

Best practices:

  • Thường xuyên kiểm tra log: Không chỉ dựa vào cảnh báo email, hãy định kỳ kiểm tra /var/ossec/logs/alerts/alerts.log.
  • Tinh chỉnh quy tắc: Tùy chỉnh file ossec.conf và các quy tắc (rules) để phù hợp với môi trường và nhu cầu cụ thể của bạn, giảm thiểu cảnh báo giả.
  • Tích hợp với SIEM: Đối với các môi trường lớn, hãy cân nhắc tích hợp OSSEC với các hệ thống quản lý sự kiện và thông tin bảo mật (SIEM) như Splunk, ELK Stack (Elasticsearch, Logstash, Kibana) hoặc Wazuh (phiên bản mở rộng của OSSEC) để có khả năng phân tích và trực quan hóa dữ liệu tốt hơn.
  • Cập nhật OSSEC: Luôn theo dõi và cập nhật OSSEC lên phiên bản mới nhất để nhận các bản vá bảo mật và cải tiến tính năng.

Với OSSEC, bạn đã có một công cụ đắc lực để giữ cho hệ thống của mình an toàn hơn trước các mối đe dọa tiềm ẩn.