Sauvegarder firewall Netasq / Stormshield avec Expect
J’ai trouvé sur un forum un script pour la sauvegarde d’un fw Netasq.
je l’ai adapté et modifié pour mes besoins et testé, ca fonctionne a merveille.
Ca me recupere toute la conf.
J’ai testé sur un Stormshield ca fonctionne aussi, il y a juste la partie ftp qui ne devais pas etre activé mais les commandes nsrpc et config sont OK.
/!\ Pré-requis
Avoir un configuré prealablement un serveur FTP pour l’envoi des backups journalier.
Faire un cron journalier pour automatiser le process
Creation du script, contenu et droit
# vim /usr/local/sbin/save_fw
#!/usr/bin/expect # Declaration des variables set ip [lindex $argv 0] set pw [lindex $argv 1] set date [lindex $argv 2] # Connexion en ssh spawn ssh -p 22 admin@$ip expect "?" {send "yes\r"} expect "Password:" {send "$pw\r"} expect ">" {send "rm /tmp/*.na\r"} # Backup de la configuration en local expect ">" {send "nsrpc admin:'$pw'@127.0.0.1\r"} expect ">" {send "config backup list=all > /tmp/backup_$date.na\r"} expect ">" {send "quit\r"} # Connexion FTP & envoi du backup expect ">" {send "ftp adresse_du_serveur_ftp\r"} expect "):" {send "utilisateur_ftp\r"} expect "Password:" {send "mdp_ftp\r"} expect "ftp>" {send "put /tmp/*.na\n"} expect "ftp>" {send "quit\r"} expect ">" {send "exit\r"} expect eof
Mettre les droits sur le script
# chmod +x save_fw
Pour l’execution du script, appeler la commande et les 3 arguments.
# save_fw ip_du_boitier ‘mot_de_passe‘ $(date +%Y-%m-%d)
FAQ
J’ai utilisé Pure-Ftpd serveur, simple a configurer.
Puis crée un utilisateur dedié pour le ftp.
Egalement crée un reperoire dedié a la sauvegarde, seul petit probleme c’est qu’il m’a fallut seter les droits “autres” sinon j’avais un permission denied.
J’ai donc fait un chmod 777 sur le repertoire de recuperation des sauvegardes sur ma machine, c’est moche mais j’ai pas trouvé d’autres solutions.