Geschützte Dateien mit vi als normaler Benutzer abspeichern

Logo von vim

Es ist sicher vielen schon passiert die normalerweise ohne root-Rechte arbeiten. Man öffnet eine Konfigurationsdatei, übersieht die Warnung beim öffnen und bearbeitet diese.

vi/vim Fehlermeldung Schreibschutz

Beim Abspeichern stellt man dann fest, dass man keine Schreibrechte für die Datei hat weil man das sudo oder su vor dem Aufruf von vi vergessen hat. Besonders ärgerlich ist das wenn die Änderungen umfangreich sind.

Weiterlesen

Screenshot mit Gimp erstellen

Logo von GIMP

Screenshots sind oft recht nützlich um Sachverhalte zu illustrieren und zu verdeutlichen. Ein Screenshot ist unter GNU/Linux mittels der Druck-Taste leicht erledigt. Leider ist da das komplette Desktop abgebildet was einerseits vom Wesentlichen ablenkt aber andererseits unerwünschte Details offen legt. Idealerweise bildet ein Screenshot nur den relevanten Bereich ab und nichts anderes.

Screenshot eine Desktop-Rechners

Weiterlesen

Pi-hole die Tonne für Werbung

Schild Zugang für Unbefugte verboten

Pi-hole ist ein Softwareprojekt, ursprünglich für den Raspberry Pi begonnen, welches auf Basis von dnsmasq einen Werbeblocker für das komplette lokale Netzwerk zur Verfügung stellt. Pi-hole funktioniert so, dass es als lokaler DNS-Server funktioniert und Anfragen zur Namensauflösung von Werbe-IP-Adressen so manipuliert das sie nicht ausgeliefert werden. Die DNS-Anfrage verlässt so niemals das lokale Netzwerk.

Zur Installation wird ein Raspberry Pi mit Raspbian benötigt. Eine detaillierte Installationsanleitung von Raspbian auf einem Raspberry Pi habe ich bereits verfasst (hier und hier).

Installiert wird Pi-hole recht einfach. Das Installationsscript wird mit:

wget -O basic-install.sh https://install.pi-hole.net

herunter geladen und

bash basic-install.sh

wird es gestartet.

Weiterlesen

Der unbekannte Befehl – „patch“ das Flickwerk

Symbolisiertes Terminal

patch ist ein Befehl der sicher von den wenigsten Benutzern benutzt wird denn normalerweise übernimmt das Einspielen der Paketbetreuer der Distribution und man installiert das bereits kompilierte Paket. Mit Hilfe von Patches werden Programmversionen oder Sicherheitspatches eingespielt. Jedoch sind auch alle möglichen anderen Szenarien denkbar. Der Vorteil einer Patchdatei ist, sie ist für Menschen lesbar da es eine reine ASCII-Datei ist, sie ist sehr viel kleiner als ein neues Programmpaket und der Patch lässt sich rückgängig machen. Patchdateien besitzen oft die Dateiendung .diff oder .patch. patch ist gewissermaßen das Gegenstück zum Befehl diff.

Weiterlesen

GnuPG-Schlüsseldaten veröffentlichen

Grafik eines Laptops mit Ausrufezeichenschild

In dem vorhergegangen Tutorial wurde gezeigt wie man einfach und mit Hilfe einer GUI mit Thunderbird/Enigmail einen Yubikey für GnuPG vorbereitet. Die Schlüssel helfen nichts wenn man nicht seine öffentliche Schlüssel veröffentlicht. Dies kann man zunächst einmal auf den Schlüsselservern und man erhält dann einen Link der folgendermaßen aussehen kann: https://keys.openpgp.org/vks/v1/by-fingerprint/46761780D7F5D4ED744CD286684A0B0B03A1960E

Dies ist ein auf einem Keyserver abgelegter Schlüssel. Dieser Link sollte sich bereits auf dem Yubikey unter URL befinden.

Für das Veröffentlichen des öffentlichen Schlüssels werden oft folgende Formate angeboten:

  • Key-ID (obsolet)
  • Fingerprint
  • Öffentlicher Schlüssel

Weiterlesen

Einen Yubikey mit Enigmail/Thunderbird für GnuPG einrichten

Bild eines Yubikey Neo

Achtung, diese Anleitung gilt nur bis Thunderbird kleiner als Version 78.0.0 denn für aktuellere Versionen ist Enigmail nicht mehr verfügbar. Ich werde ein Update nachreichen wenn das jetzt eingebaute OpenPGP einen fortgeschrittenen Eindruck macht was derzeit nicht der Fall ist.

