Warum VPN-Anbieter Abzocke sind

Schild Zugang für Unbefugte verboten

Jeder der Youtube schaut kennt die Werbeeninblendungen für Nord-VPN oder CyberGhost also VPN-Anbietern.  Diese Anbieter versprechen eine völlige Anonymisierung im Internet, Umgehung von Geofencing, Schutz vor Maleware und sonstigen Dingen.

VPN wurde ursprünglich für einen komplett anderen Zweck entworfen denn VPN (Abkürzung für Virtual Private Network) war eigentlich dazu entwickelt einen Außendienstmitarbeiter verschlüsselt mit dem Firmennetzwerk zu verbinden um dort Daten abzulegen, Dienste zu benutzen usw. Dabei bekommt der Mitarbeiter eine öffentliche IP-Adresse des Firmennetzwerks und befindet sich scheinbar am Firmenstandort. Dabei spiel keine Rolle was dort an Daten übertragen werden und das beinhaltet auch kein Sicherheitsfeature wie Virenschutz oder Schutz vor Maleware sondern es soll nur eine sicher Verbindung zu einem schutzwürdigen internen Netzwerk hergestellt werden.

Weiterlesen

fail2ban – was machen wenn man sich selber ausgesperrt hat?

fail2ban ist ein tolles Werkzeug um ungebetene Gäste von seinem Server fern zu halten. Nach vordefinierten Regeln überwacht fail2ban in Echzeit die Logfiles nach verdächtigen Angriffsmustern. Nach einer frei definierbaren Anzahl an Fehlversuchen wird die verursachende IP-Adresse für eine ebenfalls frei definierbare Zeit durch iptables geblockt. Die häufigesten Angriffsversuche sind mit brute-force-Angriffen auf den ssh-Daemon Angriffe auf WordPress oder Postfix bzw. Dovecot, also das Mailsystem. Nun kann es vorkommen, dass man sich bzw. seine IP-Adresse unbeabsichtigt selber aussperrt. Das kann durch Schusseligkeit aber auch durch einen fehlkonfigurierten Email-Client oder ähnlichem vorkommen. fail2ban bzw. iptables macht keinen Unterschied zwischen den Diensten beim Sperren von IP-Adressen. Das hat nun den blöden Nebeneffekt, dass man für eine bestimmte Zeit keinen Zugriff mehr auf seinen Server hat.

Zunächst muss man seine eigene öffentliche IP-Adresse heraus bekommen. Da die meisten Menschen heutzutage über einen Router mit NAT im Internet sind entspricht die IP-Adresse im lokalen Netzwerk nicht seiner öffentlichen IP-Adresse. Die öffentliche IP-Adresse ist meist die internetseitige IP-Adresse des Routers. In der Shell kann man seine öffentliche IP-Adresse einfach ermitteln:

$ host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
123.456.789.123

Weiterlesen

IP-Blacklist aus dem Internet per Script an iptables übergeben

Schild Zugang für Unbefugte verboten

Angriffe eines Serverdienstes ist ein lästiges Übel für einen Serverbetreiber. Diese erfolgen vermutlich durch Scripte von gekaperten Servern. Bei einem sicher konfigurierten System können diese Angriffe keinen Schaden anrichten aber sie tauchen zu Haufen in der Serverlogs auf. Es gibt Listen im Internet wo solche lästigen IP-Adressen aufgeführt sind. Mir ist aufgefallen, dass unter https://www.redim.de eine recht brauchbare Liste, die täglich aktualisiert wird, existiert die normalerweise auch meine lästigsten Kandidaten enthalten. Nun wird dort vorgeschlagen die Liste in die .htaccess-Datei zu kopieren und darüber Websites zu schützen. Leider hat dies mehrere Nachteile.

  1. Nur Websites aber nicht andere Dienste wie Email, FTP oder SSH werden geschützt.
  2. Bei dem Betreiben von mehreren Websites muss diese Liste mehrfach eingepflegt werden.
  3. Die vorgeschlagene Variante über .htaccess muss händig aktualisiert werden oder man muss ein Script dafür schreiben.

Irgendwie hat mir das nicht wirklich zugesagt und Linux bringt mit iptables ja schon ein universelles Werkzeug mit um IP-Adressen zu blocken. Um Ports muss man sich da nicht kümmern da kaum zu erwarten ist, das von einer bösartigen IP-Adresse sinnvolle Anfragen kommen.

Mit diesen Überlegungen habe ich beschlossen ein Script zu schreiben was das alles automatisiert:

Weiterlesen

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.

Weiterlesen

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.

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

Spamassassin – warning: description exists for non-existent rule USER_IN_WELCOMELIST_TO

Käfer (Bug)

Seit ein paar Tagen hatte ich auf dem Server unter Debian Buster immer wieder folgende Fehlermeldungen beim täglichen Update von Spamassassin der Nachts per Cron-Job startet:

/etc/cron.daily/spamassassin:
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704652 on outfile: Die Operation ist nicht erlaubt
config: warning: description exists for non-existent rule USER_IN_ALLOWLIST_TO

channel: lint check of update failed, channel failed
sa-update failed for unknown reasons

Weiterlesen

Authentifizierung über ssh mit einem Yubikey

Bild eines Yubikey Neo

Als stolzer Besitzer eines Yubikey Neo mit vollständig eingerichteten gpg-Schlüsseln für die Email-Verschlüsselung und -signierung wollte ich den Key auch noch für die Authentifizierung von meinen root-Accounts nutzen. Bisher hatte ich den root-Login verboten und mich immer über su – zu root gemacht wenn ich es brauchte. Leider taugt dieses Verfahren bereits bei scp nicht mehr. Im Internet findet man dazu einen Haufen teils recht komplizierte Anleitungen – kryptographische Verfahren haben leider die Neigung selber recht kryptisch zu werden. Ich suchte jedoch nach einem einfachen und wenig fehlerträchtigen Weg damit die Chance des eigenen Aussperrens recht minimal bleibt. Nun gibt es die Public-Key-Authentifizierung und dazu muss man den private Key immer parat haben – im lokalen Verzeichnis ~/.ssh/ oder auf einem USB-Stick. Wenn man jedoch sowieso einen Yubikey besitzt dann bietet sich dieser jedoch an um diese Aufgabe auch noch zu übernehmen.

Weiterlesen

kais-universum.de