EasyCloudify
Solutions
  • Cloud PlatformImprove team productivity and integrate popular workflow applications.
  • Cloud Servers (VPS)NVMe SSD servers deployed in under 60 seconds.
  • Object StorageS3-compatible storage with built-in global CDN.
  • Managed WordPressManaged WordPress hosting, so you can focus on your business.
  • MarketplaceFind an app that suits you, then spin it up in 60 seconds or less.
  • Mail HostingPrivacy First Email Hosting for your business.
  • SEO & AI Visibility AuditAudit your site for SEO and AI answer engine visibility.
  • SecurityRock-solid application security for your peace of mind.
  • Register DomainsRegister your domain with us and get started.
Company
  • About
  • Legal
Resources
  • Blog
  • Guides
  • Status
Get Started
  • Contact Sales
  • Pricing
  • Dashboard
EasyCloudifyEasyCloudify
PricingContact
Log inStart deploying
EasyCloudify logoEasyCloudify

Fully managed cloud infrastructure — deploy in minutes, not days.

Newsletter

The latest news, articles, and resources — delivered weekly.

Product

  • Cloud Platform
  • Marketplace
  • Managed WordPress
  • Mail Hosting
  • Security

Support

  • Open a Ticket
  • Documentation
  • Contact Sales
  • System Status

Company

  • About
  • Blog
  • Pricing

Legal

  • Terms of Service
  • Privacy Policy
  • Acceptable Use
  • All Legal Docs

  • Cloud Platform
  • Marketplace
  • Managed WordPress
  • Mail Hosting
  • Security

  • Open a Ticket
  • Documentation
  • Contact Sales
  • System Status

8 The Green, Suite A, Dover DE 19901, USA
+1 (302) 534-3122

© 2026 EasyCloudify LLC. All rights reserved.

Rated on Trustpilot
Terms of ServicePrivacy PolicyAcceptable Use
EasyCloudifyDocs
⌘K
EasyCloudify Dashboard — Your Cloud Control Center OverviewAccount Setup — Update Your Profile and Billing InformationPlans & Billing — Subscribe and Manage Your EasyCloudify Plan
Deploy a VPS Server — Launch a New Cloud Server on EasyCloudifyManage Your Server — Power, IP, and Delete on EasyCloudifyVPS Performance Monitoring — Real-Time Server Metrics on EasyCloudify
Automated Backups — Configure VPS Backup Schedules on EasyCloudifySnapshots — Create, Restore, and Delete Server Snapshots on EasyCloudify
Deploy a Serverless App — EasyCloudify Serverless Deployment GuideGitHub Integration — Connect GitHub and Manage Repositories on EasyCloudify
DNS Management — Manage Zones and Records on EasyCloudifyCDN Management — Configure Global Content Delivery on EasyCloudifyHigh Availability & Scaling — Load Balancers and Reserved IPs on EasyCloudifySpeed Boost — Optimize and Accelerate Your Sites on EasyCloudifyAnalytics — Real-Time Traffic and Security Metrics on EasyCloudifyObject Storage — S3-Compatible Cloud Storage on EasyCloudify
Web Application Firewall — Configure WAF Security Rules on EasyCloudifySSH Keys & Docker Tokens — Manage Credentials on EasyCloudify
App Emails — Transactional Email Setup and Statistics on EasyCloudifyEmail Hosting — Manage Mailboxes, Aliases, and Forwardings on EasyCloudify
Managed WordPress — Deploy a Managed WordPress Server on EasyCloudifyManaged WordPress Sites — Create and Manage WordPress Sites on EasyCloudifyWordPress Site Report — Health and Management Dashboard on EasyCloudify
SEO Audit — Run Website SEO Scores and AI Visibility Audits on EasyCloudify
Support Tickets — Create and Track Support Requests on EasyCloudify
Reset Password — Change Your EasyCloudify Account Password
HomeDocsSecurityWeb Application Firewall — Configure WAF Security Rules on EasyCloudify
9 min read·Updated 2026-04-22

Web Application Firewall — Configure WAF Security Rules on EasyCloudify

TL;DR — The EasyCloudify WAF lets you write custom traffic filtering rules using a Cloudflare-based expression language, with field/operator/value conditions, logic operators, and five possible actions (Block, Skip, Challenge, JS Challenge, Managed Challenge).

What is the EasyCloudify Web Application Firewall?

The EasyCloudify Web Application Firewall (WAF) is a security layer that inspects every HTTP request flowing to your web properties before it reaches your server. Rules you define are evaluated at the edge in the order they appear — the first matching rule determines the outcome. Access the Security page at /cloudpanel/security.

Before You Start

  • You have at least one domain or web property connected to EasyCloudify

