Zum Inhalt springen

Kategorie: Internet

Pi-hole mit docker-compose

Auf einem Raspberry Pi oder einem anderen System mit einem Docker Daemon lässt sich Pi-hole sehr leicht betreiben. Hier das dazugehörige docker-compose.yml:

version: "2.1"

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8000:80/tcp"
    environment:
      TZ: Europe/Berlin
      WEBPASSWORD: peeGhoh7voh9thim
      PIHOLE_DNS_: 5.1.66.255#53;80.241.218.68#53
      ServerIP: 192.168.1.105
      ServerIPv6: fd00::935d:666d:f026:8b11
      PROXY_LOCATION: pihole.fritz.box
      VIRTUAL_HOST: pihole.fritz.box
    volumes:
       - './etc-pihole/:/etc/pihole/'
       - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    dns:
      - 127.0.0.1
      - 5.1.66.255
    restart: unless-stopped
    networks:
        - pihole_net

networks:
  pihole_net:
    enable_ipv6: true
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "true"
    ipam:
      driver: default
      config:
      - subnet: fc00::/64

Angepasst werden müssen die IP Adresse (hier 192.168.1.105), VIRTUAL_HOST und am besten auch WEBPASSWORD. Die beiden hinterlegten DNS Server gehören zu Freifunk München bzw. UncensoredDNS. Über Port 8000 ist dann die Weboberfläche erreichbar. Die IP Adresse des Docker Hosts stellt dann via Port 53 Pi-hole für DNS Anfragen bereit.

Update: IPv6 funktioniert nur bis zur docker-compose Version 2.1 und mit der zusätzlichen Network Konfiguration unten.

Via Telegram über SSH Logins informieren

Über die Telegram API kann man sich bequem benachrichtigen lassen, wenn sich ein Benutzer per SSH auf einem System eingeloggt hat.

Dazu folgende Zeilen in die Datei /etc/ssh/sshrc einfügen.

IP=`echo $SSH_CONNECTION | cut -d " " -f 1`
HOSTNAME=`hostname`
MESSAGE="SSH Login on $HOSTNAME as $USER from $IP"
curl --output /dev/null -s -X POST -H 'Content-Type: application/json' -d "{\"chat_id\": \"-123456789\", \"text\": \"$MESSAGE\", \"disable_notification\": true}" https://api.telegram.org/bot123456789:hgDW0mvUcio_AF4Za1nh-aY7PX/sendMessage

Wie an die Chat ID und das Token für den Bot zu kommen ist, ist z.B. hier beschrieben.

Datenbanken auf dem Raspberry Pi 3?

Ist es eine gute Idee, Datenbanken auf dem Raspberry Pi 3 zu betreiben? Nach meinen Erfahrungen der letzten Wochen, rate ich davon ab. Jedenfalls von größeren Datenbanken. Auf meinem Raspberry Pi 3 läuft eine PostgreSQL, die für kleine Datenmengen ausreichend ist, z.B. für Gogs (Git Repository). Zusätzlich liefen für ca. 1,5 Jahre Messdaten via FHEM in die Datenbank, was zu ca. 2,5 Millionen Datensätzen geführt hat. Und damit ist der Raspberry Pi 3 definitiv überfordert. Davor lagen diese Messdaten in einer SQLite Datenbank, die eine noch schlechtere Performance bot. Eine Java Applikation, die ebenfalls auf dem Raspberry Pi 3 läuft, hat für das Laden und Aufbereiten der Daten ca. 30 Minuten gebraucht. Die (momentane) Lösung ist, dass ich die Messdaten nun in einer MySQL Datenbank speichere, die auf einem vServer bei Host Europe läuft. Die Tabellen haben eine etwas andere Struktur, da ich direkt nach dem INSERT von neuen FHEM Messdaten diese via Trigger aufbereitet in eine andere Tabelle ablege. Der Start der Java Applikation hat sich auf ca. 30 Sekunden (nicht mehr Minuten!) reduziert. Der Zugriff auf die MySQL Datenbank erfolgt via SSH Tunnel, um die MySQL Datenbank auf dem vServer nicht direkt im Internet verfügbar zu machen.

Postfix Fehlermeldung: mail for domain loops back to myself

