Kategorie: Hardware

Raspberry Pi – Installation und Betrieb von WireGuard

WireGuard Logo

Obwohl die Bekanntheit von WireGuard in den letzten Monaten stark zugenommen hat, ist das VPN-Protokoll bzw, die VPN-Software immer noch verhältnismäßig unbekannt. Ich nutze WireGuard seit einigen Monaten und möchte es nicht mehr missen. Vor allem der schnelle Verbindungsaufbau, das exzellente Roaming-Verhalten und die gute Performance haben mich überzeugt.

Was sich genau hinter WireGuard verbirgt und wie die Software arbeitet, habe ich bereits in meinem Artikel „​WireGuard – neues VPN-Protokoll mit großer Zukunft“ beschrieben. Jetzt folgt sozusagen der zweite Teil, in dem ich detailliert auf die Einrichtung unter Raspbian Buster und Android eingehe.

WireGuard Installation

Die Installationsanleitung funktioniert nicht bei folgenden Raspberry Pi Modellen: 1, 2 (Ausnahme v1.2), Zero & Zero W. Bei diesen Modellen fehlen benötigte CPU-Features und WireGuard muss dort von Hand compiliert werden. Wie das geht habe ich relativ am Ende meines Artikels aufgezeigt. Davon abgesehen macht die Nutzung auf diesen Modellen aber nur eingeschränkt Spaß.

Zunächst bringen wir die Paketquellen und alle Pakete auf den aktuellen Stand. Anschließend installieren wir noch die Kernel Headers.

sudo apt update
sudo apt upgrade
sudo apt install raspberrypi-kernel-headers

Nachdem dies erledigt ist, widmen wir uns der Installation von WireGuard.

echo "deb http://httpredir.debian.org/debian buster-backports main contrib non-free" | sudo tee --append /etc/apt/sources.list.d/debian-backports.list
wget -O - https://ftp-master.debian.org/keys/archive-key-$(lsb_release -sr).asc | sudo apt-key add -
sudo apt update
sudo apt install wireguard
sudo reboot

Die Installation an sich ist damit erledigt. Jetzt können wir mit der Konfiguration fortfahren.

Generierung der benötigten Schlüsselpaare

Zum Start benötigen wir jeweils einen privaten und öffentlichen Schlüssel für den Client und den Server.

Die Erstellung der Keys wird im Verzeichnis „/etc/wireguard“ durchgeführt. Damit alle Dateien bei der Erstellung direkt restriktive Berechtigungen haben, muss die umask auf 077 gesetzt werden.

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee peer1_private.key | wg pubkey > peer1_public.key
wg genkey | tee server_private.key | wg pubkey > server_public.key

Mittels „ls“ prüfen wir, ob alle vier Dateien erstellt wurden:

ls
peer1_private.key  peer1_public.key  server_private.key  server_public.key

Zum Schluss können die Keys mittels „cat“ ausgegeben werden, da wir diese später sowieso benötigen.

exit
sudo cat /etc/wireguard/peer1_private.key
sudo cat /etc/wireguard/peer1_public.key
sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

WireGuard Server Konfiguration erstellen

Im ersten Schritt aktivieren wir das IPv4 Forwarding in der Datei „/etc/sysctl.conf“. Dies kann entweder mit Entfernen der Auskommentierung der Zeile „net.ipv4.ip_forward = 1“ oder alternativ mit diesem Befehl erfolgen:

sudo perl -pi -e 's/#{1,}?net.ipv4.ip_forward ?= ?(0|1)/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf

Wer IPv6 nutzt, muss stattdessen entsprechend die Auskommentierung der Zeile „net.ipv6.conf.all.forwarding=1“ aufheben.

Anschließend muss der Raspberry Pi neugestartet werden.

sudo reboot

Wir überprüfen den Status mit folgendem Befehl:

sysctl net.ipv4.ip_forward

Wenn das IPv4 Forwarding aktiv ist muss als Ergebnis „net.ipv4.ip_forward = 1“ zurückgegeben werden.

Jetzt erstellen wir die WireGuard-Konfiguration „/etc/wireguard/wg0.conf“. Welchen Editor ihr bevorzugt, bleibt natürlich euch überlassen.

sudo vim /etc/wireguard/wg0.conf

Folgendes Template könnt ihr als Ausgangsbasis nutzen.

[Interface]
Address = 100.64.0.1/24
ListenPort = 51820
PrivateKey = <insert server_private.key>

#replace eth0 with the interface open to the internet (e.g might be wlan0)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

#Client1 Smartphone
[Peer]
PublicKey = <insert peer1_public.key>
AllowedIPs = 100.64.0.2/32

Neben den IP-Adressen müsst ihr den privaten Schlüssel vom Server und den öffentlichen Schlüssel vom Client ergänzen. Außerdem müsst ihr bei den iptables-Regeln evtl. die Netzwerkschnittstelle anpassen. Optional könnt ihr zudem einen anderen Port definieren. Wenn alles erledigt ist, solltest ihr die Datei unbedingt speichern.

Die für den Tunnel verwendeten IP-Adressen, dürfen sich mit den lokal verwendeten, privaten IPv4-Blöcken (RFC 1918) nicht überschneiden. Beim Einsatz einer FRITZ!Box als Router wird lokal standardmäßig 192.168.178.0/24 verwendet, d.h. alle anderen Adressbereiche können ohne Probleme genutzt werden.

Eine elegante Alternative ist die Verwendung von IP-Adressen (100.64.0.0/10), die für Carrier-Grade-NAT (RFC 6598) reserviert sind. Damit ist sichergestellt, dass die Tunnel-IPs nie mit den privaten Adressbereichen kollidieren können.

WireGuard Client Konfiguration erstellen

Am besten erstellt ihr für jeden Client eine eigene Konfiguration.

sudo vim /etc/wireguard/peer1.conf

Folgendes Template könnt ihr als Ausgangsbasis nutzen.

[Interface]
Address = 100.64.0.2/32
DNS = 192.168.178.1
PrivateKey = <insert peer1_private.key>

#Server
[Peer]
PublicKey = <insert server_public.key>
Endpoint = t6bibneqwcjxplum.myfritz.net:51820
AllowedIPs = 0.0.0.0/0, ::/0
#PersistentkeepAlive = 25

Hier müsst ihr unter „[Interface]“ die IP-Adresse des Clients anpassen und den gewünschten DNS-Server eintragen. In meinem Beispiel verwende ich die private IP der FRITZ!Box. Wer daheim Pi-Hole im Einsatz hat, kann hier die Pi-Hole Adresse eintragen und kommt somit auch von unterwegs in den Genuss der Werbefreiheit.

Außerdem müsst ihr noch den privaten Schlüssel des Clients ergänzen.

Unter „[Peer]“ tragt ihr zunächst den öffentlichen Schlüssel des Servers ein.

Anschließend folgt die Internetadresse, unter welcher der WireGuard-Server erreichbar ist. Üblicherweise gibt es hier zwei Dinge zu beachten. Bei eurem Internetanschluss daheim, bekommt ihr mit großer Wahrscheinlichkeit eine dynamische IP-Adresse vom Provider zugewiesen. Der WireGuard-Client müsste die wechselnden IP-Adressen stets kennen, um sich zu verbinden. Als Hilfe kommt hier ein dynamischer DNS-Anbieter ins Spiel, der einen festen Domainnamen bereitstellt und dahinter automatisch die jweils aktuelle IP-Adresse zuweist. Bei Verwendung einer FRITZ!Box könnt ihr beispielsweise den Dienst „MyFRITZ!“ nutzen. Eine andere Alternative wäre FreeDNS. Der zweite Punkt ergibt sich, wenn der Raspberry Pi in eurem Heimnetzwerk steht. In diesem Fall müsst ihr an eurem Router ein Port-Forwarding einrichten (UDP 51820), sodass der WireGuard-Traffic des Clients auf den Server weitergeleitet wird.

Unter „AllowedIPs“ wird definiert, welche IP-Ranges über das WireGuard-VPN geroutet werden. Mit „0.0.0.0/0, ::/0“ wird der komplette IPv4- und IPv6-Traffic geroutet (full tunnel). Mit 192.168.178.0/24 könnt ihr z.B. nur euer Heimnetzwerk routen (split tunnel).

„PersistentKeepalive“ ist standardmäßig deaktiviert. Zunächst ein paar Hintergrundinfos um einzuordnen, ob ihr dieses Feature benötigt oder nicht. Normalerweise ist WireGuard nicht sehr gesprächig und sendet nur Daten, wenn etwas zu übertragen ist. Ansonsten verhält sich WireGuard ruhig. Wenn sich der Server hinter einem NAT oder einer Firewall befindet und der Client für eine bestimmte Zeit keine Daten zum Server sendet, entfernt der NAT-Router bzw. die Firewall den Host-Status aus der Verbindungstabelle. Falls jetzt der Server ein Paket zum Client sendet, kommt dieses nicht an, da der NAT-Router bzw. die Firewall nicht weiß, was mit dem Paket zu tun ist. Mit der Option „PersistentKeepalive“ sendet der Client alle x Sekunden ein leeres Paket, um die Verbindung aufrechtzuhalten. Ein Wert von 25 Sekunden hat sich in der Praxis bewährt und funktioniert mit einem Großteil von Firewalls und NAT-Routern.

