Wie man

Teleport - Sicherer Zugriff auf Linux-Systeme und Kubernetes

Teleport - Sicherer Zugriff auf Linux-Systeme und Kubernetes

Bei diesem Verzicht auf vernetzte Systeme ist es absolut entscheidend, dass jedes Asset, jedes Dokument und jede Information so weit wie möglich vor neugierigen Blicken und Ohren geschützt ist. Was dies noch schlimmer macht, ist, dass es eine wachsende Zahl dieser unappetitlichen Augen und Ohren gibt und es mit jedem wachen Tag schwieriger und kniffliger wird, sie von Ihren Systemen fernzuhalten. Was also tun to? Innovationen von guten Köpfen in unserer Welt haben Lösungen hervorgebracht, die sie zumindest abwehren und ihre Bemühungen erschweren können. Teleport ist eine dieser Lösungen und wir werden in dieser kurzen Anleitung ausführlich darüber sprechen.

Gravitational Teleport ist ein Gateway zur Verwaltung des Zugriffs auf Cluster von Linux-Servern über SSH oder die Kubernetes-API. Es soll anstelle von traditionellem OpenSSH für Organisationen verwendet werden, die Folgendes benötigen: Quelle: Teleport Documentation

Umfassende Funktionen von Teleport

Teleport bietet beeindruckende neue Funktionen, die traditionelle Administratoren und Entwickler genießen werden. Sie beinhalten:

Angepasst von der offiziellen Teleport-Website, kommt Teleport als drei Binärdateien: die Teleport-Daemon, das tsh Kunde, und die tctl Verwaltungstool. Sie sind frei von Abhängigkeiten, in einer kompilierten Sprache geschrieben und laufen auf jedem UNIX-kompatiblen Betriebssystem wie Linux, FreeBSD oder macOS. Teleport ist Open Source unter der Apache 2-Lizenz und der Quellcode ist auf Github verfügbar.

Teleport ist einfach bereitzustellen. Es ist ein traditioneller Linux-Daemon ähnlich wie sshd und läuft normalerweise als systemd-Dienst.

Installation des Teleport-Tools

Teleport-Kerndienst Teleport und Admin-Tool tctl wurden für die Ausführung auf Linux- und Mac-Betriebssystemen entwickelt. Der Teleport-Benutzerclient tsh und UI sind für Linux-, Mac- und Windows-Betriebssysteme verfügbar.

Teleport unter Linux installieren

Die folgenden Beispiele installieren die 64-Bit-Version von Teleport-Binärdateien, aber auch 32-Bit- (i386) und ARM-Binärdateien sind verfügbar. Auf der Seite „Neueste Version“ finden Sie die aktuellsten Informationen.

Vom Tarball installieren

curl -O https://get.Gravitation.com/teleport-v5.0.0-linux-amd64-bin.Teer.gz tar -xzf teleport-v5.0.0-linux-amd64-bin.Teer.gz cd teleportieren sudo ./install Teleport-Binärdateien wurden nach /usr/local/bin kopiert

Teleport-SystemD-Dienst konfigurieren

Wir können systemd nutzen, um die Lebenszyklusprozesse des Teleports zu verwalten, wie z. B. das Starten und Stoppen des Dienstes. Erstellen Sie den Teleport-Systemdienst wie folgt:

$ sudo vim /etc/systemd/system/teleport.service [Einheit] Description=Teleport SSH Service After=network.target [Service] Type=simple Restart=on-failure EnvironmentFile=-/etc/default/teleport ExecStart=/usr/local/bin/teleport start --pid-file=/run/teleport.pid ExecReload=/bin/kill -HUP $MAINPID PIDFile=/run/teleport.pid LimitNOFILE=8192 [Install] WantedBy=multi-user.Ziel

Dann den Daemon neu laden, den Dienst starten und aktivieren

sudo systemctl daemon-reload sudo systemctl teleport starten sudo systemctl teleport aktivieren

Sie können den Status überprüfen, um zu bestätigen, dass alles ohne Probleme gestartet wurde

