Kategorie: Linux

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 Stretch (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 Stretch 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. 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 (MACs) 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

Veeam Backup & Replication 9.5 Community Edition – kostenlose Version mit mehr Möglichkeiten

Veeam Backup & Replication 9.5 Update 4

Das vor einigen Tagen veröffentlichte Veeam Backup & Replication 9.5 Update 4 bringt trotz des kleinen Versionssprungs einige Neuerungen mit sich. Neben zahlreichen neuen Features gibt es auch eine Änderung bei der Lizenzierung, die vor allem Privatleute und kleine Firmen erfreuen dürfte.

Das Update 4 von Backup & Replication 9.5 ersetzt die bisherige Free Edition durch die Community Edition. Dabei können alle Features der Standard Version benutzt werden, es existiert lediglich eine Beschränkung auf 10 Instanzen. Die 10 Instanzen können beliebig kombiniert werden und ermöglichen beispielsweise folgende Kombinationen:

  • 10 VMs
  • 10 Workstations
  • 5 VMs + 5 Workstations
  • 5 VMs + 1 Server + 2 Workstations
  • 1 VM + 3 Servers
  • 3 Servers + 1 Workstation

Bei der Free Edition bis Veeam Backup & Replication 9.5 Update 3a war hingegen keine Beschränkung vorhanden. Allerdings kann mit der Free Edition nur VeeamZIP genutzt werden. Ein zeitgesteuertes Backup ist nicht möglich, ebenso können VMs damit nur komplett gesichert werden. Insgesamt ist die neue Community Edition in den meisten Fällen also ein deutlicher Gewinn im Vergleich zur Free Edition.

Darüber hinaus bringt das Update 4 auch einige neue Features mit. Veeam Cloud Tier ist eine weitere Storage-Option und ermöglicht eine Langezeit­archivierung via Amazon S3, Azure Blob Storage oder S3-kompatible Services. Veeam Cloud Mobility ist eine Verbesserung von „Direct Restore to Microsoft Azure“, es werden jetzt auch AWS und Azure Stack als Ziele akzeptiert. Veeam DataLabs ist der Nachfolger für Virtual Labs und bringt ein paar neue Funktionen für das Einrichten einer Testumgebung mit. Des Weiteren lässt sich mit Role-Based Access Control (RBAC) for vSphere der Zugriff auf Backups und Jobs in VMWare regeln und es existieren neue Daten­sicherung-Plugins für SAP HANA und Oracle RMAN.

Einen detaillierten Überblick über alle Neuerungen findet ihr auf dieser Seite.

Download Veeam Backup & Replication 9.5 Update 4

Veeam Backup & Replication Community Edition

36 Jahre alte Sicherheitslücke in SCP gefähredet OpenSSH, PuTTY und Co.

Der Sicherheitsforscher Harry Sintonen hat im Secure Copy Protocol (SCP) mehrere Schwachstellen entdeckt. Dadurch können Angreifer Dateiübertragungen manipulieren und z.B. Schadcode ausführen lassen. Betroffen sind alle Programme, die auf SCP aufsetzen. Die bekanntesten dürften OpenSSH, PuTTY und WinSCP sein.

Mit SCP können Dateien zwischen einem lokalen und einem entfernten Computer sicher über das Netzwerkprotokoll SSH ausgetauscht werden. Sintonen von F-Secure warnt vor fünf Sicherheitslücken in SCP, die teilweise bereits 36 Jahre alt sind. Entdeckt wurden diese allerdings erst im August 2018.

Many scp clients fail to verify if the objects returned by the scp server match those it asked for. This issue dates back to 1983 and rcp, on which scp is based. A separate flaw in the client allows the target directory attributes to be changed arbitrarily. Finally, two vulnerabilities in clients may allow server to spoof the client output.

Konkret könnte sich ein Angreifer über einen Man-in-the-Middle-Angriff in die SSH-Verbindung einklinken und bösartige Dateien einschleusen. So könnten beispielsweise Konfigurationsdateien geändert oder eine bash-Datei im Home-Verzeichnis abgelegt werden.

Nur CVE-2018-20685 ist mit dem Bedrohungsgrad „hoch“ eingestuft. Wer auf Nummer sicher gehen möchte, kann vorerst komplett auf SCP verzichten. OpenSSH im SCP-Modus ist von allen Lücken betroffen. In der aktuellen OpenSSH Version 7.9 ist nur die Schwachstelle CVE-2018-20685 behoben. WinSCP ist seit der neuen Version 5.14 komplett abgesichert. Die letzte Version 0.70 von PuTTY wurde Mitte 2017 veröffentlicht und bietet daher noch keinen Schutz.

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+ Status Stromverbrauch
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+ Status Raspbian NetBSD FreeBSD
Idle (kein Ethernet oder WLAN) 1,6 W 1,9 W 1,7 W
Idle (Ethernet 100 MBit/s) 1,8 W 2,1 W 1,9 W
Idle (Ethernet 1 GBit/s) 2,1 W 2,5 W 2,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-get update
sudo apt-get upgrade
apt-get 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-get 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.

Firefox 62 – Die Neuerungen

Bereits am 5. September hat Mozilla Firefox 62 veröffentlicht. Die neue Version bietet einige Änderungen und Neuerungen. Wie immer liste ich die wichtigsten nachfolgend auf:

  • Tracking-Schutz ist per Klick auf das Info-Symbol in der Adressleiste erreichbar
    Firefox 62 Trackingschutz
  • Ebenfalls neu: eine Schaltfläche zum Löschen aller Cookies und Websitedaten der aktuell besuchten Webseite
  • Dialog zum Speichern von Lesezeichen zeigt nun Favicon und Vorschau der Webseite
  • mehr Anpassungsmöglichkeiten für die Firefox-Startseite ()
  • nach dem Abmelden von Firefox Sync wird gefragt, ob Daten wie Chronik und Lesezeichen gelöscht oder beibehalten werden sollen
  • Unterstützung für variable Schriften
  • Neue Enterprise Policies
  • weitere kleine Verbesserungen, eine komplette Übersicht aller Änderungen und Neuerungen findet ihr wie immer bei Sören Hentzschel
  • Behebung diverser Sicherheitslücken

Download Firefox 62 (64 Bit)
Portable Firefox @ Horst Scheuer

Firefox 60 – Die Neuerungen

Firefox Logo 57+

Firefox 60 wurde gestern am 09. Mai 2018 veröffentlicht. Neben der normalen Version gibt es auch eine neue ESR-Version (Extended Support Release) mit verlängertem Support. Firefox 60 ESR löst Firefox 52 ESR ab und beinhaltet die Vorzüge der Quantum-Verbesserungen. Darüber hinaus ist die versprochene Policy-Engine enthalten, wodurch sich Firefox besser in Unternehmen einsetzen lassen soll.

  • Policy-Engine zur Verteilung von Unternehmensrichtlinien
  • Firefox-Startbildschirm überarbeitet: weitere Optionen um Ansicht zu individualisieren, responsives Layout, mehr Inhalte auf breiten Bildschirmen, „gesponsorte Inhalte“ in US-Version
  • Quantum CSS wird zum Rendern des Browser-UIs genutzt
  • Überarbeitete Ansicht der Optionen zu Cookies und Webseitendaten
  • Unterstützung für das Web-Authentication-API, ermöglicht Authentifizierung an Webseiten mit Hilfe von USB-Tokens (kompatible Hardwaretoken nach FIDO U2F-Konvention sind von Yubikey, Nitrokey oder U2F Zero erhältlich)
  • Symantec-Zertifikate, die vor dem 01.06.2016 ausgestellt worden sind, werden nicht mehr akzeptiert
  • Firefox deaktiviert Webcam und dazugehöriges Licht beim Beenden einer Videoaufnahme
  • Warnhinweise beim Besuch von unverschlüsselten Webseiten im privaten Modus
  • Verbesserte Audioübertragung per WebRTC unter Linux
  • weitere kleine Verbesserungen, eine komplette und sehr ausführliche Übersicht aller Änderungen und Neuerungen findet ihr wie immer auf der Webseite von Sören Hentzschel
  • Behebung diverser Sicherheitslücken

Download Firefox 60 (64 Bit)
Download Firefox 60 ESR (64 Bit)
Portable Firefox @ Horst Scheuer

Firefox 59 – Die Neuerungen

Firefox Logo 57+

Nach dem großen Update auf Firefox 57 und einigen Anpassungen bzw. Verfeinerungen in der folgenden Version 58, geht es Mozilla mit Firefox 59 langsamer an. Firefox 58 wurde gestern am 13. März 2018 veröffentlicht und bietet folgende Neuerungen:

  • Im privaten Modus werden weniger Referrer im HTTP-Header versendet
  • Screenshot-Funktion (in Firefox 56 eingeführt) bietet nun einen Editor mit ein paar grundlegenden Funktionen (Zuschneiden, Zeichen- sowie Textmarker-Werkzeug mit neun Farben)
  • Verfeinerte Kontrolle von Web-Benachrichtigungen
  • „Firefox Health Report“ wurde aufgrund zu weniger Nutzer entfernt und die Funktionalität von „about:healthreport“ nach „about:telemetry“ umgezogen.
  • Auf der neuen Startseite kann die Reihenfolge „Wichtigen Seiten“ nun per Drag-and-Drop angepasst werden
  • Neue Startseite soll nun deutlich schneller laden als bisher, wenn viele verschiedene Informationen angezeigt werden
  • Verbessertes Rendering unter macOS dank Off-Main-Thread Painting (OMTP)
  • Neue Suchmaschine „Ecosio“ hinzugefügt (nur für Nutzer der deutschsprachigen Version)
  • Suchmaschine Yahoo! für alle Sprachen entfernt
  • Verbesserte Performance dank Race Cache With Network (RCWN) (bei langsamen Cache-Zugriffen wird parallel eine Anfrage an das Netzwerk gesendet und die Quelle genutzt, welche als erstes eine Antwort liefert)
  • Nutzung von TCP Fast Open unter Windows
  • Genauigkeit der Timing-Funktionen auf 2ms reduziert, als Gegenmaßnahme zur CPU-Schwachstelle Spectre (Firefox 57.0.4 hatte die Genauigkeit bereits von 5μs auf 20μs reduziert)
  • Zahlreiche neue Möglichkeiten und Verbesserungen bei WebExtensions
  • viele weitere kleine Verbesserungen, eine komplette Übersicht aller Änderungen und Neuerungen findet ihr wie immer bei Sören Hentzschel
  • Behebung diverser Sicherheitslücken

Download Firefox 59 (64 Bit)
Portable Firefox @ Horst Scheuer

Firefox 60 kommt mit Enterprise-Policies

Firefox Logo 57+

Firefox bringt von Haus aus keine Unterstützung für die Konfiguration via Gruppenrichtlinien mit. Aus diesem Grund berichtete ich kürzlich über zwei gängige Möglichkeiten, wie sich Firefox-Einstellungen per Gruppenrichtlinien steuern lassen.

Jetzt kommt Bewegung in das Thema, denn Mozilla möchte den Browser fit für Unternehmen machen. Im nächsten Extended-Support-Release (ESR) soll Firefox eine Policy-Engine enthalten. Ursprünglich war die nächste ESR-Version für Firefox 59 geplant, wurde mittlerweile aber auf Version 60 verschoben, um mehr Zeit für die Implementierung der Enterprise-Policies zu haben. Der geplante Releasetermin ist der 8. Mai 2018.

Durch die Policy-Engine soll die Verteilung von Unternehmensrichtlinien ermöglicht werden. Da Mozilla eine universelle Lösung für alle Betriebssysteme entwickeln möchte, wird vorerst keine direkte Unterstützung für Windows-Gruppenrichtlinien geboten. Vielmehr werden die Einstellungen mit Hilfe einer JSON-Datei verteilt, die dann durch die Richtlinien-Engine ausgewertet und angewendet werden. Im Mozilla-Wiki existiert bereits ein Artikel mit weiteren Details zur Umsetzung und Konfiguration. Darauf aufbauend sollen später dann auch zusätzliche Funktionen von Betriebssystemen unterstützt werden, also z.B. Windows-Gruppenrichtlinien.

Ich bin gespannt wie Mozilla das Thema weiter ausbaut. Anfangs wird man sich auf wenige Funktionen beschränken. Beispielsweise soll es möglich sein, den Zugriff auf die Konfigurationsseiten „about:config“ oder „about:addons“ zu unterbinden oder Funktionalitäten wie Pocket und Screenshots zu deaktivieren. Bei der weiteren Entwicklung der Policy-Engine möchte Mozilla die Möglichkeiten deutlich ausbauen. Ebenso möchte man bei der Weiterentwicklung auch das Feedback von Nutzern mit einfließen lassen. Obwohl man das Thema Jahre verschlafen hat, scheint man mit der vorläufigen Planung auf einem guten Weg zu sein um auch bei Unternehmen wieder Fuß fassen zu können.

Firefox 58 – Die Neuerungen

Firefox Logo 57+

Am 23. Januar 2018 hat Mozilla Firefox 58 veröffentlicht. Nach dem wohl größten Update (Firefox 57) in der Geschichte von Firefox geht es der Hersteller in der neuen Version etwas langsamer an. Dennoch bringt Version 58 einige Neuerungen und Performanceverbesserungen.

  • optimiertes Caching für JavaScript sorgt für höhere Performance
  • schnelleres Rendern von Grafiken und Webseiten unter Windows durch Off-Main-Thread Painting (OMTP)
  • Benutzerprofile die mit Firefox 58 erzeugt werden, sind mit älteren Browserversionen nicht mehr kompatibel
  • Screenshot-Funktion bietet nun die Möglichkeit Screenshots direkt in die Zwischenablage zu kopieren und funktioniert nun auch im Private-Modus
  • Unterstützung für Autofill bei Kreditkarteninformationen
  • WebVR-Unterstützung für Apple macOS
  • Warnung wenn Webseiten Symantec-Zertifikate einsetzen (ab Firefox 60 werden keine Symantec-Zertifikate mehr akzeptiert, die vor dem 01.06.2016 ausgestellt worden sind, ab Firefox 63 überhaupt keine Symantec-Zertifikate mehr, dies betrifft auch Zertifikate von Thawte, VeriSign, Equifax, GeoTrust sowie RapidSSL, da diese zu Symantec gehören)
  • Root-Zertifikate von StartCom und WoSign entfernt
  • viele weitere kleine Verbesserungen, eine komplette Übersicht aller Änderungen und Neuerungen findet ihr wie immer bei Sören Hentzschel
  • Behebung diverser Sicherheitslücken

Download Firefox 58
Download Firefox 58 (64 Bit)
Portable Firefox @ Horst Scheuer

Meltdown und Spectre: CPU-Sicherheitslücken betreffen alle Hersteller

Meltdown und Spectre

In der Zwischenzeit gibt es viele neue Informationen über die gestern berichtete Sicherheitslücke in Intel-CPUs. Demnach handelt es sich insgesamt um zwei Sicherheitslücken mit insgesamt drei Angriffsvektoren, wovon eine Lücke auch alle anderen CPU-Hersteller betrifft. Dadurch verschärft sich die ganze Situation enorm, denn neben x86-Plattformen sind damit auch Smartphones, Tablets und viele weitere Geräte und Betriebssysteme betroffen.

Google hat im Project Zero Blog detaillierte Informationen zu den Sicherheitslücken veröffentlicht. Die zwei Lücken hängen eng zusammen und wurden auf den Namen Meltdown und Spectre getauft, wobei es bei Spectre zwei Angriffsvektoren gibt. Des Weiteren wurde vor wenigen Stunden eine Webseite mit genauen Beschreibungen und umfangreicher Dokumentation zu den Problemen online gestellt: https://meltdownattack.com

Meltdown betrifft nach jetzigem Kenntnisstand nur Intel-CPUs. Laut Google sollen mit Ausnahme von Itanium und vor 2013 produzierte Atom-CPUs alle ausgelieferten CPUs seit 1995 betroffen sein. Meltdown erlaubt unprivilegierten Prozessen den Speicherbereich von anderen Prozessen auszulesen. Damit kann unter anderem auf geschützte Daten im Speicher des Betriebssystem-Kernels oder auf sensible Informationen wie Passwörter zugegriffen werden. Diese Sicherheitslücke kann durch KPTI (Kernel Page Table Isolation) „behoben“ werden.

Spectre hingegen betrifft praktisch alle CPUs. Neben Intel sind auch sämtliche AMD-Prozessoren und CPUs der ARM-Architektur betroffen. Spectre ähnelt Meltdown, hat aber einen anderen Fokus. Hier wird der auszulesende Prozess selbst manipuliert, sodass im Speicher liegende Daten wie zum Beispiel Passwörter ausgelesen werden können. Auf diese Weise könnte ein im Browser ausgeführtes JavaScript auf den kompletten Speicher zugreifen und somit Passwörter und Nutzerdaten von anderen Webseiten auslesen. Laut Google sei Spectre schwerer auszunutzen, allerdings auch schwerer zu beheben. An zentraler Stelle kann das Problem nur durch Änderungen in der CPU-Hardware behoben werden. Alternativ müssten alle Anwendungen einzeln angepasst werden. Chrome 64 soll als eine der ersten Anwendung entsprechende Gegenmaßnahmen enthalten und für eine striktere Trennung der offenen Tabs in verschiedene Prozesse sorgen.

Sicherheitslücke in Intel-CPUs betrifft alle Betriebssysteme

Intel Logo
Mittlerweile wurde bekannt, dass es sich um zwei Sicherheitslückenn handelt und auch Prozessoren von anderen Herstellern betroffen sind. Weitere Infos findet ihr in meinem Artikel „Meltdown und Spectre: CPU-Sicherheitslücken betreffen alle Hersteller“.

Offensichtlich steckt in fast allen Intel-CPUs eine ernste Sicherheitslücke, die alle Betriebssysteme betrifft. Zur Behebung müssen die Betriebssysteme auf Kernel-Ebene angepasst werden, was sich aber negativ auf die Leistung auswirken kann. Prozessoren von AMD sind wohl nicht betroffen.

Noch ist es zu früh, um genaue Details über die Sicherheitslücke zu erfahren. Am morgigen 4. Januar 2018 sollen ausführliche Informationen veröffentlicht werden. Es sieht aber so aus, als ob alle Intel-CPUs mit der Virtualization Technology VT-x betroffen sind. Ob es sich um einen Designfehler oder um einen Hardware-Bug handelt ist indes noch nicht geklärt. Gleichzeitig meldete sich ein AMD-Entwickler in einer Mailing-Liste und schreibt, dass AMD-Prozessoren nicht von dem Fehler betroffen sind, da diese keine spekulative Ausführung unterstützen.

Die Sicherheitslücke ist unter allen Betriebssystemen vorhanden und ermöglicht Nutzersoftware den Zugriff auf geschützte Daten im Speicher des Betriebssystem-Kernels. Die Lücke ist augenscheinlich schon länger bekannt, da die großen Betriebssystem-Hersteller schon seit Wochen an einem Workaround arbeiten. Hierfür müssen Änderungen im Betriebssystem-Kernel durchgeführt werden. Kurz gesagt besteht die Lösung wohl darin, den Speicher des Kernels komplett von anderen Prozessen zu trennen. Dadurch entstehen zwei komplett getrennte Adressräume, was im Umkehrschluss mehr Arbeit für den Prozessor bedeutet. Je nach verwendeter Software sollen die Leistungseinbußen bis zu 35 Prozent betragen. Bei ComputerBase gibt es erste Benchmarks unter Linux und Windows, welche auf einen realen Performanceverlust von 5-10% hindeuten. Eine komplette Behebung der Sicherheitslücke ohne Software-Workaround ist wohl nur durch Hardware-Änderungen zu erreichen.

Wie gravierend die Sicherheitslücke wohl sein muss, sieht man am Beispiel von Linux. Die neue Funktion KPTI (Kernel Page Table Isolation) erforderte massive Kernel-Umbaumaßnahmen im Bereich der virtuellen Speicherverwaltung. Neben dem neuen Kernel 4.15 sollen auch die beiden stabilen Kernel-Versionen 4.14 und 4.9 mit diesem Feature ausgestattet werden.

Microsoft arbeitet auch an entsprechenden Patches und hat die Insider-Builds wohl schon seit November 2017 damit ausgestattet.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://twitter.com/aionescu/status/930412525111296000

Darüber hinaus werden alle Microsoft Azure Virtual Machines am 10. Januar 2018 einem wichtigen Update unterzogen. Auch Amazon hat bereits eine Info an seine Kunden versendet und kündigt für den 05. Januar ein wichtiges Sicherheitsupdate an.

Von Apple gibt es bezüglich macOS noch keine Stellungnahme.