Inhaltsverzeichnis
SSH-Server mit Pubkey auth auf Cisco Switch konfigurieren
Version | Status | Datum | Author | URL |
---|---|---|---|---|
0.1 | Erster Entwurf | 21.Feb.2023 | Fabio Pagotto | |
0.2 | Ergänzungen | 22.Feb.2023 | Fabio Pagotto | |
1.0 | Review und Freigabe | 22.Feb.2023 | Fabio Pagotto |
1. Kurzfassung
Dieses Tutorial beschreibt, wie auf einem Cisco Switch ein SSH Server eingerichtet werden kann. Dazu beschreibt es auch, wie sie die Startup-Config transferieren.
2. SSH Server einrichten
2.1. Vorgaben
für dieses Tutorial benötigen sie Folgendes:
- Ein fertig aufgesetztes Linux-OS (kann x-beliebig sein, das in diesem Tutorial verwendete: Debian mit xfce Desktop)
- Den Cisco Switch
- Ein Ethernet-Label zu den beiden Switches
- Eine Verbindung ins Internet für das Linux-OS.
2.2. Switch mit Basis-Konfiguration ausstatten
Fangen Sie zuerst an mit der Basis-Konfiguration des Cisco-Switch an.
Starten Sie ihn auf und warten, bis er fertig aufgestartet ist. Dies sieht so aus:
Gehen Sie nun in den privilegierten exec Modus mit „enable“, folgen darauf in den Konfigurations-Modus mit „configure terminal“.
Bearbeiten Sie jetzt die Konfiguration von VLAN 1 mit „interface vlan 1“. Geben Sie VLAN 1 nun eine IP-Adresse mit dem command „ip address XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX“ (der vordere Abschnitt ist für die IP-Adresse und der Letzte für die Subnetzmaske). Geben Sie jetzt „no shutdown“ ein, um das automatische Abschalten zu verhindern.
Verlassen Sie danach den interface Konfigurationsmodus mit „exit“.
Konfigurieren Sie jetzt den Hostname mit „hostname HOSTNAME_HIER“.
Zum Abschluss konfigurieren sie nun mit „ip domain-name DOMAIN.NAME“ einen Domain-Name.
Verlassen Sie jetzt den Konfigurationsmodus mit „end“.
2.3 SSH-Key generieren auf Linux
Starten Sie jetzt ihr Linux-OS und verbinden sie es mit dem Switch.
Da der Switch kein DHCP hat, müssen sie die IP-Adresse und Gateway selber konfigurieren. Geben Sie dem Linux eine IP-Adresse, die im selben Subnetz ist wie die des Switch. Geben Sie auch dieselbe Subnetzmaske an, wie die des Switch. Sie müssen keinen Gateway bestimmen.
Pingen Sie jetzt den Switch an, um zu testen, ob die Verbindung funktioniert. Wenn dies der Fall ist, können sie jetzt den SSH-Key generieren.
Stellen Sie zuerst sicher, dass Sie mit einem User eingeloggt sind. Geben Sie im Terminal den command „ssh-keygen -b 2048 -t rsa“ ein. Drücken sie Enter, wenn es sie fragt, wo sie den Key speichern sollten. Es erscheint nun eine Meldung, ob sie ein Passwort setzen wollen.
⇒ Sie müssen kein Passwort setzen und es wird auch empfohlen dies NICHT zu tun. Ansonsten müssen sie bei jeder SSH Verbindung ihr Passwort eingeben!
Wenn der Key generiert wurde, wird es so aussehen:
Geben Sie jetzt den Befehl „fold -b -w 72 /home/ubuntu/.ssh/id_rsa.pub“ ein. Damit wird der Public Key in Zeilen mit max. 72 Zeichen unterteilt wie folgt:
Erstellen sie nun eine Textdatei und kopieren sie den Public Key hinein, und lassen sie „ssh-rsa“ und „USERNAME@HOST“ aus, verstellen sie aber NICHT die Zeilenumbruchstruktur.
Das wird danach folgend aussehen.
Speichern Sie die Datei ab. Der Public Key ist wichtig, weil sie ihn danach in den Cisco Switch eintragen müssen.
⇒ Wenn sie die eben erstellte Textdatei auf z. B. vom einer VM auf den Host-PC transferieren wollen, sie aber keine guten Transfer Möglichkeiten haben, sehen sie hier wie sie mit transfer.sh übers Internet die Datei transferieren können
2.4 SSH-Key in den Cisco Switch eintragen
Da sie jetzt den SSH-Key generiert haben, können sie diesen nun in den Switch eintragen. Sie müssen jedoch zuerst im Switch einen Key generieren.
Gehen Sie dafür zurück zum Cisco Switch und gehen in den globalen Konfigurationsmodus. Geben sie jetzt den Befehl „crypto key generate rsa modulus 2048“ ein. Es wird jetzt auf der Seite des Cisco-Switch ein Key generiert. Wenn dies beendet ist, wird folgende Meldung erscheinen:
Schalten Sie jetzt die SSH-Version-2 ein. Geben Sie dafür „ip ssh version 2“ ein. Konfigurieren sie auch die VTY lines sodass eine Authentifizierung nur über SSH und Lokale-Authentifizierung möglich ist. Geben Sie dafür die commands: „line vty 0 4“, „transport input ssh“,„login local“ in der folgenden Reihenfolge ein.
Geben Sie jetzt „exit“ ein, um in den globalen Konfigurationsmodus zu gelangen.
Schalten sie jetzt die SSH-Authentifizierung über Passwort und Tastatur aus, mit den commands „no ip ssh server authenticate user password“ und „no ip ssh server authenticate user keyboard“ aus. Wenn eine Warnung kommt, wie
Ignorieren Sie diese einfach.
Jetzt, wo sie dies getan haben, können sie nun den Public Key eintragen.
Geben Sie dafür als erstes „ip ssh pubkey-chain“ ein. Als Nächstes geben sie „username BENUTZERNAME“ ein. Dieser MUSS mit dem Benutzernamen übereinstimmen wo sie den SSH-Key generiert haben auf dem Linux!
Jetzt geben sie „key-string“ ein.
Ab hier müssen sie den Public Key eintragen.
Wenn sie Copy-paste in den Switch machen können, dann kopieren sie den Public Key Zeile-für-Zeile in den Switch Und Drücken nach jeder Zeile Enter. Ansonsten wird der Public Key nicht registriert.
Wenn Copy-Paste nicht möglich ist, müssen sie den Public Key von Hand eingeben. Drücken Sie auch hier nach jeder Zeile Enter.
Hinweis:mit Zeilen sind die Zeilen aus dem Textdokument gemeint, in die sie vorhin den Public Key reinkopiert hat.
Am Ende sollte das ganze Konstrukt so aussehen.
Geben Sie danach „exit“ ein. Wenn danach keine Fehlermeldung kommt, dann wurde der Public Key angenommen. Verlassen Sie nun den Konfigurationsmodus mit „end“.
Kehren Sie jetzt wieder in den Konfigurationsmodus zurück und geben sie den command „username IHRBENUTZERNAME privilege 15“ ein. Dies ermöglicht es über SSH in den privilegierten EXEC Modus zu kommen, was für viele Tasks nötig ist.
Verlassen Sie den Konfigurationsmodus mit „exit“ wieder.
Speichern Sie auch den Switch mit „copy running-config startup-config“ ansonsten ist alles was sie auf dem Switch gemacht haben futsch!
2.5 Mit SSH von Linux auf Cisco Switch verbinden
Jetzt, wo alles eingerichtet ist, können sie sich via SSH verbinden mit dem Cisco-Switch.
Geben Sie dafür im Terminal den command „ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 USERNAME@IP.DES.SWITCH“ ein.
Es erscheint folgende Meldung.
Diese erscheint immer, wenn man sich mit einem neuen Gerät verbindet. Geben Sie einfach „yes“ ein.
Wenn sie das Cisco Banner sehen wie unten:
Dann konnten sie nun erfolgreich einen SSH Server auf einem Cisco Switch einrichten und sich via Public Key damit verbinden!
3. Startup-Config über SCP herunterladen
Jetzt wo sie die SSH-Verbindung eingerichtet haben, können sie mit SCP die Startup-Config herunterladen.
Zuerst müssen sie noch scp auf dem Switch einschalten.
Gehen Sie dafür auf dem Switch in den Konfigurationsmodus und geben Sie „ip scp server enable“ ein.
Sie können nun wieder den Switch verlassen.
Geben Sie jetzt im Linux Terminal den command: „scp -oKexAlgorithms=+diffie-hellman-group1-sha1 IPDESSWITCH:startup-config ./startup-config“ ein.
Damit wird über SCP die Config des Switch heruntergeladen. Wenn alles richtig läuft, dann sollte die folgende Meldung erscheinen.
jetzt ist die startup-config heruntergeladen!
4. Quellenverzeichnis
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/
https://networklessons.com/
https://www.cisco.com/c/en/us/support/docs/
Egil Rüefli und Joshua Ruben Sieber