Hướng dẫn cấu hình CSF để hạn chế tấn công DDoS

Hướng dẫn các bước cấu hình CSF (ConfigServer & Firewall) để hạn chế các cuộc tấn công DDoS nhỏ.

1. Backup file config của CSF

# cp /etc/csf/csf.conf /etc/csf/csf_conf.bak

2. Rate limit incoming traffic

Thông số đầu tiên cần nghĩ đến cũng như là thông số hiệu quả nhất để giảm thiểu DDoS đó là giới hạn số lượng connection được phép truy cập trên mỗi IP. Tuy nhiên, ta không nên set thông số này quá thấp, vì một số giao thức như FTP, IMAP, hay thậm chí là HTTP thường tạo khá nhiều connection cho mỗi phiên. Ngoài ra, đa số các hộ gia đình hay doanh nghiệp truy cập internet với một IP chung, nên nếu ta set thông số này quá thấp thì khi mỗi người trong một tập thể truy cập một lần cũng có thể dẫn đến bị chặn.

Để cấu hình thông số này trên csf, ta điều chỉnh như sau:

# Mặc định:

CT_LIMIT = “0”

# Điều chỉnh:

CT_LIMIT = “150”

Như ví dụ trên, ta đang giới hạn mỗi IP chỉ được phép mở 150 connection.

Trong trường hợp server đang bị tấn công DDoS, ta nên tắt tính năng gửi mail cảnh báo vì khi đó server sẽ gửi rất nhiều mail cảnh báo, điều này có thể tăng load trên server:

# Mặc định:

CT_EMAIL_ALERT = “1”

# Điều chỉnh:

CT_EMAIL_ALERT = “0”

Ta có thể liệt kê các port cần thực hiện limit, thay vì limit tất cả các port như mặc định:

# Mặc định:

CT_PORTS = “ ”

# Điều chỉnh:

CT_PORTS = “80,443”

3. SYN flood protection

Đầu tiên, ta cần kiểm tra số gói SYN đang có bằng lệnh sau:

# netstat -nap | grep SYN -c

Lưu ý: Nếu lệnh trên cho ra kết quả là có gói SYN thì cũng chưa chắc chắn rằng server đang bị SYN flood, đó chỉ có thể là server đang trong trạng thái load cao và traffic đầu vào cao. Chỉ khi nào số gói SYN lớn (vài trăm) thì khả năng lúc đó server mới bị DDoS.

Để bật tính năng SYN flood protection, ta điều chỉnh như sau:

# Mặc định

SYNFLOOD = “0”

# Điều chỉnh

SYNFLOOD = “1”

Ngoài ra, còn 02 thông số khác cần lưu ý tới:

  • SYNFLOOD_RATE: số gói SYN cho phép trên mỗi IP trong một giây. Mặc định thông số này là 100/s, ta có thể giảm xuống tuy vào nhu cầu.
  • SYNFLOOD_BURST: số lần mà một IP có thể chạm ngưỡng SYNFLOOD_RATE trước khi bị block. Mặc định thông số này là 150, tức là IP đó phải chạm ngưỡng 150 lần rồi mới bị khóa.

4. Reload CSF để nhận cấu hình

# csf -r

Lưu ý:

  • Khi server đã truy cập mạng Internet thì sẽ không có bất kỳ phương pháp chống DDoS hoàn toàn nào, chỉ có biện pháp giảm thiểu thiệt hại mà thôi.
  • Nếu là mục tiêu bị DDoS, sẽ không có cách nào để server hoạt động bình thường được. Điều tốt nhất có thể làm lúc này chính là giữ cho server online suốt cuộc tấn công và tìm mọi cách giảm traffic đầu vào.
  • Trong một số trường hợp, cách tốt nhất mà ta có thể làm đó là null route địa chỉ IP của server J hay nói vui là rút dây mạng.
  • Cấu hình CSF ở bài viết này chỉ hữu hiệu với các cuộc tấn công nhỏ mà thôi. Chỉ nên cấu hình khi đang bị tấn công bởi sẽ ảnh hưởng tới hoạt động thường ngày của server. Và khi cuộc tấn công kết thúc, cấu hình cần được khôi phục lại như ban đầu.
  • CSF không phải là cách duy nhất để hạn chế các cuộc tấn công DDoS nhỏ, trong trường hợp ta cần một biện pháp lâu dài và ổn định thì nên tham khảo các dịch vụ khác.

Nguồn: vinahost