Đố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