Fryboyter

Hinweis an alle Betreiber von DNS-Resolvern die DNSSEC verwenden

Der eine oder andere wird sicherlich einen DNS-Resolver im eigenen Netzwerk einsetzen um damit beispielsweise die Anfragen zu beschleunigen oder um die Privatsphäre zu vergrößern. Wer hierbei DNSSEC einsetzt, sollte sich den 11.10.2018 im Kalender anstreichen.

Denn an diesem Tag will ICANN den bisherigen Vertrauensanker (Trust Anchor) gegen einen neuen tauschen. Wer ab dann noch den alten Anker nutzt, wird hinsichtlich DNS ein Problem haben. 

Wer zum Beispiel DNSSEC auf seinem Pi Hole nutzt, kann wie folgt nachsehen.

cat /etc/dnsmasq.d/01-pihole.conf

...

trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
trust-anchor=.,20326,8,2,E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

Die erste Zeile entspricht hier dem bisherigen Anker und die zweite dem neuen Anker. Somit sollten Pi-Hole-Nutzer nichts von der Umstellung bemerken.

Wer Unbound nutzt, kann mittels unbound-anchor -l nachsehen. Bei den von mir getesteten Versionen 1.6.0-3 (Raspbian) sowie 1.8.0-1 (Arch) ist ebenfalls alles im grünen Bereich. Nutzer anderer DNS-Resolver müssen leider selbst schauen wie sie an die nötigen Informationen kommen.

Wer aber seinen DNS-Resolver händisch installiert hat bzw. diesen schon wirklich lange nicht mehr aktualisiert hat, sollte vorsichtshalber einmal nachsehen. ICANN geht selbst davon aus, dass nach der Umstellung nur eine überschaubare Anzahl an Nutzern betroffen sein werden.


Eigene Paketquelle für Arch Linux im LAN

Seit einigen Wochen nutze ich für die Zwischenablage das Tools CopyQ. Als ich heute die über AUR installierten Pakete aktualisiert habe, wurde mir angezeigt. dass CopyQ nun "orphaned" ist. Somit kümmert sich aktuell niemand um die Aktualisierung von CopyQ im AUR.

Wie es der Zufall so will, wurde zwischenzeitlich auch Version 3.6.1 von CopyQ veröffentlicht. Also muss eine Lösung her. Am einfachsten wäre es wohl, die vorhandene PKGBUILD-Datei zu aktualisieren und mir damit Version 3.6.1 lokal zu installieren. Mit folgenden Schritten dauert das keine zwei Minuten.

  • Mit "curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=copyq" die PKGBUILD-Datei von Version 3.6.0 herunterladen
  • In der Datei dann die Version anpassen
  • Mit updpkgsums PKGBUILD die Prüfsumme automatisch anpassen

Mit makepkg -si PKGBUILD -noconfirm kann man dann das Paket erstellen und installieren. An dieser Stelle ist es mir aber aufgefallen, dass ich CopyQ ja auf mehreren Rechnern / VM nutze. Gut, ich könnte mittels makepkg PKGBUILD einfach das Paket erstellen und dies auf den betreffenden Rechnern / VM installieren. Ich möchte aber möglichst die Rolle des Turnschuadmins vermeiden. Also wie löse ich das Problem?

Der Raspberry Pi auf dem Pi Hole läuft, langweilt sich im Grunde genommen. Auf diesem könnte ich eigentlich eine eigenen Paketquelle für das LAN erstellen. Nur ist auf dem Raspberry Pi Debian installiert, so dass ich die Arch-Tools wie repo-add nicht direkt nutzen kann. Naja wieso einfach wenn es auch kompliziert geht?

