Skip to main content

A tool to generate device certificate reports from PAN-OS devices.

Project description

PAN-OS Device Certificate Report

Banner Image

Build Status PyPI version Python versions License

A CLI tool to generate device certificate reports from Palo Alto Networks PAN-OS devices.

This tool assists customers in navigating the information provided within this Knowledge Base article.

Table of Contents

Features

  • Multiple Data Sources: Collect device information from CSV files, Panorama appliances, or individual firewalls.
  • Comprehensive Reports: Generates detailed PDF reports including device certificate status, software versions, and upgrade requirements.
  • Easy to Use: Provides a straightforward command-line interface powered by Typer.
  • Data Validation: Utilizes Pydantic models for robust data handling.
  • Flexible Workflows: Supports multiple workflows for different use cases and environments.

Installation

Requires Python 3.7 or higher.

Install the package using pip:

$ pip install device-certificate-report
---> 100%
Successfully installed device-certificate-report

Usage

The device-certificate-report utility provides three subcommands:

  • csv: Generate a report from a CSV file containing device information.
  • panorama: Connect to a Panorama appliance to retrieve connected firewalls and generate a report.
  • firewall: Connect directly to a firewall appliance to generate a report.

CSV Subcommand

Process a CSV file to generate the report.

$ device-certificate-report csv --csv-file <path_to_csv_file> --output-file <output_pdf>
  • --csv-file and --output-file flags are optional*

Examples:

$ device-certificate-report csv                                                                                                                                                                                        ─╯
CSV file path: panorama.csv
Cleaned CSV file saved as: /Users/cdot/development/cdot65/device_certificate_report/cleaned.csv
Processing cleaned CSV file: /Users/cdot/development/cdot65/device_certificate_report/cleaned.csv
Report generated at device_certificate_report.pdf
$ device-certificate-report csv --csv-file panorama.csv --output-file device_certificate_report.pdf                                                                                                                    ─╯
Cleaned CSV file saved as: /Users/cdot/development/cdot65/device_certificate_report/cleaned.csv
Processing cleaned CSV file: /Users/cdot/development/cdot65/device_certificate_report/cleaned.csv
Report generated at device_certificate_report.pdf

Panorama Subcommand

Connect to a Panorama appliance and generate the report from connected firewalls.

$ device-certificate-report panorama --hostname <panorama_ip> --username <user> --password <password> --output-file <output_pdf>
  • --hostname, --username, --password, and --output-file flags are optional*

Examples:

$ device-certificate-report panorama                                                                                                                                                                                   ─╯
Panorama hostname or IP: panorama1.example.io
Panorama username: admin
Panorama password: 
Connecting to Panorama at panorama1.example.io
INFO:device_certificate_report.components.data_collection:Sending operational command to Panorama to retrieve all devices.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Panorama.
INFO:device_certificate_report.components.data_collection:Found 14 devices connected to Panorama.
Report generated at device_certificate_report.pdf
$ device-certificate-report panorama --hostname panorama.example.io --username admin --password paloalto123 --output-file panorama_report.pdf                                                                      ─╯
Connecting to Panorama at panorama1.example.io
INFO:device_certificate_report.components.data_collection:Sending operational command to Panorama to retrieve all devices.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Panorama.
INFO:device_certificate_report.components.data_collection:Found 14 devices connected to Panorama.
Report generated at panorama_report.pdf

Firewall Subcommand

Connect to a single Firewall appliance and generate the report.

$ device-certificate-report firewall --hostname <firewall_ip> --username <user> --password <password> --output-file <output_pdf>

Examples:

$ device-certificate-report firewall                                                                                                                                                                                   ─╯
Firewall hostname or IP: austin-fw1.example.io
Firewall username: admin
Firewall password: 
Connecting to Firewall at austin-fw1.example.io
INFO:device_certificate_report.components.data_collection:Sending operational command to Firewall to retrieve system info.
INFO:device_certificate_report.components.data_collection:Sending operational command to Firewall to retrieve device certificate status.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Firewall system info.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Firewall device certificate status.
Report generated at austin-fw1.example.io.pdf
$ device-certificate-report firewall --hostname austin-fw1.example.io --username admin --password paloalto123 --output-file firewall.pdf                                                                            ─╯
Connecting to Firewall at austin-fw1.example.io
INFO:device_certificate_report.components.data_collection:Sending operational command to Firewall to retrieve system info.
INFO:device_certificate_report.components.data_collection:Sending operational command to Firewall to retrieve device certificate status.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Firewall system info.
INFO:device_certificate_report.components.data_collection:Parsing XML response from Firewall device certificate status.
Report generated at firewall.pdf

Note: If --output-file is not specified, the report will be saved with a default name.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a Pull Request.

Please ensure that your code adheres to the existing coding standards and includes appropriate test coverage.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Support

For details on the support provided by Palo Alto Networks for this project, please consult the SUPPORT.md file in the repository.


More extensive documentation will be available through our GitHub Pages site.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

device_certificate_report-0.1.0.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

device_certificate_report-0.1.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file device_certificate_report-0.1.0.tar.gz.

File metadata

  • Download URL: device_certificate_report-0.1.0.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.7 Darwin/23.6.0

File hashes

Hashes for device_certificate_report-0.1.0.tar.gz
Algorithm Hash digest
SHA256 66f6205ca49deb205a8a65853e2d5c44bead766bae34e66b65eb9e6ec3856945
MD5 693f523b5d8b0afa978c52ccf367f6d9
BLAKE2b-256 b8d12e5e3e62643f82bae1a2d9e70960dee37a5ddb0d4a20dfdd3ca26bdee845

See more details on using hashes here.

File details

Details for the file device_certificate_report-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for device_certificate_report-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56d56819f920a4cfe8c8b9cb8d1ab87185393334df05f82f16858dcb39295871
MD5 d54fcab0d9b298e32408ef3ab639e72f
BLAKE2b-256 7d5f97236a37a811983a90a03a2b265f572018a19ac3544b8154223f934bf7b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page