Category Archives: Raspberry Pi

alertasshd.sh

Comments Off on alertasshd.sh
Filed under Apple, macOS, Netzwerk, Raspberry Pi, Raspberry Pi OS

ssh-brute-force-attacken können einen Rechner nicht nur potenziell gefährden, sondern auch während der Attacke durch die erhöhte Prozessorlast in die Knie zwingen. Einige Versuche haben gezeigt, dass die Auslastung auf den attakierenden Geräten zwischen 50 und 70 Prozent in die Höhe schnellt und dann normale Anwendungen Probleme bekommen. Aber meist ist diese Art von Attacke auf die Schnelle nicht erkennbar.


#!/bin/bash

while [ $loop 30 ] ; do
process="sshd"
if [ $(ps -ef | grep -v grep | grep $process | awk '{print $2}' | wc -l) -gt 10 ]
then
afplay alert_01.wav
fi

done
exit0

Mehr als Proof-of-Concept und nicht als reelle Abwehr (dafür sind normalerweise Firewalls nötig) ist dieses kleine Script gedacht.
Es erkennt die steigende Auslastung durch die SSH-Daemons (sshd) und spielt wiederholend einen Ton ab (alert_01.wav), solange wie die Attacke existiert.
Mehr praxistauglicher wäre dieses Script als ein entsprechender Daemon/Service, der permanent die sshds überwacht, optional.

Für Debian/Raspbian einfach “aplay” statt “afplay” verwenden.

Raspbian Audioplayer

Comments Off on Raspbian Audioplayer
Filed under DIY, Raspberry Pi, Raspberry Pi OS

Um ein Audio-File mit einem simplen Tastendruck abspielen zu können, braucht man eine Mindest-Konfiguration aus RaspberryPi und einem Audio-Ausgabe-Gerät, in meinem Fall ein Raspberry Pi Zero WH und ein Speaker pHat. Dazu natürlich noch ein Taster und ein Gehäuse, beides sehr robust, beides von Conrad Electronics.

Zum Einrichten habe ich einen RPi 3+ und einen externen Speaker benutzt, danach sollte alles auch dem RPi Zero laufen. Zur Software: ich habe das Raspbian-Buster-Lite-Image benutzt, also ebenfalls die Minimal-Variante. Optional ist die SMB-Installation, ist nur einfach angenehmer um die Audio-Daten leicht hin- und herzuschieben. Das Script sieht folgendermassen aus:


from time import sleep

import RPi.GPIO as GPIO

import os

import sys

GPIO.setmode(GPIO.BCM)

button1=17

GPIO.setup(button1,GPIO.IN,pull_up_down=GPIO.PUD_UP)

while(1):

if GPIO.input(button1)==0:

print "Button 1 Was Pressed:"

os.system("amixer cset numid=1 85%")

os.system("aplay /home/pi/audiobutton/button/audio.wav -D sysdefault:CARD=0")

sleep(.1)

Wichtig die Kennung für den GPIO-Port, hier 17 (Pin: 11), und der Verweis auf die Audio-Datei plus optionaler Angabe des Audio-Devices (CARD=0). Bei integrierten, höherwertigen DACs ist diese Angabe empfehlenswert und notwendig, für den Standard-Klinken-Ausgang nicht. Auto-Starten des Scriptes: das passiert durch einen Eintrag in /etc/profile, meine Ergänzung lautet hier:


sudo python /home/pi/audiobutton/button/button.py &

Absolut wichtig hier: das System muss auf Auto-Login eingestellt sein, deswegen über sudo raspi-config > Boot Options > Desktop/CLI > Console AutoLogin dort die entsprechende Einstellung machen.

Hier noch ein hilfreicher Link zur allgemeinen Audio-Konfiguration unter Raspbian: https://dafrk-blog.com/de/audio-ueber-raspberry-pi-abspielen-mittel-und-wege/

Raspbian: Minimal Webcam

Comments Off on Raspbian: Minimal Webcam
Filed under DIY, Raspberry Pi, Raspberry Pi OS

Diese Variante einer mobilen Webcam enthält softwareseitig nur ein Skript für die Erstellung und FTP-Upload des “webcamimage.jpg” sowie einen Cron-Job der jede Minute ausgeführt wird.
An zusätzlicher Software wird sshpass benötigt, Datenübertragung erfolgt mit SFTP. Das normale FTP wird von kommerziellen Hosting-Firmen nicht mehr unterstützt.
Beispiel-Syntax für Download: user@host:directory/webcamimage.jpg
Beispiel-Syntax für Upload: user@host:directory/ <<< $'put webcamimage.jpg'
Hier das komplette Script (password muss in Quotationmarks):

#!/bin/bash
cd /home/pi/webcam/
sudo rm *.jpg
raspistill -rot 180 -w 1640 -h 1232 -o "webcamimage.jpg"
sleep 1
sshpass -p "password" sftp -oPort=22 user@host:directory/ <<< $'put webcamimage.jpg'
exit

Hardware ist hier ein Raspberry Pi Model B Plus Rev 1.2 plus Kamera Modul V2 plus TPLink TL-WN722n (Rev1, Atheros).

Mujiwireless Version 2

Comments Off on Mujiwireless Version 2
Filed under Raspberry Pi, Raspberry Pi OS

