Course contents

Unit 6: Advanced securityLesson 6.16 (9 of 11 in this unit)11 of 25 in the Advanced Cisco SD-WAN course

Lab: PCI compliance with firewall, IPS and TLS proxy

Segment a card-payment network, then apply the firewall, IPS and TLS proxy to it, verify each control, and break and fix the policy.

Advanced · 25 min read

You'll learn to put a card-payment network in its own firewall zone, allow only the payment flow, enable IPS, decide where TLS decryption is and is not appropriate, and prove each control with a test.

Technical definition

Cardholder data environment (CDE) is the part of a network that stores, processes or transmits payment card data, together with the systems that connect to it. A card-payment security review starts by drawing a boundary around it, so that the review covers as little of the network as possible.

Scenario

BR-01 is a shop. Its card terminals sit in service VPN 40 and send card payments over HTTPS to a payment gateway in the data centre, reached through the SD-WAN overlay. The same branch has corporate users in VPN 10 and guest Wi-Fi in VPN 30. The goal is a set of technical controls that support a card-payment security review: isolate the cardholder data environment (CDE), allow only the payment flow, inspect that flow, and decrypt only where policy permits.

The standard behind such a review is assessed by a qualified assessor. This lab covers network-level controls only and does not claim, or give, compliance. It also does not quote requirement numbers: take those from the current standard and from the assessor.

Scenario
ScenarioItem; Value (example). SD-WAN Manager (vManage): 10.255.0.10 SD-WAN Controller (vSmart) CTRL-01: 10.255.0.11 SD-WAN Validator (vBond) VAL-01: 10.255.0.12 HUB-01 / HUB-02 (WAN Edge, cEdge): 10.255.1.1 (site 10) / 10.255.1.2 (site 20) BR-01 (MPLS and internet): 10.255.2.1, site 101 VPN 10 corporate, BR-01 LAN: 10.10.1.0/24 VPN 30 guest, BR-01: 10.30.1.0/24 VPN 40 point-of-sale terminals, BR-01: 10.40.1.0/24 Payment gateway, data centre: 10.20.40.0/24, HTTPS (TCP 443)ItemValue (example)SD-WAN Manager (vManage)10.255.0.10SD-WAN Controller (vSmart)CTRL-0110.255.0.11SD-WAN Validator (vBond)VAL-0110.255.0.12HUB-01 / HUB-02 (WAN Edge,cEdge)10.255.1.1 (site 10) / 10.255.1.2 (site 20)BR-01 (MPLS and internet)10.255.2.1, site 101VPN 10 corporate, BR-01 LAN10.10.1.0/24VPN 30 guest, BR-0110.30.1.0/24VPN 40 point-of-saleterminals, BR-0110.40.1.0/24Payment gateway, datacentre10.20.40.0/24, HTTPS (TCP 443)

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Each item on the left, with what it means on the right.

Site IDs, VPN numbers, colours and prefixes are examples for this lab. The firewall, IPS and TLS proxy features depend on the router model, the release and the licence, so check your release before relying on a setting.

Card payments on BR-01: isolate, allow one flow, inspect it
Card payments on BR-01: isolate, allow one flow, inspect itBR-01 is a shop. Its card terminals sit in service VPN 40 and send card payments over HTTPS to a payment gateway in the data centre through the SD-WAN overlay. VPN 40 is its own zone. Only the payment flow is allowed. IPS watches that flow, starting in detection mode. Decryption is applied only where policy permits. Logs are kept. Corporate VPN 10 and guest VPN 30 cannot reach the terminals.Card terminalsVPN 40BR-01zone VPN 40SD-WAN overlayPayment gatewaydata centreHTTPS payment flow only1 ZoneVPN 40 on its own2 IPSdetection first3 Decryptonly where policy permits4 Logskept and reviewedVPN 10 (corporate) and VPN 30 (guest) have no zone pair to VPN 40.

On small screens, swipe sideways or focus the diagram and use the arrow keys.

This shows network-level controls only. It does not claim or give compliance; take requirement numbers from the current standard and your assessor.

Task 1: zone VPN 40 and write the zone-pair rules

