Zusatzprogramme Telnet/SSH

Docusnap bietet mit Zusatzprogramme an Befehle optional auf dem Zielsystem auszuführen und die Ergebnisse in Docusnap abzuspeichern.

Über die Auswahlliste SNMP wird mit der Schaltfläche Zusatzprogramme Telnet/SSH der Reiter zur Erstellung neuer Zusatzprogramme geöffnet. Mit der Schaltfläche Neu kann anschließend ein Zusatzprogramm angelegt werden. Der Name des Programms ist dabei frei wählbar. Eine Beschreibung muss nicht eingetragen werden.

Über das Feld Typ wird festgelegt, ob die Befehlssequenz per Telnet oder per SSH ausgeführt wird. Die Auswahl bestimmt, welche Befehle im Sequenz-Editor angeboten werden. Wird der Typ eines bereits befüllten Zusatzprogramms geändert, so wird die vorhandene Befehlssequenz nach einer Rückfrage verworfen, da die Befehle typspezifisch sind.

Für einen schnellen Einstieg wurden zwei Vorlagen erstellt. Dabei wird auf einem Switch (ohne Herstellerbezug) eine Konfigurationsabfrage erstellt. Das Beispiel ist für den Aufruf via Telnet und via SSH vorhanden. Die Vorlage kann über die Schaltfläche Kopieren dupliziert und wie gewünscht angepasst werden. Die Kopie erhält automatisch einen eindeutigen Namen, sodass die Vorlage selbst unverändert erhalten bleibt.

Docusnap Administration SNMP Sequenzen

Durch Klick auf die Schaltfläche Anpassen öffnet sich der Sequenz-Editor. Die Abfolge von Befehlen, die auf dem Zielsystem auszuführen sind um die benötigten Ausführungsergebnisse zu erhalten werden als Befehlssequenz bezeichnet. Hier werden wie in einer Stapelverarbeitung die erforderlichen Befehle erstellt und bearbeitet.

Docusnap Administration SNMP Sequenzen erstellen

Befehlssequenzen erstellen

Grundsätzlich werden für Telnet und SSH die gleichen Befehle verwendet. Der wesentliche Unterschied zwischen den beiden Protokollen ist die Authentifizierung. In der Telnet Version muss das Handling von Benutzername und Passwort in die Befehlssequenz eingetragen werden, bei SSH ist das nicht erforderlich.

Aktuell unterstützte Befehle

  • DelayWait: Erzeugt eine Pause um bei Bedarf dem Zielsystem für Verbindungsaufbau oder die Ausführung von asynchronen Befehlen etwas Zeit zu geben. Die Wartezeit in Millisekunden kann als Parameter übergeben werden.
  • ResponseStringWait: Wartet bis ein als Parameter definierter String in der Konsole angezeigt wird. In den Bespielen wird mit # (und einem folgenden Leerzeichen) auf den Konsolenprompt gewartet. Die Verwendung dieser Prüfung zwischen Befehlen erhöht die Stabilität der Abfrage.
  • ResponseRegexWait: Gleiche Funktion wie ResponseStringWait allerdings wird anstatt des Strings ein Regex-Ausdruck übergeben. Ein Beispiel für den Konsolenprompt in Regex - Schreibweise wäre .*#\s$
  • Command: Dieser Befehl wird verwendet um technische Details des Zielsystems abzufragen (z.B. show running-config). Er ist aber auch erforderlich um das Konsolenverhalten zu steuern. So wird Command ohne Parameter verwendet wenn die Konsole auf eine “any key” - Eingabe wartet. Es ist auch eine gute Idee mit dem Command “no page” die Seitenumschaltung der Konsole zu deaktivieren. Grundsätzlich empfiehlt sich die Befehlssequenz zuvor in der Konsole durchzuspielen um etwaige Probleme bereits im Voraus zu entdecken. Bei Telnet steht zusätzlich der Parameter LineBreak zur Verfügung, mit dem der an den Befehl angehängte Zeilenumbruch gesteuert werden kann. Bei SSH ist dieser Parameter nicht vorhanden, da der Zeilenumbruch dort automatisch ergänzt wird.
  • ResponseCapture: Dieser Befehl “startet für Docusnap die Aufnahme der Konsolenausgabe”. Alle zuvor ausgeführten Befehle sind im Docusnap-Output nicht vorhanden. Hierbei ist wichtig Befehle die auf den Capture folgen als Subsequenz anzulegen indem das Pluszeichen neben Befehl verwendet wird. Der Capture liefert nur Daten von Befehlen die innerhalb dieser Befehlsgruppierung stehen. Im Editor sind diese Befehle zusätzlich unterhalb des Captures eingerückt. Als Abschlussbefehl einer Caputuresequenz wird empfohlen auf den Konsolenprompt zu prüfen.

Aktuell unterstützte optionale Befehle innerhalb einer Capture Sequenz