$ sudo systemctl Status Teleport ● Teleport.service - Teleport SSH Service Geladen: geladen (/etc/systemd/system/teleport.Bedienung; aktiviert; Herstellervoreinstellung: deaktiviert) Aktiv: aktiv (läuft) seit Mo 2020-12-14 07:31:33 UTC; vor 1h 2min Main PID: 2053 (teleport) Aufgaben: 9 (limit: 11004) Speicher: 35.0M CGroup: /system.schneiden/teleportieren.service └─2053 /usr/local/bin/teleport start --pid-file=/run/teleport.pid 14. Dez. 07:31:35 centos8.localdomain teleport[2053]: [NODE] Dienst 5.0.0:v5.0.0-0-gac4971801 beginnt bei 0.0.0.0:3022. 14. Dez. 07:31:35 Centos8.localdomain teleport[2053]: список прокси не используется Reverse-Tunnel-Dienst 5.0.0:v5.0.0-0-gac4971801 beginnt bei 0.0.0.0:3024. 14. Dez. 07:31:35 Centos8.localdomain teleport[2053]: список прокси не используется Web-Proxy-Dienst 5.0.0:v5.0.0-0-gac4971801 beginnt bei 0.0.0.0:3080. 14. Dez. 07:31:35 Centos8.localdomain teleport[2053]: список прокси не используется SSH-Proxy-Dienst 5.0.0:v5.0.0-0-gac4971801 beginnt bei 0.0.0.0:3023.

Auf CentOS aus dem RPM-Repository installieren

Wenn Sie CentOS verwenden, können Sie Folgendes verwenden, falls Ihnen die Tarball-Installationsmethode nicht gefällt:

sudo yum-config-manager --add-repo https://rpm.Veröffentlichungen.teleportieren.Entwickler/Teleport.repo sudo yum install teleport -y

Installieren Sie auf Debian Ubuntu von .deb-Paket

Wenn Sie ein Debian-basiertes System verwenden, können Sie Folgendes verwenden, falls Ihnen die Tarball-Installationsmethode nicht gefällt

$ curl https://get.Gravitation.com/teleport_5.0.0_amd64.deb.sha256 $ curl -O https://get.Gravitation.com/teleport_5.0.0_amd64.deb $ sha256sum teleport_5.0.0_amd64.deb # Überprüfen Sie, ob die Prüfsummen übereinstimmen $ sudo dpkg -i teleport_5.0.0_amd64.deb $ welcher Teleport /usr/local/bin/teleport

Teleport auf macOS installieren

Dank Homebrew lässt sich telport auf macOS ganz einfach wie folgt installieren:

$ brauen installieren Teleport

So konfigurieren Sie Teleport

Beim Einrichten von Teleport empfiehlt das Entwicklerteam, es mit der YAML-Konfigurationsdatei von Teleport auszuführen, wie unten gezeigt:

$ sudo nano /etc/teleport.yaml teleport: data_dir: /var/lib/teleport auth_service: enabled: true cluster_name: "teleport-quickstart" listen_addr: 0.0.0.0:3025 Token: - proxy,node,app:f7adb7ccdf04037bcd2b52ec6010fd6f0caec94ba190b765 public_addr: 172.20.192.38:3025 ssh_service: aktiviert: wahr Labels: env: Staging app_service: aktiviert: wahr debug_app: wahr proxy_service: aktiviert: wahr listen_addr: 0.0.0.0:3023 web_listen_addr: 0.0.0.0:3080 tunnel_listen_addr: 0.0.0.0:3024 public_addr: 172.20.192.38:3080

Aus der obigen Konfiguration werden Sie feststellen, dass die Teleportdaten des Verzeichnisses beibehalten werden (/var/lib/teleport). Damit alles richtig funktioniert, müssen wir diesem Verzeichnis die erforderlichen Berechtigungen erteilen, damit Teleport und tctl kann lesen und schreiben. Führen Sie dazu den folgenden Befehl aus

sudo chmod 755 -R /var/lib/teleport/

Nach dem Aktualisieren der Konfigurationsdatei müssen wir die erforderlichen Ports, die in der Datei definiert sind, wie folgt öffnen

##Unter CentOS sudo Firewall-cmd --permanent --add-port=3023,3080,3024,3025/tcp sudo Firewall-cmd --reload ##Unter Ubuntu sudo ufw zulassen 3023,3080,3024,3025/ tcp

Konfigurieren Sie sicheres https mit selbstgesungenen Zertifikaten

Teleport verwendet sicheres https. Wenn Sie über Zertifikate verfügen, können Sie diese am Ende der Konfigurationsdatei des Teleports hinzufügen. Für dieses Beispiel werden wir ein selbstsigniertes Zertifikat für unsere Verwendung einrichten. Gehen Sie so vor, um es zu erstellen:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/teleport2.key -out /etc/pki/tls/certs/teleport2.crt

Dies wird Ihnen einige Fragen stellen, wie unten gezeigt. Geben Sie die richtigen für Ihre Umgebung ein. Wenn Sie kein DNS haben, können Sie Ihre Domainnamen unter . hinzufügen /etc/hosts auf deinen Servern