Als erstes habe ich auf dem Raspberry Pi ein Verzeichnis erstellt, dass als Paketquelle dienen soll. Dieses habe ich dann unter Arch mittels sshfs gemountet und mittels "repo-add /gemountetes_Verzeichnis/raspberry.db.tar" eine leere Paketquellendatenbank erzeugt. Mit der PKGBUILD-Datei von Version 3.6.0 und makepkg PKGBUILD habe ich dann unter Arch das Paket erstellt und dies in das gemountete Verzeichnis kopiert. Mittels repo-add /gemountetes_Verzeichnis/raspberry.db.tar copyq-3.6.0-1-x86.pkg.tar" habe ich dann die Datenbank aktualisiert. Da man angeblich mit sshfs gemountete Verzeichnisse direkt als Paketquellen nutzen kann, habe ich dann einfach folgenden Eintrag in der /etc/pacman.conf unter Arch erstellt.

[raspberry]
SigLevel = Optional
Server = file:///gemountetes_Verzeichnis

Der Versuch mittels "pacman -Syy" die Paketquellen zu aktualisieren ist aber immer bei der Paketquelle raspberry gescheitert, da die Datenbank nicht gefunden werden kann. Und das obwohl der Pfad stimmt und die Dateien vorhanden sind. Selbst mit etwas Google-Fu konnte ich das Problem nicht lösen.

Da auf dem Raspberry Pi ja bereits lighthttpd für die grafische Oberfläche für Pi Hole läuft, ist mir die Idee gekommen, dass ich die Pakete über lighthttpd anbiete. Aber scheinbar sieht Pi Hole es nicht vor, dass man über lighthttpd noch weitere Dienste anbietet. Oder ich bin zu blöd dafür.

Da sich der Raspberry Pi wirklich langweilt, kann man ja einfach Apache installieren. Nein besser nginx, da dieser weniger Resourcen verbraucht. Gesagt getan. In der Konfigurationsdatei /etc/nginx/sites-available/default habe ich dann bei den beiden Zeilen die mit listen beginnen den Port geändert, da ja bereits lighthttpd auf Port 80 läuft. Die Zeile die mit root beginnt, habe ich dann so geändert, dass hier auf das Verzeichnis verwiesen wird, das als Paketquelle dienen soll. Noch etwas weiter unten habe ich den Block location / um die zwei Zeilen allow 192.168.1.1/24; und deny all; erweitert. Somit kann nur noch jemand aus meinem LAN auf nginx zugreifen. Sicher ist sicher. Mit einem Neustart von nginx sorge ich dafür, dass die Änderungen berücksichtigt werden.

Zurück auf dem Rechner mit Arch, auf dem ich die Paketquelle raspberry eingetragen habe, habe ich hier die dritte Zeile auf Server = IP_DES_RASPBERRY:PORT_VON_NGINX geändert. Mit "pacman -Syy" habe ich dann versucht die Paketquellen zu aktualisieren. Was scheinbar auch funktioniert hat, da ich keine Fehlermeldung erhalten habe. Da CopyQ über AUR installiert wurde, habe ich nun CopyQ deinstalliert und mittels pacman und der Paketquelle raspberry wieder installiert. Auch das hat funktioniert.

Da ich ja Version 3.6.1 installieren möchte, habe ich dann wie oben beschrieben die PKBUILD-Datei angepasst und das aktuelle Paket erzeugt. Dies habe ich dann wieder in das gemountete Verzeichnis gepackt und mit "repo-add /gemountetes_Verzeichnis/raspberry.db.tar copyq-3.6.1-1-x86.pkg.tar" die Datenbank aktualisiert. Als ich dann mittels "pacman -Syu" auf Updates geprüft haben, wurde mir Version 3.6.1 von CopyQ angeboten, welche ich gleich installiert habe.

Abschließend habe ich dann noch bei allen betreffenden Rechnern CopyQ deinstalliert, die neue Paketquelle hinterlegt und aktualisiert und CopyQ über diese neu installiert.

Vermutlich wäre es einfacher gewesen, einfach die Betreuuung von CopyQ im AUR zu übernehmen. Aber das hätte weniger Spaß gemacht. Und wie schon weiter oben angegeben. Warum einfach, wenn es auch kompliziert geht? Zudem kann ich in meiner Paketquelle so viel Mist bauen wie ich willl ohne dafür einen verbalen Einlauf von Dritten zu erhalten. Und ich werde die Paketquelle wohl auch in mein Ansible-Projekt einbauen. Und da ich einige AUR-Pakete installiert habe, deren Betreuer sich oft ziemlich viel Zeit mit dem Aktualisieren lassen, wird es auch nicht bei einem Paket bleiben.


