Một cách phòng chống DoS !

Để chống DOS có rất nhiều cách, lúc trước Server Thương cũng bị DOS Thương có viết 1 ứng dụng nhỏ bằng C++\Linux . Và thấy khá hiệu quả, các bạn có thể sử dụng.

NOTE: Cách này chỉ dùng được khi bạn sở hữu server riêng, và webserver phải là apache .

1. Phân tích nguyên lý làm việc của Aapche trong việc lưu log file :

+ Mọi user khi vào 1 website, apache sẽ ghi lần access đó vào file access_log trong folder apache\log . Chý ý là nếu website của bạn có nhiều Image thì mỗi Image cũng được tạo 1 access trên apache. Đều này có nghĩ là nếu site của bạn bao gồm 1 trang html và 3 image thì trên access_log sẽ có 4 record.

+ Bình thường, 1 IP chỉ có thể access tối đa 100 lượt/giây. Trường hợp này đặt giã định Web bạn có ít hơn 20 image, các file CSS . . . ., con số 100 này chỉ là tương đối.

+ Nếu trong 1 giây, 1 website bi truy cập đến cở 1000 lượt/s thì xem như bị DOS.

2. Cách làm việc của chương trình.

+ Bạn viết 1 ứng dụng, định kỳ 5 phút sẽ đọc file log 1 lần.

+ Giả sữ trung bình, 1 giây trên toàn server có 10000 lượt truy cập (tất cả các site trên server). vả kích thuớc file access_log mỗi giây tăng 100KB. Vậy 5 phút sẽ là 600KB.

+ Nếu sau năm phút, số MB tăng đột biến,cở 1MB , thì xem như server đang bị DOS. Khi đó bạn cho phân tích cú pháp trong file log. Nếu thấy 1 domain (vysa.jp) bị gọi nhiều lần trong 1 giây (1000 lân) . thì tiến hành LOCK IP đó lại, kg cho apache trả lời request IP đó, bằng cách DENY Ip đó trên .htaccess . Chú ý khi phân tích file LOG, hãy tắt Apache đi, sau khi song thi open nó lên lại .

Dĩ nhiên các số liệu Thương đưa ra chỉ là tương đối, bạn có thể tùy biến cho phù hợp với yêu cầu của server mà bạn dùng bạn .