GNU Privacy Guard (GnuPG) ist ein Kryptographiesystem was zum Verschlüsseln, Entschlüsseln und der Erzeugung und Verifizierung von Signaturen von Daten dient. Das Open-Source-Emailprogramm Thunderbird bietet mit der Erweiterung Enigmail eine gute Grundlage um sowohl den Yubikey leicht einzurichten als auch für den späteren Gebrauch der Smartcard als Kryptografiesystem für Email.

Zunächst einmal muss Enigmail installiert werden. In Thunderbird kann man unter Extras → Addons nach Addons suchen und installieren. Nachdem Thunderbird mit aktiven Enigmail gestartet ist wird der Yubikey in einen freien USB-Port gesteckt. In der Konsole kann man dann überprüfen ob der Yubikey richtig erkannt wurde:

$ gpg --card-status
Reader ...........: 1050:0116:X:0
Application ID ...: D2760001240102000006073265510000
Version ..........: 2.0
Manufacturer .....: Yubico
Serial number ....: 06353846
Name of cardholder: [not set]
Language prefs ...: [not set]
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 3 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Weiterlesen

Der unbekannte Befehl – „diff“ der Differenzierer

Symbolisiertes Terminal

diff ist ein Linux-Kommando zum inhaltlichen Vergleich von Dateien oder Ordnern. Dabei können die Unterschiede so dargestellt werden, dass durch die Ausgabe von diff eine Datei in die andere überführt werden kann. Dies hat eine Bedeutung beim schreiben von Patch-Dateien, durch die Änderungen an Programmcodes vorgenommen werden und diese Änderung daher nur in einer ASCII-Datei vorliegen braucht.

Wenn man zwei identische Dateien miteinander vergleicht so gibt diff keine Meldung aus. Mit der Option -s sieht das Ergebnis dann so aus:

$ diff -s orginal.txt modify.txt
Dateien orginal.txt und modify.txt sind identisch.

und es wird nur angezeigt ob die beiden inhaltlich völlig Dateien identisch sind. Interessant wird diese Funktion jedoch bei inhaltlich unterschiedlichen Dateien die in einem Zusammenhang stehen wie z.B. eine Originalquelle und der geänderte, gepatchte Quelltext.

Weiterlesen

Error: net_connect_unix(/var/run/dovecot/stats-writer) failed

Käfer (Bug)

Ich habe einen Server der als Grundlage nach dieser Anleitung mit Postfix und Dovecot erstellt wurde. Die Tage ist mir dann aufgefallen, dass Dovecot bei jeder empfangenen Email folgende Fehlermeldung in /var/log/mail.log hinterlässt:

Jul 26 02:33:21 example postfix/pipe[10873]: 4081A2B819F3: to=<user@example.com>, relay=dovecot, delay=0.25, delays=0.09/0.04/0/0.11, dsn=2.0.0, status=sent (delivered via dovecot service (lda(user@example.com,)Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permissi))

Weiterlesen

Suchbefehl „find“ in der Linux-Konsole (II)

Symbolisiertes Terminal

Im ersten Teil dieser Serie habe ich bereits eine ganze Reihe an eher unbekannteren Suchbefehlen behandelt aber den wichtigsten Befehl find ignoriert. Dies war kein böser Wille sondern find ist derartig mächtig und umfangreich, dass man ihn separat behandeln muss. Auch erhebt dies hier nicht einmal im Ansatz den Anspruch auf Vollständigkeit sondern soll einen groben Überblick liefern.

Im Prinzip sucht find ab einem bestimmten Verzeichnis, kann auch das Wurzelverzeichnis / sein, ein bestimmtes Muster und macht eine bestimmte Aktion mit dem Ergebnis – oft einfach nur das Ergebnis auf stdout ausgeben. Nun gilt in der Unix/Linux-Welt das Prinzip „Alles ist eine Datei“ und das wird recht konsequent umgesetzt und dadurch kann man durchaus auch nach Gerätedateien oder Sockets suchen denn sie sind auf dem Dateisystem eine Datei.

Weiterlesen

Suchbefehle in der Linux-Konsole (I)

Symbolisiertes Terminal

Ich wage mich jetzt einmal an das Thema suchen in der Linux-Shell. Das Thema ist letztlich ein Fass ohne Boden da alleine der Befehl find sehr mächtig ist und man durch die möglichen Optionen schier erschlagen wird. find ist sicher der Befehl der am bekanntesten ist aber es gibt eine ganze Reihe nützliche und spezialisierterer aber deutlich unbekanntere Befehle die einem das Leben erleichtern wenn man etwas im Dateisystem sucht. Der Befehl find wird hier nicht behandelt sondern wird separat im zweiten Teil dieser Serie behandelt. Die hier behandelten Befehle sind:

  • grep
  • which
  • whereis
  • apropos
  • whatis
  • locate

Weiterlesen

kais-universum.de