Suche von fzf beschleunigen

Vor einigen Wochen habe ich einen Artikel über fzf veröffentlicht. In diesem habe ich angemerkt, dass fzf zum suchen den Befehl find verwendet, was in bestimmten Fällen nicht gerade schnell ist. Was kann man also dagegen unternehmen?

Die Lösung lautet FZF_DEFAULT_COMMAND und fd. Wie in einem anderen Artikel angemerkt handelt es sich bei fd um eine schnellere Alternative zu find. Damit fzf fd verwendet, trägt man folgendes unter die bereits vorhandenen Einträge für fzf in der .zshrc ein.

export FZF_DEFAULT_COMMAND='fd --type f'

Wenn man nun noch den Terminal Emulator neu startet bzw. die Konfiguration der zsh neu einliest, sollte fzf deutlich schneller Ergebnisse ausspucken. Anstelle von fd kann man auch ripgrep nutzen. Hier würde der Eintrag zum Beispiel folgendermaßen aussehen.

export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow'

Das beide Einträge sollten auch unter anderen Shells wie der Bash funktionieren.


Deutschsprachiger Linux-Chat in der Matrix

Wie schon das eine oder andere mal angemerkt, setze ich große Hoffnung auf das Matrix-Protokoll wenn es um Chats geht. Daher rühre ich mal wieder die Werbetrommel und möchte auf den Raum #linuxdeutsch:matrix.org hinweisen.

Im Grunde genommen handelt es sich hierbei nur um einen Raum, in dem es hauptsächlich um Linux geht und in dem deutsch gesprochen wird. Viele werden jetzt vermutlich denken, das das ja nichts besonderes ist. Und ihr habt recht.

Aber... Aktuell sind dort 89 Konten eingeloggt und es wird sogar regelmäßig kommuniziert. Das ist schon mal mehr als es aktuell in vielen IRC-Kanälen und Jabber-Räumen der Fall ist. Zudem ist Matrix eben die Zukunft. Zugegeben die Aussage steht auf dünnem Eis und ist ziemlich subjektiv. Aber sie steht meiner Ansicht nach auf dickerem Eis als Aussagen, dass zum Beispiel Mastodon ein gleichwertiger Ersatz für Facebook ist. Oder das man problemlos anstelle von Twitter twtxt nutzen kann. Aber selbst wenn die Aussagen richtig sind, fehlen trotzdem die Nutzer (auf die Masse bezogen). Matrix kann dies, zumindest teilweise, mit Brücken (die Teil des Konzepts sind) in andere Netzwerke wie IRC oder Slack kompensieren. Somit spielt es im besten Fall keine Rolle was der Gesprächspartner nutzt. Und sind wir mal ehrlich. Jemanden von seinem Netzwerk zu überzeugen funktioniert doch zu 98 Prozent nicht. Lustigerweise kann ich aber, zumindest auf meinen Freundes- und Bekanntenkreis bezogen, die Aussage treffen, dass immer mehr Matrix nutzen.


In Verzeichnisstruktur schnell nach oben wechseln

Ab und zu muss ich in einer Verzeichnisstruktur arbeiten die ziemlich verästelt ist. Wenn man in dieser dann zum Beispiel zwei Ebenen nach oben will, kann man cd ../.. nutzen. Will man aber zum Beispiel sechs Ebenen höher, muss man schon aufpassen, dass man ensprechend viele .. und / eingibt.

Um dies zu vereinfachen, kann folgende Funktion genutzt werden (getestet mit der zsh).

function up {
     
    local counter=${1:-1}
    local dirup="../"
    local out=""

    while (( counter > 0 )); do
        let counter--
        out="${out}$dirup"
    done

    cd $out
}

Befindet man sich beispiel in /etc/systemd/system/timer.target.wants und will in /etc/systemd/systemd wechseln, reicht mit dieser Funktion der Befehl "up 2" aus.