Cách chống DDoS cho VPS

Tác giả: Đội ngũ kỹ thuật ONIE · Cập nhật 12 tháng 11, 2026 · Đọc 4 phút

Tấn công từ chối dịch vụ phân tán (DDoS) đổ dồn lưu lượng vào máy chủ hoặc đường truyền của nó cho đến khi người dùng thật không vào được. Có những cuộc tấn công quá lớn để chính máy chủ xử lý, nên bảo vệ hiệu quả nhất là theo nhiều lớp: lọc ở biên mạng trước, rồi mới đến firewall và cấu hình ứng dụng trên VPS. ONIE bảo vệ cloud server tại TP. Hồ Chí Minh bằng DDoS Shield ngay tại biên mạng, không thu thêm phí, và bạn có thể tạo VPS có chống DDoS trong vài phút.

Các kiểu tấn công

  • Volumetric (tầng 3 và 4): dòng gói tin làm đầy đường truyền, ví dụ UDP flood.
  • Tấn công giao thức: lạm dụng cách xử lý kết nối, như SYN flood làm đầy bảng kết nối.
  • Tầng ứng dụng (tầng 7): nhiều yêu cầu HTTP trông hợp lệ làm cạn kiệt máy chủ web hoặc cơ sở dữ liệu.

Mỗi kiểu cần cách phòng thủ khác nhau. Lưu lượng volumetric phải bị chặn trước khi tới máy chủ; flood tầng ứng dụng có thể giảm bớt ngay trên máy chủ.

1. Lọc tại biên mạng

Lọc ở biên mạng loại bỏ lưu lượng xấu trước khi nó tới VPS, nên đường truyền không bị lấp đầy. Với DDoS Shield, việc lọc chạy ngay tại biên mạng bằng XDP/eBPF, và bảng điều khiển hiển thị lưu lượng cùng các sự kiện tấn công theo từng IP. Khi cân nhắc bất kỳ nhà cung cấp nào, hãy hỏi gói nào có bảo vệ, việc lọc diễn ra ở đâu và có thu thêm phí không.

2. Đóng những gì không dùng

sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Đừng mở cơ sở dữ liệu hay trang quản trị ra internet. Hãy gắn chúng vào 127.0.0.1 hoặc mạng riêng.

3. Tinh chỉnh nhân hệ điều hành cho SYN flood

SYN cookies được bật mặc định trong hầu hết bản phân phối. Kiểm tra:

sysctl net.ipv4.tcp_syncookies

Chỉ thay đổi ít thiết lập nhân khác và phải kiểm thử, vì giá trị sai có thể làm hỏng lưu lượng bình thường.

4. Giới hạn tốc độ yêu cầu trong Nginx

Trong khối http:

limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;

Trong khối server hoặc location:

limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;

Nạp lại bằng sudo nginx -t && sudo systemctl reload nginx. Phục vụ tệp tĩnh từ cache và dùng plugin cache trên WordPress để giảm chi phí mỗi yêu cầu. Xem bài cài WordPress với Nginx.

5. Giám sát lưu lượng

ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nload

Số kết nối hoặc băng thông tăng vọt, hoặc máy chủ chậm dù CPU thấp, có thể là dấu hiệu bị tấn công. Hãy đặt cảnh báo để phát hiện sớm.

6. Danh sách xử lý sự cố

  1. Xác nhận trong bảng điều khiển đó là tấn công hay chỉ là lượng truy cập tăng thật.
  2. Xem các sự kiện tấn công và IP bị nhắm tới.
  3. Chặn các địa chỉ hoặc dải nguồn gây hại mà bạn xác định được.
  4. Bật giới hạn tốc độ chặt hơn hoặc trang bảo trì.
  5. Liên hệ hỗ trợ của nhà cung cấp kèm thời điểm và IP.
  6. Sau đó xem lại log và cập nhật kế hoạch này. Luôn giữ backup và snapshot mới.

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

Firewall trên VPS có chặn được DDoS lớn không?

Không đủ nếu chỉ có nó. Khi lưu lượng làm đầy đường truyền, máy chủ không tự lọc được. Bạn cần lọc ở phía trước máy chủ.

CDN có giúp được không?

Với website, CDN hoặc reverse proxy có thể hấp thụ lưu lượng web, miễn là IP thật của máy chủ không bị lộ qua DNS hay tiêu đề email.

Có cần gói đặc biệt để được chống DDoS không?

Tuỳ nhà cung cấp. Hãy kiểm tra gói và vị trí của bạn có gì đi kèm.

Nguồn và tài liệu tham khảo

Hướng dẫn VPS khác