Normale Ansicht

Ältere BeiträgeHaupt-Feeds

SSH - Zugangsberechtigungen via Schlüssel einschränken

26. Dezember 2024 um 19:48

Bekanntermaßen sind SSH-Verbindungen weitestgehend das Standardverfahren, um Serververbindungen sicher aufzubauen.
Normalerweise kommt in Bezug auf Authentifizierung eine Kombination aus Nutzernamen und Passwort zum Einsatz. Es gibt aber auch Varianten mit Zertifikat oder Schlüssel.
Letzteres sollte nicht nur Standard, sondern heute auch Thema sein. Üblicherweise erhältst du via SSH Vollzugriff (oke vielleicht kein root), es besteht allerdings die Möglichkeit diesen per authorized keys zu regulieren, so kannst du in einem SSH Schlüssel etwa eine IP-Beschränkung hinterlegen, um einen Zugriff weiter einzuschränken.

SSH AuthorizedKeysFile Format

In einem Standardsetup findest du vorhandene Schlüssel unter ~/.ssh/authorized_keys und genau hier möchte ich heute einen genaueren Blick darauf werfen.
Dort liegen die öffentlichen SSH-Schlüssel, die einen bestimmten Aufbau haben, dazu gleich mehr. Auch wird zwischen Version 1 und Version 2 unterschieden, wobei zwei der Standard sein sollte.
Ältere Semester kennen eventuell noch  ~/.ssh/authorized_keys2,  was ursprünglich für den zweiten Protokolltyp vorgesehen war, allerdings seit 2001 deprecated ist und heute maximal noch von böswilligen Akteuren missbraucht wird.
Zurück zu den Schlüsseln, folgende Aufteilung besitzen diese laut Norm:

  • Öffentliche Schlüssel des Protokolls 1 bestehen aus den folgenden durch Leerzeichen getrennten Feldern: Optionen, Bits, Exponent, Modulus, Kommentar.
  • Öffentliche Schlüssel des Protokolls 2 bestehen aus: Optionen, Keytype, base64-kodierter Schlüssel, Kommentar
  • Das Optionsfeld ist optional. Sein Vorhandensein wird dadurch bestimmt, ob die Zeile mit einer Zahl beginnt oder nicht (das Optionsfeld beginnt nie mit einer Zahl).
  • Die Optionen (falls vorhanden) bestehen aus durch Kommata getrennten Optionsangaben.

Im Detail ermöglichen sie, verschiedene Werte mitzugeben und anderen eine IP-Einschränkung.

SSH - Zugangsberechtigungen einschränken

Hier ein erstes Beispiel:

from="192.168.1.?,*.example.com" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com

Zur Erklärung: Du kannst in den Optionen Wildcards setzen. Das heißt, im Beispiel oben hätte 192.168.1.1-9 Zugriff, sowie Subdomains von example.com.

Eine weitere Möglichkeit wäre, die Option command zu verwenden, um direkte Befehle zu hinterlegen:
 

command="bash /opt/startworkflow" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com

command="/opt/mehrere_befehle.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com

Der Nutzer hat hier nur das Recht, das vorgegebene Kommando auszuführen, nicht mehr und nicht weniger

Kontrollieren kannst du solche Kommandos mit der Variable $SSH_ORIGINAL_COMMAND. Diese enthält die ursprüngliche Befehlszeile
sobald ein erzwungener Befehl ausgeführt wird.
Wenn du mehrere Befehle erlauben willst, kommst du nicht drumherum, ein Script zu schreiben, was diese Beschränkungen mehr oder weniger aushebelt.

Ein weiteres Beispiel zeigt die Verwendungen der Kommandos für SSH Tunneling bzw. Port Forwarding:

restrict,port-forwarding,permitopen="localhost:8765" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQu9QfY+g0XRVbRTaMPLRN2PVmrRCpaDRaxTHPqggn3 user@example.com

Hier wird explizit erlaubt, eine Verbindung auf Port 8765 herzustellen und alles andere bitte bleiben zu lassen. Auch echter Shell-Zugang (no-pty ist in restrict enthalten) wird unterbunden.


     restrict
Enable all restrictions, i.e. disable port, agent and X11 forwarding, as well as disabling PTY allocation and execution of ~/.ssh/rc.  If any future restriction capabilities are added to authorized_keys files they will be included in this set.

 

