So sichern Sie eine Netscreen-Firewall: 8 Schritte
So sichern Sie eine Netscreen-Firewall: 8 Schritte
Anonim

Von joeFollow Mehr vom Autor:

Über: Ich bastle gerne an so ziemlich allem herum, manchmal klappt es am Ende. Viel Spaß beim Anschauen der Projekte, versuche etwas aufzureißen und lass mich wissen, wie es läuft. Prost, -Joe Mehr über Joe »

Dieses anweisbare zeigt ein Skript, das verwendet werden kann, um Backups einer Netscreen-Firewall mit ScreenOS zu automatisieren.

Schritt 1: Anforderungen

Dieses Skript ist in Expect geschrieben und geht davon aus, dass Sie SSH auf Ihrem Netscreen und einer Linux-Umgebung aktiviert haben. Wenn Sie noch nie auschecken müssen, hat Oreilly ein großartiges Buch "Exploring Expect"

Schritt 2: Variablen

Wir beginnen mit dem Festlegen einiger Variablen. Sie sollten die Port-/Benutzername-/Passwort-/Netscreen-/Prompt-Variablen so einstellen, dass sie Ihrer Umgebung entsprechen. #!/usr/bin/expect#Erwarte Skript zum Sichern der Konfiguration der Netscreen-Firewalls#Joe #Setze ein Varsset-Timeout 60set user "root"set password "password"set port "2022"set netscreen "foo.bar.com"set basedir "/mnt/netapp/backups/foo.bar.com"set log "[timestamp -format %Y-%m-%d]-config.txt"set mailto "[email protected]"set mailsubject "Error: netscreen Backup fehlgeschlagen [timestamp -format %Y-%m-%d] "set mailfail ""set prompt "foo->"

Schritt 3: Verbinden

Als nächstes werden wir im Skript versuchen zu verbinden.send_user "NetScren Backup Script\n"send_user "Connecting to $netscreen\n"spawn ssh $user@$netscreen -p$port Expect { "password:" { send "$password\ r" Expect { "$prompt" { send_user "Verbunden" } "Berechtigung verweigert" { send_user "Ungültiges Passwort, wird beendet" set mailfail "Ungültiges Passwort, wird beendet" close } timeout { send_user "Keine Eingabeaufforderung zurückgegeben" set mailfail "Keine Eingabeaufforderung zurückgegeben " close } } } "Keine Route zum Host" { send_user "Keine Verbindung zu $netscreen\n möglich" set mailfail "Keine Verbindung zu $netscreen\n" } "Name oder Dienst nicht bekannt" { send_user "Keine Verbindung zu $netscreen\n" set mailfail "Verbindung zu $netscreen nicht möglich\n" } timeout{ send_user "Zeitüberschreitung bei Verbindung zu $netscreen" set mailfail "Zeitüberschreitung bei Verbindung zu $netscreen" close } }if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}

Schritt 4: Paging deaktivieren

Sie müssen das Paging deaktivieren - oder die Aufforderung auf dem Netscreen. #Disable the "more" promptsendsend "set console page 0\r"expect { "$prompt" { send_user "\nPaging Disabled\n" } default { send "ScreenOS hat die Paging-Option nicht ausgenommen.\n" set mailfail "ScreenOS hat nicht außer Paging-Option." close } timeout { send_user "ScreenOS hat die Paging-Option nicht akzeptiert\n" set mailfail "ScreenOS hat die Paging-Option nicht akzeptiert." close }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}

Schritt 5: Konfiguration abrufen

Wir erhalten jetzt die config. send_user "Konfiguration wird heruntergeladen\n"log_file $basedir/$logsend "get config\r"expect { "$prompt" { log_file send_user "\nKonfiguration heruntergeladen\n" } timeout { send_user "\nFehler beim Download der Konfiguration." set mailfail "Fehler beim Konfigurationsdownload." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}

Schritt 6: Überprüfen Sie, ob die Konfiguration die richtige Größe hat

Wir werden überprüfen, ob die Konfiguration mindestens 1k beträgt. Netscreen-Konfiguration ist zu klein, bitte untersuchen\n" exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}

Schritt 7: Aufräumen

Lassen Sie uns eine kleine Bereinigung durchführen, um Konfigurationen zu entfernen, die älter als zwei Wochen sind. #Konfiguration entfernen, die älter als 2 Wochen istexec find $basedir -name '*config.txt*' -mtime +14

Schritt 8: Alle zusammen

Setzen Sie jetzt alles zusammen. Es ist als Textdatei angehängt. Es sendet E-Mails bei Fehlern. #!/usr/bin/expect#Erwarte Skript zum Backup der Konfiguration der Netscreen-Firewalls#Joe#Setze ein Varsset-Timeout 60set user "root"set password "password"set port "2022"set netscreen "foo.bar.com"set basedir "/mnt/netapp/backups/foo.bar.com"set log "[timestamp -format %Y-%m-%d]-config.txt"set mailto "[email protected]"set mailsubject "Error: netscreen Backup fehlgeschlagen [timestamp -format %Y-%m-%d] "set mailfail ""prompt setzen "foo-> "send_user "NetScren Backup Script\n"send_user "Verbindung mit $netscreen\n"spawn ssh $user@$ netscreen -p$port Expect { "password:" { send "$password\r" Expect { "$prompt" { send_user "Connected" } "Permission denied" { send_user "Ungültiges Passwort, wird beendet" set mailfail "Ungültiges Passwort, wird beendet " close } timeout { send_user "Keine Eingabeaufforderung zurückgegeben" set mailfail "Keine Eingabeaufforderung zurückgegeben" close } } } "Keine Route zum Host" { send_user "Verbindung zu $netscreen nicht möglich\n" set mailfail "Verbindung zu $netscreen nicht möglich\ n" } "Name oder Dienst nicht bekannt" { send_user "Verbindung zu $netscreen nicht möglich\n" s et mailfail "Verbindung zu $netscreen nicht möglich\n" } timeout{ send_user "Zeitüberschreitung bei Verbindung zu $netscreen" set mailfail "Zeitüberschreitung bei Verbindung zu $netscreen" close } }if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}#Jetzt, wo das vorbei ist, fahren Sie fort#Deaktivieren Sie die "more" Promptsend "set console page 0\r"expect { "$prompt" { send_user "\nPaging Disabled\ n" } default { send "ScreenOS hat die Paging-Option nicht ausgenommen.\n" set mailfail "ScreenOS hat die Paging-Option nicht ausgenommen." close } timeout { send_user "ScreenOS hat die Paging-Option nicht akzeptiert\n" set mailfail "ScreenOS hat die Paging-Option nicht akzeptiert." close }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}send_user "Konfiguration wird heruntergeladen\n"log_file $basedir/$logsend "get config\r "expect { "$prompt" { log_file send_user "\nKonfiguration heruntergeladen\n" } timeout { send_user "\nFehler beim Download der Konfiguration." set mailfail "Fehler beim Konfigurationsdownload." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}set filesize [Dateigröße $basedir/$log]if { $filesize <= 1024 } { send_user "Netscreen-Konfiguration ist zu klein, bitte untersuchen\n" set mailfail "Netscreen-Konfiguration ist zu klein, bitte untersuchen\n" exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}#Konfiguration entfernen älter als 2 Wochenexec find $basedir -name '*config.txt*' -mtime +14