Question
How to whitelist a single/multiple IP addresses for ModSecurity in Plesk?
Answer
Apply one of the solutions below:
For OWASP ruleset on Linux
- 
Connect to the server via SSH. 
- Create/ open for editing ModSecurity file that is used for IP whitelisting:
For Debian based systems (Ubuntu/Debian): # vi /etc/apache2/modsecurity.d/000ipwhitelist.conf For RHEL based systems (CentOS/CloudLinux): # vi /etc/httpd/conf/modsecurity.d/rules/000ipwhitelist.conf 
- 
Add the following rule in 1 line there: SecRule REMOTE_ADDR "@ipMatch 203.0.113.0/24,192.0.2.2" "id:3,phase:1,t:none,log,pass,ctl:ruleRemoveById=55666" Where: 
 55666 - is the existing ModSecurity Rule and it should be replaced with the required rule ID.
 203.0.113.0/24 - IP addresses that are required to whitelist. Multiple, comma-separated, addresses can be also specified.
- Check Apache syntax:
For Debian based systems (Ubuntu/Debian): # apache2ctl -t For RHEL based systems (CentOS/CloudLinux): # httpd -t 
- If, in accordance with step #4, the syntax is not OK, fix it. If it is OK, apply the new configuration:
For Debian based systems (Ubuntu/Debian): # service apache2 reload For RHEL based systems (CentOS/CloudLinux): # service httpd reload 
Note: Whitelist rules should be placed before other rules. 
For details see: ModSecurity Core Ruleset documentation - Writing Whitelist Modifications 
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-%28v2.x%29#ipMatch
For OWASP ruleset on Windows
- 
- Log into the Plesk.
- Go to Tools & Settings > Web Application Firewall (ModSecurity) >Settings.
-  Add the rule below into the Custom directives field:
SecRule REMOTE_ADDR "@ipMatch 203.0.113.0/24,192.0.2.2" "id:3,phase:1,t:none,log,pass,ctl:ruleRemoveById=55666" Where: 
 55666 - is the existing ModSecurity Rule and it should be replaced with the required rule ID.
 203.0.113.0/24 - IP addresses that are required to whitelist. Multiple, comma-separated, addresses can be also specified.
- Press the OK button to apply the changes.
 
For Comodo ruleset
- Via Plesk GUI
- Log into the Plesk.
- Go to Tools & Settings > Web Application Firewall (ModSecurity) > Settings.
-  Add the rule below into the Custom directives field:
SecRule REMOTE_ADDR "@ipMatch 203.0.113.0/24,192.0.2.2" "id:3,phase:1,t:none,log,pass,ctl:ruleRemoveById=55666" Where: 
 55666 - is the existing ModSecurity Rule and it should be replaced with the required rule ID.
 203.0.113.0/24 - IP addresses that are required to whitelist. Multiple, comma-separated, addresses can be also specified.
- Press the OK button to apply the changes.
- Using command-line method
- 
Connect to the server via SSH. 
- 
Create/ open for editing ModSecurity file that is used for IP whitelisting: For Debian based systems (Ubuntu/Debian): # vi /etc/apache2/plesk.conf.d/modsecurity.conf For RHEL based systems (CentOS/CloudLinux): # vi /etc/httpd/conf/plesk.conf.d/modsecurity.conf Add the following rule in 1 line there: SecRule REMOTE_ADDR "@ipMatch 203.0.113.0/24,192.0.2.2" "id:3,phase:1,t:none,log,pass,ctl:ruleRemoveById=55666" Where: 
 55666 - is the existing ModSecurity Rule and it should be replaced with the required rule ID.
 203.0.113.0/24 - IP addresses that are required to whitelist. Multiple, comma-separated, addresses can be also specified.
 Check Apache syntax:For…