Beiträge zum Thema “Tipps”
April 27, 2021
Tipp: Python virtual environment (venv)
Bei der Arbeit mit ‘Python’ kommt es recht häufig vor, dass bestimmte Versionen von Bibliotheken per pip installiert und genutzt werden, die von der Distribution nicht zur Verfügung gestellt werden.
Um dieses Problem zu umgehen kann das Projekt in ein virtual environment (venv) gepackt werden. Dabei wird eine Verknüpfung zu den Binaries von python und pip erzeugt und alle Pfade für die Installation von Bibliotheken in das venv Verzeichnis umgebogen.
weiterlesen
Februar 5, 2021
Tipp: sed Upper- und Lowercase
Die Manual Page (man 1 sed) bezeichnet den sed als ‘Stream-EDitor zum Filtern und Transformieren von Text’, womit das Einsatzgebiet genau beschrieben ist.
Was die Manual Page allerdings verschweigt ist, dass es auch nette Möglichkeiten innerhalb des GNU sed gibt um die Ausgaben auf der rechten Seite (RHS) einer Substitution (’s/von/nach/’) in Groß- oder Kleinbuchstaben zu wandeln.
Nachzulesen ist der folgende Tipp in der Info - Page zum sed (info sed).
weiterlesen
Dezember 10, 2020
2Faktor Authentifizierung für SSH und Sudo
“Das Sprichwort stimmt, dass Sicherheitssysteme immer gewinnen müssen, der Angreifer hingegen muss nur einmal.” – Kevin Mitnick
Mehr und mehr ist in den Medien und Literatur von Zwei Faktor Authentifizierung (2FA) oder Multi Faktor Authentifizerung (MFA) die Rede. Dabei handelt es sich um einen zusätzlichen Faktor der Authentizierung, meistens über ein Gerät welches Einmalpasswörter periodisch generiert (z.B RSA Token oder die Steam Authenticator App)
Ein Faktor kann z.B sein:
weiterlesen
Dezember 10, 2020
Tipp: Bash Globbing
Unter dem Begriff “Globbing” fallen die in der Bash genutzten Zeichen für die Suche nach Dateinamen oder Verzeichnissen. In einer Posix Shell existieren nur die folgenden Zeichen:
* - kein Zeichen oder beliebig viele Zeichen ? - genau ein Zeichen [] - eines der Zeichen, dass innerhalb der Klammer angegeben ist Damit steht also der * für alles was vorkommen kann zusammen mit anderen Zeichen lassen sich damit dann Suchmuster wie folgt bilden:
weiterlesen
Dezember 10, 2020
Tipp: Cryptsetup Luks - Mehrere Kennwörter
Mit cryptsetup LUKS verschlüsselte Partitionen können mit mehreren Kennwörter oder Schlüsseldateien verschlüsselt werden. Hierzu sind 8 Slots vorhanden in denen die unterschiedlichen Kennwörter gespeichert sind. Welche dieser Slots belegt sind zeigt der Unterbefehl luksDump des Befehls cryptsetup an.
sudo cryptsetup luksDump /dev/sdX | grep -i key In den meisten Fällen ist zunächst nur der Slot 0 belegt. Der folgende Befehl schreibt ein neues Kennwort in den nächsten freien Slot. Das dabei abgefragte Kennwort muss ein bereits in einem anderen Slot vergebenes Kennwort sein.
weiterlesen
Dezember 10, 2020
Tipp: Dateirechte unter Linux
Das Konzept der Dateirechte unter Linux bereitet Benutzern wie Administratoren gerade in der Anfangszeit immer wieder Probleme. Grund genug also, hier einen genaueren Blick darauf zu werfen!
Die Notwendigkeit von Dateirechten im PC-Bereich fiel mit der zunehmenden Nutzung einzelner Geräte durch mehrere Personen zusammen. Microsoft beispielsweise führte Dateirechte mit dem Start des Dateisystems NTFS Anfang der 1990er Jahre ein.
Bereits bei Unix-Dateisystemen gab es die gleichen Berechtigungsstrukturen, wie sie heute unter Linux bei den gängigen Dateisystemen (ext2, ext3, ext4, btrfs, xfs, reiserfs usw.
weiterlesen
Dezember 10, 2020
Tipp: Dateirechte unter Linux - ACLs
Erweiterte Dateirechte (ACL) Der erste Artikel der Reihe ‘Dateirechte’ behandelte Besitz- und Zugriffsrechte. Die Fortsetzung ging auf das Setzen und Verändern der Dateirechte ein. Im diesem letzten Teil behandeln wir erweiterte Dateirechte, die Sie über ‘Access Control Lists’ (ACL) steuern.
Historisch gab es in unixoiden Betriebssystemen lediglich die Möglichkeit, Dateirechte über einen Benutzer, eine Gruppe oder alle sonstigen zu definieren. Die Details dazu haben wir bereits kennengelernt. Grundsätzlich hat sich an diesem Ansatz nichts geändert; in heutigen Multiuser-Umgebungen stößt der Ansatz allerdings oft an seine Grenzen und wurde daher mit den ’erweiterten Dateirechten’ ``aufgebohrt’’.
weiterlesen
Dezember 10, 2020
Tipp: Dateirechte unter Linux - Besitz und Zugriffsrechte
Dateirechte setzen und verändern Nachdem der letzte Artikel dieser Reihe die Besitz- und Zugriffsrechte ausführlich erklärt hat, geht es hier um die wichtigen Kommandos, mit denen Sie die Dateirechte ‘ändern’: chown, chgrp und chmod.
Zuvor aber stellen wir das Kommando stat vor, das die Rechte sehr übersichtlich anzeigt:
user@linux ~$ stat kapitel.txt File: 'kapitel.txt' Size: 819 Blocks: 8 IO Block: 4096 regular file Device: fd06h/64774d Inode: 439267 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 4000/mgisbers) Gid: ( 4000/mgisbers) Access: 2013-03-25 18:52:04.
weiterlesen
Dezember 10, 2020
Tipp: Netzwerk mit ip
Geschichtsstunde: ifconfig Vielen ist der Befehl ifconfig ein Begriff, ist er doch seit Jahrzehnten für die Konfiguration des Netzwerks unter Unix- oder Linux-Systemen zuständig. So sehen beispielsweise Aufrufe zum Setzen einer IP-Adresse und Anzeigen der Konfiguration aus:
root@linux:~# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up root@linux:~# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::225:90ff:fec0:ffee prefixlen 64 scopeid 0x20<link> ether 00:25:90:c0:ff:ee txqueuelen 1000 (Ethernet) RX packets 123346 bytes 120154576 (114.
weiterlesen
Dezember 10, 2020
Tipp: nohup
Programme, die innerhalb einer Shell - z. B. /bin/bash - gestartet werden warten, normalerweise, auf das Ende ihrer Ausführung und belegen in der Zeit die Konsole.
Einfach lässt sich dies durch das Kommando sleep darstellen:
tux@linux ~ $ sleep 10 Erst 10 Sekunden nach dem Start des Kommandos erscheint ein neuer Prompt und es werden neue Kommandos ausgeführt. Zwar kann man während das Kommando sleep die Konsole belegt schon neue Kommandos eingeben, aber die eigentliche Ausführung startet erst nach Ende des vorherigen Kommandos.
weiterlesen
Dezember 10, 2020
Tipp: OpenSSH - Verbindung zeitweilig unterbrechen
Während ein Rechner per SSH zu einem anderen Rechner verbunden ist, kommt es teilweise vor, dass die Verbindung kurzzeitig unterbrochen werden müsste um auf die lokale Shell zugreifen zu können.
Diese Unterbrechungen sind im Umfeld der Shell recht üblich und werden dort über die Tastenkombination STRG+z durchgeführt. Damit wird der aktuelle Prozess im Job-Management angehalten und die Shell zur Eingabe von Befehlen freigegeben. Nach der Arbeit mit dem Befehl erfolgt eine Wiederaufnahme des Befehls über fg.
weiterlesen
Dezember 10, 2020
Tipp: OpenSSH mit ssh-agent
Bereits in dem letzten Artikel dieser Reihe haben wir die Datei authorized_keys kennengelernt und erfahren, wie man mit ihr einen Login ohne Kennworteingabe durchführt.
SSH-Agent Solange wir, wie es empfohlen ist, auf den ‘privaten Schlüssel’ ein Kennwort legen, muss weiterhin bei jedem Login ein Kennwort eingegeben werden. Dies ist allerdings nicht das Kennwort des Benutzers auf der angesprochenen Maschine, sondern das Kennwort des lokal abgelegten ‘privaten Schlüssels’.
Die Entwickler des SSH-Protokolls haben für diesen Zweck einen Mechanismus eingebaut, über den ein Agent die Verwaltung der Schlüssel übernimmt und bei Zugriff auf einen Server dem ssh-Kommando nutzbare Schlüssel anbietet.
weiterlesen
Dezember 10, 2020
Tipp: OpenSSH Public Key Authentifizierung
Nachdem sich der erste Teil der Reihe mit den grundlegenden Funktionen der ‘Secure SHell’ befasst hat, gehen wir nun einen Schritt weiter. Thema dieses Artikels ist die Anmeldung ohne Passwort per ‘Public Key Authentifizierung’.
Öffentlicher und privater Schlüssel Die Idee eines Schlüssels ist hinreichend bekannt: Er gewährt Zugang zu einem System. Ein symmetrischer Schlüssel – also ein Schlüssel lediglich zum Verschlüsseln und Entschlüsseln – genügt unseren Ansprüchen an dieser Stelle allerdings nicht.
weiterlesen
Dezember 10, 2020
Tipp: OpenSSH und authorized_keys
Nachdem wir in dem letzten Artikel dieser Reihe schon die einfache Nutzung der Datei authorized_keys kennengelernt haben, geht es in dieser Folge um weitere Einsatzmöglichkeiten.
Darüber hinaus sollen natürlich auch einige wichtige Parameter für die Konfiguration eines OpenSSH-Servers oder -Clients nicht fehlen.
Automatische Ausführung von Befehlen Die einfachste Art, Befehle mit OpenSSH auf einer entfernten Maschine ausführen zu lassen, ist, den Befehl direkt auf der Kommandozeile anzugeben.
Um die Beispiele zu vereinfachen, gehen wir in der Folge davon aus, dass lokal ein ssh-agent mit einem ‘privaten Schlüssel’ läuft und der Benutzer auf dem Server in der Datei authorized_key den entsprechenden ‘öffentlichen Schlüssel’ hinterlegt hat.
weiterlesen
Dezember 10, 2020
Tipp: OpenSSL - Erstellen von Zertifikaten aus bestehenden Zertifikaten
Im Zusammenhang mit dem Heartbleed Bug in OpenSSL müssen die Privaten Schlüssel und Zertifikate der Server ausgetauscht werden, da es durch eine geschickte Nutzung des Bugs möglich ist den Privaten Schlüssel auszulesen und zur Entschlüsselung der per https übertragenen Daten genutzt werden.
Erster Schritt ist das Erzeugen eines neuen Privaten Schlüssels.
user@linux ~ $ openssl genrsa -out server.key 2048 Generating RSA private key, 2048 bit long modulus ......................................................+++ .................................................................+++ e is 65537 (0x10001) Der so erstellte Private Schlüssel ist neu und damit unabhängig von dem bisher genutzten Privaten Schlüssel.
weiterlesen
Dezember 10, 2020
Tipp: Partitionstabellen kopieren mit sgdisk
Egal ob bei dem ersten Aufsetzen oder bei einem späteren Erweitern eines Software Raids unter Linux, es muss immer auf zusammengehörenden Festplatten die gleichen Daten in die Partitionstabelle eingetragen sein. Die meisten Administratoren lösen das Problem mittels eines manuellen Aufrufs und lassen sich zunächst die alte Partitionstabelle ausgeben und tragen die Daten dann auf der neuen Festplatte ein.
tux@linux ~ $ sudo gdisk -l /dev/sda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT.
weiterlesen
Dezember 10, 2020
Tipp: Regular Expressions
Reguläre Ausdrücke Um den Einsatz von z. B. sed effizienter zu gestalten, bedarf es der Kenntnisse über ‘Reguläre Ausdrücke’.
Hintergründe Viele Linux-Kommandos kennen bei Filterfunktionen nicht nur einzelne Sonderzeichen, sondern auch sogenannte ‘Reguläre Ausdrücke’ (‘Regular Expressions’), auch als ‘RegEx’ oder ‘RegExp’ abgekürzt. Ein regulärer Ausdruck ist sozusagen ein Platzhalter, der (durchaus komplexe) Gruppen von Zeichenketten repräsentiert.
Zwar gibt es verschiedene Implementierungen der RegEx, doch sind die meisten kompatibel mit den ‘Perl Compatible Regular Expressions’ (PCRE).
weiterlesen
Dezember 10, 2020
Tipp: Regular Expressions mit sed
Spezialfall Regulärer Ausdruck? Bisher haben wir in sed lediglich einfache Zeichenketten genutzt. Genau genommen ist eine Zeichenkette auch nichts anderes als ein Regulärer Ausdruck: Die Zeichenkette ist eine ‘Verkettung’ der einzelnen Buchstaben, Ziffern und Zeichen, aus denen sie besteht. Damit sind Reguläre Ausdrücke kein Sonderfall und ohne zusätzliche Optionen in sed nutzbar.
Folgender Dateiinhalt dient uns nun in der Datei zitronen.txt als Ausgangspunkt für unsere Experimente:
Auto-Fahrer fahren Zitronen! Bier-Brauer brauen Autos.
weiterlesen
Dezember 10, 2020
Tipp: Regular Expressions mit sed 2
In diesem letzten Teil der Serie lernen wir weitere Funktionen von sed kennen.
Als Beispiel dient uns dieses Mal eine Konfigurationsdatei des DHCP-Servers. Sie ist unter dem Namen dhcpd.conf gespeichert und enthält die eine oder andere Unstimmigkeit.
option domain-name-servers 172.16.1.1; subnet 172.16.1.0 netmask 255.255.255.0 { range 172.1.1.10 172.1.1.254; option broadcast-address 172.1.1.255; option routers 172.16.1.1; option time-servers 172.16.1.1; option lease-time 86400; } Im Artikel lassen wir sed den geänderten Dateiinhalt ausgeben, gehen aber davon aus, dass die Änderungen ebenfalls in die Datei geschrieben werden und damit beim nächsten Aufruf vorhanden sind.
weiterlesen
Dezember 10, 2020
Tipp: Sicherer Serverzugriff mit OpenSSH
Bereits vor Aufkommen des Internets war es für Administratoren wichtig, über das Netzwerk – also ohne Zugriff auf eine direkt angeschlossene Tastatur – Server und Rechner zu warten. Die ersten hierfür entwickelten Protokolle waren ‘Telnet’ und ‘rsh’ (Remote Shell), die die Daten (inklusive Login-Daten) unverschlüsselt und damit – nach heutigen Maßstäben – unsicher übertragen.
Der Wunsch nach Sicherheit brachte die Entwickler dazu, ein Protokoll zu entwickeln, das sämtliche Daten inklusive Anmeldung verschlüsselt überträgt.
weiterlesen
Dezember 10, 2020
Tipp: SSL Verschlüsselung von Webseiten prüfen
Den folgenden Dialog hat jeder schon in seinem Browser gesehen:
Sicherheitswarung des Mozilla Firefox beim Zugriff auf eine SSL verschlüsselte Seite Diese Warnung erscheint immer wenn der Administrator einer Website auf dem über SSL abgesicherten Server kein durch ein Trustcenter beglaubigtes Zertifikat hinterlegt hat oder dieses aus einem anderen Grund nicht gültig ist.
Über das ‘Zertifikat’ (‘Certificate’ oder kurz ‘Cert’) prüft der Webbrowser, ob der Schlüssel des Servers unverändert und der Servername korrekt ist.
weiterlesen
Dezember 10, 2020
Tipp: SSL-Zertifikate im Webserver
Mit den letzten Artikeln dieser Reihe haben wir mit openssl Zertifikate erzeugt und überprüft. In diesem Artikel konfigurieren wir unsere Webserver, um mit den Zertifikaten unsere Webseiten abzusichern.
Die im Artikel angesprochenen Cipher zur Verschlüsselung der Webseiten sind keine sicheren Cipher, sie dienen nur dazu die Positionen zu zeigen an denen Cipher eingefügt werden sollten. Es macht keinen Sinn innerhalb einer Dokumentation sichere Cipher vorzugeben. Daher möchten wir hier auf das BetterCrypto.
weiterlesen
Dezember 10, 2020
Tipp: SSL-Zertifikate mit OpenSSL erzeugen
Mit dem letzen Artikel dieser Reihe haben wir das Thema OpenSSL begonnen und uns Möglichkeiten angesehen, bestehende Zertifikate von Webseiten auf der Konsole zu überprüfen.
Um Webseiten mit einer SSL-Verschlüsselung versehen zu können, muss hierfür neben dem Schlüssel des Servers (‘Key’) ein Zertifikat (‘Cert’) erzeugt werden, das die Validität des Schlüssels bestätigt.
Selbstsigniertes Zertifikat Die einfachste Art, ein solches Zertifikat zu erzeugen, ist, openssl die ganze Arbeit in einem Schritt erledigen zu lassen.
weiterlesen
Dezember 10, 2020
Tipp: Stream EDitor - sed
Die Manual Page (man 1 sed) bezeichnet den sed als ‘Stream-EDitor zum Filtern und Transformieren von Text’, womit das Einsatzgebiet genau beschrieben ist.
Einfaches Ersetzen von Text Bevor wir einen Text bearbeiten, legen wir ihn als Datei an, um daran unsere Filter- und Transformationsoperationen auszuführen. Damit er nicht zu lang wird und wir die Ergebnisse der Ausgaben nicht immer kürzen müssen, benutzen wir den folgenden Inhalt für die Datei /tmp/datei.txt
weiterlesen
Dezember 10, 2020
Tipp: Suchen mit find
Das Zentrale Tool für die Suche nach Dateien auf einem Linux System ist der Befehl find. Viele Anwender haben im ersten Moment Probleme mit find, da er sich nicht wie z. B. der Befehl locate direkt mit dem dem gesuchten Dateinamen aufrufen lässt.
Aber fangen wir vorne an. Der einfachste Aufruf ist der Befehl ohne Parameter.
tux@linux ~ $ find . ./Videos ./Dokumente ./.xinitrc ./.bash_logout ./Downloads ./.bash_profile ./.xsession ./Bilder ./Bilder/Camping .
weiterlesen
Dezember 10, 2020
Tipp: System neustarten ohne init und systemd
Nach einem Ausfall der Festplatte auf einem Server kann es vorkommen, dass die normalen Wege einen Neustart durchzuführen nicht mehr funktionieren.
# reboot bash: /sbin/reboot: Input/output error # shutdown -r now bash: /sbin/shutdown: Input/output error # telinit 6 bash: /sbin/telinit: Input/output error Das Problem mit der Festplatte verhindert das Laden der Befehle und macht sie somit unnutzbar.
Wennn nun kein physikalischer Zugriff oder eine Netzkonsole zur Administration des Servers zur Verfügung steht ist meist ein eine Fahrt zum Server oder die Nutzung des Services vor Ort nicht zu umgehen.
weiterlesen
Februar 24, 2020
Mails mit Postfix versenden
Sobald Mailversand auf einem Server benötigt wird, muss der lokale MTA (Mail Transfer Agent) - z. B. Postfix - so konfiguriert werden, dass er sich beim Mailserver mit einem Benutzernamen und Kennwort anmeldet. Im folgenden wird eine minimale Postfix - Konfiguration inkl. SASL2 auf einem Debian Buster (10) erstellt und getestet.
Installation benötigter Pakete Neben dem Paket für Postfix selber wird auch ein Paket mit den SASL2 - Modulen installiert. Für den Test wird das zusätzliche Paket mailutils installiert in dem sich der Befehl mail befindet.
weiterlesen
Januar 12, 2020
Daten mit curl herunterladen
Das Kommando curl ist eines der wenigen Kommandos – neben wget – für den Download von Daten über eine Shell Eingabeauffordung. Da es bei vielen Systemen bereits in der Minimalinstallation vorhanden ist lohnt es sich ein paar der Parameter und Vorgehensweisen bei der Arbeit mit curl kennenzulernen.
Herunterladen einer Datei Für die Meisten ist bereits das Herunterladen einer Datei mit curl eine Herausforderung. Denn curl gibt die Datei direkt auf der Eingabeausfordung aus statt sie als Datei abzuspeichern.
weiterlesen