Running Palo Alto Firewalls on Proxmox

Running Palo Alto Firewalls on Proxmox
In: Palo Alto

If you follow me or my blog, you may know that I moved my homelab to Proxmox. Even though I already have a physical Palo Alto firewall, I also needed to set up a Palo Alto VM. After some reading and research, and with the help of a great guide I found, I managed to get Palo Alto running on Proxmox. I thought it would be useful to write a post about it for anyone else trying to do the same.

At a high level, you need to download the Palo Alto QCOW image. I’m using PAN-OS 11.2.5 and downloaded the image called PA-VM-KVM-11.2.5.qcow2. You will also need multiple network interfaces on Proxmox. With Palo Alto, you need at least two to begin with, one for management and one for data.

When I say Proxmox interfaces or NICs, I mean the virtual network adapters that you can assign to your VM. These map to your physical or virtual bridges on the Proxmox host, and they let you connect the firewall VM to different parts of your network.

I have two linux bridges

The first step is to copy the Palo Alto QCOW image over to your Proxmox server. You can do this with SCP or any other method you prefer for transferring files to the host. Once the file is on Proxmox, you can move on to creating the VM itself.

I created the VM using the Proxmox GUI, and the screenshots below show the options I selected. Under General, I gave the VM a name and ID.

general-tab

For the OS tab, "Do not use any media" since we are not booting from an ISO.

os tab

In the System tab, I changed the machine type to q35, BIOS to SeaBIOS, and kept the Qemu Agent enabled.

system tab

The key step when creating the VM is that you should not add a disk at this stage. The reason is that we are going to import the QCOW image as the disk for this VM, and if you add a disk during creation, Proxmox will create a placeholder one that you do not need.

disks tab

On the CPU tab, I assigned 4 cores with the type set to host.

cpu tab

For Network, I added one NIC to start with, choosing VirtIO as the model.

network tab

After the VM is created, go back and add the second NIC or more of them as required. Once the VM is set up, the next step is to import the QCOW image as the VM’s disk.

qm importdisk 113 PA-VM-KVM-11.2.5.qcow2 crucial-1TB --format qcow2

Here, 113 is the VM ID, PA-VM-KVM-11.2.5.qcow2 is the QCOW image we copied earlier, and crucial-1TB is the Proxmox storage where I want the disk to live. The --format qcow2 ensures the disk is stored in the same QCOW2 format. This command essentially takes the raw QCOW image and attaches it to the VM’s storage pool in Proxmox.

After importing the disk, you need to attach it to the VM using the following command.

qm set 113 --virtio0 crucial-1TB:113/vm-113-disk-0.qcow2,discard=on,cache=writeback

This command tells Proxmox to use the imported QCOW file as a VirtIO disk for VM ID 113. With these, the VM now has the Palo Alto disk properly attached and ready to boot.

palo on proxmox summary

If you have DHCP running on the network where the management interface is connected, the firewall will automatically get an IP address, and you can also see it from the Proxmox console. If DHCP is not available, you need to log in to the Palo Alto VM through the CLI using the default credentials (admin/admin) and manually assign a management interface IP. You will also be prompted to change the default admin password during the first login.

set deviceconfig system type static

set deviceconfig system ip-address <Firewall-IP> netmask <netmask> 
default-gateway <gateway-IP> dns-setting servers primary <DNS-IP>

commit
Written by
Suresh Vina
Tech enthusiast sharing Networking, Cloud & Automation insights. Join me in a welcoming space to learn & grow with simplicity and practicality.
Comments
More from Packetswitch
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Packetswitch.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.