Quay lại danh sách
Tin tức công nghệ

Bảo mật mạng VPS: Cấu hình chặn đứng hoàn toàn các đợt quét cổng (Port Scanning) từ Kernel bằng NFTables Raw Table

4 tháng 6, 2026

1. Hiểm họa từ Port Scanning và hạn chế của phương pháp Firewalld/IPTables truyền thống

Trong thế giới bảo mật mạng, Port Scanning (Quét cổng) là bước trinh sát đầu tiên và quan trọng nhất của mọi hacker. Bằng cách gửi hàng loạt gói tin SYN, UDP hoặc FIN đến VPS của bạn, kẻ tấn công có thể dễ dàng vẽ ra bản đồ các dịch vụ đang chạy, xác định hệ điều hành và tìm kiếm lỗ hổng bảo mật để khai thác sâu hơn.

Hầu hết các quản trị viên hệ thống hiện nay đều dựa vào IPTables hoặc Firewalld để chặn các cuộc tấn công này. Tuy nhiên, cơ chế hoạt động truyền thống của chúng lại bộc lộ một điểm yếu chí mạng: Hiệu suất xử lý ở tầng cao (Connection Tracking - Conntrack). Khi một gói tin quét cổng đi vào hệ thống, IPTables sẽ phải kiểm tra trạng thái của nó thông qua bộ theo dõi kết nối. Nếu hacker thực hiện một đợt quét cổng quy mô lớn (như dùng công cụ Masscan hoặc ZMap), bộ nhớ RAM và CPU của VPS sẽ nhanh chóng bị quá tải do phải xử lý hàng triệu trạng thái kết nối giả lập. Điều này dẫn đến tình trạng từ chối dịch vụ (DoS) ngay chính trên tường lửa của bạn.

2. Sức mạnh của NFTables Raw Table và Xử lý tầng Kernel

Để giải quyết triệt để bài toán hiệu năng và bảo mật, chúng ta cần chặn đứng kẻ tấn công ở tầng thấp hơn trước khi gói tin kịp đi vào bộ Conntrack. Đó chính là lúc NFTables (kiến trúc thay thế hoàn hảo cho IPTables từ Linux Kernel 3.13 trở đi) thể hiện sức mạnh vượt trội thông qua tính năng cấu hình bảng thô (Raw Table) và hook prerouting ở tầng netdev hoặc inet.

Bằng cách sử dụng NFTables với cấu hình notrack, chúng ta có thể hướng dẫn Linux Kernel xử lý gói tin theo cơ chế tĩnh (stateless). Khi một gói tin quét cổng bị phát hiện, Kernel sẽ lập tức thả (drop) gói tin đó ngay tại tầng mạng thấp nhất. Kết quả là:

  • Tiết kiệm tài nguyên tuyệt đối: CPU không phải tốn chu kỳ xử lý cho các hàm băm conntrack, RAM không bị chiếm dụng.
  • Tốc độ xử lý cực cao: Đủ khả năng kháng cự các đợt quét cổng với mật độ hàng trăm nghìn gói tin/giây.
  • Tàng hình trước Hacker: VPS của bạn sẽ hoàn toàn im lặng, khiến kẻ tấn công tưởng rằng địa chỉ IP này không tồn tại hoặc đã bị sập.

3. Hướng dẫn cấu hình chi tiết: Chặn Port Scanning tĩnh bằng NFTables

Bước 1: Cài đặt và kích hoạt NFTables

Đầu tiên, hãy đảm bảo hệ thống của bạn đã gỡ bỏ hoàn toàn IPTables/Firewalld để tránh xung đột, sau đó tiến hành cài đặt NFTables. Trên hệ điều hành Debian/Ubuntu, chạy lệnh sau:

sudo apt update && sudo apt install nftables -y
sudo systemctl enable nftables
sudo systemctl start nftables

Bước 2: Khởi tạo cấu trúc bảng bảo mật (Blackhole Table)

Chúng ta sẽ tạo ra một bảng thuộc họ inet (hỗ trợ cả IPv4 và IPv6) và thiết lập một cơ chế tự động đưa các IP có hành vi quét cổng vào danh sách đen (Blacklist Set) với thời gian hết hạn tự động (timeout).

Lưu ý: Hãy chắc chắn rằng bạn đã loại trừ địa chỉ IP quản trị của mình (Whitelist) trước khi áp dụng để tránh tình trạng tự khóa mình ra khỏi VPS.

Bước 3: Viết Ruleset chặn đứng Hacker

Dưới đây là cấu hình hoàn chỉnh cho tệp /etc/nftables.conf để triển khai giải pháp ngăn chặn quét cổng tầng Kernel:table inet filter_stealth { set port_scanners { type ipv4_addr flags dynamic, timeout timeout 1d } set whitelist { type ipv4_addr elements = { 1.2.3.4, 5.6.7.8 } } chain prerouting { type filter hook prerouting priority raw; policy accept; # Bỏ qua IP thuộc danh sách Whitelist ip saddr @whitelist accept # Chặn ngay lập tức các IP đã bị đánh dấu là quét cổng ip saddr @port_scanners drop # Phát hiện hành vi quét cổng TCP SYN: Quét các cổng đóng # Thêm IP vào danh sách đen trong 24 giờ nếu kích hoạt luật tcp flags syn tcp dport != { 22, 80, 443 } ct state new add @port_scanners { ip saddr } drop } }

Trong đoạn cấu hình trên, chúng ta chỉ cho phép các kết nối TCP SYN đi vào các cổng dịch vụ hợp lệ như 22 (SSH), 80 (HTTP), và 443 (HTTPS). Bất kỳ nỗ lực gửi gói tin SYN nào đến các cổng khác ngoài danh sách này sẽ lập tức bị coi là hành vi Port Scanning. Hệ thống sẽ tự động ghi nhận IP của kẻ tấn công vào tập hợp @port_scanners và áp dụng lệnh drop ngay tại tầng raw prerouting trong vòng 24 giờ liên tục.

4. Kiểm tra và giám sát hiệu năng hệ thống

Sau khi lưu tệp cấu hình, hãy áp dụng các thay đổi bằng lệnh:

sudo nft -f /etc/nftables.conf

Để kiểm tra danh sách các IP đang bị khóa ở tầng Kernel, bạn có thể sử dụng lệnh giám sát thời gian thực:

sudo nft list set inet filter_stealth port_scanners

Kết quả trả về sẽ hiển thị chi tiết từng IP kèm theo thời gian còn lại (TTL) trước khi chúng được mở khóa. Phương pháp này đảm bảo bộ nhớ VPS của bạn luôn sạch sẽ, không bị phình to theo thời gian như các giải pháp lưu trữ log truyền thống.

5. Kết luận

Áp dụng NFTables Raw Table để chặn đứng các đợt quét cổng từ tầng Kernel là một giải pháp bảo mật nâng cao nhưng cực kỳ đáng giá cho mọi hệ thống VPS doanh nghiệp. Nó không chỉ giúp nâng cao lá chắn bảo mật, đưa máy chủ của bạn vào trạng thái "vô hình" trước các công cụ dò tìm của hacker, mà còn tối ưu hóa hiệu suất phần cứng tới mức tối đa. Hãy triển khai ngay hôm nay để bảo vệ tài sản số của bạn một cách chủ động và thông minh nhất.