How to Access WAF Settings

In the sidebar, click Security. You land on /cloudpanel/security, which displays the Firewall panel.

The panel provides a full interface for:

  1. Viewing and managing existing firewall rules
  2. Creating new custom rules with the Rule Builder
  3. Enabling automatic vulnerability protection

Understanding WAF Rule Flow

Rules are evaluated in order from top to bottom. The first rule whose condition matches the incoming request wins — no further rules are checked. This means rule order matters:

  • Put more specific Allow rules above broad Block rules (e.g., whitelist your office IP before blocking a whole country)
  • Put Block rules above Challenge rules for the same traffic pattern if you want hard blocks

Rule Expression Syntax

Each rule is made of one or more conditions. Each condition has three parts:

[Field]  [Operator]  [Value]

Multiple conditions can be combined using logic operators (and / or).

Available Fields

Field labelExpression fieldWhat it matches
IPip.srcThe request's source IP address
Countryip.geoip.countryTwo-letter ISO country code (e.g. US, FR, CN)
Continentip.geoip.continentContinent code (e.g. EU, AS, NA)
AS Numip.geoip.asnumAutonomous system number (integer)
Hosthttp.hostThe Host header value (e.g. example.com)
URI Pathhttp.request.uri.pathThe URL path only (e.g. /admin)
URI Queryhttp.request.uri.queryThe query string (e.g. page=1&sort=asc)
Full URIhttp.request.full_uriComplete URL including scheme and query string
URIhttp.request.uriPath + query string without scheme
Request Methodhttp.request.methodHTTP verb: GET, POST, PUT, DELETE, etc.
User Agenthttp.user_agentThe browser or bot's User-Agent string
Refererhttp.refererThe Referer header value
Cookiehttp.cookieThe full Cookie header string
HTTP Versionhttp.request.versionHTTP protocol version: HTTP/1.1, HTTP/2, etc.
Threat Scorecf.threat_scoreCloudflare threat score 0–100 (higher = more suspicious)
X Forwarded Forhttp.x_forwarded_forX-Forwarded-For header (proxy chains)
Headerhttp.request.headers["name"][*]Any custom request header by name

Available Operators

Operator labelExpression syntaxMeaning
EqualseqExact match
Not EqualsneDoes not match
ContainscontainsString is found anywhere in the field
Less ThanltNumeric value is less than
Less Than or EqualleNumeric value is less than or equal to
Greater ThangtNumeric value is greater than
Greater Than or EqualgeNumeric value is greater than or equal to

Available Actions

ActionWhat it does
BlockImmediately rejects the request — returns an HTTP 403 to the visitor
SkipBypasses all remaining rules — use to whitelist trusted traffic
ChallengeShows a CAPTCHA challenge; only real humans can pass
JS ChallengeShows a lightweight JavaScript browser challenge; stops most bots with no user interaction
Managed ChallengeCloudflare automatically picks the right challenge type based on the visitor's risk score

💡 Tip: For most unwanted bot traffic, Managed Challenge is the best default action — it's invisible to real users but blocks automated scanners effectively.


Creating a Custom WAF Rule

Step 1 — Open the Rule Builder

In the Firewall panel at /cloudpanel/security, click Create Rule. The Rule Builder dialog opens.

Step 2 — Name your rule

Give the rule a descriptive name so you can identify it later (e.g. Block admin from outside France, Rate limit wp-login).

Step 3 — Build conditions

Use the row-based condition builder:

  1. Select a Field from the dropdown (e.g. Country)
  2. Select an Operator (e.g. Equals)
  3. Enter the Value (e.g. RU)
  4. To add another condition, click Add condition and choose a Logic Operator (and / or) before the new row

Step 4 — Choose an action

Select the action to take when the conditions match: Block, Skip, Challenge, JS Challenge, or Managed Challenge.

Step 5 — Enable and save

Make sure the rule status is set to Enabled, then click Deploy. The rule is added to the top of your rule list.


Practical Rule Examples

Block all traffic from a specific country

Useful when you know your audience is regional and you want to cut off traffic from high-risk countries.

FieldOperatorValue
CountryEqualsCN

Action: Block


Block all traffic except one country

Block everyone, then use a separate Skip rule above it for allowed countries:

Rule 1 (higher priority): Allow your country

FieldOperatorValue
CountryEqualsFR

Action: Skip

Rule 2 (lower priority): Block everyone else

FieldOperatorValue
URI PathContains/

Action: Block


Protect the WordPress login page

Allows your IP through, blocks everyone else on /wp-login.php and /wp-admin:

Rule 1 — Whitelist your IP (action: Skip)

FieldOperatorValue
IPEquals203.0.113.10

Rule 2 — Block login page (action: Block)

