HEX
Server: Apache
System: Linux u11 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: ry040200 (1273)
PHP: 7.2.34
Disabled: passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,show_source,shell_exec,exec,virtual,proc_get_status,proc_terminate,system,syslog,mail
Upload Files
File: //etc/httpd/conf.d-enabled/modules.conf
# Ansible managed - https://git.if.webhouse.sk/WebHouse/webhosts

#
### Apache =< 2.2
#

<IfModule prefork.c>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    ServerLimit      200
    MaxClients       200
    MaxRequestsPerChild  3000
</IfModule>

<IfModule worker.c>
    StartServers        10
    MaxClients         300
    MinSpareThreads     25
    MaxSpareThreads     75
    ThreadsPerChild     25
    MaxRequestsPerChild  1000
</IfModule>

#
### Apache 2.4
#

# Momentalne pouzivany
<IfModule mpm_event_module>
    ServerLimit              4000
    StartServers             50
    MinSpareThreads          25
    MaxSpareThreads          100
    ThreadLimit              800
    ThreadsPerChild          50
    MaxRequestWorkers        25000
    MaxConnectionsPerChild   2000
</IfModule>

#Alternativa
<IfModule mpm_worker_module>
    StartServers             10
	MinSpareThreads		     25
	MaxSpareThreads		     75
	ThreadLimit			     64
	ThreadsPerChild		     25
	MaxRequestWorkers	    150
    MaxClients              150 
	MaxConnectionsPerChild 2000
</IfModule>

### Ifmodule z httpd.conf

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule mime_module>
    TypesConfig /etc/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

<IfModule remoteip_module>
    RemoteIPHeader X-Forwarded-For
    RemoteIPInternalProxy 127.0.0.1
</IfModule>

# GeoIP
<IfModule mod_maxminddb.c>
    MaxMindDBEnable On
    MaxMindDBFile COUNTRY_DB /usr/share/GeoIP/GeoLite2-Country.mmdb
    MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code
</IfModule>

# Modsecurity
<IfModule mod_security2.c>
    # Default recommended configuration
    SecRuleEngine DetectionOnly
    SecRequestBodyAccess On
    SecRule REQUEST_HEADERS:Content-Type "text/xml" \
         "id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
    SecRequestBodyLimit 52214400
    SecRequestBodyNoFilesLimit 522144
    SecRequestBodyInMemoryLimit 522144
    SecRequestBodyLimitAction Reject
    SecRule REQBODY_ERROR "!@eq 0" \
    "id:'200001', 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:'200002',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:'200003',phase:2,t:none,log,deny,status:44,msg:'Multipart parser detected a possible unmatched boundary.'"

    SecPcreMatchLimit 150000
    SecPcreMatchLimitRecursion 150000

    SecRule TX:/^MSC_/ "!@streq 0" \
            "id:'200004',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}'"

    SecResponseBodyAccess Off
    SecDebugLog /home/logs/modsecurity_debug.log
    SecDebugLogLevel 3
    SecAuditEngine RelevantOnly
    SecAuditLogRelevantStatus "^(?:5|4(?!04))"
    SecAuditLogParts ABIJDEFHZ
    SecAuditLogType Serial
    SecAuditLog /home/logs/modsecurity_audit.log
    SecArgumentSeparator &
    SecCookieFormat 0
    SecTmpDir /var/lib/mod_security
    SecDataDir /var/lib/mod_security

    # ModSecurity Core Rules Set and Local configuration
	IncludeOptional modsecurity.d/*.conf
	IncludeOptional modsecurity.d/activated_rules/*.conf
	IncludeOptional modsecurity.d/local_rules/*.conf
    
</IfModule>

# Request Timeout
<IfModule reqtimeout_module>
    RequestReadTimeout header=15-40,MinRate=700 body=15,MinRate=700
</IfModule>

# mod_qos (Quality of Service) module
<IfModule qos_module>
    QS_SrvMaxConnPerIP 50 1000
    QS_SrvMaxConnClose 1000
</IfModule>