Palo Alto Networks Cihazının XML API Aracılığı ile Uzaktan Otomatik Yedeklemesi Nasıl Yapılır?

Giriş
Bu dokümanda admin süper yönetici hesabı ile Palo Alto Networks güvenlik cihazının yedeklerinin otomatik olarak backup sunucusuna aktarılması anlatılmaktadır. (Bu doküman PAN OS 6.0.X üzerine yazılmıştır.)

Admin Hesabının Açılması:
Not: Yeni bir admin hesabının açılması zorunlu değildir. Mevcut admin kullanıcı hesabı ile de işlemlerinizi yapabilirsiniz. Ancak mevcut kullanıcıların Palo Alto Network cihazında write (yazma) yetkisine sahip olması ile olası API Key çalınması durumunda; saldırganların sistem ayarlarını değiştirmesini sağlayabilir. Oluşturacağınız hesabı read only yetki seviyesine sahip olacak şekilde yapılandırmanız tavsiye edilmektedir.
1. Palo Alto Networks cihazına web arayüzünden bağlanınız ve Device > Administratorbölümüne gidiniz.
2. Add diyerek yeni bir Administrator kullanıcı hesabı oluşturunuz.
3. Commit diyerek yapmiş olduğunuz değiliklikleri kaydediniz.

PAN_Add_Admin

API Key’in öğrenilmesi:

Güvenlik duvarı yapılandırmasından önce, API anahtarının ne olduğunu anlamaya ihtiyacımız vardır. Aşağıda bulunan URL adresini kendi sisteminize göre modifiye ederek, koyu renk ile belirtilmiş yerlere kendi değerlerinizi girerek, web browser’a yapıştırınız.
https://<IP ve ya Domain Adı>/esp/restapi.esp?type=keygen&user=<User Name>&password=<Password>

Açılan sayfada kullanıcı adı ve parolanızı girdikten sonra bu kullanıcı için oluşturulmuş API anahtarını öğrenebilirsiniz.
<key> </key> arasında kalan değerler sizin API anahtarınızdır.

PAN_APIBackup Görüntülenmesi:
API anahtarını öğrendikten sonra sunucu üzerinde istediğiniz zaman xml ayar dosyasını görüntüleyebiliriz. Aşağıda bulunan URL adresindeki koyu renkli değerleri değiştirdiğinizde web browser üzerinden kendi xml dosyanızı görebilirsiniz.
https://<IP ve ya Domain Adı>/esp/restapi.esp?type=config&action=show&key=<API Key> 
Not: tpye=config ve action=show öntanımlı parametreleri tüm ayarları görmenizi sağlar.

Otomatik Backup Alınması:
Kendi API anahtarınız ile xml ayar dosyanızı görüntüledikten sonra bunu otomatik hale getirip zamanlayabilirsiniz. Aşağıdaki örnekte windows ve linux’ta komut satırından yedek alma komutu yer almaktadır. SSL sertifikam geçersiz olduğundan SSL sertifika hatası almamak için komut satırına --no-check-certificate parametresini ekledim.

Windows:
Eğer Windows Görev Zamanlayıcı ile wget’i çalıştırırsanız, tüm süreç tamamen otomatik olarak yapılır:
wget --no-check-certificate "https://<IP ve ya Domain Adı>/esp/restapi.esp? type=config&action=show&key=<API Key>" --output-document=pan-cfg.xml

Linux:
Linux’ta bash ile bir script yazıp bunu cron ile otomatik hale getirebiliriz.
1. Bash yedekleme scripti oluşturunuz.
root@debian:~$ vi backup_pan.sh
2. Yedekleme komutunu giriniz.
#!/bin/bash
wget --no-check-certificate "https://<IP ve ya Domain Adı>/esp/restapi.esp? type=config&action=show&key=<API Key>" --output-document=pan-cfg_$(date +%d%B %Y).xml

3. Scripte çalıştırma yetkisi veriniz.
root@debian:~$ chmod 755 backup_pan.sh
4. Yazmış olduğunuz script’in düzgün çalıştığını doğrulayınız.
root@debian:~$ ./backup_pan.sh
--2014-10-16 17:38:28--  https://192.168.1.1/esp/restapi.esp?
type=config&action=show&key=<API Key>
Connecting to 192.168.1.1:443... connected.
WARNING: The certificate of `192.168.1.1' is not trusted.
WARNING: The certificate of `192.168.1.1' hasn't got a known issuer.
The certificate's owner does not match hostname `192.168.1.1'
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/xml]
Saving to: `pan-cfg_16October2014.xml'
[ <=>
] 31,680      --.-K/s   in 0.01s
2014-10-16 17:38:28 (2.78 MB/s) - `pan-cfg_16October2014.xml' saved [31680]

5. Scripti cron ile otomatik çalışacak şekilde ayarlayınız. Aşağıdaki örnekte her gün saat 23.00 da otomatik yedek alınmasını istedim. Daha farklı zamanlarda yedekleme yapmak için cron komutlarını göz atınız.
Cron’u editleyiniz.
root@debian:~$ crontab -e
Açılan cron penceresine komutunuzu giriniz.
0 23 * * * /root/backup_pan.sh
Girmiş olduğumuz cron’un kaydının düzgün oluduğunu kontrol etmek için crontab -l demeniz yeterlidir. root@debian:~$ crontab -l
Otomatik yedekleme işlemi tamamlanmıştır.