Das aufgezeichnete Ergebnis kann optional, bevor zu Docusnap übertragen wird, noch bearbeitet werden um z.B. unerwünschte Formatierungen oder sicherheitsrelevante Informationen aus der Ausgabe zu entfernen. Dazu müssen die folgenden Befehle innerhalb der Capture-Befehlsgruppierung angelegt werden.

  • ResultCleanString: Der Befehl verfügt über zwei Parameter “Find” definiert den zu bearbeitenden String, “Replace” die anzuwendende Zeichenfolge. So wird z.B. aus dem String “Community Geheim#2021” der String “Community *********”
  • ResultCleanRegex: Funktioniert wie ResultCleanString und verwendet anstelle von Zeichenfolgen in den Parametern reguläre Ausdrücke. Das kann sehr praktisch sein wenn man z.B. möchte das stets die Zeichen nach “Passwort mit ***** ersetzt wird. Der Regex Ausdruck wäre hier Passwort\s.*

SSH-Befehlskanal verwenden (Beta)

Bei Zusatzprogrammen vom Typ SSH kann die Befehlssequenz über einen SSH-Befehlskanal ausgeführt werden. Die Option steht bei Zusatzprogrammen vom Typ Telnet nicht zur Verfügung.

Der Unterschied zeigt sich im Aufbau der Sequenz: Das Abwarten der Ausgaben des Zielsystems muss nicht mehr selbst nachgebildet werden. Eine Sequenz besteht deshalb nur noch aus den Befehlen, die tatsächlich etwas abfragen - Command und ResponseCapture - sowie optional ResultCleanString und ResultCleanRegex zur Nachbearbeitung. Die Befehle DelayWait, ResponseStringWait und ResponseRegexWait werden im Sequenz-Editor nicht mehr angeboten.

Auch die Seitenumschaltung der Konsole muss nicht mehr über einen eigenen Befehl abgeschaltet werden: Sie wird beim Verbindungsaufbau automatisch deaktiviert. Akzeptiert das Zielsystem keinen der dafür bekannten Befehle, wird die Ausgabe stattdessen seitenweise abgeholt.

Damit lassen sich Sequenzen deutlich kürzer halten. Eine vorhandene Sequenz kann übernommen werden: Wird sie bei aktiver Option im Sequenz-Editor geöffnet, so werden die Befehle DelayWait, ResponseStringWait und ResponseRegexWait daraus entfernt. Wirksam wird das erst, wenn der Editor mit Übernehmen geschlossen und das Zusatzprogramm anschließend gespeichert wird; mit Abbrechen bleibt die gespeicherte Sequenz unverändert.

Sequenztest konfigurieren und ausführen

Mit der eingebauten Funktion Sequenz testen kann innerhalb des Editors die erstellte Befehlssequenz auf dem Zielsystem getestet werden. Schlägt ein Befehl fehl erhält der Anwender eine Rückmeldung welcher Befehl in dieser Sequenz ein Problem verursacht hat. Eine Syntaxprüfung findet aber nicht statt.

Vor dem ersten Test muss über die Schaltfläche Sequenztest konfigurieren festgelegt werden, gegen welches System und mit welchen Anmeldeinformationen geprüft wird. Erst wenn eine Konfiguration vorliegt, wird die Schaltfläche Sequenz testen eingeblendet; die Schaltfläche zur Konfiguration heißt anschließend Konfiguration bearbeiten. Folgende Angaben sind erforderlich:

  • Firma und Domäne, in der sich das Zielsystem befindet
  • Discovery Service, über den der Test ausgeführt wird. Der Status der verfügbaren Discovery Services sowie deren Plugin-Version werden in der Liste angezeigt. Ein Discovery Service, der nicht verbunden ist, kann nicht verwendet werden.
  • SNMP-Gerät als Zielsystem. Zur Auswahl stehen die Systeme der gewählten Domäne, die bereits als SNMP-Gerät inventarisiert wurden, sowie inventarisierte Linux-Systeme.
  • Benutzer und Passwort für die Anmeldung am Zielsystem
  • Timeout in Sekunden

Mit Übernehmen und prüfen wird die Konfiguration gespeichert und der Test unmittelbar gestartet, mit Übernehmen wird sie nur gespeichert.

Das Prüfergebnis wird im Dialog Sequenz prüfen angezeigt. Ausgegeben wird ein Protokoll der einzelnen Sequenzschritte. Bei Verwendung des SSH-Befehlskanals enthält die Ausgabe zusätzlich Hinweise dazu, was die Ausführung vor und während der Sequenz getan hat, sowie die aufgezeichnete Ausgabe des Zielsystems. Über die Schaltfläche Konfiguration anpassen lässt sich direkt zur Testkonfiguration zurückwechseln. Ein laufender Test kann jederzeit abgebrochen werden - auch dann wird das bis zum Abbruch erreichte Protokoll angezeigt.