Of course, it would be a pleasure, but I still couldn't get it to work,
following the igor script I even managed to build it but it is generating the
following log.
------------------- begin ---------------------
1588299971.657027 [07] 0 clients connected
1588299971.657000 [09] 0 clients connected
1588299974.851659 [00] <1> New Client connection accepted and assigned to
worker 01
1588299974.851698 [01] <1> read_frame_cb
1588299974.851765 [01] <1> New Frame of 129 bytes received
1588299974.851774 [01] <1> Decode HAProxy HELLO frame
1588299974.851777 [01] <1> Supported versions : 2.0
1588299974.851779 [01] <1> HAProxy maximum frame size : 16380
1588299974.851780 [01] <1> HAProxy capabilities : pipelining,async
1588299974.851789 [01] <1> HAProxy supports frame pipelining
1588299974.851797 [01] <1> HAProxy supports asynchronous frame
1588299974.851800 [01] <1> HAProxy engine id :
a9dd7313-bb7e-46e2-a50e-5987dfa4f0d2
1588299974.851803 [01] <1> Encode Agent HELLO frame
1588299974.851810 [01] <1> Agent version : 2.0
1588299974.851813 [01] <1> Agent maximum frame size : 16380
1588299974.851816 [01] <1> Agent capabilities :
1588299974.851830 [01] <1> write_frame_cb
1588299974.851856 [01] <1> Frame of 54 bytes send
1588299974.851905 [01] <1> read_frame_cb
1588299974.851916 [01] <1> New Frame of 617 bytes received
1588299974.851925 [01] <1> Decode HAProxy NOTIFY frame
1588299974.851927 [01] <1> STREAM-ID=12 - FRAME-ID=1 - unfragmented frame
received - frag_len=0 - len=617 - offset=7
1588299974.851938 [01] Process frame messages : STREAM-ID=12 - FRAME-ID=1 -
length=610 bytes
1588299974.851946 [01] Process SPOE Message 'check-request'
1588299974.852077 [01] Encode Agent ACK frame
1588299974.852088 [01] STREAM-ID=12 - FRAME-ID=1
1588299974.852090 [01] Add action : set variable code=4294967195
1588299974.852098 [01] <1> write_frame_cb
1588299974.852125 [01] <1> Frame of 30 bytes send
1588299976.656052 [01] 1 clients connected
1588299976.657844 [04] 0 clients connected
1588299976.657858 [02] 0 clients connected
----------------------1588300001.660228 [08] 0 clients connected
1588300001.660241 [09] 0 clients connected
1588300001.660250 [01] 1 clients connected
1588300004.852590 [01] <1> read_frame_cb
1588300004.852619 [01] <1> New Frame of 49 bytes received
1588300004.852632 [01] <1> Decode HAProxy DISCONNECT frame
1588300004.852640 [01] <1> Disconnect status code : 2
1588300004.852647 [01] <1> Disconnect message : a timeout occurred
1588300004.852653 [01] <1> Peer closed connection: a timeout occurred
1588300004.852660 [01] <1> Encode Agent DISCONNECT frame
1588300004.852666 [01] <1> Disconnect status code : 2
1588300004.852671 [01] <1> Disconnect message : a timeout occurred
1588300004.852685 [01] <1> write_frame_cb
1588300004.852694 [01] Failed to write frame length : Broken pipe
1588300004.852704 [01] <1> Release client
1588300006.655592 [08] 0 clients connected
1588300006.655676 [09] 0 clients connected
1588300006.655608 [03] 0 clients connected
1588300006.655685 [01] 0 clients connected
---------------------------
Any idea?
when I compile with the new version it shows me the following message:
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-apache2-module,
--enable-standalone-module, --enable-pcre-study, --enable-pcre-jit, --with-apxs
my config:
---------- haproxy.cfg--------
global
maxconn 50000
user haproxy
defaults
timeout connect 10s
timeout client 30s
timeout server 30s
mode http
maxconn 3000
frontend my-front
bind 0.0.0.0:80
mode http
filter spoe engine modsecurity config /opt/haproxy/spoe-modsecurity.conf
http-request deny if { var(txn.modsec.code) -m int gt 0 }
default_backend webservers
backend spoe-modsecurity
mode tcp
server modsec-spoa1 192.168.10.120:12345
backend webservers
mode http
balance roundrobin
server web1 192.168.10.81:80 check
--------------------------
------------- spoe-modsecurity.conf ------
[modsecurity]
spoe-agent modsecurity-agent
messages check-request
option var-prefix modsec
timeout hello 100ms
timeout idle 30s
timeout processing 15ms
use-backend spoe-modsecurity
spoe-message check-request
args unique-id method path query req.ver req.hdrs_bin req.body_size req.body
event on-frontend-http-request
-----------------
--------modsecurity.conf----------
SecStatusEngine On
SecRuleEngine On
SecRequestBodyAccess On
SecRule REQUEST_HEADERS:Content-Type "(?:application(?:/soap\+|/)|text/)xml" \
"id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
SecRule REQUEST_HEADERS:Content-Type "application/json" \
"id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON"
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecRequestBodyInMemoryLimit 131072
SecRequestBodyLimitAction Reject
SecRule REQBODY_ERROR "!@eq 0" \
"id:'200002', phase:2,t:none,log,deny,status:400,msg:'Failed to parse request
body.',logdata:'%{reqbody_error_msg}',severity:2"
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"id:'200003',phase:2,t:none,log,deny,status:400, \
msg:'Multipart request body failed strict validation: \
PE %{REQBODY_PROCESSOR_ERROR}, \
BQ %{MULTIPART_BOUNDARY_QUOTED}, \
BW %{MULTIPART_BOUNDARY_WHITESPACE}, \
DB %{MULTIPART_DATA_BEFORE}, \
DA %{MULTIPART_DATA_AFTER}, \
HF %{MULTIPART_HEADER_FOLDING}, \
LF %{MULTIPART_LF_LINE}, \
SM %{MULTIPART_MISSING_SEMICOLON}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IP %{MULTIPART_INVALID_PART}, \
IH %{MULTIPART_INVALID_HEADER_FOLDING}, \
FL %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" \
"id:'200004',phase:2,t:none,log,deny,msg:'Multipart parser detected a possible
unmatched boundary.'"
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000
SecRule TX:/^MSC_/ "!@streq 0" \
"id:'200005',phase:2,t:none,deny,msg:'ModSecurity internal error flagged:
%{MATCHED_VAR_NAME}'"
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml
SecResponseBodyLimit 524288
SecResponseBodyLimitAction ProcessPartial
SecTmpDir /tmp/
SecDataDir /tmp/
SecDebugLog /opt/modsecurity/var/log/debug.log
SecDebugLogLevel 3
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
SecAuditLog /var/log/modsec_audit.log
SecAuditLogStorageDir /opt/modsecurity/var/audit/
SecArgumentSeparator &
SecCookieFormat 0
SecUnicodeMapFile unicode.mapping 20127
----------------------------
Any idea?
Regards. Em domingo, 26 de abril de 2020 08:55:33 GMT-4, Илья Шипицин
<[email protected]> escreveu:
вс, 26 апр. 2020 г. в 06:37, Ricardo Barbosa <[email protected]>:
Hello everyone, everything good? I'm studying how to enable the modsecurity
module, but I don't know how the compilation process is done.
I found this link
https://github.com/haproxy/haproxy/tree/master/contrib/modsecurity. but I
didn't understand how to do it, I downloaded the source code of haproxy and in
the file called INSTALL, the instructions are to run the make command, followed
by the "TARGET" parameter, using one of the following options:
linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd, cygwin,
haiku, aix51, aix52, aix72-gcc, osx, generic, custom.
for example:
make TARGET=linux-glibc
however, there is no configure script. to execute and follow the instructions
on the website above. Does anyone have any idea how to do this?
indeed there are instructions on the mentioned page (it is README file).it is
pity not being clear, can you help to improve it ?
Best Regards