Put VPN 40 in a zone of its own, named for example CDE. Keep VPN 10 in a corporate zone and VPN 30 in a guest zone. Traffic inside a zone flows freely, and traffic between zones is denied unless a zone-pair rule allows it, so a zone with only one VPN in it is what makes the fence. Then write the rules.

  • CDE to the data-centre zone: allow TCP 443 from 10.40.1.0/24 to 10.20.40.0/24 only, action inspect.
  • CDE to everything else: no rule, so the default is deny.
  • Corporate to CDE and guest to CDE: no rule in either direction.
  • Check which other ports the terminals really use (DNS to an internal resolver, time, software updates) and add a separate narrow rule for each that is needed, rather than widening the first one.
Show the answer for task 1
Task 1: zone VPN 40 and write the zone-pair rules
Task 1: zone VPN 40 and write the zone-pair rulesZone pair (source to destination); Match; Action. CDE to data centre: TCP 443, 10.40.1.0/24 to 10.20.40.0/24 inspect CDE to data centre: anything else drop (the pair default, or an explicit last rule so it is logged) Corporate to CDE: no pair defined denied by default Guest to CDE: no pair defined denied by default CDE to guest, CDE to corporate: no pair defined denied by defaultZone pair (source todestination)MatchActionCDE to data centreTCP 443, 10.40.1.0/24 to10.20.40.0/24inspectCDE to data centreanything elsedrop (the pair default, or anexplicit last rule so it is logged)Corporate to CDEno pair defineddenied by defaultGuest to CDEno pair defineddenied by defaultCDE to guest, CDE tocorporateno pair defineddenied by default

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Read each row across: the left box names the item, the others describe it.

Use inspect, not pass, for the allowed flow. Inspect is stateful: the reply is allowed automatically because the router remembers the session. Pass is one-way, and the reply needs a second rule in the other direction (fault 1 below). Where the Manager's guided security workflow offers a scenario for compliance or segmentation, it can build the zones and pairs for you. Scenario names vary by release.

! Structure only. Keywords differ by release; build this in SD-WAN Manager. zone CDE -> VPN 40 zone CORP -> VPN 10 zone GUEST -> VPN 30 zone DC -> VPN 10 over the overlay to the data centre (check how your design maps this) zone-pair CDE -> DC rule 10 match tcp 443 src 10.40.1.0/24 dst 10.20.40.0/24 action inspect default action drop (log)

Outline of the policy in words, not exact CLI. Which zone covers the overlay path to the data centre depends on the design: if the payment gateway is in the same service VPN as corporate traffic, the data-centre side can be the corporate zone. Check your release.

Task 2: IPS on the payment flow, detection first

Enable IPS on the CDE to data-centre flow. Start in detection mode, so a matching signature raises an alert and nothing is dropped. Look at the alerts for the length of a normal trading cycle, then decide which signatures stay, which are noisy, and only then switch to prevention.

Show the answer for task 2
  1. Attach the IPS policy to the firewall rule or zone pair that covers the payment flow, with a signature set suited to the traffic (check what your release offers).
  2. Set the mode to detection. Confirm the IPS engine is running on BR-01 and that signature updates work.
  3. Run a normal trading period. Collect the alerts and sort them: real findings, false positives, noise.
  4. Tune: remove or suppress only signatures you can justify, and write the reason down.
  5. Switch to prevention in a change window with a rollback ready. A false positive in prevention mode stops a payment, so the first day needs watching.

IPS on encrypted traffic sees the outside of the session only (addresses, ports, handshake). Without decryption it can match few payload signatures. That is a real limit, and it is the reason task 3 exists.

Task 3: where to decrypt, and where not

Decide for each flow whether the TLS proxy decrypts it. The proxy decrypts with the organisation's own CA certificate that clients must trust, and it has a bypass list for destinations that must not be decrypted. Write down the choice for the payment gateway, and for any general web browsing the terminals do.

Show the answer for task 3

