📘 Tuần 11 – Panorama, Backup và Tự động hóa
📘 Tuần 11 – Panorama, Backup và Tự động hóa
🗺️ Sơ đồ – Panorama Quản lý tập trung
📚 Lý thuyết cơ bản
🔰 Panorama là gì?
Panorama = Hệ thống quản lý tập trung nhiều Palo Alto Firewall.
💡 Giống như: Thay vì vào từng cửa hàng (firewall) để kiểm tra, bạn ngồi tại trụ sở (Panorama) và quản lý tất cả. - Push policy đến 100 firewall cùng lúc → chỉ cần cấu hình 1 lần. - Xem log tổng hợp từ tất cả firewall → 1 dashboard duy nhất. - Backup cấu hình tự động theo lịch.
🔰 Khái niệm quan trọng trong Panorama
| Khái niệm | Giải thích |
|---|---|
| Device Group | Nhóm firewall có chung policy (vd: tất cả chi nhánh) |
| Template | Cấu hình hệ thống chung (NTP, DNS, Syslog, Interface) |
| Template Stack | Nhiều Template xếp chồng, áp dụng theo thứ tự ưu tiên |
| Shared Policy | Policy áp dụng cho tất cả Device Group |
| Log Collector | Thu thập và lưu trữ log từ các firewall |
🔰 Backup trong PAN-OS
3 cấp độ backup:
- Running Config: Cấu hình đang chạy hiện tại.
- Candidate Config: Bản nháp chưa commit.
- Named Snapshots: Bản backup được đặt tên, lưu trên thiết bị.
⚠️ Quy tắc vàng: Luôn backup TRƯỚC khi thay đổi bất kỳ cấu hình nào trong production!
🛠️ Thực hành
Backup cấu hình thủ công
text# Qua GUI: Device → Operations → Export Named Configuration Snapshot
# Qua CLI:
admin@PA-LAB-01> save named-configuration to "backup-before-change-$(date)"
# Export ra file TFTP
admin@PA-LAB-01> tftp export configuration from running-config.xml to 192.168.1.100
# Xem các bản backup đang lưu trên thiết bị
admin@PA-LAB-01> show config saved
Restore cấu hình
text# Restore từ bản backup trên thiết bị
admin@PA-LAB-01> load named-configuration from "backup-before-change"
admin@PA-LAB-01> validate full
admin@PA-LAB-01# commit
# Restore từ TFTP
admin@PA-LAB-01> tftp import configuration from 192.168.1.100/running-config.xml
Script tự động backup (chạy từ Linux server)
bash#!/bin/bash
# Auto backup Palo Alto config via API
PA_IP="192.168.1.1"
API_KEY="LUTRJ571i12Z5..." # Lấy từ: https://PA_IP/api/?type=keygen&user=admin&password=PASSWORD
DATE=$(date +%Y%m%d_%H%M)
BACKUP_DIR="/backup/paloalto"
mkdir -p $BACKUP_DIR
# Download running config qua API
curl -k -X GET "https://$PA_IP/api/?type=export&category=configuration" -H "X-PAN-KEY: $API_KEY" -o "$BACKUP_DIR/PA-LAB-01_$DATE.xml"
echo "Backup saved: $BACKUP_DIR/PA-LAB-01_$DATE.xml"
# Giữ 30 bản backup gần nhất
ls -t $BACKUP_DIR/*.xml | tail -n +31 | xargs rm -f
Lấy API Key từ Palo Alto
text# Qua browser hoặc curl:
curl -k "https://192.168.1.1/api/?type=keygen&user=admin&password=MatKhau123!"
# Response:
# <response status='success'>
# <result>
# <key>LUTRJ571i12Z5...</key>
# </result>
# </response>
Automation với PAN-OS API (ví dụ)
python# Python script - Tạo address object qua API
import requests
import urllib3
urllib3.disable_warnings()
PA_IP = "192.168.1.1"
API_KEY = "LUTRJ571i12Z5..."
# Thêm address object mới
url = f"https://{PA_IP}/api/"
params = {
"type": "config",
"action": "set",
"key": API_KEY,
"xpath": "/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/address",
"element": "<entry name='New-Server'><ip-netmask>10.10.30.100/32</ip-netmask></entry>"
}
response = requests.get(url, params=params, verify=False)
print(response.text)
# Commit thay đổi
params_commit = {
"type": "commit",
"cmd": "<commit></commit>",
"key": API_KEY
}
response = requests.get(url, params=params_commit, verify=False)
print(response.text)
Cấu hình kết nối Panorama (từ Firewall)
textadmin@PA-LAB-01> configure
admin@PA-LAB-01# set deviceconfig system panorama-server 10.10.20.200
admin@PA-LAB-01# commit
🔒 Bảo mật cần nhớ
- ✅ Mã hóa file backup nếu lưu trên file server (chứa toàn bộ cấu hình nhạy cảm!).
- ✅ Lưu backup ở ít nhất 2 nơi khác nhau (local + remote server).
- ✅ Test restore định kỳ – backup không restore được = không có backup.
- ✅ API Key có quyền lớn – bảo vệ như mật khẩu admin.
📖 Case thực tế
Kỹ thuật viên cập nhật Security Policy sai, chặn luôn traffic của hệ thống ERP. Nhờ có backup: 1. Restore bản backup 30 phút trước → hệ thống hoạt động lại trong 5 phút. 2. Không có backup → phải ngồi rebuild toàn bộ policy từ đầu (mất vài tiếng). 👉 Backup + Restore test = Bảo hiểm cho hệ thống production.
📅 Tuần 11/12 – PAN-OS Administration Lab trên PnetLab