Sử dụng IPTables hoặc CSF để phòng chống DDOS

Lê Châu Hải My 3 phút đọc

DOS – Denial Of Service là một hình thức tấn công làm cho máy chủ website không thể đáp ứng được truy cập của người dùng bình thường.
Bằng cách sử dụng IPtables hay CSF chúng ta có thể phòng chống lại một cuộc tấn công DOS . Tuy nhiên khi sử dụng IPtables chống lại DOS bạn cần trang bị tốt kiến thức để cấu hình iptables nhưng với CSF thì khá đơn giản.
Nào chúng ta hãy cùng nhau thực hiện theo các hướng dẫn sau :

1. Sử dụng iptables

Ta dùng command sau:

iptables -A INPUT -p tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT

Lệnh trên nghĩa là khi IP silent đạt tới 100 kết nối tới Server thì bắt đầu hạn chế truy cập chỉ cho phép 25 kết nối trong 1 phút trường hợp kết nối nhiều hơn sẽ bị block.
Với ý nghĩa của các thông số như sau: -A : Append.

-p : Protocol.

–dport : For ports.

-m limit : To limit iptables extension.

–limit 25/minute : Defines maximum of 25 connection per minute.

–limit-burst 100 : The limit/minute will be enforced only after the total number of connection have reached the limit-burst level, ie 100 here.

-j : Target

2. Sử dụng CSF

Để cấu hình bạn cần thay đổi nội dung file etc/csf.conf . Bật mí: bạn có thể dùng trình soạn thảo vi hoặc dùng winscp hay filezilla vào trực tiếp chỉnh sửa csf.conf.
Chúng ta sẽ chỉnh giá trị CT_LIMIT

CT_LIMIT = “50”

Chúng tôi khuyến khích bạn sử dụng 50 là giá trị tối đa mà một IP có thể kết nối tới server. Đồng thời bạn cũng cần chỉnh cả các cổng cho CSF theo dõi :

# Leave this option empty to count all ports against CT_LIMIT
CT_PORTS = “80,53,22”

Sau khi hoàn tất chúng ta cần restart lại CSF.

  • Ngoài ra, bạn cũng có thể tham khảo một số giá trị CT trong CSF mà có thể chỉnh sửa :

# Connection Tracking interval. Set this to the the number of seconds between
# connection tracking scans
CT_INTERVAL = “30”
# Send an email alert if an IP address is blocked due to connection tracking
CT_EMAIL_ALERT = “1”
# If you want to make IP blocks permanent then set this to 1, otherwise blocks
# will be temporary and will be cleared after CT_BLOCK_TIME seconds
CT_PERMANENT = “0”
# If you opt for temporary IP blocks for CT, then the following is the interval
# in seconds that the IP will remained blocked for (e.g. 1800 = 30 mins)
CT_BLOCK_TIME = “1800”
# If you don’t want to count the TIME_WAIT state against the connection count
# then set the following to “1”
CT_SKIP_TIME_WAIT = “0”
# If you only want to count specific states (e.g. SYN_RECV) then add the states
# to the following as a comma separated list. E.g. “SYN_RECV,TIME_WAIT”
#
# Leave this option empty to count all states against CT_LIMIT
CT_STATES = “”