Payment gateway: bypass, do not decrypt. The reasons:

  • Card data is meant to stay protected by TLS from the terminal to the gateway. Decrypting at BR-01 puts the clear text inside the router for a moment, which brings that router and its keys into the review.
  • Payment terminals and gateways often pin certificates or use mutual TLS. A proxy presenting its own certificate breaks the connection (fault 2 below).
  • The flow is narrow and known. Segmentation, a one-rule allow, and monitoring give most of the control with less risk.

Terminals' general web traffic, if there is any: decrypt. Terminals should need little beyond the gateway, so the better answer is often to block general web access from VPN 40 altogether. If a terminal does need the internet (for updates, for example), allow only named destinations. Where a managed terminal must browse, decryption with the proxy is acceptable, with banking, health and other sensitive categories in the bypass list, and the CA certificate installed on the terminal.

This is a design opinion, not a Cisco requirement. Some organisations do decrypt payment traffic at a controlled inspection point, and their assessor accepts it. The point is to decide deliberately and write the reason down.

Task 4: logging and retention

A control with no evidence is hard to defend. Decide what is logged and for how long, before the review asks.

Show the answer for task 4
  • What to log: firewall drops and allows for the CDE zone pairs, IPS alerts and drops, policy changes with the user who made them, and login events on BR-01 and the Manager.
  • Where: send logs to a collector off the router. Local buffers are small and are lost on a reload. Protect the collector from changes by the people whose actions it records.
  • Time: use NTP on every device, so entries from the router, the Manager and the collector line up.
  • Retention: set by the standard you are assessed against and by company policy. Ask the assessor for the period, and do not copy a number from this page.
  • Review: someone must read the alerts. A log nobody looks at proves little.

Task 5: verify the controls

Run these on BR-01 after the policy is pushed. Each output below is an example written for the lesson; your commands and columns depend on the release.

Example output written for this lesson, simplified; real output has more fields and a different layout
BR-01#show sdwan policy from-vsmart zone-based-policy
from-vsmart zone-based-policy FW-CDE
 zone CDE    vpn-list 40
 zone CORP   vpn-list 10
 zone GUEST  vpn-list 30
 zone-pair CDE -> CORP
  sequence 10  match tcp 443  src 10.40.1.0/24  dst 10.20.40.0/24  action inspect
  default-action drop
 (no pair: GUEST -> CDE, CORP -> CDE)
Confirm that the policy came from the Controller, that VPN 40 is in the zone CDE alone, and that no pair exists towards CDE. In this example the data-centre side is covered by the corporate zone, as the outline in task 1 noted.
Example output written for this lesson, simplified; real output has more fields and a different layout
BR-01#show sdwan zbfw zonepair-statistics
zone-pair CDE -> CORP
  src-zone CDE   dst-zone CORP
  policy FW-CDE
  seq 10   inspect   packets 18422    bytes 9340112
  default  drop      packets 12       bytes 1020

zone-pair GUEST -> CDE   (not configured)
Sequence 10 is counting the payment flow. The default drop counter is low but not zero: something in VPN 40 tried a flow the rule did not allow. Find out what it was before closing the lab, because it is either a missing rule or a terminal that is doing something it should not.

Now test a blocked attempt. From a guest laptop in 10.30.1.0/24, try to reach a terminal, for example ping 10.40.1.20 or a connection to its web port. The attempt must fail, and the firewall counter or log should record the drop.

Example output written for this lesson, simplified; real output has more fields and a different layout
BR-01#show sdwan zbfw drop-statistics
Drop reason                                   Packets
 No zone-pair found (GUEST -> CDE)             7
 Policy default action drop (CDE -> CORP)      12
Seven packets from the guest test were dropped because no zone pair exists from GUEST to CDE. This is the evidence to keep for the "no path from guest into the CDE" claim. Save the test command, the time and this counter together.
Example output written for this lesson, simplified; real output has more fields and a different layout
BR-01#show sdwan utd engine status
Engine version:    example
IPS:               enabled, mode detection
Signature set:     balanced (example name)
Signature version: example-2026.10
Engine state:      running
Alerts last hour:  3
Check three things: the engine is running, the mode is the one you intended (detection at first), and the signature version is current. The command name and fields differ between releases (some use show utd engine standard status). Check your release.

