Prerequisite
If you dont have custombuild or version is 1.x, you need first upgrade to custombuild 2.x.
Upgrade instruction https://help.directadmin.com/item.php?id=555
Update Custombuild
Update custombuild:
# cd /usr/local/directadmin/custombuild # ./build update
Configuration
Edit options.conf file and change these lines to below:
clamav_exim=yes modsecurity_uploadscan=yes modsecurity=yes modsecurity_ruleset=none
Build ClamAV scanner
# ./build clamav
Optional can use Malware Expert ClamAV Signatures and Linux Malware Detect
Build ModSecurity
# ./build modsecurity
Mod_Security Rules
In options.conf possible values to modsecurity_ruleset is: comodo/owasp/no
modsecurity_ruleset=comodo/owasp/no
Comodo ModSecurity Rules – https://modsecurity.comodo.com/
Owasp ModSecurity Rules – https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project
If no, then can use Malware Expert ModSecurity Rules – https://malware.expert/modsecurity-rules/
We select Malware Expert ModSecurity Rules, so set in options.conf file:
modsecurity_ruleset=no
Set to ‘no’ to use no default ruleset and use a custom one. (Need Uploaded to custom/modsecurity/conf directory.)
Buy Malware Expert Rules and create custom configuration:
# cd /usr/local/directadmin/custombuild # mkdir custom # mkdir custom/modsecurity # mkdir custom/modsecurity/conf
Add file malware_expert.conf to custom/modsecurity/conf folder and replace (serial key) with buyed one. (here)
SecRemoteRules (serial key) https://rules.malware.expert/download.php?rules=generic
# ./build modsecurity_rules
httpd-modsecurity.conf
Also apache modsecurity configuration need little modifications, because ClamAV need scan uploaded files.
# cd /usr/local/directadmin/custombuild # mkdir custom # mkdir custom/ap2 # mkdir custom/ap2/conf # mkdir custom/ap2/extra
Add custom/ap2/extra/httpd-modsecurity.conf file with these modifications:
LoadFile /usr/local/lib/libxml2.so
LoadModule security2_module /usr/lib/apache/mod_security2.so
<IfModule mod_security2.c>
# Default recommended configuration
SecRuleEngine On
SecRequestBodyAccess On
SecDefaultAction "phase:1,deny,log,status:406"
SecDefaultAction "phase:2,deny,log,status:406"
SecRemoteRulesFailAction Warn
SecRequestBodyLimitAction ProcessPartial
SecResponseBodyLimitAction ProcessPartial
SecPcreMatchLimit 250000
SecPcreMatchLimitRecursion 250000
SecCollectionTimeout 600
SecDebugLog /var/log/httpd/modsec_debug.log
SecDebugLogLevel 0
SecAuditEngine RelevantOnly
SecAuditLogDirMode 1733
SecAuditLogFileMode 0550
SecAuditLogType Concurrent
SecAuditLogStorageDir /var/log/modsec_audit
SecAuditLog /var/log/httpd/modsec_audit.log
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecUploadFileMode 0644
SecTmpSaveUploadedFiles on
# ModSecurity Core Rules Set and Local configuration
IncludeOptional /etc/modsecurity.d/*.conf.main
IncludeOptional /etc/modsecurity.d/*.conf
</IfModule>
Rebuild configurations
# ./build rewrite_confs
Activate rules and modifications:
# ./build modsecurity_rules