0

[Open Source] #221 - NetAlertX: Hệ thống quản trị an ninh mạng nội bộ chuyên sâu với kiến trúc Python, Flask, Plugin-driven và cơ chế Docker Hardening bảo mật cao

Trong quản trị hạ tầng Homelab hoặc mạng doanh nghiệp nhỏ, việc biết chính xác "ai" đang kết nối vào mạng là bước đầu tiên của bảo mật. NetAlertX (tiền thân là Pi.Alert) không chỉ là một công cụ quét IP đơn thuần; nó là một hệ thống Network Source of Truth (NSoT) toàn diện. Bằng cách kết hợp nhiều kỹ thuật quét tầng thấp và khả năng tích hợp đa nền tảng (UniFi, Pi-hole, Mikrotik), NetAlertX cung cấp khả năng phát hiện thiết bị lạ, theo dõi sự thay đổi IP và tự động hóa các phản ứng an ninh trong thời gian thực.

Dưới góc độ kỹ thuật, NetAlertX là một minh chứng xuất sắc về việc ứng dụng Kiến trúc hướng Module, kỹ thuật Phân tích Heuristics để nhận diện thiết bị và tư duy Security-Hardened trong đóng gói Docker.

Github: https://github.com/jorgabbos/NetAlertX


🛠️ 1. Nền tảng công nghệ: Sự kết hợp giữa Hiệu năng và Tiện dụng

NetAlertX sử dụng một ngăn xếp công nghệ lai (Hybrid Stack) để tối ưu hóa giữa việc tương tác phần cứng và hiển thị dữ liệu:

  • Backend Core (Python 3.12+): Đảm nhiệm vai trò bộ não điều phối. Python được chọn nhờ hệ sinh thái thư viện mạng mạnh mẽ như Scapy (xử lý gói tin tầng 2), python-nmappsutil.
  • API Layer (Flask & GraphQL): Cung cấp hệ thống API linh hoạt. Việc sử dụng GraphQL cho phép giao diện người dùng chỉ lấy đúng những dữ liệu cần thiết, tối ưu hóa tốc độ tải cho các mạng có hàng nghìn thiết bị.
  • Frontend Architecture (PHP 8.3 & JS): Một lựa chọn thực dụng cho môi trường Self-hosted. PHP đóng vai trò là engine render giao diện nhanh, trong khi JavaScript và SSE (Server-Sent Events) đảm nhận việc cập nhật trạng thái quét mạng thời gian thực mà không cần tải lại trang.
  • Storage (SQLite): Toàn bộ tri thức về mạng được cấu trúc hóa trong SQLite, giúp việc sao lưu toàn bộ tài sản mạng chỉ đơn giản là copy một tệp tin duy nhất.

🏗️ 2. Trụ cột kiến trúc: Plugin-driven và NSoT

Kiến trúc của NetAlertX được thiết kế để trở thành "nguồn sự thật" duy nhất cho hạ tầng mạng:

  • Network Source of Truth (NSoT): NetAlertX duy trì một bản đồ tài sản mạng tĩnh. Mỗi khi một cuộc quét diễn ra, hệ thống thực hiện đối soát dữ liệu (Drift detection). Bất kỳ sự sai khác nào (thiết bị mới, MAC thay đổi, IP lạ) đều kích hoạt các luồng cảnh báo an ninh.
  • Plugin-Driven Ingestion: Thay vì chỉ dựa vào một phương thức quét, NetAlertX sử dụng các Plugin để "nuốt" dữ liệu từ nhiều nguồn: từ quét ARP tầng thấp đến gọi API tầng cao của UniFi, Mikrotik, hoặc đọc log từ Pi-hole/AdGuard Home.
  • Docker Hardening Architecture: Đây là điểm sáng về bảo mật. Container được thiết kế để chạy ở chế độ Read-only filesystem, sử dụng User ID không phải root và giới hạn quyền hạt nhân tối thiểu (NET_ADMIN) để thực hiện quét mạng, giảm thiểu rủi ro nếu container bị xâm nhập.

🔄 3. Workflow: Vòng đời từ Phát hiện đến Phản ứng (Sequence Diagram)

Sơ đồ mô tả quy trình hệ thống điều phối từ lúc phát hiện chuyển động mạng đến khi gửi thông báo:

image.png


⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn

  1. Device Heuristics Rules: Hệ thống tích hợp bộ quy tắc thông minh (device_heuristics_rules.json). Bằng cách phân tích tổ hợp giữa OUI (Mac Vendor), Hostname patterns và các cổng dịch vụ mở (Nmap), NetAlertX có thể tự động nhận diện chính xác đâu là camera IP, đâu là điện thoại thông minh hay bóng đèn IoT.
  2. Authoritative Field Locking: Một tính năng kỹ thuật tinh tế giải quyết vấn đề dữ liệu bị ghi đè. Người dùng có thể "khóa" các trường dữ liệu đã chỉnh sửa thủ công. Các Plugin tự động sẽ không bao giờ được phép ghi đè lên những thông tin này, đảm bảo tính chính xác của kho dữ liệu tài sản.
  3. Real-time SSE Tunneling: Thay vì sử dụng Polling gây tốn tài nguyên, NetAlertX sử dụng SSE để duy trì một kênh đẩy dữ liệu từ Backend xuống Browser. Điều này giúp Dashboard cập nhật trạng thái Online/Offline của thiết bị gần như tức thì với độ trễ cực thấp.
  4. ARP Flux Mitigation: Khi chạy trong Docker với nhiều giao diện mạng, NetAlertX tự động tinh chỉnh các tham số kernel của host (arp_ignore, arp_announce) để đảm bảo các gói tin ARP phản hồi chính xác, tránh hiện tượng nhận diện nhầm thiết bị giữa các card mạng.

⚖️ 5. So sánh chiến lược

Tiêu chí NetAlertX Pi.Alert (Gốc) Home Assistant Fing (SaaS)
Kiến trúc Plugin-driven Monolith Integration-based Cloud-based
Tính riêng tư Tuyệt đối (Local-only) Tuyệt đối Tuyệt đối Thấp
Quản trị tài sản Chuyên sâu (Field Locking) Cơ bản Trung bình Tốt
Tự động hóa Trigger-Condition-Action Không Rất mạnh Không
Bảo mật Container Hardened (Read-only) Thường Thường N/A

✅ Kết luận: Tại sao NetAlertX là hạ tầng an ninh phải có?

NetAlertX chứng minh rằng một ứng dụng giám sát mạng không chỉ đơn thuần là hiển thị danh sách IP. Bằng cách xây dựng một Hệ thống tri thức mạng (Network Intelligence) và làm chủ kỹ thuật điều phối Plugin, dự án đã tạo ra một lớp bảo vệ chủ động cho mạng gia đình và doanh nghiệp nhỏ.

Đối với các kỹ sư DevSecOps và Sysadmin, nghiên cứu NetAlertX mang lại giá trị về:

  • Kỹ thuật xây dựng NSoT (Source of Truth) cho hạ tầng.
  • Cách triển khai Docker Hardening thực tế cho các ứng dụng nhạy cảm.
  • Tư duy thiết kế Event-driven Security dựa trên các thiết bị ngoại vi.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí