πŸ“– ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution – Primary Fix
  7. Solution – Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

Network traffic is still blocked even after adding firewalld rules on RHEL 9.

Environment & Reproduction

Services remain unreachable, but firewall-cmd appears to show the expected open ports.

Root Cause Analysis

Rules were added to the wrong zone, runtime/permanent configs differ, or interface binding is incorrect.

Quick Triage

Run ‘sudo firewall-cmd –get-active-zones’ and map each interface to the intended trust model.

Step-by-Step Diagnosis

Inspect the zone with ‘sudo firewall-cmd –zone= –list-all’ to confirm service or port entries.

Illustrative mockup for rhel-9 β€” rhel9-firewalld-zones-29.webp
Listing active firewalld zones and interfaces on RHEL 9 β€” Illustrative mockup β€” Progressive Robot

Solution – Primary Fix

Add rules using ‘–permanent’ and run ‘sudo firewall-cmd –reload’ so runtime matches policy.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

Illustrative mockup for rhel-9 β€” rhel9-firewall-cmd-permanent-29.webp
Applying permanent firewalld rules and reloading configuration β€” Illustrative mockup β€” Progressive Robot

Solution – Alternative Approaches

Bind interfaces explicitly with ‘sudo firewall-cmd –zone= –change-interface= –permanent’.

Verification & Acceptance Criteria

Prefer named services where possible and validate custom ports with protocol correctness, such as tcp or udp.

Rollback Plan

Confirm daemon health using ‘sudo systemctl status firewalld’ and restart if configuration is stale.

Prevention & Hardening

If port access still fails, verify SELinux port types using ‘sudo semanage port -l | grep ‘.

Use ‘sudo journalctl -u firewalld –no-pager -n 100’ for syntax or runtime loading errors.

Related tutorial: View the step-by-step tutorial for rhel-9.

View all rhel-9 tutorials on the Tutorials Hub β†’

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Standardize zone mappings in automation and validate both runtime and permanent views after each change.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β€” we respond within one business day.