Zur Sicherung ihrer auf Cisco aufbauenden Netzwerke legen viele Administratoren zunächst fest, welcher Traffic für die Netzwerkgeräte zugelassen werden soll, und wie Routing-Protokoll-Updates und andere zwischen Routern ausgetauschte Identifikationsdaten beschränkt werden sollen. Mit Zugriffskontroll-Listen (Access Control Lists – ACLs) lassen sich diese Anforderungen im Allgemeinen problemlos erfüllen. Die Sicherheit der Netzwerkgeräte spielt in jeder Netzwerk-Umgebung eine wichtige Rolle, wobei Cisco für die Einrichtung der Sicherheitsoptionen eine Reihe von Verfahren anbietet.
In diesem Artikel stelle ich eine Basis-Konfiguration für Login-Sicherheit vor. Ich werde außerdem zeigen, wie man diese Basis-Konfiguration durch benutzergebundene Login-Optionen noch sicherer macht, und ich werde darstellen, wie Konfigurations-Vorgänge und Verbindungen zu Ihrem Router überwacht werden können. Wenn Sie diese Basis-Konfigurationen erst einmal verstanden haben, werden Sie in der Lage sein, sie mit Hilfe der erweiterten Features von Cisco auszubauen.
Basis-Konfiguration für Login-Sicherheit
Zu den grundlegenden Sicherheitsfunktionen von Cisco gehört die Verwendung lokaler Passwörter für den Zugriff auf Geräte sowie für deren Konfiguration. Es können unterschiedliche Passwörter für verschiedene Leitungen oder Zugriffspunkte angewandt werden. Typische Zugriffspunkte für ein Cisco-Gerät sind die Terminal-Leitungen (auch Virtual Terminal Lines oder VTYs genannt), der Konsolen-Port sowie der Hilfs-Port (AUX).
Darüber hinaus können für die verschiedenen Ports unterschiedliche Authentifizierungs-Verfahren eingerichtet werden. Im Folgenden ist ein Beispiel für eine sehr einfache Authentifizierungs-Konfiguration dargestellt.
IOS-Version |
Die nachfolgenden Beispiele gehen von einem an Zugangsklassen gebundenen Standard-Router von Cisco aus, ausgeführt mit IOS-Version 12.x. |
Router (config)# line con 0
Router (config-line)# password conpword1
Router (config-line)# login
Router (config-line)# exit
Router (config)# enable password 12345
Ich habe hier ein Passwort für den Konsolen-Port konfiguriert, außerdem mit ,enable password‘ ein Passwort zur Konfiguration des Routers. In der ersten Anweisung stelle ich den line config-Modus für den Konsolen-Port ein, erstelle das Passwort und schließe mit der Login-Anweisung ab. Dann erstelle ich mit ,enable password‘ ein Passwort für den autorisierten Zugang zur Router-Konfiguration. Dies ist ein geeigneter Ausgangspunkt für die Absicherung des Router-Zugangs über lokale Konsolen.
Passwort-Verschlüsselung
Beachten Sie, dass bei dieser Konfiguration die Passwörter im Klartext zu lesen sind, was natürlich keine optimale Sicherheit bietet. Allerdings können Sie auch diese Art von Passwörtern verschlüsseln, so dass sie nicht mehr für alle Personen mit Router-Zugang lesbar sind. Dazu muss der folgende Befehl ausgeführt werden:Router (config)# service password-encryption
Der Passwort-Verschlüsselungsdienst verschlüsselt sämtliche vorhandenen wie auch sämtliche zukünftig erstellten Passwörter. Ich kann die Nutzung dieser Funktion für Ihre Konfiguration aus Cisco-Netzwerkgeräten nur wärmstens empfehlen.
Passwort-Typen |
Sie haben die Wahl zwischen zwei Möglichkeiten zum Verschlüsseln von Passwörtern: standardmäßig mit ,enable password‘ oder mit ,enable secret‘. Dabei ist ,enable secret‘ wegen der stärkeren Verschlüsselung sicherer als ,enable password‘. |
Der ,enable secret‘-Befehl überschreibt dabei den ,enable password‘-Befehl. Das folgende Beispiel zeigt die Einrichtung mit ,enable secret‘:Router (config)# enable secret abc123
Wenn Sie sich nach Ausführen dieses Befehls die Router-Konfiguration anzeigen lassen, erkennen Sie, dass das Passwort automatisch verschlüsselt wird, unabhängig davon, ob der Verschlüsselungsdienst für die Passwörter aktiviert wurde.
Einstellen des Session Timeouts
Ein weiterer hinsichtlich des Zugangs festzulegender Punkt ist das Session Timeout. Als weitere Sicherheitsstufe können Sie festlegen, dass die Sitzungen nach einem bestimmten Zeitraum ohne erfolgte Eingaben abgebrochen werden. Dieses Tool erweist sich als äußerst sinnvoll, falls Sie ihr Terminal verlassen und dabei vergessen, geöffnete Konfigurations-Sitzungen zu schließen. Standardmäßig sind 10 Minuten als Zeitlimit festgelegt. Um das Session Timeout zu konfigurieren, geben Sie den folgenden Befehl ein:Router (config)# line console 0
Router (config-line)# exec-timeout 6 30
Auf diese Weise wird eine Konsolen-Sitzung nach 6 Minuten und 30 Sekunden geschlossen, falls in diesem Zeitraum keine Eingaben erfolgten.
Sicherung der Terminal-Leitungen
Über die Sicherung des Konsolen-Ports hinaus, werden Sie auch die für den Telnet-Zugang über das Netzwerk genutzten Terminal-Leitungen sichern wollen. Hier ein Beispiel für eine Telnet-Sicherung:Router (config)# line vty 0 4
Router (config-line)# password termpword1
Router (config-line)# login
Dieser Vorgang erinnert stark an die Konsolen-Konfiguration. Ein Unterschied ist jedoch, dass auf das VTY-Kennwort zwei Ziffern folgen, da mehr als eine Leitung für den Router-Zugang genutzt werden. Standardmäßig sind auf vielen Cisco-Routern fünf Leitungen eingestellt. In diesem Fall konfiguriere ich ein Passwort für alle Terminal-Leitungen (VTY). Ich kann das tatsächlich genutzte Terminal angeben oder die Ziffern für die möglichen VTY-Leitungen festlegen. Die am meisten verwendete Syntax, vty 0 4, umfasst alle fünf Leitungen für den Terminal-Zugang. Es gibt hierbei zahlreiche Möglichkeiten: Theoretisch könnten Sie unterschiedliche Passwörter für verschiedene VTY-Leitungen oder Bereiche festlegen. Falls erforderlich, könnten Sie die Anzahl der verfügbaren VTY-Leitungen erweitern, um mehr Benutzer zuzulassen. Doch diese Methode hat ihre Grenzen. Zunächst einmal ist es generell ratsam, den Mehrfachzugriff auf eines der üblichen Netzwerkgeräte irgendwie zu begrenzen. Daher bietet sich das Erhöhen der Anzahl an VTY-Eingabeleitungen in diesem Fall nicht an. Im Gegenteil, üblicherweise sehen gängige Sicherungspraktiken die Beschränkung des Zugangs zu den virtuellen Terminals vor, indem die verwendbaren Protokolle sowie die Adressen für den Zugriff auf einen Router begrenzt werden. Um den VTY-Zugang nur über das Telnet-Protokoll zuzulassen, können Sie den folgenden Befehl verwenden:Router (config) # line vty 0 4
Router (config-line) # transport input telnet
Ich habe hier sämtliche Terminal-Leitungen angegeben, die Telnet verwenden können. Für eine weitere Beschränkung des Router-Zugangs nach Zugriffsadressen kann eine Zugangsliste zusammen mit dem Befehl access-class im line config-Modus verwendet werden.
Dieser Vorgang stellt bereits eine recht wirksame Sicherung der Leitungen zu den virtuellen Terminals dar, welche im gesamten Netzwerk für den Router-Zugang verwendet werden können.
SSH statt Telnet |
Wenn Sie nicht Telnet für den Login auf Ihren Router verwenden möchten, können Sie sich auch für die Nutzung von SSH entscheiden. Zur Freigabe Ihres Routers für die Nutzung von SSH führen Sie die folgenden Befehle aus:Router (config) # line vty 0 3 |
Nun verfügen wir bereits über recht umfassende Kenntnisse der Grundlagen des Netzwerkgeräte-Logins. Gehen wir nun also einen Schritt weiter. Als nächste Form der Login-Sicherheit werden wir uns nun mit der benutzergebundenen Authentifizierung beschäftigen.
Benutzergebundenes Login
Ein auf benutzergebundenen Berechtigungsnachweisen basierender Login-Vorgang kann zur Sicherstellung der Berechtigung für Konfigurationsänderungen hilfreich sein. Dies gilt insbesondere für umfangreiche Netzwerk-Umgebungen, in denen viele Leute auf Router und Switches zugreifen. Wenn diese Art von Authentifizierung implementiert wurde, zeichnet der Router die zuletzt erfolgten Router-Zugriffe oder Konfigurationsänderungen mit Quelle und Zeitpunkt auf. Dem Netzwerk-Administrator bietet dies den Vorteil, dass Änderungen an der Router-Konfiguration in einer Logdatei aufgezeichnet werden. Hierbei können die Funktionen Authentication, Authorization and Accounting (AAA) zur Einrichtung der Authentifizierung lokaler Benutzernamen verwendet werden. Es folgt ein Beispiel für die zur Aktivierung eines Logins über lokale Benutzernamen erforderlichen Befehle:Router (config) # aaa new-model
Router (config) # aaa authentication login default local
Router (config) # line vty 0 3
Router (config-line) # login authentication default
Router (config-line) # exit
Router (config)# username rmcintire password rmcinpword1
Router (config)# username rhumphrey password rhpword1
Router (config)# username jberry password jbpword1
Obwohl eine umfassende Abhandlung der AAA-Konfiguration den Rahmen dieses Artikels sprengen würde, habe ich diese Option hier genannt, um die durch erweiterte Verfahren gegebenen Möglichkeiten zu illustrieren. In diesem Fall habe ich drei verschiedene Benutzernamen mit jeweils einem Passwort für den Login konfiguriert und dieses Login-Verfahren den VTY-Leitungen 0-3 zugewiesen. Auch in diesem Fall werden die Passwörter durch die Datei zur Router-Konfiguration verschlüsselt, sofern der Verschlüsselungsdienst aktiviert wurde.
Berechtigungszuweisungen
Eng verbunden mit dem Thema Zugang sind die Bereiche der Zugangsebenen oder Berechtigungszuweisungen. Es stellt sich die Frage, in welchem Umfang Sie einem Benutzer den Zugang gestatten wollen. Die Cisco-Implementierungen ermöglichen die Einrichtung verschiedener Zugangsebenen, der so genannten Privilege Levels. Diese reichen von 0 bis 15, wobei 15 für die höchste Zugangsebene steht. Standardmäßig sind die Ebenen 0 und 15 eingerichtet. Zugangsebene 15 bietet vollständigen Zugang, während Zugangsebene 0 nur einen äußerst eingeschränkten Zugriff auf Befehle und Konfigurationen erlaubt. Sie können weitere Zugangsebenen erstellen oder vorhandenen Ebenen durch Befehle oder Eingaben bestimmte Funktionen zuweisen. Beispielsweise könnten Sie eine Ebene erstellen, die den Zugang zu Befehlen im interface und line configuration-Modus ermöglicht, oder eine Ebene, mit der nur auf bestimmte Befehle im select global config-Modus zugegriffen werden kann. Für die Vergabe von Zugangsebenen kann der folgende privilege global config-Befehl verwendet werden:Router (config) # Privilege configure level 5 ntp
Sie können den Zugang zu verschiedenen Befehlen auf unterschiedlichen Konfigurations-Ebenen festlegen. Ich habe hier die Ebene 5 erstellt und über diese den Zugang zum NTP-Befehl im global config-Modus erlaubt.
Als Netzwerk-Administrator müssen Sie die für die einzelnen Benutzer verfügbaren Zugangsebenen verwalten. Um das von Ihnen erstellte Zugangs-Schema möglichst wirkungsvoll zu gestalten, sollten Sie den Benutzern den Zugriff auf Befehle verweigern, mit denen diese die Zugangsebenen bzw. ihre eigenen Zugangsrechte ändern könnten. Im folgenden Beispiel teile ich mir selbst die Zugangsebene 5 zu, welche ich im vorangehenden Beispiel erstellt habe:Router (config) # username rmcintire privilege 5
Als weitere Option kommt auch die Zuteilung von Rechten nach Terminal-Leitungen in Betracht. Zur Beschränkung des Zugriffs der Eingabeleitungen sind im entsprechenden config-Modus für die Leitung die folgenden Zugangsebenen festzulegen:Router (config) # line console 0
Router (config-line) # privilege level 7
Router (config) # line vty 0 4
Router (config-line) # privilege level 4
Auf diese Weise wird den VTY-(Terminal-)Leitungen eine niedrigere Zugangsebene als der Konsole zugewiesen. Dies bietet sich beispielsweise in einer Umgebung an, in der die Benutzer virtueller Terminals über ein Netzwerk keine nennenswerten Änderungen vornehmen dürfen. Diese Regelung führt dazu, dass Support-Mitarbeiter mit höheren Zugangsrechten für Konsolen-Ports gegebenenfalls wichtige Konfigurations-Änderungen nur vor Ort am Switch vornehmen können.
Überwachung der Zugangs-Sicherheit
Sie können nicht nur die Vorgänge der Router-Konfiguration überwachen, Sie können auch in Echtzeit feststellen, wer mit einem bestimmten Router verbunden ist. Verwenden Sie dazu, wie im folgenden Beispiel gezeigt, den Befehl show users:Router # show users
Durch diesen Befehl wird eine Tabelle angezeigt, die sämtliche verwendeten Terminals mit den jeweiligen Benutzernamen (sofern verfügbar), Standort (Adresse) usw. enthält. Mit Hilfe des Standorts bzw. der IP-Adresse kann das System bestimmt werden, über welches die Terminal-Sitzung ausgeführt wurde. Falls ein Login mit Benutzernamen verwendet wird, lässt sich problemlos ablesen, welcher Benutzer auf den Router zugreift. Dies ist der Grund, weshalb ich in Netzwerk-Umgebungen, in denen das Netz von mehr als einem Support-Mitarbeiter gewartet wird, zu einen benutzergebundenen Zugriff rate. Sie können außerdem durch den folgenden Befehl fragwürdig erscheinende bzw. nicht autorisierte Sitzungen beenden:Router # disconnect ip-address
Informationen zu den Zugangsrechten können Sie jederzeit über den folgenden Befehl anzeigen:Router # show privilege
Schlussbemerkung
In einfachen Umgebungen, in denen nur wenige Mitarbeiter Zugang zu Netzwerkgeräten benötigen, genügt üblicherweise die Implementierung grundsätzlicher Sicherheitsstufen in Form von VTY- und Konsolen-Passwörtern zur Überwachung des Benutzerzugriffs auf die Eingabeleitungen eines Routers. Mit einem zusätzlichen über ,enable secret‘ verschlüsselten Passwort ist der Benutzer-Zugriff auf die Netzwerk-Konfiguration bereits ausreichend abgesichert. Bei größeren Netzwerken, die einen umfassenderen Mitarbeiter-Zugang oder einen detaillierteren Überblick über einzelne Zugangsberechtigungen erfordern, sind die Verfahren für benutzergebundenen Zugriff anzuwenden.
Auch wenn diese Konfigurationen und Tipps zur Sicherheit nicht der Weisheit letzter Schluss sind und darüber hinaus weiterer Sicherungs-Maßnahmen bedürfen, so stellen sie doch meist die ersten Schritte zum Schutz meiner Cisco-Router dar. Für umfassendere Sicherheits-Funktionen empfiehlt sich die Nutzung von AAA-Funktionen.
© 2001 TechRepublic, Inc.
Neueste Kommentare
Noch keine Kommentare zu Zugangssicherheit für Cisco-Netzwerkgeräte
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.