Категорії:
fortigate
Автор:
Dasha
05 Лютого, 2021

Бекап Шрьодінгера: Стан будь-якого бекапа залишається невідомим, доки з нього не спробують відновитись

Сучасна думаюча людина періодично повинна собі ставити такі питання, як “хто я?”, “навіщо я тут?” і “чи давно я робив бекапи?”. Та на останнє питання відповіді може і не бути, доки не отримаєш копняка від керівництва коли справи пішли трішечки по іншому ніж заплановано. Особливо це стосується мережевого заліза. Всі адміни чомусь вважають, що сервер згоріти може, SSD з 1С пошифруватись, чи з нього може вийти чарівний дим (magic smoke), а мережеве обладнання, це як безсмертний поні – нічого з ним ніколи не станеться, можна спати спокійно. Але ті адміни, які вже роблять бекапи, можуть вас запевнять , що це треба робити daily basis.

Існує безлічь способів робити бекапи мережевого заліза. Через консоль (CLI), SSH, telnet, навіть, SNMP. Але ми розглянемо спосіб коли Fortigate копіює бекап за розкладом на сервер бекапів по FTP та робить це повністю в автоматичному режимі (не потребує написання скриптів на стороні сервера).

Для цього нам потрібен сервер FTP, який ми поставимо на сервер з Ubuntu.

Спочатку встановимо vsftpd-відомий FTP сервер:

apt install vsftpd

Запускаємо сервіс vsftpd

systemctl enable vsftpd sudo systemctl enable vsftpd

Додамо користувача для завантаження бекапів

sudo adduser backup

Створюємо каталог для бекапів

sudo mkdir /home/backup/ftp sudo chown nobody:nogroup /home/backup/ftp sudo chmod a-w /home/backup/ftp

Додаємо в файл конфугурації sudo nano /etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000 user_sub_token=$USER local_root=/home/$USER/ftp userlist_enable=YES userlist_file=/etc/vsftpduserlist.conf userlist_deny=NO

Додамо користувача backup в файл sudo nano /etc/vsftpduserlist.conf

Перезавантажимо vsftpd

sudo systemctl restart vsftpd

Налагодимо щоденні бекапи з Fortigate через CLI

config system auto-script edit "backup" set interval 86400 set repeat 0 set start auto set script " execute backup config ftp backup.conf 10.1.1.58 backup fortinet" next end 

Параметр set interval 86400 визначає інтрарвал бекапів (86400 секунд=24 години).

Заходимо на веб інтерфейс Fortigate. Переходимо до вкладки System>Advanced. Завантажуємо файл, що отримали на сервері Configuration Scripts.

       

Начебто все ок і можна тепер не тремтіти по ночах що шось покрошиться та спати спокійно. Але є одне але. Коли файл передається по FTP, він буде перезаписуватись кожного разу коли відбувається бекап (backup.txt). Тобто буде залишатись тільки один файл з останньою конфігурацією. Ми можемо перейменовувати файл з backup.conf в backup+date.conf.

Створюємо скрипт

#!/bin/bash  mv /root/backup.conf /root/backup`date "+%F-%H-%M-%S"`.conf 

Даємо права скрипту для запуску

chmod +x rnm.sh

Додаємо скрипт в /etc/crontab

00 3 * * * root /root/rnm.sh

Перезапустимо cron

service cron restart

Все. Наш бекап Шрьодінгера виміряно та детерміновано. Можна спати спокійно.