Aruba Switch mit macOS 12 administrieren

Um von einem Rechner mit macOS 12 über die Konsole einen Aruba Switch zu konfigurieren oder die Firmware zu aktualisieren sind ein paar Kniffe notwendig. Wie zuvor schon für Geräte von Cisco, habe ich mir hier mal die wichtigsten aufgeschrieben. Vielleicht nützen diese ja noch mal jemand anderem, der sie hier findet.

Konfiguration des Aruba Switch über die Konsole

Man kann die meisten Geräte von Aruba über die Konsole konfigurieren. Diese funktioniert über ein mitgeliefertes USB-Kabel auch dann, wenn die Netzwerkkonfiguration nicht funktioniert oder noch nicht vorhanden ist.

Da man auf einem aktuellen Mac einen USB-C Anschluss hat und nur ein USB-A Kabel mitgeliefert wird, benötigt man in der Regel einen Adapter. Wenn man das USB-Kabel an diesem Adapter anschließt, taucht das Cisco Gerät als USB-Gerät im Ordner /dev auf. Mit dem folgenden Befehl kann man den Namen der USB-Gerätes identifizieren:

ls /dev/*usb*

Bei mir heißt das USB-Gerät z.B. “ /dev/tty.usbmodemE69491011611″. Um mit dem Terminal auf diese Konsole zu kommen, muss ich dann nur den folgenden Befehl eingeben:

screen /dev/tty.usbmodemE69491011611 -f 9600,cs8,-parenb,-cstopb,-hupcl

Kopieren von der running-config eines Aruba Switches auf einem Rechner mit macOS 12

Auf die meisten Geräten von Aruba wird das Protokoll sftp unterstützt. Um mit diesem das sftp Protokoll nutzen zu können, muss dieses zunächst ein ssh-key und der Filetransfer damit eingeschaltet werden. Dies geschieht mit den folgenden Befehlen:

crypto key generate ssh rsa
ip ssh filetransfer

Danach kann man die running-config mit dem folgenden Befehl im Terminal des Mac runterladen (wenn das Gerät die IP 192.168.45.61 hat und ein Benutzer admin auf diesem existiert):

scp admin@192.168.45.61:/cfg/running-config .

Kopieren einer Firmware von einem Rechner mit macOS 12 auf ein Aruba Switch

Um die Firmware über sftp zu installieren, muss wie oben beschriebe “ip ssh filetransfer” aktiviert sein. Sofern dies der Fall ist kann man die neuen Firmware mit dem Befehl scp vom Mac aus hochladen. Dazu sollte man zunächst das Secondary Image aktualisieren und booten (Aruba Switche haben in der Regel zwei Firmware Images). Falls das Image nicht funktionieren sollte, kann man dann immer noch das Primar Image booten und hat sich nicht ausgesperrt. Angenommen die Datei mit der Firmware heißt YA_16_11_0002.swi, der Switch hat die IP 192.168.45.61 und es gibt einen Benutzer admin auf diesem, geschieht das Update des Secondary Images mit dem folgenden Befehl:

scp YA_16_11_0002.swi admin@192.168.45.61:/os/secondary

Danach kann man mit dem Befehl “show flash” kontrollieren, ob dies geklappt hat:

Wenn das Update des Secondary Image geklappt hat, booten man dieses:

boot system flash secondary

Wenn sich das Secondary Image starten lässt, kann man dann auch noch das Primary Image aktualisieren. Dies geschieht analog zum vorherigen Update mit nachfolgendem Befehl:

scp YA_16_11_0002.swi admin@192.168.45.61:/os/primary

Auch den Erfolg dieses Kopiervorgangs kann man durch die erneute Eingabe von “show flash” kontrollieren. Danach booten man wieder das Primary Image und ist mit dem Update fertig:

boot system flash primary

ssh als SOCKS-Proxy verwenden

Eine geniale Funktion des ssh Protokolls ist der SOCKS-Proxy. Viele kennen und nutzen diese gar nicht. Dabei hilft einem diese enorm bei der Administration von Servern. Ich nutze diese Funktion z.B. sehr häufig, um mit einem Webbrowser aus einem andern Netzwerk zuzugreifen. Dies ist sehr praktisch, wenn man mit seinem Notebook gerade in einem andern IP-Netz hängt und deshalb mit dem Browser nicht durch eine Firewall kommt.

Wie geht sowas?

Um mit einem Webbrowser über den SOCKS-Proxy aus einem anderen Netzwerk zu kommen, sind die beiden folgenden Schritte notwendig.

1. Anmeldung per ssh an einem Server in dem gewünschten Netzwerk

Um aus einem andern Netzwerk zu kommen meldet man sich auf einem System das sich innerhalb des selben befindet mit ssh und dem Parameter -D <Port> an. Dieser Parameter aktiviert den SOCKS-Proxy auf dem angegebenen Port. Wenn man z.B. ein Open SSH, ein anderes System mit ssh-server und der IP-Adresse 10.10.10.10 hat und einen SOCKET auf Port 1080 verwenden möchte, gibt man in der Kommandozeile den folgenden Befehl ein:

ssh -D 1080 10.10.10.10

2. Einstellung des SOCKS-Proxy im Webbrowser

Danach stellt man in dem Webbrowser ein, dass man den SOCKS-Proxy auf dem entsprechenden Port verwenden möchte. Dazu sollte man natürlich einen Webbrowser verwenden, der dies auch kann. Bei dem Firefox Webbrowser geht dies z.B. Verbindungseinstellungen:

Im Anschluss surft man mit diesem Webbrowser von der IP-Adresse 10.10.10.10.

Installation von Ansible auf einem Windows System

Was ist Ansible? Dies war die Frage, die mir meine Windows-Administratoren stellten, als ich mit der Idee einer Automatisierung von Windows mit Ansible um die Ecke kam. Eine durchaus berechtigte Frage, zumal die Automatisierung und Provisionierung von Windows durch Scripts aktuell noch nicht sehr verbreitet ist. Vielmehr gibt es hier eher grafisch gesteuerte Software wie den System Center Configuration Manager oder Windows Server Update Services.

Ansible ist ein Open-Source Automatisierungs-Werkzeug zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Mit der Hilfe von Ansible kann man wiederkehrende Aufgaben bequem simultan auf mehreren System ausführen, ohne dass auf dem jeweiligen System eine zusätzliche Software verwendet wird. Dazu logt sich Ansible via SSH oder RPC auf dem zu administrierenden System ein und führt  vorher definierte Aufgaben aus. Diese Aufgaben werden in sog. Playbooks gespeichert. Playbooks werden im YAML-Format erstellt, erkennbar durch die Endung .yaml. Weitere Infos zur Syntax und Notation von YAML sind in der Ansible-Dokumentation zu finden.

Verwendung von Ansible unter Windows

Ansible basiert auf Python. Dabei erfolgt der eigentliche Zugriff auf das Windows Zielsystem dann ausschließlich über RPC. Ein Zugriff auf UNIX oder Linux erfolgt ausschließlich über SSH. Somit muss auf einem Windows, Linux oder Unix Zielsystem keinerlei zusätzliche Software installiert werden.

Für das Ausführen der Ansible-Skripte auf dem Quellsystem wird logischer Weise Python benötigt. Unter Linux wird ein Python eigentlich immer mitgeliefert. Deshalb kann dort Ansible einfach installiert und gestartet werden. Bei einem Windows System muss zunächst Python installiert werden, bevor man Ansible installiert. Ansonsten läßt sich Ansible nicht starten.

Da ich meinen Windows-Administratoren nicht zumuten wollte mit Linux zu arbeiten, habe ich mich dafür entschieden eine Administrations-Maschine mit Windows aufzusetzen, auf der man die Ansible Skripte direkt starten kann. Hier folgt die Anleitung für die Installation.

Anleitung für die Installation von Ansible unter Windows

Für die Installation der benötigten Software öffnet man unter Windows als Administrator die PowerShell. Hierfür drückt man einfach die Windowstaste, gibt „PowerShell“ ein und wählt nach einem Rechtsklick auf „Windows PowerShell“ den Menüpunkt „Als Adminsitrator ausführen“ aus. Anschließend gibt man in dem Fester mit der PowerShell den folgenden Befehl ein:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Nach der Eingabe möchte der Rechner neu starten. Nach einem Neustart kann man sich bei Windows 10 im Store ein Linux Distribution aussuchen und diese installieren. Dazu öffnen man den Windows Store (dazu wieder einfach die Windows Taste drücken und „Store“ eingeben). Anschließend kann man im Windows Store entweder nach Linux, oder direkt nach der gewünschten Distro suchen und diese installieren.

Bei Windows 2019 Server gibt es leider keinen Store. Hier muss die Linux Distribution von Hand bei Microsoft runtergeladen und installiert werden. Eine Anleitung für die Installationen und eine Liste der Linux Distributionen findet man bei Microsoft auf der Seite https://docs.microsoft.com/en-us/windows/wsl/install-manual. Um die Debian Distribution per PowerShell runterladen und entpacken zu lassen, kann man z.B. die folgenden drei Befehl in einer als “Administrator” gestarteten PowerShell eingeben:

Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile C:/Debian.appx -UseBasicParsing
Rename-Item C:/Debian.appx C:/Debian.zip
Expand-Archive C:/Debian.zip C:/Debian

Wenn die Befehle ausgeführt wurden, befinden sich die Installationsdaten von Debian Linux in dem Verzeichnis c:\Debian. Die eigentliche Installation startet man dann durch das ausführen der Datei Debian.exe in diesem Verzeichnis als Administrator. Es öffnet sich ein Fenster, in welchem die Installation durchläuft. Nach Abschluss der Installation wird man aufgefordert einen Benutzernamen für den Standardbenutzer und ein dazugehöriges Passwort einzugeben. Danach ist man in einer BASH Shell und kann das Debian Linux Benutzen.

Damit Linux von überall aufrufbar ist, sollte die Umgebungsvariable PATH noch entsprechend erweitert werden. Dies kann man mit den folgenden beiden PowerShell Befehlen machen:

$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + "C:\Debian;", "User")

Danach kann man sich in einer Kommandozeile die als Administrator gestaltet wurde jeder Zeit durch die Eingabe von “debian.exe” eine Linux Bash starten.

Als erstes sollte man das installierte Debian auf den aktuellen Stand bringen. Dazu gibt man den Befehl “sudo -s” ein und man wird um eine erneute eingäbe des Benutzerpasswortes gebeten. Nach der Eingabe erhält man eine root-shell. Wenn man in diese den folgenden eingibt, wird das Debian aktualisiert:

sudo apt update && sudo apt upgrade

Danach wird Python benötigt, da es die Grundlage von Ansible ist. Um Python zu installieren muss der folgende Befehle in eine root-Shell des Linux eigegeben werden:

apt-get -y install python-pip python-dev libffi-dev libssl-dev

Zum Schluss kommt dann die Installation von Ansible. Um immer die neuste Version von Ansible zu installieren, empfehle ich diese über das Python Paketverwaltungsprogramm (kurz Pip) zu machen. Dies geschieht durch die eingäbe des folgenden Befehlt in einer root-shell den Linux:

pip install ansible

Nachdem die Installation durchgelaufen ist, sollte Ansible funktionieren. Für alle weiteren Informationen empfiehlt sich ein Blick in die Ansible Dokumentation.

Das Tunneln von X11 über SSH bei Ubuntu 14.04 geht nicht

Zu meiner Überraschung funktionierte das Tunneln von X11 über ssh auf einem Ubuntu 14.04 Server nicht mehr. Schon beim Login über den Befehl

ssh -X <Hostname>

gibt es den Fehler “X11 forwarding request failed on channel 0”,
obwohl in der /etc/ssh/sshd_config der Eintrag “X11Forwarding yes” gesetzt ist.

Auch eine Installation der der XServer Utils

apt-get install x11-xserver-utils

brachte keine Lösung und nicht einmal xclock lief.

Nach ein bisschen Suchen stellt ich fest, dass das Paket xauth fehlt. Wenn man dieses nachinstalliert funktioniert auch das Tunneln von X11 über SSH wieder.

apt-get install xauth