Auf dieser Seite
Konfigurieren des Telnet-Dienstes für den Remotezugriff auf einen Router oder Switch
Konfigurieren des FTP-Dienstes für den Fernzugriff auf den Router oder Switch
Konfigurieren des Fingerdiensts für den Remotezugriff auf den Router
Konfigurieren des SSH-Dienstes für den Fernzugriff auf den Router oder Switch
Konfigurieren von SSH-Schlüsseln für bekannte Hosts zum sicheren Kopieren von Daten
Konfigurieren des SSH-Dienstes für die Unterstützung von Legacy-Kryptografie
Konfigurieren von NETCONF-over-SSH-Verbindungen an einem angegebenen TCP-Port
Konfigurieren von Grenzwerten für Kennwortwiederholungen für den Telnet- und SSH-Zugriff
Beispiel: Konfigurieren eines Filters zum Blockieren des Telnet- und SSH-Zugriffs
Übersicht über den Remotezugriff
Sie (der Netzwerkadministrator) können über Dienste wie DHCP, Finger, FTP, rlogin, SSH und Telnet-Dienste remote auf einen Router, Switch oder ein Sicherheitsgerät zugreifen. In diesem Thema erfahren Sie, wie Sie den Remotezugriff mithilfe der Telnet-, SSH-, FTP- und Finger-Dienste konfigurieren.
Übersicht über Systemservices
Aus Sicherheitsgründen ist der Fernzugriff auf den Router standardmäßig deaktiviert. Sie müssen den Router explizit so konfigurieren, dass Benutzer auf Remotesystemen darauf zugreifen können. Benutzer können von einem Remote-System aus über die DHCP-, Finger-, FTP-, rlogin-, SSH- und Telnet-Dienste auf den Router zugreifen. Darüber hinaus können Junos XML-Protokoll-Clientanwendungen unter anderem Secure Sockets Layer (SSL) oder den Junos XML-Protokoll-spezifischen Klartextdienst verwenden.
Um die Systemressourcen zu schützen, können Sie die Anzahl der gleichzeitigen Verbindungen, die ein Dienst akzeptiert, und die Anzahl der Prozesse, die sich im Besitz eines einzelnen Benutzers befinden, begrenzen. Wenn einer der beiden Grenzwerte überschritten wird, schlagen Verbindungsversuche fehl.
Konfigurieren des Telnet-Dienstes für den Remotezugriff auf einen Router oder Switch
Um den Router oder Switch so zu konfigurieren, dass Telnet als Zugriffsdienst akzeptiert wird, fügen Sie die folgende Anweisung auf Hierarchieebene ein:telnet
[edit system services]
[edit system services] telnet { connection-limit limit; rate-limit limit; }
Standardmäßig unterstützt der Router oder Switch eine begrenzte Anzahl gleichzeitiger Telnet-Sitzungen und Verbindungsversuche pro Minute.
Optional können Sie eine oder beide der folgenden Anweisungen angeben, um die Standardwerte zu ändern:
-
connection-limit limit
—Maximale Anzahl gleichzeitiger Verbindungen pro Protokoll (IPV4 und IPv6). Der Bereich reicht von 1 bis 250. Der Standardwert ist 75. Wenn Sie ein Verbindungslimit konfigurieren, gilt das Limit für die Anzahl der Telnet-Sitzungen pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt ein Verbindungslimit von 10 10 IPv6-Telnet-Sitzungen und 10 IPv4-Telnet-Sitzungen. -
rate-limit limit
—Maximale Anzahl der akzeptierten Verbindungsversuche pro Minute (von 1 bis 250). Der Standardwert ist 150. Wenn Sie eine Ratenbegrenzung konfigurieren, gilt die Begrenzung für die Anzahl der Verbindungsversuche pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt eine Ratenbegrenzung von 10 10 IPv6-Telnet-Verbindungsversuche pro Minute und 10 IPv4-Telnet-Verbindungsversuche pro Minute.
Sie können die Anweisung nicht auf Geräten einfügen, auf denen die Junos-FIPS-Software ausgeführt wird.telnet
Es wird empfohlen, Telnet nicht in einer Common Criteria-Umgebung zu verwenden.
Konfigurieren des FTP-Dienstes für den Fernzugriff auf den Router oder Switch
Um das Gerät so zu konfigurieren, dass FTP als Zugriffsdienst akzeptiert wird, fügen Sie die folgende Anweisung auf Hierarchieebene ein:ftp
[edit system services]
[edit system services] ftp { connection-limit limit; rate-limit limit; }
Standardmäßig unterstützt der Router oder Switch eine begrenzte Anzahl gleichzeitiger FTP-Sitzungen und Verbindungsversuche pro Minute. Sie können eine oder beide der folgenden Anweisungen angeben, um die Standardwerte zu ändern:
-
connection-limit limit
—Maximale Anzahl gleichzeitiger Verbindungen pro Protokoll (IPV4 und IPv6). Der Bereich liegt zwischen 1 und 250. Der Standardwert ist 75. Wenn Sie ein Verbindungslimit konfigurieren, gilt das Limit für die Anzahl der Sitzungen pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt ein Verbindungslimit von 10 10 IPv6-FTP-Sitzungen und 10 IPv4-FTP-Sitzungen. -
rate-limit limit
: Maximale Anzahl der akzeptierten Verbindungsversuche pro Minute (ein Wert zwischen 1 und 250). Der Standardwert ist 150. Wenn Sie eine Ratenbegrenzung konfigurieren, gilt die Begrenzung für die Anzahl der Verbindungsversuche pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt eine Ratenbegrenzung von 10 10 IPv6-FTP-Sitzungsverbindungsversuche und 10 IPv4-FTP-Sitzungsverbindungsversuche.
Sie können passives FTP verwenden, um auf Geräte zuzugreifen, die nur passive FTP-Dienste akzeptieren. Alle Befehle und Anweisungen, die FTP verwenden, akzeptieren auch passives FTP. Fügen Sie die Anweisung auf Hierarchieebene ein, um entweder aktives FTP oder passives FTP zu verwenden.ftp
[edit system services]
Um eine passive FTP-Sitzung zu starten, verwenden Sie (anstelle von ) im Standard-FTP-Format ().pasvftp
ftp
ftp://destination Hier einige Zahlen zum Generationswechsel:
request system software add pasvftp://name.com/jinstall.tgz
Sie können die Anweisung nicht auf Routern oder Switches angeben, auf denen die Junos-FIPS-Software ausgeführt wird.ftp
Es wird empfohlen, den FTP-Dienst nicht in einer Common Criteria-Umgebung zu verwenden.
Konfigurieren des Fingerdiensts für den Remotezugriff auf den Router
Um den Router so zu konfigurieren, dass finger als Zugriffsdienst akzeptiert wird, fügen Sie die Anweisung auf Hierarchieebene ein:finger
[edit system services]
[edit system services] finger { connection-limit limit; rate-limit limit; }
Standardmäßig unterstützt der Router eine begrenzte Anzahl gleichzeitiger Fingersitzungen und Verbindungsversuche pro Minute. Optional können Sie eine oder beide der folgenden Anweisungen angeben, um die Standardwerte zu ändern:
-
connection-limit limit
—Maximale Anzahl gleichzeitiger Verbindungen pro Protokoll (IPv4 und IPv6). Der Bereich liegt zwischen 1 und 250. Der Standardwert ist 75. Wenn Sie ein Verbindungslimit konfigurieren, gilt das Limit für die Anzahl der Sitzungen pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt ein Verbindungslimit von 10 10 IPv6-Klartextdienstsitzungen und 10 IPv4-Klartextdienstsitzungen -
rate-limit limit
: Maximale Anzahl der akzeptierten Verbindungsversuche pro Minute (ein Wert zwischen 1 und 250). Der Standardwert ist 150. Wenn Sie eine Ratenbegrenzung konfigurieren, gilt die Begrenzung für die Anzahl der Verbindungsversuche pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt eine Ratenbegrenzung von 10 10 IPv6-Verbindungsversuche pro Minute und 10 IPv4-Verbindungsversuche pro Minute.
Sie können die Anweisung nicht auf Routern einfügen, auf denen die Junos-FIPS-Software ausgeführt wird.finger
Es wird empfohlen, den Fingerdienst nicht in einer Common Criteria-Umgebung zu verwenden.
Konfigurieren des SSH-Dienstes für den Fernzugriff auf den Router oder Switch
Um den Router oder Switch so zu konfigurieren, dass SSH als Zugriffsdienst akzeptiert wird, fügen Sie die Anweisung auf Hierarchieebene ein:ssh
[edit system services]
[edit system services] ssh { authentication-order [method 1 method2...]; authorized-keys-command authorized-keys-command; authorized-keys-command-user authorized-keys-command-user; authorized-principals-file filename authorized-principals-command program-path ciphers [ cipher-1 cipher-2 cipher-3 ...]; client-alive-count-max number; client-alive-interval seconds; connection-limit limit; fingerprint-hash (md5 | sha2-256); host-certificate-file filename hostkey-algorithm (algorithm | no-algorithm); key-exchange [algorithm1 algorithm2...]; log-key-changes log-key-changes; macs [algorithm1 algorithm2...]; max-pre-authentication-packets number; max-sessions-per-connection number; no-challenge-response; no-password-authentication; no-passwords; no-public-keys; no-tcp-forwarding; port port-number; protocol-version [v2]; rate-limit number; rekey { data-limit bytes; time-limit minutes; } root-login (allow | deny | deny-password); sftp-server; tcp-forwarding; trusted-user-ca-key-file filename }
Standardmäßig unterstützt der Router oder Switch eine begrenzte Anzahl gleichzeitiger SSH-Sitzungen und Verbindungsversuche pro Minute. Verwenden Sie die folgenden Anweisungen, um die Standardwerte zu ändern:
-
connection-limit limit
—Maximale Anzahl gleichzeitiger Verbindungen pro Protokoll (IPv4 und IPv6). Der Bereich liegt zwischen 1 und 250. Der Standardwert ist 75. Wenn Sie ein Verbindungslimit konfigurieren, gilt das Limit für die Anzahl der SSH-Sitzungen pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt ein Verbindungslimit von 10 10 IPv6-SSH-Sitzungen und 10 IPv4-SSH-Sitzungen. -
max-sessions-per-connection number
– Fügen Sie diese Anweisung ein, um die maximale Anzahl von SSH-Sitzungen anzugeben, die pro einzelner SSH-Verbindung zulässig sind. Auf diese Weise können Sie die Anzahl der geklonten Sitzungen begrenzen, die innerhalb einer einzelnen SSH-Verbindung getunnelt werden. Der Standardwert ist 10. -
rate-limit limit
: Maximale Anzahl der akzeptierten Verbindungsversuche pro Minute (ein Wert zwischen 1 und 250). Der Standardwert ist 150. Wenn Sie eine Ratenbegrenzung konfigurieren, gilt die Begrenzung für die Anzahl der Verbindungsversuche pro Protokoll (IPv4 und IPv6). Beispielsweise erlaubt eine Ratenbegrenzung von 10 10 IPv6-SSH-Verbindungsversuche pro Minute und 10 IPv4-SSH-Sitzungsverbindungsversuche pro Minute. -
data-limit
—Datenlimit vor der Neuverhandlung von Sitzungsschlüsseln (Bytes) -
time-limit
—Zeitlimit vor der Neuverhandlung von Sitzungsschlüsseln (Minuten)
Ab Junos OS Version 19.4R1 und Junos OS Version 17.4R3 können Sie entweder das SSH-Anmeldekennwort oder die Challenge-Response-Authentifizierung deaktivieren, indem Sie die Optionen und auf der Hierarchieebene [] verwenden.no-password-authentication
no-challenge-response
edit system services ssh
Standardmäßig kann ein Benutzer einen SSH-Tunnel über eine CLI-Sitzung zu einem Router mit Junos OS über SSH erstellen. Diese Art von Tunnel kann verwendet werden, um TCP-Datenverkehr weiterzuleiten und dabei Firewallfilter oder Zugriffssteuerungslisten zu umgehen. Durch die Umgehung von Firewall-Filtern oder Zugriffskontrolllisten ermöglicht diese Art von Tunnel den Zugriff auf Ressourcen außerhalb des Routers. Verwenden Sie die Option, um zu verhindern, dass ein Benutzer über SSH einen SSH-Tunnel zu einem Router erstellt.no-tcp-forwarding
Informationen zu anderen Konfigurationseinstellungen finden Sie in den folgenden Themen:
- Konfigurieren Sie die Root-Anmeldung über SSH
- Konfigurieren eingehender SFTP-Verbindungen
- Konfigurieren der SSH-Protokollversion
- Konfigurieren des Client Alive-Mechanismus
- Konfigurieren des SSH-Fingerabdruck-Hash-Algorithmus
Konfigurieren Sie die Root-Anmeldung über SSH
Standardmäßig können sich Benutzer über SSH beim Router oder Switch anmelden, wenn für die Authentifizierungsmethode kein Kennwort erforderlich ist.root
Um den Benutzerzugriff über SSH zu steuern, fügen Sie die Anweisung auf Hierarchieebene ein:root-login
[edit systems services ssh]
[edit system services ssh] root-login (allow | deny | deny-password);
allow
– Ermöglicht es Benutzern, sich über SSH als root beim Router anzumelden oder zu wechseln.
deny
– Verhindert, dass sich Benutzer über SSH als Root am Router oder Switch anmelden.
-—Ermöglicht es Benutzern, sich über SSH beim Router oder Switch als root anzumelden, wenn für die Authentifizierungsmethode (z. B. RSA) kein Kennwort erforderlich ist.deny
password
Der Standardwert ist .deny-password
Konfigurieren eingehender SFTP-Verbindungen
SSH File Transfer Protocol (SFTP) ist ein Netzwerkprotokoll, das Dateizugriff, Dateiübertragung und Dateiverwaltung über jeden zuverlässigen Datenstrom ermöglicht. Ab Junos OS Version 19.1R1 haben wir die eingehenden SFTP-Verbindungen standardmäßig global deaktiviert. Falls gewünscht, können Sie eingehende SFTP-Verbindungen global aktivieren, indem Sie die Anweisung auf Hierarchieebene konfigurieren.sftp-server
[edit system services ssh]
Vor Junos OS Version 19.1R1 waren eingehende SFTP-Verbindungen standardmäßig global aktiviert.
Nur die eingehenden SFTP-Verbindungen sind standardmäßig deaktiviert. Bei Geräten A und B (auf denen auf Gerät A 19.1R1 ausgeführt wird) können Sie beispielsweise standardmäßig keine Verbindung über SFTP von B nach A herstellen. Sie können jedoch über SFTP eine Verbindung von Gerät B zu Gerät A herstellen, wenn Sie die Konfiguration auf Gerät A vornehmen . sftp-server
Die eingehenden SFTP-Verbindungen sind standardmäßig deaktiviert. So aktivieren Sie eingehende SFTP-Verbindungen:
Konfigurieren der SSH-Protokollversion
Standardmäßig ist nur Version 2 des SSH-Protokolls aktiviert.
Um den Router oder Switch für die Verwendung von Version 2 des SSH-Protokolls zu konfigurieren, fügen Sie die Anweisung ein und geben Sie auf Hierarchieebene an:protocol-version
v2
[edit system services ssh]
[edit system services ssh] protocol-version [ v2 ];
Systeme im FIPS-Modus verwenden immer die SSH-Protokollversion .v2
Konfigurieren des Client Alive-Mechanismus
Der Client-Alive-Mechanismus ist nützlich, wenn der Client oder Server darauf angewiesen ist, zu wissen, wann eine Verbindung inaktiv geworden ist. Er unterscheidet sich vom standardmäßigen Keepalive-Mechanismus dadurch, dass die Client-Alive-Nachrichten über den verschlüsselten Kanal gesendet werden. Der Client-Alive-Mechanismus ist standardmäßig nicht aktiviert. Um es zu aktivieren, konfigurieren Sie die and-Anweisungen .client-alive-count-max
client-alive-interval
Diese Option gilt nur für das SSH-Protokoll Version 2.
Im folgenden Beispiel werden SSH-Clients, die nicht reagieren, nach ca. 100 Sekunden (20 x 5) getrennt:
[edit system services ssh] client-alive-count-max 5; client-alive-interval 20;
Konfigurieren des SSH-Fingerabdruck-Hash-Algorithmus
Um den Hash-Algorithmus zu konfigurieren, der vom SSH-Server verwendet wird, wenn er Schlüsselfingerabdrücke anzeigt, fügen Sie die Anweisung ein und geben Sie or auf der Hierarchieebene an:fingerprint-hash
md5
sha2-256
[edit system services ssh]
[edit system services ssh] fingerprint-hash (md5 | sha2-256);
Der Hash-Algorithmus ist auf Systemen im FIPS-Modus nicht verfügbar.md5
SSH-Zertifikatbasierte Authentifizierung – Übersicht
Ab Junos OS und Junos OS Evolved Version 22.4R1 können Sie die auf SSH-Zertifikaten basierende Authentifizierung für Benutzer und Hosts konfigurieren. Mit dieser Funktion können Sie einen kennwortlosen SSH-Zugriff für Benutzer einrichten und Hosts vertrauen, ohne die Fingerabdrücke der Schlüssel zu überprüfen.
- Vorteile der zertifikatsbasierten SSH-Authentifizierung
- Generieren von Signaturschlüsseln
- Konfiguration
Vorteile der zertifikatsbasierten SSH-Authentifizierung
-
Die auf SSH-Zertifikaten basierende Authentifizierung macht es für Benutzer überflüssig, sich Passwörter zu merken und einzugeben, wodurch der Anmeldeprozess optimiert wird.
-
Im Vergleich zu herkömmlichen passwortbasierten Ansätzen bieten SSH-Zertifikate eine höhere Sicherheit. Sie sind schwieriger zu knacken, da kein Passwort erraten oder geknackt werden muss.
-
SSH-Zertifikate vereinfachen die Verwaltung von Authentifizierungsschlüsseln. Anstatt einzelne Schlüssel für jeden Benutzer und Host zu verwalten, können Administratoren Zertifikate von einer zentralen Zertifizierungsstelle ausstellen und widerrufen.
Generieren von Signaturschlüsseln
Signaturschlüssel sind spezielle kryptografische Schlüssel, die bei der zertifikatbasierten SSH-Authentifizierung verwendet werden. Der erste Schritt zur Konfiguration der zertifikatbasierten SSH-Authentifizierung besteht darin, Signaturschlüssel zu generieren. Sie können Signaturschlüssel auf jedem Linux/FreeBSD-System generieren. Führen Sie die folgenden Schritte aus, um Signaturschlüssel für die zertifikatbasierte SSH-Authentifizierung zu generieren:
Führen Sie den folgenden Befehl aus:
ssh-keygen -f <filename_ca>
. Dadurch werden ein privater Schlüssel mit dem Namen und ein entsprechender öffentlicher Schlüssel mit dem Namen erstellt .<filename_ca>
<filename_ca.pub>
Melden Sie sich bei Ihrem Juniper-Gerät an und konfigurieren Sie die Schlüsseldatei der SSH Trusted User Certificate Authority (CA), indem Sie den folgenden Befehl ausführen:
set system services ssh trusted-user-ca-key-file <path-to-public-key>
und bestätigen Sie dann die Konfiguration.Jeder Benutzer kann mit dem folgenden CLI-Befehl seine eigenen Benutzerschlüssel generieren:
ssh-keygen -t <rsa|ecdsa|ed25519>
.Kopieren Sie den vom Benutzer erstellten öffentlichen Schlüssel auf den Computer, auf dem sich die Benutzerzertifikate und .
<filename_ca>
<filename_ca.pub>
Signieren Sie den öffentlichen Schlüssel des Benutzers in der Datei.
<filename_ca.pub>
Konfiguration
Verwenden Sie die folgenden CLI-Konfigurationsanweisungen, um die zertifikatbasierte SSH-Authentifizierung zu konfigurieren:
-
– Konfigurieren Sie die Datei unter , die die öffentlichen Schlüssel eines SSH-Zertifikats enthält.
[system services ssh trusted-user-ca-key-file filename]
TrustedUserCAKey
/etc/ssh/sshd_config -
– Konfigurieren Sie die Datei unter , die das signierte Hostzertifikat enthält.
[system services ssh host-certificate-file filename]
HostCertificate
/etc/ssh/sshd_config -
– Konfigurieren Sie die Datei unter , die eine Liste von Namen enthält, von denen einer im Zertifikat enthalten sein muss, damit sie zur Authentifizierung akzeptiert wird.
[system services ssh authorized-principals-file filename]
AuthorizedPrincipals
/var/etc -
– Geben Sie ein Programm an, das zum Generieren der Liste der zulässigen Zertifikatsprinzipale in der Datei verwendet werden soll.
[system services ssh authorized-principals-command program-path]
AuthorizedPrincipals
Der Telnet-Befehl
Sie können den CLI-Befehl verwenden, um eine Telnet-Sitzung auf einem Remotegerät zu öffnen:telnet
user@host> telnet host <8bit> <bypass-routing> <inet> <interface interface-name> <no-resolve> <port port> <routing-instance routing-instance-name> <source address>
Auf SRX100-, SRX210-, SRX220-, SRX240-, SRX300-, SRX320-, SRX340-, SRX345- und SRX1500-Geräten ist die maximale Anzahl gleichzeitiger Telnet-Sitzungen in der folgenden Tabelle angegeben. Die Plattformunterstützung hängt von der Junos OS-Version in Ihrer Installation ab.
SRX100 |
SRX210SRX220 |
SRX240 |
SRX300SRX320SRX340 |
SRX345 |
SRX1500 |
---|---|---|---|---|---|
3 |
3 |
5 |
3 |
5 |
5 |
Um die Telnet-Sitzung zu beenden und zur Telnet-Eingabeaufforderung zurückzukehren, drücken Sie Strg-].
Um die Telnet-Sitzung zu beenden und zur CLI-Eingabeaufforderung zurückzukehren, geben Sie .quit
Option |
Beschreibung |
---|---|
|
Verwenden Sie einen 8-Bit-Datenpfad. |
|
Umgehen Sie die Routing-Tabellen und öffnen Sie eine Telnet-Sitzung nur für Hosts auf direkt angeschlossenen Schnittstellen. Wenn sich der Host nicht auf einer direkt angeschlossenen Schnittstelle befindet, wird eine Fehlermeldung zurückgegeben. |
|
Öffnen Sie eine Telnet-Sitzung mit dem angegebenen Hostnamen oder der angegebenen IP-Adresse. |
|
Erzwingen Sie die Telnet-Sitzung auf ein IPv4-Ziel. |
|
Öffnen Sie eine Telnet-Sitzung für einen Host auf der angegebenen Schnittstelle. Wenn Sie diese Option nicht einschließen, werden alle Schnittstellen verwendet. |
|
Unterdrückt die Anzeige von symbolischen Namen. |
|
Geben Sie die Portnummer oder den Servicenamen auf dem Host an. |
|
Verwenden Sie die angegebene Routinginstanz für die Telnet-Sitzung. |
|
Verwenden Sie die angegebene Quelladresse für die Telnet-Sitzung. |
Der ssh-Befehl
Sie können den CLI-Befehl verwenden, um das Secure Shell-Programm (SSH) zu verwenden, um eine Verbindung zu einem Remote-Gerät herzustellen:ssh
user@host> ssh host <bypass-routing> <inet> <interface interface-name> <routing-instance routing-instance-name> <source address> <v1> <v2>
Auf Geräten der Serien SRX100, SRX210, SRX220, SRX240, SRX300, SRX320, SRX340, SRX345 und SRX1500 ist die maximale Anzahl gleichzeitiger SSH-Sitzungen in der folgenden Tabelle angegeben. Die Plattformunterstützung hängt von der Junos OS-Version in Ihrer Installation ab.
SRX100 |
SRX210SRX220 |
SRX240 |
SRX300SRX320SRX340 |
SRX345 |
SRX1500 |
---|---|---|---|---|---|
3 |
3 |
5 |
3 |
5 |
5 |
Tabelle 2
Beschreibt die Befehlsoptionen.ssh
Option |
Beschreibung |
---|---|
|
Umgehen Sie die Routing-Tabellen und öffnen Sie eine SSH-Verbindung nur zu Hosts auf direkt angeschlossenen Schnittstellen. Wenn sich der Host nicht auf einer direkt angeschlossenen Schnittstelle befindet, wird eine Fehlermeldung zurückgegeben. |
|
Öffnen Sie eine SSH-Verbindung mit dem angegebenen Hostnamen oder der angegebenen IP-Adresse. |
|
Erzwingen Sie die SSH-Verbindung zu einem IPv4-Ziel. |
|
Öffnen Sie eine SSH-Verbindung zu einem Host auf der angegebenen Schnittstelle. Wenn Sie diese Option nicht einschließen, werden alle Schnittstellen verwendet. |
|
Verwenden Sie die angegebene Routinginstanz für die SSH-Verbindung. |
|
Verwenden Sie die angegebene Quelladresse für die SSH-Verbindung. |
|
Erzwingen Sie, dass SSH Version 1 für die Verbindung verwendet. |
|
Erzwingen Sie, dass SSH Version 2 für die Verbindung verwendet. |
Konfigurieren von SSH-Schlüsseln für bekannte Hosts zum sicheren Kopieren von Daten
Secure Shell (SSH) verwendet Verschlüsselungsalgorithmen , um ein Host-, Server- und Sitzungsschlüsselsystem zu generieren, das eine sichere Datenübertragung gewährleistet. Sie können SSH-Hostschlüssel so konfigurieren, dass sie Secure Copy (SCP) als Alternative zu FTP für die Hintergrundübertragung von Daten wie Konfigurationsarchiven und Ereignisprotokollen unterstützen. Um die SSH-Unterstützung für SCP zu konfigurieren, müssen Sie die folgenden Aufgaben ausführen:
-
Geben Sie bekannte SSH-Hosts an, indem Sie Hostnamen und Hostschlüsselinformationen in die Routing-Engine-Konfigurationshierarchie aufnehmen.
-
Legen Sie eine SCP-URL fest, um den Host anzugeben, von dem Daten empfangen werden sollen. Durch Festlegen dieses Attributs werden automatisch SSH-Hostschlüsselinformationen vom SCP-Server abgerufen.
-
Stellen Sie sicher, dass der Hostschlüssel authentisch ist.
-
Akzeptieren Sie die sichere Verbindung. Wenn Sie diese Verbindung akzeptieren, werden Hostschlüsselinformationen automatisch in der lokalen Hostschlüsseldatenbank gespeichert. Das Speichern von Hostschlüsselinformationen in der Konfigurationshierarchie automatisiert den sicheren Handshake und ermöglicht die Datenübertragung im Hintergrund mit SCP.
Aufgaben zum Konfigurieren von SSH-Hostschlüsseln für das sichere Kopieren von Daten sind:
- Konfigurieren bekannter SSH-Hosts
- Konfigurieren der Unterstützung für die SCP-Dateiübertragung
- Aktualisieren der SSH-Hostschlüsselinformationen
Konfigurieren bekannter SSH-Hosts
Um bekannte SSH-Hosts zu konfigurieren, fügen Sie die Anweisung ein, und geben Sie Hostname- und Hostschlüsseloptionen für vertrauenswürdige Server auf Hierarchieebene an:host
[edit security ssh-known-hosts]
[edit security ssh-known-hosts] host corporate-archive-server { dsa-key key; } host archive-server-url { rsa-key key; } host server-with-ssh-version-1 { rsa1-key key; }
Hostschlüssel sind einer der folgenden:
-
dsa-key key
– Base64-codierter DSA-Schlüssel (Digital Signature Algorithm) für SSH Version 2. -
ecdsa-sha2-nistp256-key
key– Base64-kodierter ECDSA-SHA2-NIST256-Schlüssel. -
ecdsa-sha2-nistp384-key
key– Base64-codierter ECDSA-SHA2-NIST384-Schlüssel. -
ecdsa-sha2-nistp521-key
key– Base64-kodierter ECDSA-SHA2-NIST521-Schlüssel. -
ed25519-key
key– Base64-kodierter ED25519-Schlüssel. -
rsa-key key
– Base64-codierter Public-Key-Algorithmus, der Verschlüsselung und digitale Signaturen für SSH Version 1 und SSH Version 2 unterstützt. -
rsa1-key key
– Base64-codierter RSA-Algorithmus für öffentliche Schlüssel, der Verschlüsselung und digitale Signaturen für SSH Version 1 unterstützt.
Konfigurieren der Unterstützung für die SCP-Dateiübertragung
Um einen bekannten Host so zu konfigurieren, dass er SCP-Dateiübertragungen im Hintergrund unterstützt, fügen Sie die Anweisung auf Hierarchieebene ein.archive-sites
[edit system archival configuration]
[edit system archival configuration] archive-sites { scp://username<:password>@host<:port>/url-path; }
Wenn Sie eine URL in einer Anweisung angeben, die eine IPv6-Hostadresse verwendet, müssen Sie die gesamte URL in Anführungszeichen (" ") und die IPv6-Hostadresse in eckige Klammern ([ ]) einschließen.Junos OS Zum Beispiel “scp://username<:password>@[host]<:port>/url-path”;
Wenn Sie die Anweisung so festlegen, dass sie auf eine SCP-URL verweist, wird der automatische Abruf des Hostschlüssels ausgelöst.archive-sites
An diesem Punkt wird eine Verbindung zum SCP-Host hergestellt, um den öffentlichen SSH-Schlüssel abzurufen, der Nachrichtendigest des Hostschlüssels oder der Fingerabdruck wird als Ausgabe an die Konsole angezeigt und die Verbindung zum Server beendet.Junos OS
user@host# set system archival configuration archive-sites “<scp-url-path>” The authenticity of host <my-archive-server (<server-ip-address>)> can’t be established. RSA key fingerprint is <ascii-text key>. Are you sure you want to continue connecting (yes/no)?
Um zu überprüfen, ob der Hostschlüssel authentisch ist, vergleichen Sie diesen Fingerabdruck mit einem Fingerabdruck, den Sie vom selben Host über eine vertrauenswürdige Quelle erhalten. Wenn die Fingerabdrücke identisch sind, akzeptieren Sie den Hostschlüssel, indem Sie ihn an der Eingabeaufforderung eingeben .yes Die Hostschlüsselinformationen werden dann in der Routing-Engine-Konfiguration gespeichert und unterstützen Hintergrunddatenübertragungen mithilfe von SCP.
Aktualisieren der SSH-Hostschlüsselinformationen
In der Regel werden SSH-Hostschlüsselinformationen automatisch abgerufen, wenn Sie ein URL-Attribut für SCP mithilfe der Anweisung auf Hierarchieebene festlegen.archival configuration archive-sites
[edit system]
Wenn Sie die Hostschlüsseldatenbank jedoch manuell aktualisieren müssen, verwenden Sie eine der folgenden Methoden.
- Manuelles Abrufen von Hostschlüsselinformationen
- Importieren von Hostschlüsselinformationen aus einer Datei
Manuelles Abrufen von Hostschlüsselinformationen
Um die Schlüsselinformationen für den öffentlichen SSH-Host manuell abzurufen, konfigurieren Sie die Option auf Hierarchieebene .fetch-from-server
[edit security ssh-known-hosts]
Sie müssen den Host angeben, von dem der öffentliche SSH-Schlüssel abgerufen werden soll.
user@host# set security ssh-known-hosts fetch-from-server <hostname>
Importieren von Hostschlüsselinformationen aus einer Datei
Um SSH-Hostschlüsselinformationen manuell aus einer Datei zu importieren, schließen Sie die Option auf Hierarchieebene ein.known_hostsload-key-file
[edit security ssh-known-hosts]
Sie müssen den Pfad zu der Datei angeben, aus der Hostschlüsselinformationen importiert werden sollen.
user@host# set security ssh-known-hosts load-key-file /var/tmp/known-hosts
Konfigurieren des SSH-Dienstes für die Unterstützung von Legacy-Kryptografie
Der SSH-Server basiert Junos OS auf OpenSSH 7 und verwendet standardmäßig einen sichereren Satz von Verschlüsselungen und Schlüsselaustauschalgorithmen. OpenSSH 7 verzichtet auf einige ältere Kryptographie.
Mangelnde Unterstützung für Legacy-Kryptografie in Geräten führt dazu, dass die Junos Space-Geräteerkennung fehlschlägt. Um dieses Problem zu umgehen, konfigurieren Sie das Gerät so, dass es die Verschlüsselung "oder" oder "beides" und die Schlüsselaustauschmethode unterstützt.3des-cbc
blowfish-cbc
dh-group1-sha1
Dieses Problem betrifft keine Geräte mit Junos OS und aktualisiertem FreeBSD.
Weitere Informationen zu diesen Erweiterungen finden Sie in der OpenSSH 7-Dokumentation unter https://www.openssh.com/ .https://www.openssh.com/
Junos OS Unterstützt standardmäßig den folgenden Satz von Verschlüsselungen:
-
chacha20-poly1305@openssh.com
-
aes128-ctr
-
aes192-ctr
-
aes256-ctr
-
aes128-gcm@openssh.com
-
aes256-gcm@openssh.com
In werden die folgenden Verschlüsselungen standardmäßig nicht unterstützt, aber Sie können Ihr Gerät so konfigurieren, dass sie unterstützt werden.Junos OS Sie sind von den sichersten bis zu den am wenigsten sicheren aufgelistet:
-
aes256-cbc
-
aes192-cbc
-
aes128-cbc
-
3des-cbc
-
blowfish-cbc
-
cast128-cbc
-
arcfour256
-
arcfour128
-
arcfour
Junos OS Unterstützt standardmäßig die folgenden Schlüsselaustauschmethoden:
-
curve25519-sha256
-
ecdh-sha2-nistp256
-
ecdh-sha2-nistp384
-
ecdh-sha2-nistp521
-
group-exchange-sha2
-
dh-group14-sha1
In werden die folgenden Schlüsselaustauschmethoden standardmäßig nicht unterstützt, aber Sie können Ihr Gerät so konfigurieren, dass sie unterstützt werden:Junos OS
-
group-exchange-sha1
-
dh-group1-sha1
So konfigurieren Sie den SSH-Dienst für die Unterstützung von Legacykryptografie:
Durch die Konfiguration eines geordneten Satzes von Verschlüsselungen, Schlüsselaustauschmethoden oder MACs (Message Authentication Codes) wird der neu definierte Satz sowohl auf Server- als auch auf Clientbefehle angewendet. Änderungen an den Standardwerten wirken sich auf den Befehl aus, wenn Sie Secure Copy Protocol (SCP) verwenden.file copy
Siehe auch
Konfigurieren des ausgehenden SSH-Dienstes
Sie können ein ausgeführtes Gerät Junos OS so konfigurieren, dass es eine TCP/IP-Verbindung mit einer Clientverwaltungsanwendung initiiert. Wenn die Verwaltungsanwendung ein Gerät von Juniper Networks nicht erreicht, z. B. wenn es sich bei dem Gerät um eine Firewall handelt. Kann in solchen Fällen auf dem Gerät von Juniper Networks konfiguriert werden.outbound-ssh
Eine Konfiguration initiiert eine umgekehrte SSH-Verbindung vom Server über den Client zur Verwaltungsanwendung.outbound-ssh
Diese ausgehende SSH-Verbindung wird erst geschlossen, nachdem die Konfiguration vom Gerät entfernt wurde.
Es gibt keinen Initiierungsbefehl mit ausgehendem SSH. Nachdem Sie ausgehende SSH-Verbindung konfiguriert und festgeschrieben haben, beginnt das Gerät, eine ausgehende SSH-Verbindung basierend auf der festgeschriebenen Konfiguration zu initiieren. Das Gerät versucht wiederholt, diese Verbindung herzustellen, bis sie erfolgreich ist. Wenn die Verbindung zwischen dem Gerät und der Clientverwaltungsanwendung unterbrochen wird, versucht das Gerät erneut, eine neue ausgehende SSH-Verbindung herzustellen, bis dies erfolgreich ist. Diese Verbindung wird so lange aufrechterhalten, bis die ausgehende SSH-Zeilengruppe aus der Konfiguration entfernt wird.
Um das Gerät für ausgehende SSH-Verbindungen zu konfigurieren, fügen Sie die Anweisung auf Hierarchieebene ein:outbound-ssh
[edit system services]
[edit system services outbound-ssh
]
In den folgenden Themen werden die Aufgaben zum Konfigurieren des ausgehenden SSH-Diensts beschrieben.
- Senden des öffentlichen SSH-Hostschlüssels an den ausgehenden SSH-Client
- Konfigurieren von Keepalive-Nachrichten für ausgehende SSH-Verbindungen
- Konfigurieren einer neuen ausgehenden SSH-Verbindung
- Konfigurieren Sie den ausgehenden SSH-Client so, dass NETCONF als verfügbarer Dienst akzeptiert wird.
- Konfigurieren ausgehender SSH-Clients
- Konfigurieren von Routing-Instanzen für ausgehende SSH-Clients
Senden des öffentlichen SSH-Hostschlüssels an den ausgehenden SSH-Client
Jedes Mal, wenn der Router oder Switch eine ausgehende SSH-Verbindung aufbaut, sendet er zunächst eine Initiierungssequenz an den Management-Client. Diese Sequenz identifiziert den Router oder Switch mit dem Management-Client. Innerhalb dieser Übertragung ist der Wert von .device-id
Um die Gerätekennung des Routers oder Switches zu konfigurieren, fügen Sie die Anweisung auf Hierarchieebene ein:device-id
[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client client-id] device-id device-id;
Die Initiierungsreihenfolge, wenn nicht konfiguriert ist:secret
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n
Während der Initialisierung einer SSH-Verbindung authentifiziert der Client die Identität des Geräts mithilfe des öffentlichen SSH-Hostschlüssels des Geräts. Bevor der Client die SSH-Sequenz initiieren kann, benötigt der Client daher den öffentlichen SSH-Schlüssel des Geräts. Wenn Sie die Anweisung konfigurieren, übergibt das Gerät seinen öffentlichen SSH-Schlüssel als Teil der Initiierungssequenz für ausgehende SSH-Verbindungen.secret
Wenn die Anweisung festgelegt ist und das Gerät eine ausgehende SSH-Verbindung aufbaut, teilt das Gerät seine Geräte-ID, seinen öffentlichen SSH-Schlüssel und einen SHA1-Hash mit, der teilweise von der Anweisung abgeleitet ist.secret
secret
Der Wert der Anweisung wird vom Gerät und dem Verwaltungsclient gemeinsam genutzt.secret
Der Client verwendet den gemeinsamen geheimen Schlüssel, um den empfangenen öffentlichen SSH-Hostschlüssel zu authentifizieren und zu bestimmen, ob der öffentliche Schlüssel von dem Gerät stammt, das durch die Anweisung identifiziert wird.device-id
Die Verwendung der Anweisung zum Transport des öffentlichen SSH-Hostschlüssels ist optional.secret
Sie können den öffentlichen Schlüssel manuell auf das Clientsystem transportieren und installieren.
Das Einfügen der Anweisung bedeutet, dass das Gerät jedes Mal, wenn es eine Verbindung zum Client herstellt, seinen öffentlichen SSH-Hostschlüssel sendet.secret
Es ist dann Sache des Clients zu entscheiden, was mit dem SSH-Hostschlüssel geschehen soll, wenn der Client bereits einen SSH-Schlüssel für dieses Gerät hat. Es wird empfohlen, die Kopie des SSH-Hostschlüssels des Clients durch den neuen Schlüssel zu ersetzen. Hostschlüssel können sich aus verschiedenen Gründen ändern. Indem Sie den Schlüssel bei jedem Verbindungsaufbau ersetzen, stellen Sie sicher, dass der Client über den neuesten Schlüssel verfügt.
Um den öffentlichen SSH-Hostschlüssel des Routers oder Switches zu senden, wenn das Gerät eine Verbindung zum Client herstellt, fügen Sie die Anweisung auf Hierarchieebene ein:secret
[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client client-id] secret password;
Die folgende Meldung wird vom Gerät gesendet, wenn das Attribut konfiguriert ist:secret
MSG-ID: DEVICE-CONN-INFO\r\n MSG-VER: V1\r\n DEVICE-ID: <device-id>\r\n HOST-KEY: <public-host-key>\r\n HMAC:<HMAC(pub-SSH-host-key, <secret>>)>\r\n
Konfigurieren von Keepalive-Nachrichten für ausgehende SSH-Verbindungen
Nachdem die Clientanwendung über den öffentlichen SSH-Hostschlüssel des Routers oder Switches verfügt, kann sie die SSH-Sequenz so initiieren, als hätte sie die TCP/IP-Verbindung hergestellt. Der Client kann dann das Gerät authentifizieren, indem er eine Kopie des SSH-Schlüssels des öffentlichen Hosts des Routers oder Switches als Teil dieser Sequenz verwendet. Das Gerät authentifiziert den Client-Benutzer über die in unterstützten Mechanismen (RSA/DSA-Authentifizierung für öffentliche Zeichenfolgen oder Kennwort).Junos OS
Damit das Gerät Keepalive-Nachrichten des SSH-Protokolls an die Clientanwendung senden kann, konfigurieren Sie die Anweisung auf Hierarchieebene :keep-alive
[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client client-id] keep-alive { retry number; timeout seconds; }
Konfigurieren einer neuen ausgehenden SSH-Verbindung
Wenn die Verbindung getrennt wird, beginnt das Gerät, eine neue ausgehende SSH-Verbindung zu initiieren. Um anzugeben, wie das Gerät nach dem Verbindungsabbruch wieder eine Verbindung zum Server herstellt, fügen Sie die Anweisung auf Hierarchieebene ein:reconnect-strategy
[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client-id] reconnect-strategy (sticky | in-order);
Sie können auch die Anzahl der Wiederholungsversuche angeben und festlegen, wie lange es dauert, bis die Wiederverbindungsversuche beendet werden. Siehe .Konfigurieren von Keepalive-Nachrichten für ausgehende SSH-Verbindungen
Konfigurieren Sie den ausgehenden SSH-Client so, dass NETCONF als verfügbarer Dienst akzeptiert wird.
Um die Anwendung so zu konfigurieren, dass NETCONF als verfügbarer Dienst akzeptiert wird, fügen Sie die Anweisung auf Hierarchieebene ein:services netconf
[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client client-id] services { netconf; }
Konfigurieren ausgehender SSH-Clients
Um die Clients zu konfigurieren, die für diese ausgehende SSH-Verbindung verfügbar sind, listen Sie jeden Client mit einer separaten Adressanweisung auf Hierarchieebene auf:[edit system services outbound-ssh client client-id]
[edit system services outbound-ssh client client-id] address address { retry number; timeout seconds; port port-number; }
Ausgehende SSH-Verbindungen unterstützen die Adressformate IPv4 und IPv6.
Konfigurieren von Routing-Instanzen für ausgehende SSH-Clients
Um die Management-Routinginstanz zu verwenden, aktivieren Sie zunächst die Routinginstanz mit dem Befehl.mgmt_junos
set system management-instance
Um eine andere Routinginstanz zu verwenden, konfigurieren Sie zunächst die Routinginstanz in der Hierarchie .[edit routing-instances]
Wenn Sie keine Routing-Instanz angeben, stellt Ihr Gerät die ausgehende SSH-Verbindung unter Verwendung der Standard-Routing-Tabelle her.
Konfigurieren von NETCONF-over-SSH-Verbindungen an einem angegebenen TCP-Port
Junos OS ermöglicht es Ihnen, eingehende NETCONF-Verbindungen auf einen bestimmten TCP-Port zu beschränken, ohne eine Firewall zu konfigurieren. Um den TCP-Port zu konfigurieren, der für NETCONF-over-SSH-Verbindungen verwendet wird, fügen Sie die Anweisung auf Hierarchieebene ein.port
[edit system services netconf ssh]
Der konfigurierte Port akzeptiert nur NETCONF-over-SSH-Sitzungen. Reguläre SSH-Sitzungsanfragen für diesen Port werden abgelehnt.
Sie können entweder den Standardport 830 für NETCONF-Verbindungen über SSH konfigurieren, wie in RFC 4742 unter Verwendung des NETCONF-Konfigurationsprotokolls über Secure Shell (SSH) angegeben, oder einen beliebigen Port zwischen 1 und 65535 konfigurieren.
-
Der Standard-SSH-Port (22) akzeptiert weiterhin NETCONF-Sitzungen, auch wenn ein NETCONF-Serverport konfiguriert ist. Um zu verhindern, dass der SSH-Port NETCONF-Sitzungen akzeptiert, geben Sie dies im Anmeldeereignisskript an.
-
Es wird nicht empfohlen, die Standardports für FTP- (21) und Telnet-Dienste (23) für die Konfiguration von NETCONF-over-SSH-Verbindungen zu konfigurieren.
Konfigurieren von Grenzwerten für Kennwortwiederholungen für den Telnet- und SSH-Zugriff
Um Brute-Force- und Wörterbuchangriffe zu verhindern, führt ein Gerät standardmäßig die folgenden Aktionen für Telnet- oder SSH-Sitzungen aus:
Trennt eine Sitzung nach maximal 10 aufeinanderfolgenden Kennwortwiederholungen.
Nach dem zweiten Kennwortwiederholungsversuch führt dies zu einer Verzögerung von 5 Sekunden zwischen nachfolgenden Kennwortwiederholungen.
Beispielsweise führt das Gerät eine Verzögerung von 5 Sekunden zwischen dem dritten und vierten Kennwortwiederholung, eine Verzögerung von 10 Sekunden zwischen dem vierten und fünften Kennwortwiederholung usw. ein.
Erzwingt eine Mindestsitzungszeit von 20 Sekunden, während derer eine Sitzung nicht getrennt werden kann. Durch die Konfiguration der Mindestsitzungszeit wird verhindert, dass böswillige Benutzer Sitzungen trennen, bevor die Verzögerung der Kennwortwiederholung wirksam wird. Die Konfiguration der minimalen Sitzungszeit verhindert auch, dass sie Brute-Force- und Wörterbuchangriffe mit mehreren Anmeldungen versuchen.
Sie können die Grenzwerte für die Kennwortwiederholung für den Telnet- und SSH-Zugriff konfigurieren. In diesem Beispiel konfigurieren Sie das Gerät so, dass es die folgenden Aktionen für Telnet- und SSH-Sitzungen ausführt:
Lassen Sie maximal vier aufeinanderfolgende Kennwortwiederholungen zu, bevor Sie eine Sitzung trennen.
Führen Sie eine Verzögerung von einem Vielfachen von 5 Sekunden zwischen Kennwortwiederholungen ein, die nach dem zweiten Kennwortwiederholungsversuch auftreten.
Erzwingen Sie eine Mindestsitzungszeit von 40 Sekunden, in der eine Sitzung nicht getrennt werden kann.
So konfigurieren Sie Grenzwerte für Kennwortwiederholungen für den Telnet- und SSH-Zugriff:
Beispiel: Konfigurieren eines Filters zum Blockieren des Telnet- und SSH-Zugriffs
Anforderungen
Sie benötigen zwei Geräte, die mit einer freigegebenen Netzwerkverbindung ausgeführt werden Junos OS . Keine spezielle Konfiguration, die über die grundlegende Geräteinitialisierung hinausgeht (Verwaltungsschnittstelle, Fernzugriff, Benutzeranmeldekonten usw.) ist vor der Konfiguration dieses Beispiels erforderlich. Obwohl dies keine zwingende Anforderung ist, wird der Konsolenzugriff auf das R2-Gerät empfohlen.
Unser Content-Testing-Team hat dieses Beispiel validiert und aktualisiert.
Übersicht und Topologie
In diesem Beispiel erstellen Sie einen zustandslosen IPv4-Firewallfilter, der Telnet- oder SSH-Pakete, die an die lokale Routing-Engine gesendet werden, protokolliert und ablehnt, es sei denn, das Paket stammt aus dem Subnetz 192.168.1.0/30 . Der Filter wird auf die Loopback-Schnittstelle angewendet, um sicherzustellen, dass nur Datenverkehr betroffen ist, der für das lokale Gerät bestimmt ist. Sie wenden den Filter in Eingaberichtung an. Ein Ausgabefilter wird nicht verwendet. Dadurch wird der gesamte lokal generierte Datenverkehr zugelassen.
-
Um Pakete abzugleichen, die von einem bestimmten Subnetz oder IP-Präfix stammen, verwenden Sie die IPv4-Übereinstimmungsbedingung, die in Eingaberichtung angewendet wird.
source-address
-
Um Pakete abzugleichen, die für den Telnet-Port und die SSH-Ports bestimmt sind, verwenden Sie die Übereinstimmungsbedingung in Kombination mit a- und IPv4-Übereinstimmungsbedingungen, die in Eingaberichtung angewendet werden.
protocol tcp
port telnet
port ssh
Beispieltopologie
Abbildung 1 zeigt die Testtopologie für dieses Beispiel. Der Firewall-Filter wird auf das R2-Gerät angewendet, wodurch es zum Prüfling wird. Die Geräte R1 und R2 teilen sich eine Verbindung, der das Subnetz 192.168.1.0/30 zugewiesen ist. Beide Geräte verfügen über Loopback-Adressen, die dem Präfix 192.168.255.0/30 mithilfe einer /32-Subnetzmaske zugewiesen wurden. Statische Routen ermöglichen die Erreichbarkeit zwischen Loopbackadressen, da in diesem einfachen Beispiel kein internes Gatewayprotokoll konfiguriert ist.
Konfiguration
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus.Verwenden des CLI-Editors im Konfigurationsmodus
Der Beispielfilter schränkt den Telnet- und SSH-Zugriff auf R2 ein, es sei denn, er stammt aus dem freigegebenen Subnetz bei R1. Wenn Sie SSH oder Telnet verwenden, um direkt auf das R2-Gerät zuzugreifen, verlieren Sie die Verbindung, wenn der Filter angewendet wird. Es wird empfohlen , dass Sie bei der Konfiguration dieses Beispiels über Konsolenzugriff verfügen. Bei Bedarf können Sie das R1-Gerät als Jump-Host verwenden, um eine SSH-Sitzung zu R2 zu starten, nachdem der Filter angewendet wurde. Alternativ können Sie den Beispielfilter so ändern, dass auch das IP-Subnetz zugelassen wird, das dem Computer zugewiesen ist, den Sie für den Zugriff auf das R2-Gerät verwenden.
Führen Sie die folgenden Aufgaben aus, um dieses Beispiel zu konfigurieren:
- CLI-Schnellkonfiguration
- Konfigurieren des R1-Geräts
- Überprüfen und bestätigen Sie die Konfiguration auf dem R1-Gerät.
- Konfigurieren des R2-Geräts
- Überprüfen und bestätigen Sie die Konfiguration auf Gerät R2
CLI-Schnellkonfiguration
Schnellkonfiguration für das R1-Gerät
Um das R1-Gerät schnell zu konfigurieren, bearbeiten Sie die folgenden Befehle nach Bedarf und fügen Sie sie auf Hierarchieebene in die CLI ein.[edit]
Stellen Sie sicher, dass Sie a im Konfigurationsmodus ausgeben, um die Änderungen zu aktivieren.commit
set system host-name R1 set system services ssh root-login allow set interfaces ge-0/0/0 description "Link from R1 to R2" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 set interfaces lo0 unit 0 family inet address 192.168.255.1/32 set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Schnellkonfiguration für das R2-Gerät
Um das R2-Gerät schnell zu konfigurieren, bearbeiten Sie die folgenden Befehle nach Bedarf und fügen Sie sie auf Hierarchieebene in die CLI ein.[edit]
Stellen Sie sicher, dass Sie a im Konfigurationsmodus ausgeben, um die Änderungen zu aktivieren.commit
Erwägen Sie die Verwendung, wenn Sie Änderungen vornehmen, die sich auf den Remotezugriff auf Ihr Gerät auswirken könnten.commit-confirmed
Aktivieren einer Junos OS-Konfiguration, die jedoch bestätigt werden muss
set system host-name R2 set system services ssh root-login allow set system services telnet set interfaces ge-0/0/0 description "Link from R2 to R1" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 set interfaces lo0 unit 0 family inet filter input local_acl set interfaces lo0 unit 0 family inet address 192.168.255.2/32 set firewall family inet filter local_acl term terminal_access from source-address 192.168.1.0/30 set firewall family inet filter local_acl term terminal_access from protocol tcp set firewall family inet filter local_acl term terminal_access from port ssh set firewall family inet filter local_acl term terminal_access from port telnet set firewall family inet filter local_acl term terminal_access then accept set firewall family inet filter local_acl term terminal_access_denied from protocol tcp set firewall family inet filter local_acl term tcp-estab from protocol tcp set firewall family inet filter local_acl term tcp-estab from tcp-established set firewall family inet filter local_acl term tcp-estab then accept set firewall family inet filter local_acl term terminal_access_denied from port ssh set firewall family inet filter local_acl term terminal_access_denied from port telnet set firewall family inet filter local_acl term terminal_access_denied then log set firewall family inet filter local_acl term terminal_access_denied then reject set firewall family inet filter local_acl term default-term then accept set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Konfigurieren des R1-Geräts
Schritt-für-Schritt-Anleitung
Führen Sie die folgenden Schritte aus, um das R1-Gerät zu konfigurieren:
-
Konfigurieren Sie die Schnittstellen:
[edit] user@R1# set interfaces ge-0/0/0 description "Link from R1 to R2" user@R1# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.255.1/32
-
Konfigurieren Sie den Hostnamen und die statische Route zur Loopback-Adresse des R2-Geräts. Außerdem konfigurieren Sie den Telnet- und SSH-Zugriff:
[edit] user@R1# set system host-name R1 user@R1# set system services ssh root-login allow user@R1# set system services telnet user@R1# set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Überprüfen und bestätigen Sie die Konfiguration auf dem R1-Gerät.
Schritt-für-Schritt-Anleitung
Führen Sie die folgenden Schritte aus, um Ihre Kandidatenkonfiguration auf dem R1-Gerät zu überprüfen und zu bestätigen:
-
Bestätigen Sie die Schnittstellenkonfiguration mit dem Befehl configuration mode.
show interfaces
Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit] user@R1# show interfaces ge-0/0/0 { description "Link from R1 to R2"; unit 0 { family inet { address 192.168.1.1/30; } } } lo0 { unit 0 { family inet { address 192.168.255.1/32; } } }
-
Überprüfen Sie, ob die statische Route zum Erreichen der Loopback-Adresse des R2-Geräts verwendet wird und ob SSH- und Telnet-Zugriff aktiviert sind. Verwenden Sie die Befehle und Konfigurationsmodus.
show routing-options
show system services
Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit] user@R1# show routing-options static { route 192.168.255.2/32 next-hop 192.168.1.2; } user@R1# show system services ssh { root-login allow; } telnet;
-
Wenn Sie mit der Konfiguration auf dem R1-Gerät zufrieden sind, bestätigen Sie Ihre Kandidatenkonfiguration.
[edit] user@R1# commit
Konfigurieren des R2-Geräts
Schritt-für-Schritt-Anleitung
Führen Sie die folgenden Schritte aus, um das R2-Gerät zu konfigurieren. Sie beginnen mit der Definition des zustandslosen Firewallfilters, der den Telnet- und SSH-Zugriff selektiv blockiert:
-
Positionieren Sie sich in der Hierarchie :
edit firewall family inet filter
local_acl[edit] user@R2# edit firewall family inet filter local_acl
-
Definieren Sie den Filterbegriff .terminal_access Dieser Begriff erlaubt Telnet und SSH von den angegebenen Quellpräfixen:
[edit firewall family inet filter local_acl] user@R2# set term terminal_access from source-address 192.168.1.0/30 user@R2# set term terminal_access from protocol tcp user@R2# set term terminal_access from port ssh user@R2# set term terminal_access from port telnet user@R2# set term terminal_access then accept
-
Definieren Sie den Filterbegriff .terminal_access_denied Dieser Begriff lehnt SSH und Telnet von allen anderen Quelladressen ab. Dieser Begriff ist so konfiguriert, dass Übereinstimmungen mit dem Begriff protokolliert werden und eine explizite ICMP-Antwort (Internet Control Message Protocol)-Ziel generiert wird, die nicht erreichbar ist, zurück an die Quelle des Pakets. Weitere Informationen zu den Filterprotokollierungsoptionen finden Sie unter Firewall-Filterprotokollierungsaktionen .Firewall Filter Logging Actions
Tipp:Sie können die Aktion verwenden, um die Generierung von ICMP-Fehlermeldungen zurück an die Quelle zu unterdrücken.
discard
Weitere Informationen finden Sie unter Aktionen zum Beenden von Firewall-Filtern .Firewall Filter Terminating Actions[edit firewall family inet filter local_acl] user@R2# set term terminal_access_denied from protocol tcp user@R2# set term terminal_access_denied from port ssh user@R2# set term terminal_access_denied from port telnet user@R2# set term terminal_access_denied then log user@R2# set term terminal_access_denied then reject user@R2# set term default-term then accept
- Optional.
Definieren Sie den Filterbegriff .tcp-estab Dieser Begriff erlaubt den ausgehenden Zugriff auf das Internet, um Verbindungen zur Juniper Mist Cloud zu unterstützen ( ist eine Bitfeldübereinstimmungsbedingung, die auf eine aufgebaute TCP-Sitzung, aber nicht auf das erste Paket einer TCP-Verbindung hinweist):tcp-establishedtcp-flags "(ack | rst)"
[edit firewall family inet filter local_acl] user@R2# set term tcp-estab from protocol tcp user@R2# set term tcp-estab from tcp-established user@R2# set term tcp-estab then accept
-
Definieren Sie den Filterbegriff .default-term Diese Bedingung akzeptiert den gesamten anderen Datenverkehr. Denken Sie daran, dass zustandslose Filter am Ende einen impliziten Verweigerungsbegriff haben.Junos OS Dieses Verhalten wird überschrieben, indem der Filter mit einer expliziten Annahmeaktion beendet wird.default-term Das Beenden des Filters führt dazu, dass der gesamte andere Datenverkehr vom Filer akzeptiert wird.
HINWEIS:In diesem Beispiel lassen wir den gesamten anderen Datenverkehr zu, aber für Ihr Netzwerk möchten Sie möglicherweise die Routing-Engine sichern. Weitere Informationen finden Sie unter Schützen der Routing-Engine .https://www.juniper.net/documentation/us/en/software/junos/routing-policy/topics/example/routing-stateless-firewall-filter-security-accept-traffic-from-trusted-source-configuring.html
[edit firewall family inet filter local_acl] user@R2# set term default-term then accept
-
Konfigurieren Sie die Loopback-Schnittstelle, und wenden Sie den Filter in Eingaberichtung an:
[edit] user@R2# set interfaces lo0 unit 0 family inet filter input local_acl user@R2# set interfaces lo0 unit 0 family inet address 192.168.255.2/32
-
Konfigurieren Sie den Hostnamen, die ge-0/0/0-Schnittstelle, die statische Route zur Loopback-Adresse des R1-Geräts und aktivieren Sie den Fernzugriff über SSH und Telnet:
[edit] user@R2# set system host-name R2 user@R2# set system services ssh root-login allow user@R2# set system services telnet user@R2# set interfaces ge-0/0/0 description "Link from R2 to R1" user@R2# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 user@R2# set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Überprüfen und bestätigen Sie die Konfiguration auf Gerät R2
Schritt-für-Schritt-Anleitung
Führen Sie die folgenden Schritte aus, um Ihre Kandidatenkonfiguration auf dem R2-Gerät zu überprüfen und zu bestätigen:
-
Bestätigen Sie die Konfiguration des zustandslosen Firewallfilters mit dem Befehl configuration mode.
show firewall
Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit] user@R2# show firewall family inet { filter local_acl { term terminal_access { from { source-address { 192.168.1.0/30; } protocol tcp; port [ssh telnet]; } then accept; } term terminal_access_denied { from { protocol tcp; port [ssh telnet]; } then { log; reject; } } term default-term { then accept; } } }
-
Bestätigen Sie die Schnittstellenkonfiguration und filtern Sie die Anwendung mit dem Befehl Konfigurationsmodus.
show interfaces
Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit] user@R2# show interfaces ge-0/0/0 { description "Link from R2 to R1"; unit 0 { family inet { address 192.168.1.2/30; } } } lo0 { unit 0 { family inet { filter { input local_acl; } address 192.168.255.2/32; } } }
-
Überprüfen Sie die statische Route, die zum Erreichen der Loopback-Adresse des R1-Geräts verwendet wird, und stellen Sie sicher, dass Telnet- und SSH-Zugriff aktiviert sind. Verwenden Sie die Befehle und Konfigurationsmodus.
show routing-options
show system services
Wenn die Befehlsausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.[edit] user@R2# show routing-options static { route 192.168.255.1/32 next-hop 192.168.1.1; } user@R2# show system services ssh { root-login allow; } telnet;
-
Wenn Sie mit der Konfiguration auf dem R2-Gerät zufrieden sind, bestätigen Sie Ihre Kandidatenkonfiguration.
Tipp:Erwägen Sie die Verwendung, wenn Sie Änderungen vornehmen, die sich auf den Remotezugriff auf Ihr Gerät auswirken könnten.
commit-confirmed
[edit] user@R2# commit
Überprüfen des zustandslosen Firewallfilters
Vergewissern Sie sich, dass der Firewall-Filter zur Beschränkung des Telnet- und SSH-Zugriffs ordnungsgemäß funktioniert.
Akzeptierte Pakete überprüfen
Zweck
Stellen Sie sicher, dass der Firewallfilter SSH und Telnet korrekt zulässt, wenn der Datenverkehr aus dem Subnetz 192.168.1.0/30 stammt.
Was
-
Löschen Sie das Firewall-Protokoll auf Ihrem Router oder Switch.
user@R2> clear firewall log
-
Verwenden Sie von einem Host mit einer IP-Adresse innerhalb des Subnetzes 192.168.1.0/30 einen Befehl, um zu überprüfen, ob Sie sich über SSH von einer zulässigen Quelladresse aus beim Gerät anmelden können.
ssh 192.168.255.2
Dieses Paket sollte akzeptiert werden, aber die Paket-Header-Informationen für dieses Paket sollten nicht im Protokollpuffer des Firewallfilters in der Paketweiterleitungs-Engine protokolliert werden. Sie werden aufgefordert, den SSH-Hostschlüssel zu speichern, wenn dies die erste SSH-Anmeldung zwischen diesen Geräten ist.userHINWEIS:Standardmäßig bezieht das R1-Gerät den SSH-Datenverkehr von der Ausgangsschnittstelle, die zum Erreichen des Ziels verwendet wird. Daher wird dieser Datenverkehr von der Adresse 192.168.1.1 bezogen, die der ge-0/0/0-Schnittstelle des R1-Geräts zugewiesen ist.
user@R1>ssh 192.168.255.2 Password: Last login: Wed Aug 19 09:23:58 2020 from 192.168.1.1 --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Melden Sie sich am R2-Gerät von der CLI ab, um die SSH-Sitzung zu schließen.
user@R2> exit logout Connection to 192.168.255.2 closed. user@R1>
-
Verwenden Sie von einem Host mit einer IP-Adresse innerhalb des Subnetzes 192.168.1.0/30 den Befehl, um zu überprüfen, ob Sie sich über Telnet von einer zulässigen Quelladresse aus bei Ihrem Router oder Switch anmelden können.
telnet 192.168.255.2
Dieses Paket sollte akzeptiert werden, aber die Paket-Header-Informationen für dieses Paket sollten nicht im Protokollpuffer des Firewallfilters in der Paketweiterleitungs-Engine protokolliert werden.user@host-A> telnet 192.168.255.2 Trying 192.168.255.2... Connected to 192.168.255.2. Escape character is '^]'. login: user Password: --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Melden Sie sich von der CLI ab, um die Telnet-Sitzung mit dem R2-Gerät zu schließen.
user@R2:~ # exit Connection closed by foreign host. root@R1>
-
Verwenden Sie den Befehl, um zu überprüfen, ob der Firewallprotokollpuffer in der Packet Forwarding Engine (PFE) des R2-Geräts keine Einträge mit einer Quelladresse im Subnetz 192.168.1.0/30 enthält.
show firewall log
user@R2> show firewall log
Überprüfen von protokollierten und abgelehnten Paketen
Zweck
Stellen Sie sicher, dass der Firewallfilter SSH- und Telnet-Datenverkehr, der nicht aus dem Subnetz 192.168.1.0/30 stammt, korrekt ablehnt.
Was
-
Löschen Sie das Firewall-Protokoll auf Ihrem Router oder Switch.
user@R2> clear firewall log
-
Generieren Sie SSH-Datenverkehr, der von der Loopback-Adresse des R1-Geräts stammt. Die Quelladresse dieses Datenverkehrs liegt außerhalb des zulässigen Subnetzes 192.168.1.0/30 . Verwenden Sie den Befehl, um sicherzustellen, dass Sie sich von dieser Quelladresse aus nicht über SSH beim Gerät anmelden können.
ssh 192.168.255.2 source 192.168.255.1
Dieses Paket sollte zurückgewiesen werden, und die Paket-Header-Informationen sollten im Protokollpuffer des Firewallfilters protokolliert werden.user@R1 ssh 192.168.255.2 source 192.168.255.1 ssh: connect to host 192.168.255.2 port 22: Connection refused root@R1>
Die Ausgabe zeigt , dass die SSH-Verbindung abgelehnt wird. Diese Ausgabe bestätigt, dass der Filter eine ICMP-Fehlermeldung generiert und dass SSH-Datenverkehr korrekt blockiert wird, wenn er von einer unzulässigen Quelladresse gesendet wird.
-
Generieren Sie Telnet-Datenverkehr, der von der Loopback-Adresse des R1-Geräts stammt. Die Quelladresse dieses Datenverkehrs liegt außerhalb des zulässigen Subnetzes 192.168.1.0/30 . Verwenden Sie den Befehl, um sicherzustellen, dass Sie sich von dieser Quelladresse aus nicht über Telnet beim Gerät anmelden können.
telnet 192.168.255.2 source 192.168.255.1
Dieses Paket sollte zurückgewiesen werden, und die Paket-Header-Informationen für dieses Paket sollten im Protokollpuffer des Firewallfilters in der PFE protokolliert werden.user@R1> telnet 192.168.255.2 source 192.168.255.1 Trying 192.168.255.2... telnet: connect to address 192.168.255.2: Connection refused telnet: Unable to connect to remote host
Die Ausgabe zeigt , dass die Telnet-Verbindung abgelehnt wurde. Diese Ausgabe bestätigt, dass der Filter eine ICMP-Fehlermeldung generiert und dass Telnet-Datenverkehr korrekt blockiert wird, wenn er von einer unzulässigen Quelladresse gesendet wird.
-
Verwenden Sie den Befehl, um zu überprüfen, ob der Firewall-Protokollpuffer auf dem R2-Gerät Einträge enthält, aus denen hervorgeht , dass Pakete mit der Quelladresse 192.168.255.1 zurückgewiesen wurden .
show firewall log
user@R2> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 15:17:11 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2 15:12:04 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2
Die Ausgabe bestätigt, dass der Datenverkehr von der Quelladresse 192.168.255.1 mit dem Begriff des Filters übereinstimmt.terminal_access_denied In der Spalte wird ein angezeigt, um anzuzeigen , dass diese Pakete zurückgewiesen wurden.
Action
R
Die Schnittstelle, das Transportprotokoll sowie die Quell- und Zieladressen werden ebenfalls aufgeführt. Diese Ergebnisse bestätigen , dass der Firewallfilter für dieses Beispiel ordnungsgemäß funktioniert.
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Feature Explorer, um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.
no-password-authentication
no-challenge-response
edit system services ssh
sftp-server
[edit system services ssh]
ssh-dss
ssh-dsa
routing-instance
[edit system services outbound-ssh]