1. What is it Link to heading

4 steps to implement decryption on a network

  1. Work with stakeholder to develop a decryption deployment strategy
  2. Develop a PKI rollout plan
  3. Size the decryption firewall deployment
  4. Plan a staged, prioritized deployment

This Lab is about the 2nd step, develop a PKI rollout plan.

Tip
Best practice if you have an Existing PKI is to generate a subordinate CA from enterprise CA that will be used to sign certificate for decryption.

In this video, I will show you how to deploy Active Directory with the Certificate Authority service.
I will also show your how to join a computer to this Activie Directory domain.
Then, how to generate a CSR on the Palo and sign a certificate with it from the AD.
Finally, I will show you how to configure decryption with this new subordinate CA

2. Why do this Link to heading

Devices joined to the domain already trust the Enterprise Root CA.
This means that they will already trust the certificate that is sign by the Sub-CA when palo is doing decryption. So you dont need to push a new certificate to the device to make decryption works.

This is what most enterprise do for decryption.

3. Diagram Link to heading

This is the same Lab as created in the other video previously.

diagram

The default route for W10 and AD is the Trust NIC of the Palo Alto in Azure.
To follow me with this lab, you can go to my other post that show how to deploy that lab in Azure with Terraform: Lab Deployment Post

4. Lab Link to heading

4.1 Configuration AD Link to heading

4.1.1 Add a static IP Link to heading

When installing the DNS server role, recommendation is to set up a static IP on the Windows server.
I will also configure the first DNS server to be itself(recursive) and second one to be Azure
staticIPAD

4.1.2 Add role and feature Domain and DNS Link to heading

Manage - Add Roles and Features
rolesFeaturesAD

Select - Role-based
rolesFeaturesAD2

Select - Windows server
rolesFeaturesAD3

  • Select 2 server roles:
    • Active Directory Domain Services
    • DNS Server

rolesFeaturesAD4

Next, Next … until Install


Once the installation is done, you will have a notification to do a Post-Deployment Configuration
Promote this server to a domain controller
rolesFeaturesAD5

Configure a new forest
I will create an internal domain: internal.jpitc.ca
It can be anything for your lab.
rolesFeaturesAD6

Note
jpitc.ca is my public DNS domain

There is no need to create a DNS delegation.
The Netbios by default will be INTERNAL in my case, you could change it.
after the Prerequesites checks, server might reboot.


Validate that the DNS zones was created
rolesFeaturesAD7

4.1.3 Add role Certificates Services Link to heading

rolesFeaturesAD8

  • Select Features:
    • Certification Authority
    • Certification Authority Web Enrollment (This will create a web portal to sign certificate)

rolesFeaturesAD9
Next, Next … until Install


Once the installation is done, you will have a notification to do a Post-Deployment Configuration
Configure Active Directory Certificate Services

rolesFeaturesAD10

  • Select the role to configure:
    • Certification Authority
    • Certification Authority Web Enrollment

rolesFeaturesAD11

Setup Type: Enterpise CA
rolesFeaturesAD12

Type of CA: Root CA
rolesFeaturesAD13

next, until the CA Name
Here you leave it as default or choose a specific name for your ROOT CA
rolesFeaturesAD14

next until the end of the installation.

Note
Validate that the web enrollment server is working on the DC: 127.0.0.1/certsrv
rolesFeaturesAD15

4.2 Configuration w10 machine Link to heading

Change the IP to a static IP
The first DNS server will be the Active Directory
Second DNS server will be Azure

w101

4.2.1 Join to domain Link to heading

Go into About menu
Click on: Rename this PC (Advanced)
w102

Click on Change this domain
w103

add the domain that was created on the AD
w104

restart the machine if successful
Validate by going into CMD and doing:
systeminfo
w105

Check the certificate store to make sure you receive the ROOT-CA from the AD
RUN:
certlm.msc w106

4.3 Configuration Palo Alto Link to heading

4.3.1 Create CSR Link to heading

Create a CSR on the Palo Alto certificate menu
name and CN dont matter

Warning
Make sure Certificate Authority is check!

palo1

4.3.2 Sign CSR with ROOT CA Link to heading

Export that CSR on the windows10 machine, the private key will stays on the Palo Alto.
Go to the AD web enrollment previously created.
Click on: Request a certificate
palo2

Click on: advanced certificate request
palo3

Open the CSR into notepad, copy the content and paste it into the box.

Warning
Make sure to select the Certificate Template: Subordinate Certification Authority
palo4

Finally, download the certificate in DER encoded format
palo5

4.3.3 Transform CA format Link to heading

The certificate downloaded as an extension .cer
We need to change this to be .pem so we can import it on the Palo Alto.

To do this we will use Powershell:

certutil -encode ./certnew.cer ./certnew.pem

palo6

Now, we will import this certificate in Palo Alto.

Warning
The name of the certificate must be the same as the name of the CSR
If successfull, the certificate will replace CSR entry.
palo7

4.3.4 Import ROOT CA Link to heading

We will also export, change the format and then import the ROOT CA of the AD on the Palo Alto.

Go back to the web enrollment page, Click on: Download a CA certificate
palo8 palo9

Transform the format with Powershell from .cer to .pem

certutil -encode ./rootca.cer ./rootca.pem

palo10

import it on the Palo Alto
palo11

Note
Palo should show the hierarchy of the certificate, the ROOT CA has signed the subordinate CA
palo12

4.3.5 Configure cert type Palo Link to heading

We will assign the subordinate CA to be a Forward Trust certificate.
This means, that Palo Alto will use this certificate to sign other certificate when doing decryption.
palo13

We also need to configure a Forward Untrust certificate.
This CA certificate will be used when Palo Alto does not trust a website certificate when doing decryption.

Warning
This CA cannot be generated from the ROOT CA, we want user to NOT trust this certificate to get a Warning notification in their browser when visiting an untrust website.
To do this we will simply create a random CA on the Palo Alto.
palo14

Change the format of the Untrust certificate to be: Forward Untrust Certificate
palo15

4.3.6 Create a decryption policy Link to heading

We will create a simple decryption policy to decrypt the traffic.
For this lab, the source IP will simply be the IP of the Windows10 machine.

Note
In enterprise scenario, you will mostly use AD group as source user to match traffic.
Note
I will explain Decryption profile parameter in another video
Note
For labbing purpose, we will active Succesful SSL handshake

Name: Decrypt Traffic
Source Zone: Trust
Source IP: 10.0.4.4(W10 machine)
Destination Zone: Untrust
Service: service-https(TCP443)
Action: Decrypt
Type: SSL Forward Proxy
Decryption Profile: None
Log: Successful/Unsuccesful SSL Handshake

palo16

5. Validation Link to heading

Open the browser on the Windows10 machine and visit a website.
Open the menu to show the certificate of the website.
It should show that it was issued by: palotrust.internal.jpitc.ca, the subordinate CA used for decryption.
palo17

You can also check the Traffic Log and expand a session to see if the decryption set is check.
palo18

Note
All SSL handshake for decryption will be in the Decryption Log