Saturday, July 19, 2014

Cài đặt và cấu hình mod_qos trên CentOS để ngăn chặn Slow HTTP




Đối với Slow HTTP là một hình thức tấn công DoS nhằm vào việc xử lý các request/response của web server (Apache, IIS ...), được biết đến dưới 3 hình thức: slowloris (slow http header), slow http body, slow http read. 
Trong bày viết này đưa ra một cách ngăn chặn 3 hình thức tấn công trên trong server CentOS với web server là apache, bằng cách build và cấu hình mod_qos

Trước tiên,download source của mod_qos như sau: 

wget http://downloads.sourceforge.net/project/mod-qos/mod_qos-11.4.tar.gz?use_mirror=jaist


tar xvfz mod_qos-11.4.tar.gz


Để có thể complie mod_qos bằng các sử dụng apxs, cần phải cài đặt các gói dành cho việc phát triển các module cho apache, và thư viện SSL và gcc như sau:

apt-get install apache2-threaded-dev libgnutls-dev libssl-dev gcc make

Tiếp theo là bước build và cài đặt mod_qos:


cd mod_qos-11.4/apache2/


apxs -i -c mod_qos.c -lcrypto -lpcre


mod_qos sẽ được build và install và hiển thị ra màn hình như sau:



----------------------------------------------------------------------

Libraries have been installed in:

/usr/lib/apache2/modules

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the `LD_LIBRARY_PATH' environment variable

during execution

- add LIBDIR to the `LD_RUN_PATH' environment variable

during linking

- use the `-Wl,--rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

chmod 644 /usr/lib/apache2/modules/mod_qos.so

Nạp mod_qos bằng cách cấu hình trong httpd.conf:


LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so


Tiếp theo, cấu hình mod_qos để ngăn chặn các hình thức tấn công slow http


Trtong /etc/httpd/conf.d/qos.conf

## QoS Settings

<IfModule mod_qos.c>

# 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

</IfModule>


-- Jukai Helios --

No comments:

Post a Comment