----- Country Name (2-Buchstaben-Code) [XX]:KE State or Province Name (vollständiger Name) []:Nairobi Locality Name (z. B. Stadt) [Default City]: Nairobi Organization Name (z. B. Firma) [Default Company Ltd]: computingforgeeks Name der Organisationseinheit (zB Abschnitt) []:IT Common Name (zB Ihr Name oder der Hostname Ihres Servers) []:teleport.Computerforgeeks.com E-Mail-Adresse []:[email protected]

Aktualisieren Sie danach Ihre Konfigurationsdatei mit den Zertifikaten wie unten gezeigt

teleport: data_dir: /var/lib/teleport auth_service: enabled: true cluster_name: "teleport-quickstart" listen_addr: 0.0.0.0:3025 Token: - proxy,node,app:f7adb7ccdf04037bcd2b52ec6010fd6f0caec94ba190b765 public_addr: 172.20.192.38:3025 ssh_service: aktiviert: wahr Labels: env: Staging app_service: aktiviert: wahr debug_app: wahr proxy_service: aktiviert: wahr listen_addr: 0.0.0.0:3023 web_listen_addr: 0.0.0.0:3080 tunnel_listen_addr: 0.0.0.0:3024 ##Teil dieser Konfiguration aktualisiert/hinzugefügt public_addr: 172.20.192.38:3080 https_keypairs: - key_file: /etc/pki/tls/private/teleport2.Schlüsselzertifikatsdatei: /etc/pki/tls/certs/teleport2.crt

Dann Teleport neu starten

sudo systemctl teleport neu starten

Zu diesem Zeitpunkt können Sie auf die Teleport-Web-Benutzeroberfläche zugreifen unter:https://IP-oder-Domain-Name:3080“. Öffnen Sie einfach Ihren bevorzugten Browser und verweisen Sie ihn auf Ihren Server am angegebenen Port (3080). Das solltest du sehen:

Aber wie Sie feststellen werden, haben wir keine Benutzer, die sich in die Anwendung einloggen können. Wir werden das daher als nächstes angehen.

Erstellen Sie einen Teleport-Benutzer

Wie jeder andere Authentifizierungsdienst benötigt Teleport Benutzer und ihre Anmeldeinformationen, damit sie sich anmelden und die Server verwenden können, die unter seinem Schutz stehen. Zu beachten ist, dass Teleport standardmäßig immer die Verwendung der 2-Faktor-Authentifizierung erzwingt. Es unterstützt Einmalpasswörter (OTP) und Hardware-Token (U2F). Dieser Schnellstart verwendet OTP - Sie benötigen eine OTP-kompatible App, die einen QR-Code scannen kann.

Wenn Sie nicht über die Berechtigung zum Erstellen neuer Benutzer auf dem Linux-Host verfügen, führen Sie tctl-Benutzer fügen Teleport hinzu $(whoami) um Teleport ausdrücklich zu erlauben, sich als der Benutzer zu authentifizieren, mit dem Sie gerade angemeldet sind.

tctl-Benutzer fügen geeks-admin root hinzu Benutzer geeks-admin wurde erstellt, erfordert aber ein Passwort. Teilen Sie diese URL mit dem Benutzer, um die Benutzereinrichtung abzuschließen, Link ist gültig für 1h0m0s: https://teleport.Computerforgeeks.com:3080/web/invite/2ef0091feea7fea0a210f53a1d8751d3 HINWEIS: Stellen Sie sicher, dass centos8.localdomain:3080 zeigt auf einen Teleport-Proxy, auf den Benutzer zugreifen können.

Die von Ihnen angegebenen Benutzer (wie in unserem Beispiel root) müssen vorhanden sein! Dies bedeutet, dass sich Geeks-admin bei den Servern in Teleport-Clusterservern als Root anmelden kann.

Nachdem der Befehl ausgeführt wurde, sehen Sie die Nachricht, die er in der Shell anzeigt. Kopieren Sie die bereitgestellte URL und fahren Sie mit der Einrichtung des neuen Benutzers fort: „https://teleport.Computerforgeeks.com:3080/web/invite/2ef0091feea7fea0a210f53a1d8751d3

Sobald Sie die URL in Ihrem Browser aufrufen, sehen Sie eine neue Anmeldeseite mit einem QR-Code wie oben gezeigt. Um einen neuen Benutzer einzurichten, empfehlen wir die Verwendung der Google Authenticator App aus dem Play Store. Laden Sie es herunter und installieren Sie es aus dem Play Store, wie auf den Screenshots unten gezeigt.

Sobald es heruntergeladen und installiert ist, öffnen Sie es und wählen Sie „QR-Code scannen“.