FieldOperatorValueLogic
URI PathContains/wp-login.php—
URI PathContains/wp-adminor

Action: Block


Block by high threat score

Block requests from IPs Cloudflare has already identified as highly suspicious:

FieldOperatorValue
Threat ScoreGreater Than25

Action: Managed Challenge

💡 Tip: A threat score above 25 covers most automated scanners and known bad actors. Raise the threshold to 50 if you see false positives on legitimate visitors.


Block a known bad bot by User-Agent

FieldOperatorValue
User AgentContainsSemrushBot

Action: Block

You can repeat this pattern for any bot name you want to block (e.g. AhrefsBot, MJ12bot, DotBot).


Block POST requests to your contact form from outside your region

FieldOperatorValueLogic
Request MethodEqualsPOST—
URI PathContains/contactand
CountryNot EqualsFRand

Action: Block


Allow only specific HTTP methods

Block anything that isn't GET or POST (useful to harden REST APIs):

FieldOperatorValueLogic
Request MethodNot EqualsGET—
Request MethodNot EqualsPOSTand

Action: Block


Enabling Automatic Vulnerability Protection

The Firewall panel includes a toggle for Automatic Vulnerability Protection. When enabled, EasyCloudify applies a managed ruleset that automatically defends against:

  • SQL injection (SQLi)
  • Cross-site scripting (XSS)
  • Remote code execution (RCE)
  • Path traversal attacks
  • Other OWASP Top 10 vulnerability classes

This managed ruleset is updated automatically as new threats are discovered — you do not need to manage it manually.

💡 Tip: Enable automatic vulnerability protection as your baseline, then layer your custom rules on top for more granular control over specific traffic patterns.


Troubleshooting

Issue: Your own IP gets blocked after creating a rule. Fix: Create a Skip rule with IP eq YOUR_IP and move it to the top of the rule list so it is evaluated first.

Issue: A rule blocks too much legitimate traffic. Fix: Narrow the conditions — add an and condition to restrict the rule to a specific URI path or request method, rather than matching all traffic.

Issue: Bot traffic is still getting through. Fix: Combine a Threat Score gt 25 rule with a User Agent contains rule using or logic to cast a wider net.


Frequently Asked Questions

What happens to traffic that does not match any rule?

Traffic that does not match any custom WAF rule is allowed through by default, subject to platform-level and automatic vulnerability protection if enabled.

Can I combine more than two conditions in one rule?

Yes. Click Add condition multiple times to chain as many field/operator/value rows as needed. Each new row requires a logic operator (and or or) preceding it.

Does rule order matter?

Yes. Rules are evaluated top to bottom and the first match wins. Always place Skip/Allow rules above Block rules when they overlap.

Can I temporarily disable a rule without deleting it?

Yes. When editing a rule, set its status to Disabled. Disabled rules remain saved but are not evaluated until re-enabled.

What is the difference between Challenge and JS Challenge?

Challenge shows a visible CAPTCHA that the user must solve. JS Challenge silently runs a JavaScript puzzle in the background — real browsers pass automatically, bots fail. Use JS Challenge when you want to stop bots without interrupting the user experience.

What Threat Score should I use?

Start at 25 for a good balance between blocking bots and avoiding false positives. If legitimate visitors are getting challenged, raise the threshold to 50.

Related Guides

  • DNS Management
  • SSH Keys & Credentials
PreviousObject Storage — S3-Compatible Cloud Storage on EasyCloudifyNextSSH Keys & Docker Tokens — Manage Credentials on EasyCloudify
On this page
  • What is the EasyCloudify Web Application Firewall?
  • Before You Start
  • How to Access WAF Settings
  • Understanding WAF Rule Flow
  • Rule Expression Syntax
  • Available Fields
  • Available Operators
  • Available Actions
  • Creating a Custom WAF Rule
  • Step 1 — Open the Rule Builder
  • Step 2 — Name your rule
  • Step 3 — Build conditions
  • Step 4 — Choose an action
  • Step 5 — Enable and save
  • Practical Rule Examples
  • Block all traffic from a specific country
  • Block all traffic except one country
  • Protect the WordPress login page
  • Block by high threat score
  • Block a known bad bot by User-Agent
  • Block POST requests to your contact form from outside your region
  • Allow only specific HTTP methods
  • Enabling Automatic Vulnerability Protection
  • Troubleshooting
  • Frequently Asked Questions
  • What happens to traffic that does not match any rule?
  • Can I combine more than two conditions in one rule?
  • Does rule order matter?
  • Can I temporarily disable a rule without deleting it?
  • What is the difference between Challenge and JS Challenge?
  • What Threat Score should I use?
  • Related Guides

Was this helpful?

AI Tools