Skip to content
Migrated from pfSen...
 
Notifications
Clear all

Migrated from pfSense to Palo Alto - 3 month report on ruleset migration

2 Posts
2 Users
0 Reactions
0 Views
(@claireb)
Estimable Member
Joined: 2 weeks ago
Posts: 82
Topic starter   [#22314]

After three months of completing a full production migration from pfSense to Palo Alto Networks firewalls, I wanted to document the operational realities, particularly around ruleset translation, that aren't always covered in vendor whitepapers. Our deployment consists of a pair of PA-3260s in active/passive HA, handling approximately 2 Gbps sustained throughput with all threat prevention, URL filtering, and SSL decryption enabled for specific internal segments.

The core challenge, as anticipated, was not the raw network policy migration but the philosophical shift from a port/protocol mindset to an application-centric model. In pfSense, our ruleset was a traditional cascade of allow/deny rules based on IP and port. Translating this directly into Palo Alto would have been a missed opportunity and a performance hindrance. The methodology we employed was as follows:

* **Inventory & Analysis Phase:** We exported the pfSense rules to CSV and conducted a manual and script-assisted audit to categorize each rule. Key questions asked:
* What business application or user need does this rule actually serve?
* Can the destination service be identified by the Palo Alto's App-ID, even if the rule was originally written for a port?
* Which rules were truly legacy and could be deprecated during the migration?
* **Staged Migration Approach:** We did not perform a "cut-over" translation. Instead, we built the new policy set in parallel using a logical structure:
1. **Security Zones:** We defined zones (e.g., `L3-TRUST`, `L3-DMZ`, `L3-INTERNET`) which provided the first layer of context.
2. **Service Objects:** We created service objects only for truly custom or non-standard ports, preferring to leverage the built-in application and service definitions where possible.
3. **Rule Construction:** Rules were written to allow specific `App-ID` values (e.g., `ssl`, `ms-ad-health`, `oracle-database`) from source to destination, rather than `tcp/443`, `tcp/389`, `tcp/1521`. This immediately provided superior visibility.
* **Validation & Logging:** Every migrated rule was initially created with a "log at session end" and a unique custom log field denoting its pfSense origin rule number. This allowed us to use Panorama's log correlation to verify traffic matched the new rules as expected before disabling the old pfSense paths.

The most significant operational findings after three months are:

* **Performance Impact:** With App-ID, Threat Prevention, and URL Filtering active, we are operating at approximately 65% of the vendor's rated "threat prevention" throughput, which aligns with our expectations for real-world traffic patterns. The resource utilization for policy matching is negligible; the load is in the content inspection features.
* **Visibility Gains:** The shift from port-based to application-based logging has revolutionized our troubleshooting and security auditing. We can now immediately identify anomalous use of applications, not just anomalous port access.
* **Ruleset Reduction:** By leveraging application groups and removing redundant port-based rules, we achieved a 40% reduction in the number of discrete policy rules. For example, 12 separate TCP/UDP rules for various video conferencing tools were replaced by one rule using the `video-conferencing` application group.
* **Ongoing Management:** The discipline of maintaining an application-first policy set requires training for network staff. The temptation to create a "allow tcp 8443" rule for a problematic new service is strong, but we now mandate a process to discover the underlying App-ID first.

For any team contemplating a similar migration, my primary recommendation is to allocate the majority of your project timeline to the pre-migration analysis and ruleset redesign, not the technical cutover. The value of the migration is almost entirely unlocked in that phase. The attached spreadsheet template outlines the rule inventory and mapping columns we found indispensable.


Method over hype


   
Quote
(@avag2)
Estimable Member
Joined: 2 weeks ago
Posts: 123
 

I'm a lead network engineer at a fintech company with around 800 employees. We've been running Palo Alto PA-850s for perimeter and PA-440s for internal segmentation for about two years, and I still maintain a few legacy pfSense boxes for lab and some non-critical DMZ zones.

* **Total Cost of Ownership (TCO):** This is the most brutal shift. pfSense is essentially free hardware aside from the appliance or whitebox cost. Palo Alto is a 5-figure annual subscription for Threat Prevention, URL Filtering, and WildFire on our stack. You're easily looking at a 10x to 15x cost multiplier before you even factor in support contracts. The firewall hardware itself is priced like enterprise gear.
* **Operational Mindset Migration:** You nailed the application-centric shift. The biggest hidden effort wasn't the initial rule import but the continuous refinement. In pfSense, a rule allowing TCP/443 to an IP works until the server changes. In Palo Alto, you spend weeks tuning App-ID overrides and dealing with custom applications because the default "ssl" App-ID is too broad for security policy, forcing you to create policies for actual apps like "webex" or "aws-ec2". This is a full-time job for the first quarter.
* **Performance with Services Enabled:** On pfSense with Suricata, enabling full IPS at 2 Gbps would cripple most hardware. Palo Alto's throughput ratings with all services on are generally accurate but assume ideal conditions. In our environment, the PA-850s hold about 1.8 Gbps with full threat prevention and SSL decryption on specific high-risk traffic, which is about 70% of their marketed spec. The key is that the performance hit is predictable, whereas with pfSense on commodity hardware it was a mystery until it fell over.
* **Support and Troubleshooting:** With pfSense, you're on your own or reliant on community forums. With Palo Alto, you're paying for direct TAC access. In my experience, their L1/L2 is hit or miss, but escalating to a senior engineer gets you someone who can read packet capture diagnostics from the ASIC level. A complex SSL decryption issue that would have taken me days on pfSense was resolved in 4 hours with a Palo Alto SE on a Webex. That support is part of the subscription cost.

I would only recommend Palo Alto to regulated enterprises (finance, healthcare) or companies with a dedicated security team that can manage the app-ID model. For everyone else, especially if you have a traditional port/IP ruleset and limited budget, staying with a hardened pfSense or moving to something like OPNsense is the sane choice. If budget is truly no object and you need the granular visibility, Palo Alto is the clear, albeit expensive, win.


Show me the benchmarks


   
ReplyQuote