Einen Rasperry Pi mit Pi-hole für DNS-Over-HTTPS konfigurieren

Bild eines Raspberry Pi III

DNS ist einer der wenigen Dienste für die es lange keine verschlüsselte Variante gab. DNS ist jedoch ein zentraler Dienst im Internet und für datensammelnde Firmen von großen Interesse. Google stellt wahrscheinlich mit 88.88.88.88 und 88.88.44.44 nicht umsonst einen öffentlichen DNS-Server zur Verfügung. Aus DNS-Anfrage und IP-Adresse, die immer übertragen werden, lassen sich prima virtuelle Bewegungsprofile erstellen. Das Internet wurde seinerzeit nicht in Hinblick auf Sicherheit entworfen sondern auf Funktionalität. Heute ist das Internet, im Gegensatz zu damals, ein Tummelplatz von Datenkraken, Werbetreibende und anderen geworden die daran interessiert sind möglichst viel über die meist ahnungslosen Benutzer heraus zu bekommen um sie mit mehr oder minder unerwünschter Werbung zu beglücken. Heute sind viele Seiten, z.B. die Seiten für Online-Banking aber auch die meisten anderen – wie diese hier auch – per SSL/TLS verschlüsselt. Das heißt der Inhalt des Abrufes ist nicht mehr so ohne weiteres einsehbar. Der DNS-Aufruf, d.h. wenn man in seinen Browser in der Adresszeile „www.example.com“ eingibt und das dann direkt in eine IP-Adresse aufgelöst wird, ist unverschlüsselt und für den Internetprovider sowohl mitlesbar als auch fälschbar. So liefern manche Internetprovider, die deutsche Telekom zum Beispiel, eine ihrer Seiten aus in der sie ihre Werbung platzieren wenn man einen Tippfehler in der Adresszeile hat und eine Domain nicht aufrufbar ist.

WeiterlesenEinen Rasperry Pi mit Pi-hole für DNS-Over-HTTPS konfigurieren

Der unbekannte Befehl – „umask“ der Maskierer

Symbolisiertes Terminal

umask führt eigentlich sehr zu unrecht ein Schattendasein auf den meisten Rechnern denn umask ist ein Sicherheitsfeature was die Rechteverwaltung des Filesystems bestimmt. umask bestimmt wo und wann welche Besitzer- bzw Gruppenrechte gesetzt werden.

Bekanntlich hat unter Linux/Unix jede Datei einen Besitzer und gehört zu einer Gruppe. Unter Debian ist häufig für einen Benutzer auch der Name als Gruppe gesetzt. So gehört der Benutzer max dann der Gruppe max an. Weitere Gruppen wie floppy oder cdrom oder games können folgen. Jeder Benutzer der weder der Besitzer einer Datei ist noch der Gruppe angehört der gehört im Rechtesystem zu other.

Die wichtigsten Rechte werden in jeweils drei Bit beschrieben:

$ ls -l .bashrc
-rw-r--r-- 1 max max 3667 Jul 10 18:00 .bashrc
$ ls -ld .
drwxr-xr-x 77 max max 12288 Aug 25 23:02 .

Dabei symbolisiert die Ausgabe rwxrwxrwx die Rechte für den Besitzer, Gruppe und other (also alle anderen) und dahinter dann den Besitzer und die Gruppe zu der die Datei oder das Verzeichnis (Verzeichnisse sind unter Linux/Unix eigentlich auch nur eine besondere Art Datei) gehört.

WeiterlesenDer unbekannte Befehl – „umask“ der Maskierer

Der unbekannte Befehl – „tee“ das T-Stück

Symbolisiertes Terminal

tee ist ein Befehl der praktisch nie alleinstehend benutzt wird sondern immer in Kombination mit anderen Befehlen und einer Pipe. Der Name tee leitet sich tatsächlich aus dem T-Stück bei Rohren ab. Normalerweise kennt Linux/Unix einen stdin, stdout und stderr als drei Kanäle. stdin ist der Eingabekanal, stdout der Ausgabekanal und stderr der Fehlerkanal. Im Zusammenhang mit tee spielt das eine wichtige Rolle denn tee ist sozusagen ein T-Stück für die Ausgabekanäle stdout und stderr. Normalerweise liest ein Befehl über den stdin ein und gibt über die beiden Ausgabekanäle aus welche oft der Bildschirm ist. Durch eine Pipe | kann die Ausgabe an weitere Befehle umgeleitet werden. So wird z.B. oft eine unübersichtliche Anzeige von ls an den Pager more weitergeleitete:

$ ls | more

und man erhält eine bildschirmseitenabhängige Ausgabe. Wenn man zwei Ausgabekanäle bedienen möchte dann kommt tee ins Spiel.

WeiterlesenDer unbekannte Befehl – „tee“ das T-Stück

Geschützte Dateien mit vi als normaler Benutzer abspeichern

Symbolisiertes Terminal

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.

WeiterlesenGeschützte Dateien mit vi als normaler Benutzer abspeichern

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.

WeiterlesenPi-hole die Tonne für Werbung

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.

WeiterlesenDer unbekannte Befehl – „patch“ das Flickwerk

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

WeiterlesenGnuPG-Schlüsseldaten veröffentlichen

Einen Yubikey mit Engigmail/Thunderbird für GnuPG einrichten

Bild eines Yubikey Neo

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]

WeiterlesenEinen Yubikey mit Engigmail/Thunderbird für GnuPG einrichten

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.

WeiterlesenDer unbekannte Befehl – „diff“ der Differenzierer

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.

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

Do NOT follow this link or you will be banned from the site!