Kurz zusammengefasst benötigt ihr dieses Feature also nur, wenn ihr vom Server euren Client erreichen möchtet, obwohl dieser seit längerer Zeit keine Pakete gesendet hat. Die meisten Benutzer werden dieses Feature nicht benötigen. Falls doch, einfach die Auskommentierung der Zeile rückgängig machen.

WireGuard Server starten

Nun können wir WireGuard auf dem Server starten. Anstatt alle einzelnen Schritte manuell mit dem „wg“-Tool durchzuführen, bedienen wir uns beim Tool „wg-quick“.

sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 100.64.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Danach prüfen wir den Status der wg0-Schnittstelle.

sudo wg
interface: wg0
  public key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxljP1wpITnI=
  private key: (hidden)
  listening port: 51820

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxtJd9/esWN4=
  allowed ips: 100.64.0.2/32

Der Server läuft und ist für die Verbindung des Clients bereit.

WireGuard beenden funktioniert mit diesem Befehl:

sudo wg-quick down wg0

Wenn WireGuard beim Systemstart automatisch geladen werden soll, kann dies mit folgendem Befehl realisiert werden:

sudo systemctl enable wg-quick@wg0
Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

Der Daemon kann folgendermaßen gesteuert werden. Dabei müsst ihr allerdings darauf achten, dass ihr WireGuard zuerst beendet, sofern ihr es manuell gestartet habt.

sudo systemctl start wg-quick@wg0
sudo systemctl stop wg-quick@wg0
systemctl status wg-quick@wg0

Zum Schluss werden die Berechtigungen von „/etc/wireguard/“ und allen Dateien noch einmal korrigiert. Damit wird sichergestellt, dass nur root die entsprechenden Berechtigungen besitzt.

