Сучасна думаюча людина періодично повинна собі ставити такі питання, як “хто я?”, “навіщо я тут?” і “чи давно я робив бекапи?”. Та на останнє питання відповіді може і не бути, доки не отримаєш копняка від керівництва коли справи пішли трішечки по іншому ніж заплановано. Особливо це стосується мережевого заліза. Всі адміни чомусь вважають, що сервер згоріти може, 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
Все. Наш бекап Шрьодінгера виміряно та детерміновано. Можна спати спокійно.