Ein wesentlicher Schwachpunkt bei Mujiwireless Version 1 ist die fehlende Information über die IP-Nummer, die das Gerät zugewiesen bekommt. Mit dem monochromen Mini-OLED-Display lässt sich dieser Makel elegant beheben. Das Display zeigt anhand der Demo-Datei stats.py schon alle wesentlichen Daten an: IP-Nummer, CPU-Load, RAM- und Disk-Belegung. Anhand von der CPU-Load kann man auch gut auf den ersten Blick erkennen, ob ein Zugriff auf das Gerät stattfindet. Die Disk-Belegung funktioniert ebenfalls zuverlässig. Alles in allem eine wesentliche Verbesserung was die Funktion angeht. Baulich ist das Display allerdings wesentlich höher als der Raspberry Pi Zero, so, es passt nicht mehr in das (namensgebende) Muji-Gehäuse. Eventuell kann man an den Header-Stiften schrauben …

Mujiwireless (Eduroam-NAS)

Comments Off on Mujiwireless (Eduroam-NAS)
Filed under Raspberry Pi, Raspberry Pi OS

Der Raspberry Pi Zero W kostet 10,35 Euro. Eine SD-Karte kostet 12,99 Euro, das USB-Kabel kostet 3,45 Euro. Das Muji-Visitenkartenetui mit doppeltem Fach kostet 3,95 Euro. Alles zusammen ergibt einen äusserst mobilen und drahtlosen Datenspeicher für vorkonfigurierte WLAN-Umgebungen. Die Idee: da das persönliche Bewegungsprofil meistens zwischen bekannten WLANs hin- und herpendelt, und ein Smartphone als Datenspeicher mit hoher Kapazität ausscheidet, soll dieser Mini-Computer, sozusagen als drahtloser USB-Stick, die Daten zwischen den WLANs austauschen. Den Fachbegriff NAS (Network Attached Storage) kann man natürlich auch verwenden. Vorteil: das Ding kann einfach in der Tasche bleiben, es wird über eine USB-Powerbank mit Strom versorgt. Stationärer Strom-Betrieb an einer beliebigen USB-Buchse ist natürlich auch möglich. Zweiter Vorteil: ein Ausbau der Kapazität durch Austausch der SD-Karte ist möglich. Dafür muss natürlich das System geklont werden, z.B. mit ApplePi-Baker.

Die Schwierigkeit dabei ist die Konfiguration des Eduroam-WLANs für die jeweilige Hochschule, den dieses Setup ist keinesfalls gleich für alle angeschlossenen Institute. Auch die Wahl des richtigen OS’ für dieses Projekt ist wichtig: das aktuelle Raspbian (Stretch 9.0) bringt nicht die notwendigen WLAN-Treiber für den Raspberry Pi Zero W mit. An Software wird also benötigt: Raspbian Jessy 8.0 und eine nachträgliche SMB-Installation.

Zwei Konfig-Dateien für Eduroam (und andere WLANs) sind wesentlich: /etc/wpa_supplicant/wpa_supplicant.conf und /etc/network/interfaces. In interfaces wird nur der allgemeine WLAN-Modus definiert und die Verweise zu den WLAN-Setups hinterlegt; folgender Inhalt ist weitesgehend allgemeingültig:


# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# the loopback network interface
auto lo
iface lo inet loopback

# the primary network interfaces
allow-hotplug wlan0

iface wlan0 inet manual

# link to access data
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

# secondary network interface with dhcp
iface eth0 inet dhcp

Inhalt der wpa_supplicant.conf sieht folgendermassen aus:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE

network={
        ssid="eduroam"
        proto=RSN
        key_mgmt=WPA-EAP
        pairwise=CCMP
        auth_alg=OPEN
        eap=TTLS
        identity="RZ-Login"*
        password="RZ-Kennwort"*
        anonymous_identity="anonymous@hs-wismar.de"
        ca_cert="/etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem"
        phase2="auth=PAP"
        priority=1
}

network={
        ssid="Zuhause WLAN"*
        psk="Zuhause WLAN Kennwort"*
        key_mgmt=WPA-PSK
        priority=5
}

Alle mit * gekennzeichneten Zeilen sind persönliche Angaben. Wichtig die Verschlüsselungsmethode während der Authentifizierung (eap), die äussere Identität (anonymous_identity) sowie der Verweis auf das Root-Zertifikat (ca-cert), was schon Bestandteil des OS ist. RZ-Login als Kurzname. Die Prioritäten (priority) spielen nur dann eine Rolle, wenn beide WLANs in Reichweite sind.

Für das FileSharing wird SMB benötigt, die Prozedur dafür klammere ich hier mal aus. Persönlich habe ich 2 Ordner zum Teilen angelegt: einen mit Passwort und einen ohne Passwort (Guest-Access). Achtung: dass das Gerät für alle im Eduroam-WLAN befindlichen Geräte erreichbar ist, muss klar sein.

Praxis: ich benutze Mujiwireless™ jetzt schon ein paar Wochen und alles funktioniert wie erhofft. Der Zugriff von macOS (in Eduroam) erfolgt über die IP-Adresse, die man allerdings über nmap vorher in Erfahrung bringen muss. Der Zugriff von Windows-Computern im Eduroam klappt leider nicht. Im Home-WLAN erscheint das Volume im Netzwerkbrowser (siehe letztes Bild). Die Geschwindigkeit der Dateitransfers richtet sich an den Limitationen des Eduroam und der Möglichkeiten der Hardware des Raspberry Pi Zero aus. Im Home-WLAN erreicht man etwas höhere Datenraten. Für richtig grosse Daten eignet sich das eigentlich nicht, so liegt die praktische Datenrate im Eduroam zwischen 2-3 MB/s, dh., für 6 GB braucht man ca. eine Stunde. Aber nochmal: das Ding liegt dabei in einer Tasche 😀.