Apache là web server rất dễ bị một loạt các tấn công từ chối dịch vụ. Một hình thức phổ biến của tấn công là HTTP flooding (ví dụ Slowloris) khai thác kiến trúc của Apache. Có nhiều cách để khắc phục kiểu tấn công này, mỗi cách đều có ưu điểm riêng: Không dùng Apache nữa! Nếu dùng Apache sau reserve proxy , thì chỉ cho nghe trên cổng 127.0.0.1 hoặc các IP cục bộ. Giảm Timeout cho Apache. Tuy nhiên cách này không mấy hiệu quả, tin tặc chỉ phải gửi thêm nhiều gói tin mà thôi. Giới hạn số kết nối đến Apache cho mỗi IP. Có thể dùng mod_qos chẳng hạn để làm việc này. Giải quyết ở lớp dưới: cấu hình firewall để giới hạn số kết nối đến cổng 80 trên mỗi IP. Hôm này tôi sẽ hướng dẫn cài đặt và cấu hình mod_qos. Cài đặt và thiết lập Mod_QOS Trước hết chúng ta sẽ tải về Mod_QOS: Mã: cd /tmp wget http://kent.dl.sourceforge.net/project/mod-qos/mod_qos-9.57.tar.gz apt-get install apache2-threaded-dev gcc Giải nén tập tin tải về: Mã: tar -xvf mod_qos-9.57.tar.gz cd mod_qos-9.57/apache2 Sau đó cài đặt plugin: Mã: apxs2 -i -c mod_qos.c Cấu hình: Mã: cd /etc/apache2/mods-available/ nano qos.load Thêm đoạn mã sau vào tập tin qos.load Mã: LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so Thêm đoạn mã sau vào tập tin qos.conf. Nếu không có bạn tự tạo ra cũng được: Mã: touch qos.conf nano qos.conf Mã: PHP Code: # handles connections from up to 100000 different IPs QS_ClientEntries 100000 # will allow only 50 connections per IP QS_SrvMaxConnPerIP 50 # maximum number of active TCP connections is limited to 256 MaxClients 256 # disables keep-alive when 70% of the TCP connections are occupied: QS_SrvMaxConnClose 180 # minimum request/response speed (deny slow clients blocking the server, ie. slowloris keeping connections open without requesting anything): QS_SrvMinDataRate 150 1200 # and limit request header and body (carefull, that limits uploads and post requests too): # LimitRequestFields 30 # QS_LimitRequestBody 102400 Và cuối cùng là kích hoạt các plugin: Mã: a2enmod qos Sau đó khởi đông lại apache: Mã: /etc/init.d/apache2 restart