Du hast nun einen kleinen Einblick in die vielfältigen Konfigurationsmöglichkeiten von SSH-Schlüsseln erhalten. Gerade IP-Beschränkungen oder Limitierung auf Befehle kommen im Alltag vor und sind in diesem Sinne keine neue Methode.
SSH Tunneling ist eigentlich schon wieder ein anderes Kapitel.
Einen Überblick der SSH Befehle findest du bei den Ubuntu Manpages. Viel Spaß.

 

Wie kann ich die Dokumentation von docs.redhat.com am einfachsten als PDF herunterladen?

18. November 2024 um 05:00

Unter ‚http://docs.redhat.com‚ findet man gesammelt und sortiert Red Hats Dokumentation, z.B. zu Ansible Automation Platform, OpenShift, RHEL, RHV, Satellite, etc.

Neben der Online-Version im Single- und Multi-Page-Format kann man die einzelnen Texte auch als PDF herunterladen. Dies manuell zu tun, ist allerdings mühselig. Deutlich leichter geht es mit dem PDF Document Downloader von Kazuo Moriwaka. Es handelt sich dabei um ein Bash-Skript, bestehend aus awk, curl, grep, und parallel, welches als Argument die Basis-URL für eine Produktkategorie übernimmt und anschließend alle PDF-Dateien ermittelt und herunterlädt.

Klingt gut? So bekommt ihr das Skript:

  1. Ladet euch die aktuelle Version als Zip-Datei aus dem Gist herunter
  2. Entpackt das Zip-Archiv in ein Verzeichnis eurer Wahl, z.B. nach ~/bin/
  3. Macht das Skript ausführbar: chmod u+x ~/bin/fetchdoc.sh

Folgender Code-Block zeigt einige Beispiele, mit denen ich mir einen Teil der Dokumentation auf mein Laptop gezogen habe:

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10-beta

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_satellite/6.15

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_satellite/6.16

$ ~/bin/fetchdoc.sh https://docs.redhat.com/en/documentation/red_hat_virtualization/4.4

Thank you Kazuo Moriwaka for this awesome little helper!

Arch Linux Installation via ArchInstall Script

Von:MK
10. Mai 2024 um 16:30

Arch Linux gilt vielen als zu kompliziert und anspruchsvoll. Dies zeigt sich schon zu Beginn bei der Installation. Es gibt keinen grafischen Installer. Die Schritte müssen selbst durchgeführt werden. Doch mittlerweile gibt es ein offizielles Script, das die Installation etwas erleichtert. Genau um dieses Script geht es in diesem Beitrag. Viel Spaß. Dies ist ein...

Der Beitrag Arch Linux Installation via ArchInstall Script erschien zuerst auf MichlFranken.

Arch Linux Installation via ArchInstall Script

Von:MK
10. Mai 2024 um 16:30

Arch Linux gilt vielen als zu kompliziert und anspruchsvoll. Dies zeigt sich schon zu Beginn bei der Installation. Es gibt keinen grafischen Installer. Die Schritte müssen selbst durchgeführt werden. Doch mittlerweile gibt es ein offizielles Script, das die Installation etwas erleichtert. Genau um dieses Script geht es in diesem Beitrag. Viel Spaß. Dies ist ein...

Der Beitrag Arch Linux Installation via ArchInstall Script erschien zuerst auf MichlFranken.

Ubuntu 10.04 Einsteigerhandbuch

29. Juli 2010 um 08:51

Viele, die den Einstieg in Linux noch nicht gewagt haben und es eventuell ausprobieren möchten, für die ist Ubuntu oft die erste Wahl. Diese Linuxdistribution hat sich quasi zum Standard für Anfänger gemausert. Sie ist schnell installiert, der Umstieg von Windows geht leicht von der Hand und es gibt eine große Nutzergemeinde im Netz, die für Fragen und Antworten zur Verfügung steht. Ubuntu muss nicht einmal installiert werden, sondern kann zum Testen auch direkt von CD gestartet werden oder, wie vor ein paar Tagen schon geschrieben, direkt von einem USB-Stick. So spart man sich "teure" Rohlinge. 

Auf der Chip Homepage kann man nun ein kleines aber praktisches Handbuch (auf Deutsch) für Anfänger bzw. Einsteiger herunterladen. Dort wird Schritt für Schritt erklärt, was Ubuntu so zu bieten hat. Wer es etwas ausführlicher mag, der ist bei Galileo Computing bestens aufgehoben. Dort steht ein über 1000-seitiges Buch online zum Schmökern zur Verfügung. Natürlich gibt es auch jede Menge Foren im Netz, wobei es jedem selbst überlassen ist, welches einem am besten liegt.

❌
❌