On the Manager, open the security monitoring pages and look at the same events for BR-01: firewall sessions and drops for the zone pairs, and IPS alerts with signature names. The Manager's view and the router's counters should agree.

Break and fix

Fault 1: terminals cannot reach the gateway

After a change, card payments fail from all terminals. Pings to the Manager and the hubs still work. The terminal-side firewall counter for the CDE pair shows packets passing, but the replies do not arrive.

Show the diagnosis and fix

The zone-pair rule uses pass, not inspect. Pass is one-way: the outbound packets are allowed, and the replies come back from the data-centre zone to CDE, where no rule exists, so they are dropped. Diagnose by looking at the pair's counters in both directions and at the drop statistics, which show a drop for the reverse direction. Fix: change the action to inspect, which tracks the session and allows the reply. Do not fix it by adding a broad reverse rule, since that would allow new connections from the data centre into the CDE.

Fault 2: payments fail only after TLS decryption is switched on

A change turns on the TLS proxy for all traffic from VPN 40. Web browsing from the terminals works, but the payment application reports a certificate or connection error.

Show the diagnosis and fix

The payment application checks the gateway's certificate (pinning, or a client certificate for mutual TLS). The proxy answers with a certificate signed by the organisation's CA, which the application does not accept. Diagnose by checking the TLS proxy statistics or logs for that destination and by testing with the proxy bypassed for 10.20.40.0/24. Fix: add the payment gateway to the bypass list (by address or by server name) and leave it undecrypted, as decided in task 3.

Fault 3: a corporate PC can still reach VPN 40

An assessor's test from a corporate PC (10.10.1.50) reaches a terminal at 10.40.1.20, although no zone pair exists from corporate to CDE.

Show the diagnosis and fix

There are two usual causes. First, a route leak: a policy or a configured route-leak between VPN 10 and VPN 40 delivers the traffic, and if the two VPNs ended up in the same zone, the firewall allows it as traffic within a zone. Second, an allow rule that is too broad, for example a corporate to CDE pair with "any" as the match, added for a support task and not removed. Diagnose by checking the zone membership (is VPN 40 in a zone alone?), the list of zone pairs, and the OMP and service-side routes for 10.40.1.0/24 in VPN 10. Fix: remove the leak and the broad rule, keep VPN 40 alone in its zone, and if support really needs access, create a narrow rule (one source host, one port) with an approval and an end date.

What to record

  • The policy before and after the change, exported or captured, with the date.
  • Test evidence: each test command, its time, and the counters or logs that show the result (allowed payment flow, blocked guest and corporate attempts, IPS status).
  • The decision on TLS decryption for the payment gateway and the reason for it.
  • The IPS tuning notes: what was suppressed and why.
  • Change approval: who approved, who made the change, the window, and the rollback plan.
  • Logging: where logs go and the retention period agreed with the assessor.

Test yourself on the payment segment

Predict · scenario 1

The terminals can open payment sessions, but responses do not arrive. The CDE to data-centre rule uses pass. What is the best fix?

Predict · scenario 2

Why is IPS started in detection mode on the payment flow?

Predict · scenario 3

A payment app fails after the TLS proxy is enabled for VPN 40. Browsing still works. What is the most likely cause and fix?

Predict · scenario 4

A corporate PC reaches a terminal in VPN 40, and no corporate to CDE zone pair exists. What do you check first?

FAQ

Does passing this lab make the branch PCI compliant?
No. Compliance with a payment card standard is decided by a qualified assessor who looks at the whole environment: people, processes, systems and evidence. This lab shows network-level technical controls only, and a firewall policy alone cannot deliver compliance.
Why not decrypt the payment traffic to inspect it?
Card data is protected by TLS between the terminal and the payment gateway. Decrypting it at a branch router puts the clear text inside another device, which then becomes part of the review and needs its own protection. Many organisations choose not to decrypt payment flows and rely on segmentation, a narrow allow rule and monitoring instead.
Should IPS start in prevention mode?
Normally detection first. In detection mode a signature that matches only raises an alert, so you can see false positives on real payment traffic before any of it is dropped. Switch to prevention once the alerts are understood.