Erweiterung des Wohnwagennetzes um einen Raspberry Pi (Teil 1)

In meinem Artikel zum WLAN.Accesspoint hatte ich noch vom Plan geschrieben, einen Werbefilter unter OpenWRT laufen zu lassen. Eine Recherche zeigte aber, das Adguard – wie alle anderen Werbefilter – sehr speicherhungrig ist und auf dem Archer nicht laufen würde. Es gibt natürlich leistungsfähigere Router wie den Asus RT-AX53U, die aber auch gebraucht recht teuer sind. Ein Raspberry 3B inklusive Gehäuse wäre da preiswerter und würde gleich noch weitere Möglichkeiten wie TV-Headend ermöglichen.

Aufsetzen eines neuen Raspis:

SSH-Dämon

Da mein Pi-Hole zu Hause immer noch unter Debian 10 läuft, bot es sich an, ihn bei der Gelegenheit gleich mit upzudaten. Der Raspberry-Imager hat inzwischen deutliche Fortschritte gemacht. Er kann nicht nur das System herunterladen und gleich auf die Speicherkarte schreiben, sondern man kann zuvor einen Nutzer, die Daten für die SSH Shell einschließlich eines öffentlichen Keys sowie auch einen WLAN-Zugang festlegen. So kann man nach booten sofort „Headless“ loslegen. Übrigens bin ich bei einem 32Bit System geblieben, das 64Bit System stürzte z.B. beim Kopieren größerer Datenmengen per SSH reproduzierbar ab!

Zunächst in /etc/ssh/sshd_config die nötigen Einträge kontrollieren:

# Authentication:
PermitRootLogin no
PubkeyAuthentication yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

und den Server neu starten:

sudo service ssh restart

Postfix

Ich finde es praktisch, wenn meine Rechner sich per Email melden können. Also installiert man Postfix als sogenanntes „Satellite System“ und gibt dem Rechner (SMTP relay host) an, an den die Emails gesendet werden sollen. Nach der Installation muß man in /etc/postfix/main.cf folgendes eintragen:

# SMTP mit SASL Autentifizierung:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
# tls config.
smtp_tls_security_level = encrypt

Neue Datei anlegen:

touch smtp_auth

Die Datei muß zuerst den Namen des Relay-Hostes und dann User:Paßwort enthalten. Außerdem muß man in /etc/aliases noch die passenden Umleitungen anlegen:

postmaster:    root
hostmaster:    root
nobody:        root
root: mail@irgendwo.de
# et cetera

Jetzt fehlt nur noch:

sudo newaliases
sudo postmap smtp_auth
sudo service postfix restart

Früher konnte man mit „mail“ leicht auf der Kommandozeile eine Mail verschicken. Der Versuch, dieses Programm nachzuinstallieren, zeigte einen riesigen Rattenschwanz an Abhängigkeiten, den ich nicht installieren wollte. Es geht aber auch so, vorausgesetzt in der Datei „mail.txt“ steht irgendetwas. Aus Kompatibilitätsgründen hat auch Postfix noch ein sendmail-Kommando:

sendmail < mail.txt root

Will man Mails lieber an einen externen Mailhost schicken, läuft man heutzutage in das Problem, das die allermeisten Provider eine Mail nur annehmen, wenn die „From“-Adresse mit der Mailadresse des Emailkontos übereinstimmt. Postfix muß also die Adresse immer umschreiben. Das geht leicht mit einem zusätzlichen Eintrag in der Main.cf:

sender_canonical_maps = static:syslog@irgendwo.de

Fail2Ban

Ich habe dann noch fail2ban installiert, da der Raspi zu Hause per SSH zu erreichen ist, um bei Bedarf meinen Debian-Server einzuschalten. Das mode=aggressive sorgt dafür, das jeder nicht abgeschlossene Login-Versuch über SSH als Fehler gewertet wird:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local  

Die neue Datei muß dann editiert werden:

#
# MISCELLANEOUS OPTIONS
#
ignoreip = 127.0.0.1/8 192.168.99.0/24 10.8.0.0/24
# "bantime" is the number of seconds that a host is banned.
bantime  = 1h
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 3
#
#
backend = systemd
# 
# 
#
# JAILS
#
# SSH servers
#
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
mode   = aggressive
port    = ssh
logpath = /var/log/auth.log
backend = %(sshd_backend)s

Sicherungskopie

Jetzt noch alle weiteren Programme installieren, die man üblicherweise so benötigt – bei mir nur noch Pi-Hole, und die Karte kopieren und das Image verkleinern. USB Stick anstecken und unter /mnt einbinden.

sudo dd bs=4M if=/dev/mmcblk0 of=/mnt/backup.img status=progress
cd /mnt
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin
sudo pishrink.sh backup.img

Man hat jetzt ein Image, mit dem man schnell einen neuen Raspi aufsetzen kann. Das Image kann man dann auf eine andere Karte brennen und kann schnell ein System starten. Hostname ändern, fertig. Ich würde allerdings auch noch in /etc/ssh die Keys löschen und neu erzeugen:

sudo ssh-keygen -A

Teil 2 folgt!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.