Auf meinem neuen Server (auf dem auch dieses Blog gehostet wird), hatte ich große Schwierigkeiten, alle root eMails an mein GMX Postfach weiterzuleiten. Im Logfile /var/log/maillog tauchte immer diese Meldung auf:

Jun 28 22:02:28 srv01 postfix/smtp[21772]:
EA150101E45: to=<[email protected]>,
orig_to=<root>, relay=none, delay=0.04, delays=0.01/0.02/0/0, dsn=5.4.6,
status=bounced (mail for lvps12-123-123-123.dedicated.hosteurope.de loops back to myself)

Die Lösung bestand darin, den korrekten Hostnamen in /etc/mailname einzutragen.

Adressvervollständigung in Thunderbird 52 funktioniert nicht mehr

Die Tage gabs für Thunderbird nach langer Zeit mal wieder einen großen Versionssprung auf Version 52. Seitdem hatte ich das Problem, dass die automatische Adressvervollständigung nicht mehr funktionierte. Ich hatte erst das Addon gContactSync in Verdacht, weil das auch (erstmal) nicht funktionierte, aber auch ein heute erschienenes Update hat an dem Problem mit der Adressvervollständigung nichts geändert.

Nach viel hin und her hab ich dann aber den Übeltäter gefunden: MoreFunctionsForAddressBook

Addon deaktiviert und schon tuts die Adressvervollständigung wieder.

Steam – Hohe CPU Last

Seit einigen Tagen hat Steam ständig 15% CPU Last auf meinen Core i7 meines MSI GE60 erzeugt, also einen der acht Kerne ausgelastet. Selbst, wenn kein Spiel lief und auch keine Downloads. Ursache war im Endeffekt der Treiber meiner Netzwerkkarte. Nachdem ich die Ursache gefunden hatte, konnte ich das auch einfach nachstellen: LAN Kabel ziehen, WLAN an, CPU Last weg. Aber wie bin ich darauf gekommen? Wenn man nach dem Problem im Internet stöbert, findet man allerlei Beiträge, die u.a. auch von einem Bitcoin Miner handeln, der sich als Steam Client tarnt. Das war in meinem Fall aber nicht der Fall. Die Lösung hat der Process Explorer gebracht. Damit hab ich mir den Steam.exe Prozess angeschaut, der die hohe CPU Last verursacht hat.

Der Tab „Threads“ hat mir dann gesagt, dass BfLLR.dll der Verursacher ist. Und mit einer Google Suche bin ich dann beim Hersteller meiner Netzwerkkarte gelandet: Killer Networking. Treiber runtergelanden, installiert, Problem behoben.

TP-Link TL-WR810N stört Telekom EntertainTV (F104030)

Die Telekom hat es vor kurzem geschafft, endlich meinen Glasfaser/FTTH Anschluss zu schalten. An sich alles gut, nur EntertainTV funktionierte nicht ordentlich. Für ca. 10 Sekunden wird das gewählte Programm ordentlich angezeigt, dann fangen Bild und Ton an zu ruckeln, dann ist Ende und der Fehler F104030 wird angezeigt. Die Systemprüfung des MR400 meldet, die Verbindungsqualität wäre nicht ausreichend. Nach viel hin und her habe ich dann den Übeltäter in meinem Netzwerk identifiziert: TP-Link TL-WR810N. Das Gerät ist an sich sehr gut und hat mir bisher auch sehr zuverlässig mein WLAN im Haus erweitert, aber leider ist es nicht Multicast-fähig bzw. stört die EntertainTV Multicastsignale. Das hat sich nur beheben lassen, indem ich das Gerät aus dem Netzwerk entfernt habe und meinen Router (Speedport W 724V) und Switch (D-Link GO-SW-24G/E) rebootet habe. Seitdem funktioniert auch EntertainTV zuverlässig.

Update: Die technische Ursache scheint zu sein, dass die EntertainTV Signale via IGMPv3 verteilt werden. Es müssen also alle Netzwerkkomponenten dieses Protokoll unterstützen.

Alternative Lösung: Wenn es möglich ist, kann man den MR 400 auch direkt an den Speedport anschließen. Dann kommen die EntertainTV Signale erst gar nicht bei Geräten im Netzwerk an, die mit Multicast nicht umgehen können. Dann lassen sich auch diese betreiben.