Dadurch wird deine Kamera geöffnet. Positionieren Sie Ihre Kamera, um den QR-Code zu lesen, und Sie sehen einen Code auf Ihrem Telefon. Dies ist das "Zwei-Faktor-Token“ auf der Teleport-Login-Seite. Geben Sie ein neues Passwort für den Benutzer ein und dann den Code auf Ihrem Telefon unter „Zwei-Faktor-Token" dann klick "Benutzerkonto erstellen“.

Wenn alles gut geht, wird der neue Benutzer wie unten dargestellt in das Dashboard geleitet:

Erstaunliche Sachen richtig!

Hinzufügen eines Knotens zum Teleport-Cluster

Wenn Sie Teleport früher eingerichtet haben, haben wir ein starkes statisches Token für Knoten und Apps im konfiguriert teleportieren.jaml Datei. Das Hinzufügen von Knoten als Teil des Clusters ist jetzt ziemlich einfach. Wir werden dieses Token in diesem Schritt verwenden. Installieren Sie zuerst Teleport auf dem Zielknoten und starten Sie es dann mit einem Befehl wie unten gezeigt.

$ sudo teleport start --roles=node \ --token=f7adb7ccdf04037bcd2b52ec6010fd6f0caec94ba190b765 \ --auth-server=teleport.Computerforgeeks.com:3025 [Knoten] Dienst 5.0.0:v5.0.0-0-gac4971801 beginnt bei 0.0.0.0:3022.

Überprüfen und aktualisieren Sie Auth-Server, App-Name und App-uri, bevor Sie diesen Befehl ausführen.

Falls Sie die folgende Fehlermeldung erhalten, löschen Sie /var/lib/teleport Ordner auf dem Knoten, den Sie dem Cluster hinzufügen möchten, und führen Sie den obigen Befehl erneut aus.

Knoten konnte keine Verbindung zum Cluster herstellen: Holen Sie sich "https://172.20.192.38:3025/v1/webapi/find": x509: Zertifikat von unbekannter Autorität signiert. Zeit/Schlaf.gehen:148

Wenn Sie sich wieder bei der Teleport-Web-UI anmelden, sollten Sie den zweiten Knoten in der Liste der Server wie unten gezeigt sehen können

Anmelden bei den Servern über Teleport Web-UI

Von Ihrem Webinterface aus können Sie ganz einfach auf das Terminal Ihrer Server zugreifen. Klicken Sie einfach auf „Verbinden”-Schaltfläche, dann wählen Sie den richtigen Benutzer aus, der sich mit dem Server verbindet. Auf diese Weise können Sie eine SSH-Verbindung zum Server herstellen und als der von Ihnen gewählte Benutzer auf das Terminal zugreifen. Da wir in diesem Beispiel nur den Root-Benutzer hinzugefügt haben, klicken wir darauf

Und der Browser öffnet einen neuen Tab und leitet uns ein.

Abschließende Bemerkungen

Wenn du es geschafft hast, so weit zu kommen, dann bist du unglaublich. Teleport ist ein vielversprechendes Projekt, das alle Sicherheitsfunktionen in sich vereint, die Sie immer in Ihrer Umgebung beneiden. Es bedient nicht nur Server, sondern verwaltet auch Kubernetes-Cluster und vieles mehr. Schau es dir auf der Teleport-Seite an und genieße es.

Ansonsten ist es ein festlicher Abend und auch wenn wir noch von dieser dunklen Wolke von Covid umhüllt sind, wünschen wir euch Sicherheit und Gesundheit beim Feiern mit euren Liebsten. Sie können weiter unten weiterlesen, was geteilt wird

Installieren und verwenden Sie Guacamole Remote Desktop auf CentOS 8

Erledige meine Managementaufgabe in 8 Stunden Life-Hacks beim Schreiben einer Arbeit in letzter Minute
(https://www.pexels.com/photo/writing-notes-idea-class-7103/)Es hängt natürlich von der Größe der Aufgabe ab, aber Sie können in 8 Stunden eine über d...
Tipps zum Erledigen von Hausaufgaben in Naturwissenschaften und Programmierfächern mit AssignCode.com
So wie Studierende der Geisteswissenschaften danach streben, gute Aufsätze auf Englisch zu schreiben oder Sprachuntersuchungen durchzuführen, finden S...
So verwenden Sie die Telefonnummer, um den Standort einer Person zu verfolgen?
Wenn die Idee, den Standort von jemandem zu verfolgen, an unsere Vorstellungskraft klopft, denken wir, dass es sich um einen High-Tech-Job handeln mus...