sudo chown -R root:root /etc/wireguard/
sudo chmod -R og-rwx /etc/wireguard/*

WireGuard Client unter Android einrichten

Die Einstellungen in der Android-App können manuell, mittels einer Datei oder mit einem QR-Code erfolgen. Die letzte Variante ist dabei am bequemsten. Hierfür muss auf dem Server der QR-Code erstellt werden.

sudo apt install qrencode

Nach dem Installieren von „qrencode“ kann der QR-Code von der Client-Konfiguration erstellt werden:

sudo cat /etc/wireguard/peer1.conf | qrencode -t ansiutf8

Auf dem Android-Gerät muss zunächst die WireGuard App via Google Play installiert werden. Daraufhin kann der erstellte QR-Code mit der App gescannt werden, um die Konfiguration zu importieren. Nachdem ein Name vergeben wurde, kann die Verbindung aktiviert werden.

Mit einem Klick auf den gerade erstellten Tunnel werden einige Infos angezeigt, unter anderem auch eine Trafficstatistik.

Auf dem Server kann ebenfalls der Status ausgegeben werden. Dort werden unter anderem alle verbundenen Clients angezeigt:

sudo wg
interface: wg0
  public key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxljP1wpITnI=
  private key: (hidden)
  listening port: 51820

peer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxtJd9/esWN4=
  endpoint: 11.12.13.14:53019
  allowed ips: 100.64.0.2/32
  latest handshake: 56 seconds ago
  transfer: 927.04 KiB received, 64.85 MiB sent

Der Client kann nun auch via Ping erreicht werden:

ping 100.64.0.2
PING 100.64.0.2 (100.64.0.2) 56(84) bytes of data.
64 bytes from 100.64.0.2: icmp_seq=1 ttl=64 time=95.9 ms
64 bytes from 100.64.0.2: icmp_seq=2 ttl=64 time=112.4 ms
64 bytes from 100.64.0.2: icmp_seq=3 ttl=64 time=71.7 ms

Noch zwei kleine Tipps für die Android-App. Ich importieren die Konfig vom Server immer zweimal. Einmal als „full tunnel“ mit „0.0.0.0/0, ::/0“ und einmal als „split tunnel“, lediglich mit dem Heimnetzwerk eingetragen, z.B. 192.168.178.0/24. So habt ihr volle Kontrolle und könnt je nach Situation den richtigen Tunnel nutzen.

Beim Bearbeiten eines Tunnels (Tunnel Infos anzeigen und dann rechts oben auf das Stift-Icon) könnt ihr außerdem festlegen, welche Apps keinen Traffic über den Tunnel schicken dürfen.

Troubleshooting

WireGuard ist ein Kernel-Modul, das via DKMS automatisch installiert wird, sobald das System einen neuen Kernel benutzt. In seltenen Fällen kann es jedoch passieren, dass WireGuard nicht automatisch eingebunden wird und mit dem neuen Kernel nicht mehr funktioniert.

In diesem Fall sollte zunächst geprüft werden, ob das WireGuard Modul geladen wurde:

lsmod | grep wireguard

Falls nicht kann es hilfreich sein, das Kernel-Modul neu zu konfigurieren:

sudo dpkg-reconfigure wireguard-dkms
sudo modprobe wireguard

Wenn dies keine Abhilfe schafft, könnt ihr noch folgendes ausprobieren:

sudo apt remove wireguard
sudo apt install bc libncurses5-dev
sudo apt install wireguard

Sollte dies auch keine Besserung bringen, könnt ihr alternativ das WireGuard Kernel Module und das wg Tool selber kompilieren. Davor muss aber sichergestellt sein, dass alle installierten WireGuard-Pakete deinstalliert sind!

sudo apt remove wireguard
# Toolchain installieren
sudo apt install libmnl-dev raspberrypi-kernel-headers build-essential git pkg-config
#Code laden
git clone https://git.zx2c4.com/wireguard-linux-compat
git clone https://git.zx2c4.com/wireguard-tools
# Kernel Module und das wg Tool kompilieren und installieren
make -C wireguard-linux-compat/src -j$(nproc)
sudo make -C wireguard-linux-compat/src install
make -C wireguard-tools/src -j$(nproc)
sudo make -C wireguard-tools/src install
# Neustarten und fertig
sudo reboot

Die aktuell installierte Version könnt ihr am besten via „dmesg“ herausfinden:

dmesg | grep wireguard
[   15.677458] wireguard: loading out-of-tree module taints kernel.
[   15.687104] wireguard: WireGuard 0.0.20200318 loaded. See www.wireguard.com for information.
[   15.687119] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld . All Rights Reserved.

Quellen

  • https://www.wireguard.com/install/
  • https://github.com/adrianmihalko/raspberrypiwireguard
  • https://www.reddit.com/r/pihole/comments/bnihyz/guide_how_to_install_wireguard_on_a_raspberry_pi/
  • https://emanuelduss.ch/2018/09/wireguard-vpn-road-warrior-setup/
  • https://www.bachmann-lan.de/raspberry-pi-mit-wireguard-als-vpn-server-mit-wireguard/

Samsung-Fernseher 2020 – Übersicht der neuen QLED- und TU-Serie

Samsung Q950T (Bild: Samsung)

Anfang März hat Samsung das komplette QLED- und UHD-TV-Sortiment inklusive der unverbindlichen Preise für 2020 vorgestellt. Neben den beiden 8K-Modellen Q950T und Q800T wurden auch die 4K-Modelle der QLED- und TU-Serie präsentiert. Die meisten Modelle sollen noch im März im Handel verfügbar sein.

8K QLED

Das neue Flaggschiff ist die bereits im Januar auf der CES gezeigte Q950T-Serie. Das fast rahmenlose Design, die nur 15 Millimeter tiefe Bauweise und der integrierte Sourround-Sound haben allerdings ihren Preis. Der Einstieg mit 65 Zoll kostet 5.999 Euro und dürfte daher für die wenigsten interessant sein.

Gleichzeitig schickt Samsung eine zweite 8K-Serie ins Rennen, die bei 65 Zoll und 3.799 Euro startet. Ebenso wie das Topmodell verfügt der Q800T Direct-LED-Backlight mit Local Dimming sowie HDMI 2.1. Für den geringeren Preis muss allerdings auf die One Invisible Connection verzichtet werden und es kommen weniger Dimming-Zonen zum Einsatz.

Features der QLED-Baureihen im Überblick (Bild: Samsung)

Features der QLED-Baureihen im Überblick (Bild: Samsung)

4K QLED

Die neuen QLED-Modelle sind im direkten Vergleich mit den Modellen aus dem Vorjahr deutlich günstiger. Allerdings ist hier Vorsicht geboten, da Samsung quasi alle Modelle abgespeckt hat. Die 4K-QLED-Topmodelle Q95T und Q90T bieten im Gegensatz zu den Vorgängern Q90R und Q85R weniger Zonen beim Full Array Local Dimming (FALD). Wieviel Zonen genau vorhanden sind, hat Samsung nicht verraten und muss wohl durch die ersten Reviews geklärt werden.

Generell setzt Samsung erst ab dem Q80T auf Direct-LED-Backlight nebst Local Dimming. Bei den 2019er-Modellen verfügte auch der Q70R über diese Ausstattung. Die beiden kleinsten Varianten Q70T und Q60T müssen sich mit Edge-LED-Backlight begnügen. Darüber hinaus verfügt der Q60T lediglich über ein 50-Hz-Panel. Selbst der RU8009 von letztem Jahr bietet ab 55 Zoll ein Panel mit 100 Hz.

Wie in letztem Jahr unterstützen alle QLED-TVs HDR10 und da dynamische HDR10+-Format. Dolby Vision wird weiterhin nicht geboten. Bei HDMI wird lediglich Version 2.0b unterstützt, HDMI 2.1 ist den teuren 8K-Modellen vorbehalten. Bis auf den Q60T verfügen alle QLED-TVs über einen Dual-Tuner mit DVB-T2/C/S2.

Die Änderungen machen einen direkten Vergleich mit den 2019-Modellen schwierig. Generell könnt ihr die neuen TVs aber immer eine Serie darunter einordnen:

  • Q95T –> Q90R
  • Q90T –> Q85R
  • Q80T –> Q70R
  • Q70T –> Q60R
  • Q90T –> RU8009

Übersicht

Nachfolgend eine Tabelle mit allen neuen Modellen und der unverbindlichen Preisempfehlung. Mit dabei sind auch die drei Lifestyle-Fernseher The Serif, The Frame und The Sero.

ModellnummerGrößePreis
Q950T (8K QLED)
GQ85Q950TSTXZG85 Zoll11.999 €
GQ75Q950TSTXZG75 Zoll7.999 €
GQ65Q950TSTXZG65 Zoll5.999 €
Q800T (8K QLED)
GQ82Q800TGTXZG82 Zoll6.799 €
GQ75Q800TGTXZG75 Zoll5.299 €
GQ65Q800TGTXZG65 Zoll3.799 €
Q95T (4K QLED)
GQ85Q95TGTXZG85 Zoll5.799 €
GQ75Q95TGTXZG75 Zoll4.499 €
GQ65Q95TGTXZG65 Zoll2.899 €
GQ55Q95TGTXZG55 Zoll2.199 €
Q90T (4K QLED)
GQ75Q90TGTXZG75 Zoll3.999 €
GQ65Q90TGTXZG65 Zoll2.699 €
GQ55Q90TGTXZG55 Zoll1.999 €
Q80T (4K QLED)
GQ85Q80TGTXZG85 Zoll4.799 €
GQ75Q80TGTXZG75 Zoll3.499 €
GQ65Q80TGTXZG65 Zoll2.199 €
GQ55Q80TGTXZG55 Zoll1.599 €
GQ49Q80TGTXZG49 Zoll1.399 €
Q70T (4K QLED)
GQ85Q70TGTXZG85 Zoll3.999 €
GQ75Q70TGTXZG75 Zoll2.699 €
GQ65Q70TGTXZG65 Zoll1.799 €
GQ55Q70TGTXZG55 Zoll1.299 €
Q60T (4K QLED)
GQ85Q60TGUXZG85 Zoll3.199 €
GQ75Q60TGUXZG75 Zoll2.199 €
GQ65Q60TGUXZG65 Zoll1.499 €
GQ58Q60TGUXZG58 Zoll1.199 €
GQ55Q60TGUXZG55 Zoll1.099 €
GQ50Q60TGUXZG50 Zoll899 €
GQ43Q60TGUXZG43 Zoll749 €
TU8509 (4K Crystal UHD)
GU65TU8509UXZG65 Zoll1.199 €
GU55TU8509UXZG55 Zoll849 €
GU50TU8509UXZG50 Zoll699 €
GU43TU8509UXZG43 Zoll579 €
TU8079 (4K Crystal UHD)
GU82TU8079UXZG82 Zoll2.799 €
GU75TU8079UXZG75 Zoll1.599 €
GU65TU8079UXZG65 Zoll999 €
GU55TU8079UXZG55 Zoll699 €
GU50TU8079UXZG50 Zoll599 €
GU43TU8079UXZG43 Zoll499 €
TU7199 (4K Crystal UHD)
GU75TU7199UXZG75 Zoll1.399 €
GU70TU7199UXZG70 Zoll1.099 €
GU65TU7199UXZG65 Zoll899 €
GU58TU7199UXZG58 Zoll749 €
GU55TU7199UXZG55 Zoll659 €
GU50TU7199UXZG50 Zoll549 €
GU43TU7199UXZG43 Zoll449 €
TU7079 (4K Crystal UHD)
GU75TU7079UXZG75 Zoll1.299 €
GU65TU7079UXZG65 Zoll799 €
GU55TU7079UXZG55 Zoll569 €
GU50TU7079UXZG50 Zoll469 €
GU43TU7079UXZG43 Zoll399 €
The Frame 2020 (4K QLED)
GQ75LS03TAUXZG75 Zoll3.499 €
GQ65LS03TAUXZG65 Zoll2.199 €
GQ55LS03TAUXZG55 Zoll1.599 €
GQ50LS03TAUXZG50 Zoll1.399 €
GQ43LS03TAUXZG43 Zoll1.199 €
GQ32LS03TAUXZG (FHD)32 Zoll549 €
The Sero (4K QLED – drehbar)
GQ43LS05TAUXZG43 Zoll1.599 €
The Serif (4K QLED)
GQ55LS01TAUXZG (weiß)55 Zoll1.399 €
GQ49LS01TAUXZG (weiß)49 Zoll1.199 €
GQ43LS01TAUXZG (weiß)43 Zoll1.099 €
GQ55LS01TBUXZG (blau)55 Zoll1.399 €
GQ49LS01TBUXZG (blau)49 Zoll1.199 €
GQ43LS01TBUXZG (blau)43 Zoll1.099 €

Kategorien: Hardware TV

Übersicht neue Convoy Taschenlampen

Die gängigsten Akkus für LED-Taschenlampen sind nach wie vor 18650 Lithiumionen-Akkus. Doch die Dominanz wackelt. Immer häufiger kommen modernere Bauformen wie 20700 oder 21700 zum Einsatz. Die fünfstellige Zahl bezieht sich dabei auf die Größe der zylindrischen Zellen. Die ersten beiden Ziffern geben den Durchmesser in Millimeter an, die dritte und vierte Stelle die Länge der Zelle.

Tesla setzt schon seit längerem auf 21700-Akkus und immer mehr Unternehmen ziehen mit. Neben vielen E-Bike-Herstellern verwendet auch Bosch 21700-Zellen in den neuen ProCore-Akkus. Zudem erscheinen immer mehr Taschenlampen mit den größeres Akkus. Kein Wunder, denn 21700 sind nur wenig größer als 18650, bieten aber eine wesentlich höhere Kapazität und können zudem eine höhere Stromstärke bei der Entladung liefern.

Auch der chinesische Hersteller Convoy hat in den letzten Monaten eine ansehnliche Palette von neuen LED-Taschenlampen mit größeren Akkus auf den Markt gebracht. Die Taschenlampen von Convoy gelten durch ihr herausragendes Preis-Leistungs-Verhältnis seit Jahren als Geheimtipp. Ich besitze mittlerweile mehrere Lampen von Convoy: eine C8, eine M2, zwei S2+ (einmal mit Cree XM-L2 und einmal Nichia 365UV) und seit einigen Wochen eine M21B. Demnächst wird sich noch eine M21C mit XHP70.2 und Biscotti Firmware dazugesellen.

NameS11S12M3S21AM21AL21AM21BM21CM26C
LEDXHP50.2
SST-40
3x SST-20
3x Nichia 219C
XHP70.2SST-40SST-40SST-40
XHP50.2
SST-40SST-40
XHP70.2
SST-40
XHP70.2
Akku1x 266501x 217001x 266501x 217001x 217001x 217001x 217001x 217001x 26650
Lumen2.4002.3004.3002.3002.3002.3002.3002.300
4.000
2.300
4.000
LVPWarnungWarnungWarnungWarnungWarnungWarnungWarnungWarnungWarnung
Ø Head
Ø Body
Ø Tail
33,0
33,0
33,0
34,6
27,4
27,4
48,1
35,6
38,1
25,9
44,5
64,5
25,9
27,3
?
25,9
31,3
?
35,7
27,1
27,1
55,0
28,0
28,0
55,0
33,5
33,5
Länge mm
139134149122,5155,8179141,5163155
Gewicht g
17112429075168365120275264
Preis20 €
23 €
24 €33 €16 €20 €33 €
37 €
20 €27 €
34 €
27 €
34 €

Kategorien: Hardware

Xiaomi eröffnet ersten Mi Store in Deutschland

Xiaomi Logo

Der chinesische Hersteller Xiaomi hat innerhalb der letzten Jahre in Europa Fuß gefasst. Auch in Deutschland erlangt Xiaomi immer größere Beliebtheit. Ich setze beispielsweise seit geraumer Zeit nur noch auf Smartphones von Xiaomi, allerdings nicht mit dem hauseigenen Betriebssystem MIUI sondern mit Custom ROM.

Offensichtlich nimmt die Expansion nach Deutschland dieses Jahr mehr Fahrt auf. Xiaomi hat bekannt gegeben, dass im 2. Quartal dieses Jahr der erste Mi Store in Deutschland eröffnet werden soll. In einem Tweet wurde auch der Standort bekannt gegeben: Es ist Düsseldorf.

Weitere Details wie der genaue Eröffnungstermin und das geplante Sortiment wurden bislang allerdings nicht verraten. Bei LinkedIn sind aktuell zwei Stellen in Vollzeit ausgeschrieben, zum einen die Position als Sales Manager bei der Xiaomi Technology sowie einen Office Administrator.

Darüber hinaus startet Xiaomi ebenfalls im Q2 2020 mit dem Direktvertrieb via https://mi.com/de. Diese Neuigkeit ist zwar weniger interessant, da Produkte von Xiaomi bereits auf Amazon und diversen anderen deutschen Webseiten zu erwerben sind, aber dennoch erwähnenswert.

Kategorien: Hardware Smartphones

Raspberry Pi – SSH Hardening

Raspberry Pi Logo

Die wohl am häufigsten genutzte Methode zur Administration eines Raspberry Pis ist Secure Shell (SSH). In den aktuellen Raspbian Versionen ist SSH bereits integriert und muss lediglich aktiviert werden.

Im aktuellen Raspbian Buster (basiert auf Debian 10 Stable) kommt OpenSSH in Version 7.9p1 zum Einsatz. Die Standard-Konfiguration ist in puncto Sicherheit zwar in Ordnung, aber mit einigen Handgriffen lässt sich die Administrationsschnittstelle deutlich besser absichern. Damit steigt die Hürde für potenzielle Angreifer deutlich. Dies ist vor allem wichtig, wenn euer Pi aus dem Internet erreichbar ist.

Mein Artikel bezieht sich auf Raspbian Buster mit OpenSSH 7.9, ist aber größtenteils auch für andere Distributionen und OpenSSH-Versionen anwendbar.

Grundlagen und hilfreiche Befehle

OpenSSH besteht aus zwei Teilen: Dem Server Daemon (sshd) und dem Client (ssh). In diesem Tutorial widme ich mich ausschließlich sshd. Die Konfigurationsdatei des Servers befindet sich hier:

/etc/ssh/sshd_config

Der Status des sshd-Daemons kann mit folgendem Befehl abgefragt werden:

systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-11-02 08:44:33 GMT; 2 weeks 3 days ago

Damit könnt ihr sicherstellen, dass sshd automatisch startet (enabled) und gerade läuft (active (running)). Des Weiteren seht ihr auch die 10 letzten Logeinträge.

Mit folgendem Befehl könnt ihr die aktiven SSH-Sessions einsehen:

ss -n -o state established '( dport = :22 or sport = :22 )'

Bei Änderungen an der Server-Konfiguration empfehle ich diese vor dem Neustart des Dienstes zu prüfen. Damit könnt ihr Syntaxfehler und Probleme mit ungültigen Einstellungen in „/etc/ssh/sshd_config“ verhindern:

sudo sshd -t

Zum Anwenden der Änderungen empfehle ich sshd folgendermaßen neuzustarten. Mit dieser Variante besteht die größte Chance, dass offene Remote-Sessions nicht geschlossen werden.

sudo systemctl reload ssh.service

SSH-Server: Einstellungen

Wie oben bereits erwähnt lassen sich die Einstellungen in der Datei „/etc/ssh/sshd_config“ anpassen und sind nach einem Neustart von sshd aktiv. Einige Einstellungen sind bereits standardmäßig deaktiviert. Diese sind in der Config-Datei auskommentiert. Es schadet jedoch nicht diese noch einmal zu überprüfen.
Über die Protokoll-Version müssen wir uns keine Sorgen machen, da ab OpenSSH 7.0 SSH Version  1 bereits beim Kompilieren deaktiviert wird.
Standardmäßig hört der Server auf Port 22. Dieser kann geändert werden, um beispielsweise die Anzahl der Angriffe zu verringern. Einen Sicherheitsgewinn gibt es meiner Meinung nach nicht.
Wenn der Server mehrere IP-Adressen besitzt, kann über „ListenAdress“ eingeschränkt werden, auf welcher IP eine Verbindung akzeptiert werden soll.

#Port22
#ListenAddress 0.0.0.0
#ListenAddress ::

Da wir auf unserem Raspberry keine grafische Benutzeroberfläche haben, können wir das X11-Protokoll getrost deaktiviert lassen. Davon abgesehen wird vom Server ein Rückkanal zum Client geöffnet, was sicherheitstechnisch nicht ganz unbedenklich ist.

#X11Forwarding no

Mittels .rhosts-Datei kann der Zugriff von fremden Systemen lediglich anhand der IP-Adresse erlaubt werden. Dieser Zugriff ist heutzutage nicht mehr üblich und daher standardmäßig deaktiviert.

#IgnoreRhosts yes

Useraccounts ohne Passwort dürfen sich nicht via SSH anmelden. Auch diese Option ist per Default deaktiviert.

#PermitEmptyPasswords no

Eine direkte Anmeldung mit dem Account „root“ sollte in der Regel nicht erlaubt werden (PermitRootLogin no). Falls dies aus bestimmten Gründen dennoch notwendig sein sollte, ist die Option „without-password“ in Ordnung. Diese ist standardmäßig gesetzt und erlaubt eine Public-Key-Authentifizierung mit dem root Account.

#PermitRootLogin without-password

Die maximale Zahl der Anmeldeversuche pro User sind standardmäßig auf 6 gesetzt. Ich würde empfehlen den Wert weiter zu verringern, beispielsweise auf 3.

MaxAuthTries 3

Inaktive Sessions können nach einer bestimmten Zeit automatisch beendet werden. Mit „ClientAliveInterval“ wird festgelegt, nach wie vielen Sekunden Inaktivität der Server eine Nachricht an den Client sendet. „ClientAliveCountMax“ ist die Anzahl, wie oft dies der Server wiederholt, bis der Client getrennt wird. In meinem Beispiel oben wird der Client nach 15 Minuten getrennt.

ClientAliveInterval 300
#ClientAliveCountMax 3

Normalerweise erfolgt die Anmeldung am Server mit Username und Passwort. Eine bessere Alternative ist die Public-Key-Authentifizierung. Diese ist bereits standardmäßig erlaubt.

#PubkeyAuthentication yes

Zur Einrichtung muss auf dem Client zunächst ein neues Schlüsselpaar generiert werden. Wählt hier „Ed25519“, sofern nichts gravierendes dagegenspricht. Unter Windows könnt ihr dies prima mit PuTTYGen erledigen. Ab Windows 10 1809 kann dies auch direkt via PowerShell oder der Eingabeaufforderung erledigt werden. Unter Linux nutzt ihr ssh-keygen. Der Einsatz einer Passphrase ist zwar optional, aber ich empfehle ein starkes Passwort zu verwenden, um den Key vor Missbrauch zu schützen.

ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519

Im nächsten Schritt muss der Public Key auf dem Server eingetragen werden. PuTTYGen stellt euch den String bereit, den ihr in die „authorized_keys“ kopieren müsst.

ssh pi@192.168.10.10
mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Unter Linux geht dies mit „ssh-copy-id“ etwas einfacher.

ssh-copy-id -i ~/.ssh/id_ed25519.pub pi@192.168.10.10

Abschließend solltet ihr prüfen, ob die Anmeldung via Public-Key-Authentifizierung funktioniert. Falls ja, könnt ihr nun die Passwort-Anmeldung an eurem SSH-Server deaktivieren.

PasswordAuthentication no
#ChallengeResponseAuthentication no

SSH-Server: Cipher-Suites und Verschlüsselungsalgorithmen

Zur Prüfung, welche Cipher-Suites und Verschlüsselungsalgorithmen euer OpenSSH-Server anbietet, eignet sich das Python-Script „ssh-audit“:

cd ~
wget https://github.com/jtesta/ssh-audit/releases/download/v2.1.0/ssh-audit-2.1.0.tar.gz
tar -xvzf ssh-audit-2.1.0.tar.gz
~/ssh-audit-2.1.0/ssh-audit.py localhost

Alternativ könnt ihr auch Nmap dazu verwenden:

nmap -p22 -n -sV --script ssh2-enum-algos localhost

Schauen wir uns zunächst die Algorithmen für den Schlüsseltausch an. Falls Curve25519 nicht ausreichend ist, könnt ihr noch „diffie-hellman-group-exchange-sha256“ hinzufügen.

KexAlgorithms curve25519-sha256@libssh.org

Danach folgen die Schlüssel bzw. Algorithmen für die Authentifizierung. Hier solltet ihr alle vorhandenen Host-Schlüssel löschen und neu generieren.

cd /etc/ssh
sudo rm ssh_host_*key*
sudo ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N "" < /dev/null
sudo ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key -N "" < /dev/null

Anschließend könnt ihr in eure „sshd_config“ folgendes eintragen:

HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKeyAlgorithms ssh-ed25519,ssh-rsa

Als nächstes nehmen wir uns den symmetrischen kryptographischen (Ciphers) sowie MAC (Message Authentication Code) Algorithmen an. Folgendes gilt aktuell als sicher:

Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com

Prüft zur Sicherheit, dass ihr vor dem Neustart von sshd eine Verbindung habt, damit ihr euch im Notfall nicht den Zugang zu eurem Raspberry absägt.

Einen guten Artikel mit weiteren Details über die einzelnen Cipher-Suites und Verschlüsselungsalgorithmen findet ihr hier: https://stribika.github.io/2015/01/04/secure-secure-shell.html

Cisco und der Verpackungswahn

Cisco Logo

Cisco bietet die Möglichkeit nur wenige Monate oder Wochen benutzte Hardware zu signifikant günstigeren Preisen zu erwerben. Diese Cisco Refresh Produkte sind generalüberholt, vollständig zertifiziert und von neuer Hardware quasi nicht zu unterscheiden. Auch bei der Garantie und Lizenzierung gibt es keine Nachteile. Gute Gründe, um bei Neuanschaffungen über entsprechende Produkte nachzudenken.

Anhand einiger SFP-Module (GLC-LH-SMD), die via Cisco Refresh bezogen wurden, möchte ich euch gerne den Verpackungswahn bei Cisco zeigen. Die SFPs werden einzeln verpackt geliefert. Im größeren Karton befindet sich zunächst ein kleinerer Karton. Dort ist das Modul in einer antistatischen Verpackung enthalten. Das letzte Bild zeigt 20 ausgepackte SFPs und den entstandenen Kartonabfall. Den Plastikabfall habe ich dabei noch gar nicht berücksichtigt.

Ich stelle mir gerade vor, wie viel Verpackungs- und Transportkosten sich einsparen ließen. Geschweige denn von der unnötig verbrauchten Arbeitszeit während dem Auspacken ;-)

Custom ROM auf Xiaomi Smartphones installieren

Xiaomi Logo

Nach rund einem Jahr mit dem Xiaomi Redmi Note 5 stand bei mir ein Smartphone-Wechsel an. Da ich unbedingt ein kompakteres Smartphone haben wollte, bin ich schlussendlich beim Xiaomi Mi 9 SE gelandet. Zähneknirschend habe ich den relativ kleinen Akku (3.070 mAh) und die fehlende Benachrichtigungs-LED akzeptiert. Ein Smartphone, welches zu 100 Prozent alle gewünschten Features beinhaltet und gleichzeitig noch halbwegs erschwinglich ist, existiert sowieso nicht ;-)

In den letzten Wochen wurden die ersten Custom ROMs für das Xiaomi Mi 9 SE veröffentlicht und die gravierendsten Probleme behoben. Nachdem beim Remi Note 5 der Support für LineageOS eingestellt wurde, habe ich mich kurzerhand dazu entschlossen, anderen ROMs eine Chance zu geben. Für das Mi 9 SE existieren aktuell sowieso noch nicht viele Alternativen, weshalb ich mich für crDroid entschieden habe. crDroid basiert auf AOSP bzw. LineageOS , bringt aber zusätzliche Anpassungsmöglichkeiten aus einigen anderen ROMs mit.

Nachfolgend möchte ich kurz das Vorgehen beschreiben, wie ihr auf ein neues Smartphone von Xiaomi eine beliebige Custom ROM bekommt. Wie oben bereits erwähnt, beziehe ich mich dabei auf crDroid und das Mi 9 SE. Das Vorgehen sollte aber bis auf kleine Anpassungen für alle neuen Xiaomi-Smartphones und für viele andere Custom ROMs gültig sein.

Bootloader entsperren

Zunächst muss der Bootloader eures Xiaomi-Smartphones entsperrt werden. Denkt daran, dass dabei all eure Daten auf dem Smartphone gelöscht werden. Wer das Gerät also bereits genutzt hat, sollte vorher dem Entsperren des Bootloaders ein Backup anfertigen.

Hier die einzelnen Schritte zum Bootloader Entsperren in einer kurzen Übersicht:

  1. Voraussetzung ist ein funktionierendes „adb“ und „fastboot“. Empfehlen kann ich den 15 seconds ADB Installer.
  2. Mi-Account erstellen und mit diesem auf dem Smartphone anmelden. Unter MIUI 10 funktioniert das folgendermaßen:
    1. Einstellungen -> Mein Gerät
    2. Mehrmals auf den Punkt „MIUI-Version“ klicken, bis die Entwickleroptionen freigeschaltet werden.
    3. Dann zu „Einstellungen“ -> „Kategorie System & Gerät -> Weitere Einstellungen“ -> „Entwickleroptionen“.
    4. Unter „Mi Entsperr-Status“mit eurem Mi-Account einloggen.
  3. Ab diesem Zeitpunkt beginnt die Wartezeit, welche bis zu 360 Stunden (15 Tage) betragen kann. Bei mir waren es erfreulicherweise nur 7 Tage. Wie lange es bei euch dauert, seht ihr im nächsten Schritt.
  4. Mi Unlock Tool downloaden (neueste Version direkt von Xiaomi).
  5. Mi Unlock Tool starten. Anschließend mit eurem Mi-Account anmelden.
  6. Smartphone ausschalten, per USB mit eurem PC verbinden und in den Fastboot-Modus starten (volume down und Power-Taste gleichzeitig drücken).
  7. Versuchen das Smartphone zu entsperren. Jetzt sollte euch die Wartezeit angezeigt werden.
  8. Nach der Wartezeit erneut mit Schritt 5 beginnen. Solltet ihr einen Fehler bekommen, könnt ihr evtl. auch eine ältere Version des Mi Unlock Tools probieren. Bei mir hatte die neueste Version nicht funktioniert, Version 2.3.803.10 aber problemlos.

    Mi Unlock

Custom Recovery (TWRP) installieren

Sobald der Bootloader entsperrt ist, muss im zweiten Schritt das Custom Recovery TWRP (Team Win Recovery Project) installiert werden. Die aktuelle TWRP-Version für euer Gerät findet ihr entweder direkt auf der TWRP-Homepage oder im xda-Forum.

  1. Smartphone im Fastboot-Modus starten (volume down und Power-Taste gleichzeitig drücken) und via USB mit eurem PC verbinden.
  2. Prüfen ob das Gerät korrekt erkannt wird:
    fastboot devices
  3. TWRP-Recovery flashen. Der erste Befehl ist nur notwendig, wenn euer TWRP in einem separaten Ordner liegt.
    cd C:\Users\USERNAME\Desktop
    fastboot flash recovery twrp-3.3.1-7a-Mi9SE.img

    Auf keinen Fall „fastboot boot …“ nutzen, da ansonsten die Verschlüsselung beschädigt wird und ihr zur Reparatur „data“ neu formatieren müsstet.
  4. TWRP-Recovery booten (volume up und Power-Taste gleichzeitig drücken) und warten bis TWRP geladen ist.
  5. Modifizierung des Dateisystems erlauben.

Custom ROM installieren

Zwei Drittel sind schon geschafft, jetzt folgt das Flashen der Custom ROM (in meinem Fall crDroid) und Co. Zunächst müsst ihr ein paar Downloads tätigen und die Dateien auf das Smartphone legen. Das Kopieren auf das Smartphone sollte auch direkt unter TWRP funktionieren.

Jetzt könnt ihr loslegen.
  1. In TWRP Recovery booten (volume up und Power-Taste gleichzeitig drücken).
  2. Im Recovery den Punkt „Wipe“ aufrufen, dann den Button „Format Data“ klicken. Anschließend „Swipe to Factory Reset ausführen“ und erneut in TWRP Recovery booten.
  3. Neue Firmware installieren, dabei müsst ihr auf eine kompatible Version achten, Stichwort Anti-Rollback. Wenn das Custom ROM keine vendor.img enthält, müsst ihr diese zusätzlich installieren.
  4. Custom ROM (crDroid) installieren.
  5. Open GApps installieren.
  6. Smartphone neustarten (Reboot –> System).*
  7. ROM einrichten.
  8. Erneut in TWRP Recovery booten.
  9. Root (Magisk) und ggf. Kernel installieren.
  10. Smartphone neustarten (Reboot –> System).
  11. (optional) Magisk Manager einrichten.

*Bei einem Boot-Loop muss eine weitere Datei (vbmeta.img) via Fastboot geflasht werden, um den Loop zu beheben.

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

Größenvergleich von Smartphones

Beim Kauf von Smartphones ist die Größe ein wichtiger Faktor. Dies gilt sowohl für die Größe des Displays als auch die Größe des gesamten Geräts. In Zeiten von immer größer werdenden Smartphones, suchen immer mehr User nach kompakten Modellen.

Ohne Zweifel ist ein Größenvergleich von verschiedenen Modellen in der Realität am sinnvollsten. Doch dies ist aus unterschiedlichen Gründen oft nicht möglich. Für einen ersten Eindruck ist dies aber auch gar nicht notwendig. Hier kann ich euch den Größenvergleich von phoneArena.com empfehlen. Dieser hat im Vergleich zu ähnlichen Angeboten den Vorteil, dass neue Smartphones schnell aufgenommen werden. Des Weiteren kann die Anzeige auf dem Bildschirm so justiert werden, dass diese 1:1 der realen Größe entspricht.

Nach dem Hinzufügen der gewünschten Smartphones können diese entweder nebeneinander oder übereinander angezeigt werden. Außerdem wird die Seitenansicht eingeblendet, die unter anderem Aufschluss darüber gibt, wie weit die Kamera heraussteht.

Kategorien: Internet Smartphones

Laserdrucker drückt sich ums Drucken: Sauberkeit hilft manchmal

Die Zeiten, in denen Laserdrucker für Privatkunden unerschwinglich gewesen sind, sind natürlich seit Jahren vorbei. So nutze ich selbst etwa den preisgünstigen Brother HL-2130. Jener kann zwar nur monochromatisch drucken und ist für Bilder generell weniger prädestiniert, für Texte oder auch Diagramme ist er aber in meinem Nutzungsalltag eine super Sache. Die Vorteile gegenüber Tintenstrahldruckern liegen auf der Hand, da man eben deutlich länger mit einem Toner auskommt. Wer viel druckt, macht mit einem Laserdrucker also eventuell ein gutes Geschäft.

Allerdings kann auch so ein Laserdrucker leider so seine Macken entwickeln. Ich kaufe beispielsweise immer alternative Tonerkartuschen für mein Modell, da mir die Herstellervarianten zu teuer sind. Das führt dazu, dass bei mir bei manchen Ersatz-Tonern trotz frisch vorgenommenem Wechsel der Toner als leer angezeigt wurde. Ein bisschen tricksen, etwa durch Neustarts und Resets, half dann in der Regel. Irgendwie weiß man sich ja zu helfen.

Auch vorher setzte ich bereits auf einen anderen Laserdrucker: den ebenfalls verhältnismäßig günstigen Samsung ML-2010R. Mein aktuelles Modell von Brother gefällt mir jedoch noch eine Ecke besser, da das Papier innen liegt und somit nicht so leicht einstauben kann. Denn da wären wir bei einem Problem, dass gerade dann auftreten kann, wenn das Papier außen liegt und man vielleicht (so wie ich damals) den Schutzaufsatz verbummelt oder versehentlich demoliert hat. Setzt sich nämlich zu viel Staub im Laserdrucker ab, kann man auch hier schlechte Druckergebnisse bekommen.

Was passiert dann? Man kennt es von Tintenstrahldruckern, aber auch beim Laserdrucker kann es durch zu viel Schmutz passieren: Streifen zeigen sich auf ausgedruckten Seiten. Macht das Ergebnis zwar vielleicht nicht komplett unleserlich, in einen Briefumschlag stecken mag man es aber auch nicht mehr. Dann muss man ran und z. B. die Bildtrommel säubern. Dabei muss man wiederum auch Vorsicht walten lassen, denn wenn man sich dabei den Drucker zerstört, hat man statt eines schlechten Druckergebnisses am Ende gar keines mehr.

Mir ist es auch mal passiert, dass ich versehentlich, kennt wohl jeder, einen Druckvorgang aus Ungeduld unbeabsichtigt mehrfach startete. Hastig wollte ich dem gierigen Drucker vorher das Papier entziehen, um noch einmal alles neu zu starten und das Gerät vorher auszuknipsen. Wenn dann Papier schon eingezogen wurde und ein Stück abreißt beim Herausziehen, kann das ebenfalls Probleme geben. Je nachdem, wie gut man da an die Komponenten herankommt, muss man auch da ran und nachhelfen. Manchmal bemerkt man das Problem auch erst später. Papierreste können z. B. dafür sorgen, dass ein schiefes Druckbild erhaltet.

So ein Laserdrucker besteht dabei aus mehreren Komponenten, die man eigentlich alle regelmäßig säubern sollte. Aber mal ehrlich: Macht im Alltag natürlich kein Mensch. Man fängt an am Gerät zu fummeln, sobald es Probleme gibt. Solange alles funktioniert, lässt man den Dingen seinen Lauf. Eigentlich müsste man aber auch die Fixiereinheit sowie den Koronadraht regelmäßig säubern. Letzterer sollte eigentlich automatisch etwas gereinigt werden, wenn man den Toner austauscht. Muss aber nicht immer zu 100 % klappen.

Nicht immer muss man direkt Panik schieben und auf Gewährleistung oder Garantie pochen – oder, wenn nach Ablauf Schwierigkeiten auftreten, direkt ein neues Gerät anschaffen. Es kann im Falle des Falles auch ausreichen, den Laserdrucker einmal komplett zu säubern. Auch wenn der Drucker generell schmiert, kann eine Reinigung eventuell Abhilfe schaffen. Dabei den Toner bzw. die Kartusche herauszuziehen, mal genauer zu betrachten und auf Verschmutzungen zu prüfen bzw. gegebenenfalls zu reinigen, schafft eventuell schon Abhilfe.

Falls ihr einen Laserdrucker besitzt und Probleme mit dem Druckbild habt: Weitere Tipps und Anleitungen zum Reinigen eines Laserdruckers erhaltet ihr hier. Generell solltet ihr dabei natürlich beim Reinigen Vorsicht walten lassen: Trennt den Drucker vom Stromnetz und gebt ihm Zeit vollständig abzukühlen. So ein Laserdrucker kann viel Hitze entwickeln und damit ist nicht zu spaßen. Jedes Modell ist dabei natürlich etwas anders in den einzelnen Komponenten aufgebaut, was die Einheiten im Inneren, den Einsatz des Toners und das Papierfach betrifft. Generell nehmt möglichst viel auseinander, reinigt es gründlich und seid vorsichtig, wenn ihr es wieder zusammenbaut. Der obige Link geht da etwas mehr ins Detail, als ich es hier könnte, vielleicht hilft das also ja dem ein oder anderen weiter.

Seitdem ich einen Laserdrucker besitze, würde ich, auch wenn ich wie gesagt durch Verwendung meiner alternativen Ersatz-Toner schon kleinere Probleme hatte, nicht mehr zu Tintenstrahl-Modellen zurückwollen. Würde ich viel in Farbe drucken, sähe das zwar aufgrund der dann doch höheren Anschaffungskosten anders aus, momentan bin ich mit meinem eigenen Modell aber voll und ganz zufrieden.

Kategorien: Hardware Tutorials

Raspberry Pi – Ein Blick auf den Stromverbrauch

Raspberry Pi Logo

Der Raspberry Pi kann für eine Vielzahl von Projekten verwendet werden und zeichnet sich durch eine ausreichende Performance und einen geringen Stromverbrauch aus. Doch was bedeutet ein geringer Stromverbrauch genau? Falls der Raspberry Pi mit Akkus betrieben oder als Server verwendet wird und rund um die Uhr läuft, ist es wichtig genaue Werte zu kennen.

Ich habe den aktuellen Raspberry Pi 3B+ genauer unter die Lupe genommen und liefere euch ein paar Werte. Alle Messungen wurden ohne Monitor, Tastatur und Maus durchgeführt. Als Betriebssystem kam das aktuelle Raspbian Lite Stretch (13.11.2018) zum Einsatz.

Raspberry Pi 3B+ StatusStromverbrauch
Idle (kein Ethernet oder WLAN)1,6 W
Idle (WLAN)1,9 W
Idle (Ethernet 100 MBit/s)1,8 W
Idle (Ethernet 1 GBit/s)2,1 W
Idle (Ethernet 1 GBit/s + WLAN)2,4 W
stress –cpu 1 (Ethernet 1 GBit/s)3,2 W
stress –cpu 2 (Ethernet 1 GBit/s)3,9 W
stress –cpu 3 (Ethernet 1 GBit/s)4,6 W
stress –cpu 4 (Ethernet 1 GBit/s)5,2 W

Zusammengefasst benötigt der Raspberry Pi 3B+ im Leerlauf 1,6 Watt. WLAN zusätzlich macht 0,3 Watt aus, LAN je nach Geschwindigkeit 0,2 Watt (100 MBit/s) oder 0,5 Watt (1 GBit/s).

Stromverbrauch minimieren

Insbesondere beim mobilen Einsatz mit Batterien oder Akku ist eine möglichst lange Laufzeit wünschenswert. Mit einigen kleinen Tweaks kann der Stromverbrauch weiter reduziert und damit gleichzeitig die Laufzeit erhöht werden. Nichtsdestotrotz sollte man sich die Frage stellen, ob ein Raspberry Pi Zero W oder ein anderes älteres Modell eine bessere Alternative wären.

HDMI

Wenn kein Bildschirm verwendet wird, kann der HDMI-Port on-the-fly deaktiviert werden:

sudo tvservice -o

Dies spart ca. 20 mA, also 0,1 Watt. Wenn HDMI automatisch deaktiviert werden soll, kann dies z.B. über die „/etc/rc.local“ erfolgen. Vor „exit 0“ ergänzt man folgendes in der Datei:

# Disable HDMI
/usr/bin/tvservice -o

Eine schönere Alternative ist dies aber über die Datei „/boot/config.txt“ zu erledigen:

disable_splash=1
hdmi_blanking=1
hdmi_ignore_hotplug=1
hdmi_ignore_composite=1

Damit die Änderungen aktiv werden ist ein Neustart notwendig.

LEDs

Des Weiteren können die Aktivitäts- und Power-LED deaktiviert werden. Dies geschieht ebenfalls über Einträge in der „/boot/config.txt„:

# Disable the ACT LED.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off

# Disable the PWR LED.
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

Nach einem Neustart lassen sich hier pro LED rund 5 mA sparen, insgesamt also 10 mA oder 0,05 Watt.

Bluetooth & WLAN

Die integrierte WLAN-Funktionalität kann im laufenden Betrieb deaktiviert werden:

sudo ifconfig wlan0 down

Wer WLAN automatisch immer deaktiviert haben möchte, kann dies wiederrum über die „/boot/config.txt“ erledigen:

# Disable Bluetooth and Wifi
dtoverlay=pi3-disable-wifi
dtoverlay=pi3-disable-bt

USB & Ethernet

Einen wirklich großen Effekt erzielt die Deaktivierung des USB-Chips. Damit lassen sich rund 200 mA, respektive 1 Watt einsparen. Allerdings muss einem bewusst sein, dass damit automatisch auch das Ethernet deaktiviert ist, WLAN funktioniert aber weiterhin.

sudo echo '1-1'|sudo tee /sys/bus/usb/drivers/usb/unbind

Hat das Betriebssystem Einfluss auf den Stromverbrauch?

Angeregt durch einen Kommentar von tux. habe ich mir zudem den Stromverbrauch unter NetBSD / FreeBSD / OpenBSD angesehen. Leider wird der neue Raspberry Pi 3B+ noch nicht von allen BSD-Betriebssystemen vollständig unterstützt, sodass das Gerät nicht automatisch bootet und keine IP-Adresse per DHCP bezieht. In diesem Fall ist die Installation etwas aufwändiger. Abhilfe schafft entweder eine Tastatur und ein Bildschirm oder der Consolen-Zugang mit einem USB to TTL Serial Cable.

NetBSD / FreeBSD

Von NetBSD gibt es ein speziell auf Raspberry Pis angepasstes Image, den Download-Link findet ihr in Zeile 14. Zu beachten ist, dass das integrierte WLAN des Raspberry Pi 3B+ unter BSD aktuell nicht funktioniert.

Bei FreeBSD verwendet ihr am besten FreeBSD-12.0-RELEASE  oder FreeBSD-13.0-CURRENT. Hier gibt es jeweils spezielle Versionen (-RPI3) für den aktuellen Pi, die out-of-the-box laufen. Allerdings funktioniert auch hier das WLAN mangels entsprechendem Treiber nicht.

Raspberry Pi 3B+ StatusRaspbianNetBSDFreeBSD
Idle (kein Ethernet oder WLAN)1,6 W1,9 W1,7 W
Idle (Ethernet 100 MBit/s)1,8 W2,1 W1,9 W
Idle (Ethernet 1 GBit/s)2,1 W2,5 W2,2 W

Insgesamt betrachtet liegt der Stromverbrauch unter NetBSD und FreeBSD leicht höher als bei Raspbian.

Weitere Messungen

Alternative Messergebnisse inklusive Vergleichsmessungen zu älteren Raspberry-Pi-Modellen findet ihr bei RasPi.TV und Raspberry Pi Dramble.

Raspberry Pi – Inbetriebnahme und Basisinstallation

Raspberry Pi Logo

Der Raspberry Pi ist wohl der bekannteste und auch beliebteste Einplatinencomputer weltweit. Im Smart Home kommt er oft zum Einsatz, da er für fast alle Projekte genügend Leistung liefert und gleichzeitig einen geringen Stromverbrauch aufweist. In diesem Artikel möchte ich euch zeigen, wie ihr den Raspberry Pi mit einer Basisinstallation bzw. -konfiguration in Betrieb nehmen könnt. Darauf aufbauend lassen sich viele spannende Projekte (unbound, Pi-hole, EDOMI, openHAB, ioBroker, usw.) mit dem kleinen Computer realisieren.

Hardware

Zur Grundausstattung, damit der Raspi in Betrieb genommen werden kann, gehören neben dem Raspberry Pi ein passendes Netzteil und eine Speicherkarte. Ein Bildschirm und eine Tastatur sind im Normalfall nicht notwendig, dazu aber später mehr. Meine Hardwarekomponenten sehen beispielsweise folgendermaßen aus:

Als Alternative zum offiziellen Micro-USB-Netzteil kann selbstverständlich auch ein anderes Netzteil mit 2,5A/5V verwendet werden. Allerdings möchte ich erwähnen, dass es bei USB-Netzteilen bzw. Handyladegeräten teilweise zu Problemen kommt, Stichwort Undervolt-Icon. Das hängt damit zusammen, dass viele Netzteile eine Spannung von 4,9V oder genau 5V am Micro-USB-Stecker liefern. Durch die Bauelemente zur Spannungsregelung auf dem Raspberry Pi führt das aber dazu, dass beim Raspi lediglich 4,7 – 4,8V ankommen, was zu wenig ist. Das offizielle Netzteil liefert am Ausgang 5,1V, wodurch beim Raspi ausreichende 4,9A anliegen. Wer seinen Raspberry Pi 3B+ via PoE betreiben möchte, kann sich den offiziellen PoE-HAT ansehen.

Beim Speicher solltet ihr darauf achten, dass die microSD-Karte den Standard UHS-I unterstützt, sonst bremst ihr euren Pi unnötig aus. Schnellere Karten sind aber auch nicht sinnvoll, da der Minicomputer davon nicht profitiert. Der Speicherplatz sollte mindestens 8 GByte betragen. Bei den aktuellen Preisen, bei denen selbst 32 GByte unter 10 Euro inklusive Versand erhältlich sind, setze ich aber auf mindestens 32 GByte.

Software

Update 06.11.2019: Artikel auf Raspbian Buster angepasst.

Die empfohlene Linux-Distribution für den Raspberry Pi ist Raspbian. Die aktuelle Version basiert auf Debian 10 Stable (Buster), hat aber einige Anpassungen für den Minicomputer an Bord. Das ist auch der Grund, warum ihr das Betriebssystem immer direkt bei der Raspberry Pi Foundation herunterladen solltet. Raspbian ist in drei Varianten erhältlich:

Für viele Projekte genügt das aufs Nötigste reduzierte Raspbian Lite. Sofern möglich bevorzuge ich immer die Lite-Variante.

Installation

Die Installation von Raspbian auf die SD-Karte kann mit verschiedenen Methoden durchgeführt werden. Anfänger können auf NOOBS (New Out Of the Box Software) zurückgreifen, welches das gewünschte Betriebssystem vollautomatisch herunterlädt und auf die SD-Karte packt. Nichtsdestotrotz empfehle ich den „manuellen“ Weg, der nicht viel mehr Aufwand bedeutet.

Nach dem Herunterladen der gewünschten Raspbian-Version, kann diese unter Windows, Linux oder macOS mit dem Tool Etcher auf die SD-Karte installiert werden. Das Ganze geht schnell und ist quasi selbsterklärend. Etcher starten, das Raspbian-Image- bzw. -ZIP auswählen, anschließend die SD-Karte angeben und zum Abschuss auf den Button „Flash!“ klicken.

Etcher

Alternativ existieren noch weitere Möglichkeiten, die in den offiziellen Anleitungen der Raspberry Pi Foundation beschrieben sind:

Unter Linux und macOS können die Boardmittel genutzt werden. Unter Windows existiert mit dem Tool Win32 Disk Imager eine Alternative zu Etcher, die aber fast identisch funktioniert. Nachdem die Image-Datei und die SD-Karte als Ziel-Laufwerk angegeben wurden, kann Raspbian mit einem Klick auf die SD-Karte geschrieben werden.

Win32 Disk Imager

Einrichtung / Grundkonfiguration

Nachdem Raspbian auf der SD-Karte installiert wurde, müsst ihr dort auf die Partition „/boot“ zugreifen. Unter Windows wird die Boot-Partition als separates Laufwerk angezeigt. Direkt darunter solltet ihr eine neue Datei mit dem Namen „ssh“ anlegen. Dies ist notwendig, damit ihr via SSH auf euren Raspberry Pi zugreifen könnt. Das Vorhandensein einer Tastatur und eines Bildschirms ist nicht notwendig.

Grundsätzlich solltet ihr das Gerät wenn möglich via LAN verbinden. Diese Variante ist stabiler als WLAN und bringt niedrigere Latenzzeiten als zusätzlichen Bonus mit. Falls ihr kein LAN nutzen könnt oder einen Raspberry Zero W ohne LAN-Anschluss habt, müsst ihr auf der Boot-Partition noch eine zweite Datei namens „wpa_supplicant.conf“ erstellen. Anschließend folgenden Inhalt in die Datei einfügen. Vergesst nicht die SSID und das WLAN-Passwort anzupassen.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
    ssid="<SSID Ihres WLAN>"
    psk="<WLAN-Passwort>"
    key_mgmt=WPA-PSK
}

Im nächsten Schritt steckt ihr eure microSD-Karte in den Raspberry Pi. Anschließend verbindet ihr euren Pi mit dem Netzwerk (bei LAN) und schließt die Stromversorgung an. Innerhalb einer Minute ist der Minicomputer betriebsbereit und sollte via DHCP eine IP-Adresse bekommen haben, sofern in eurem Netzwerk ein DHCP-Server läuft (üblicherweise euer Internet-Router). Dort könnt ihr die vergebene IP einsehen. Bei einer FRITZ!Box findet ihr die benötigte Information unter „Heimnetz –> Netzwerk“. Darüber hinaus sollte das Gerät auch über den Hostnamen „raspberrypi“ erreichbar sein.

Jetzt kann die erste Verbindung zum Raspberry Pi via SSH aufgebaut werden. Unter Windows könnt ihr neben PuTTY auch KiTTY oder unter Windows 10 sogar die PowerShell nutzen. Bei Linux oder macOS einfach eine Konsole öffnen und den Befehl „ssh pi@IP-Adresse“ verwenden. Die Standard-Zugangsdaten lauten User „pi“ und Passwort „raspberry„.

Als Erstes ändert Ihr direkt das Standard-Passwort mit dem Befehl:

passwd

Daraufhin werden das Betriebssystem und die Pakete auf den aktuellen Stand gebracht. Das kann bis zu einer Viertelstunde dauern.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Danach ist euer Raspberry Pi auf dem neuesten Stand und betriebsbereit.

Jetzt könnt ihr mit folgendem Befehl die Grundkonfiguration starten:

sudo raspi-config

Dort lassen sich unter anderem der Hostname, die Sprache, das Tastaturlayout oder die Zeitzone anpassen.

Dennoch möchte ich euch nachfolgend noch ein paar weitere nützliche Konfigurationen vorstellen.

Statische IPv4-Adresse definieren

In Raspbian Buster wird empfohlen, eine IPv4-Konfiguration über den DHCP Client Daemon (DHCPCD) vorzunehmen. Auch wenn der Dienst „dhcpcd“ standardmäßig aktiv sein sollte, überprüfen wir zunächst, ob „dhcpcd“ läuft:

systemctl status dhcpcd

Der Befehl sollte „dhcpcd“ als installiert und aktiv zurückmelden. Anschließend die Datei „/etc/dhcpcd.conf“ öffnen:

sudo nano /etc/dhcpcd.conf

Weiter unten in der Datei befindet sich bereits eine beispielhafte Konfiguration für eine statische IP. Dort müsst ihr bei den folgenden vier Zeilen das „‚#“ entfernen und die IP-Daten anpassen. Achtet dabei darauf, dass ihr keine IP-Adresse verwendet, die sich im Pool des DHCP-Servers befindet.

interface eth0
static ip_address=192.168.178.100/24
static routers=192.168.178.1
static domain_name_servers=192.168.178.1 8.8.8.8

Nachdem die Änderungen vorgenommen wurden, kann die Datei mit STRG + O gespeichert und mit STRG + X geschlossen werden.

Zum Schluss müssen die Änderungen noch angewandt werden. Da wir via SSH auf den Pi verbunden sind, ist die beste Variante einfach einen Neustart durchzuführen.

sudo reboot

Shell-Konfigurationen

Zum bequemeren Arbeiten können in der „.bashrc“ noch weitere Aliase aktiviert werden.

nano ~/.bashrc

Folgende drei Aliase sind bereits vorhanden und müssen lediglich auskommentiert werden:

# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

Des Weiteren arbeite ich gerne mit „vim“. Da der Texteditor standardmäßig nicht vorhanden ist, muss dieser nachinstalliert werden:

sudo apt install vim

Anschließend aktiviere ich das Syntax-Highlighting und die Unterstützung für dunklen Hintergrund:

sudo nano /etc/vim/vimrc

Dort bei folgenden zwei Optionen das “ entfernen:

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark

Stromverbrauch verringern

In meinem Artikel „Raspberry Pi – Ein Blick auf den Stromverbrauch“ habe ich den Stromverbrauch genauer unter die Lupe genommen. Außerdem habe ich dort einige Tipps aufgeführt, wie ihr den Stromverbrauch verringern könnt.

Netzwerkdurchsatz der FRITZ!Box mit integriertem iPerf testen

Wer den Datendurchsatz im heimischen Netzwerk testen möchte, kann auf das kostenlose Tool iPerf zurückgreifen. Eine Möglichkeit wäre beispielsweise zwei Rechner im Netzwerk mit iPerf auszustatten. Dabei kann das Tool sowohl als Client als auch als Server verwendet werden.

Wer eine FRITZ!Box verwendet, kann auf den zweiten PC allerdings verzichten, da der Router bereits einen integrierten iPerf-Server enthält. Diese Funktionalität muss jedoch zuerst auf einer speziellen Konfigurationsseite aktiviert werden: https://fritz.box/support.lua bzw. http://fritz.box/support.lua

Nach der Eingabe des FRITZ!Box-Kennworts kann die Option unter dem Punkt „Durchsatzmessungen“ aktiviert werden. Hierzu einfach die ersten beiden Häkchen aktivieren (siehe Screenshot) und auf den Button „Einstellungen übernehmen“ klicken.

Fritz!Box iPerf aktivieren

Anschließend benötigt ihr noch einen iPerf-Client, welchen ihr für Windows hier downloaden könnt: https://sourceforge.net/projects/iperf2/files/ Unter macOS kann iPerf mit dem Befehl „brew install iperf“ installiert werden, bei Linux ist es in fast allen Distributionen in den Paketquellen vorhanden.

iPerf3 funktioniert nicht, da die FRITZ!Box iPerf2 verwendet und die neue Version 3 nicht abwärtskompatibel ist.

Netzwerkdurchsatz der FRITZ!Box messen

Nachdem alle Vorbereitungen getroffen sind, können die Messungen beginnen. Das Tool kann via Eingabeaufforderung oder PowerShell gestartet werden. Die IP-Adresse der FRITZ!Box muss ggf. angepasst werden. Wichtig ist den Port anzugeben, da dieser bei der FRITZ!Box fest auf 4711 gesetzt ist.

iperf.exe -c 192.168.178.1 -p 4711 -t 60 -i 10

iPerf TCP

Die Ergebnisse fallen sehr ernüchternd aus. Meine FRITZ!Box 7490 erreich im Durchschnitt nur 163 MBit pro Sekunde. Das Problem ist die langsame CPU der FRITZ!Box, welche nicht genügend Power für den TCP-Test von iPerf besitzt. Aber keine Angst, der eingebaute Switch der FRITZ!Box schafft annähernd das versprochene Gigabit. Bei einem separaten Test mit zwei Rechnern werden problemlos über 960 MBit/s erreicht.

Zur Rettung der FRITZ!Box machen wir einen zweiten Test via UDP. Das schlanke Protokoll verfügt über weniger Overhead und arbeitet verbindungslos, d.h. die Prozessorlast der FRITZ!Box fällt deutlich niedriger aus.

iperf.exe -c 192.168.178.1 -p 4712 -u -t 60 -i 10 -b 1000M

iPerf UDP

Das Ergebnis zeigt rund 960 MBit/s, was identisch zum oben genannten Test mit zwei separaten Rechnern ausfällt. Mit dieser Variante lässt sich also der Netzwerkdurchsatz einer FRITZ!Box auf LAN-Seite recht genau ermitteln.