Ok, ich mach mir weiter Gedanken ![]()
Vielen Dank für eure Rückmeldungen, sollte jemanden noch was anderes einfallen, würde ich mich freuen wenn er es hier noch postet.
Ok, ich mach mir weiter Gedanken ![]()
Vielen Dank für eure Rückmeldungen, sollte jemanden noch was anderes einfallen, würde ich mich freuen wenn er es hier noch postet.
Hallo Bernd,
vielen Dank für deine Antwort. Ich wollt eigentlich etwas, was nicht gebastelt ausschaut, damit die Akzeptanz durch die Family steigt
Hier liegt auch noch ein ESP (WittyCloud) mit ner RGB LED, notfalls wäre der Weg über Netzteil und 3D-gedrucktes Gehäuse die Notlösung … muss halt nur die Family getauscht werden ![]()
Hallo Zusammen,
ich bin auf der Suche nach einer kleinen LED-Lampe um den Status von Zuständen einer Homematic Installation sichtbar zu machen. Jede Farbe erhält eine Bedeutung (zB grün = Alarm an / rot = Alarm aus / blau = Fenster offen …) und diesen sollen per curl-Befehl geschaltet werden können (wird über die homematic realisiert). Aktuell nutze ich einen Wemos D1 mini, auf dem ein kleiner HTTP-Server läuft, über den ich per curl die interne LED nur an- oder ausschalten kann. Der ist nur leider nicht besonders hübsch und belegt auch eine der kostbaren Steckdosen im Flur. Nun suche ich was vergleichbares aber in vernünftiger Optik und wenn möglich mit Batterie (AA?). Gern mit tasmota. Ein Display oder Button wäre nicht notwendig, kann aber ggfs auch in die Steuerung integriert werden.
Habt ihr ne Idee, was ich verwenden könnte?
Grüße M.
P.S. Aktuell ist das in ner TicTac Schachtel verbaut, meine bessere Hälfte hätt gern was optisch ansprechenderes ![]()
Mahlzeit,
schau dir mal Vaultwarden an. Kannst du selber im internen Netzwerk hosten und mit mobilen Clients per App (iOS/Android) auf eure Passwörter zugreifen. Die App cacht die Passwörter, sodass du innerhalb deiner App auch außerhalb deines Netzwerkes dabei hast, ohne dass du deine Vaultwarden Installation von außen erreichbar hast. Außerdem können TeamPasswörter und auch Notfallkontakte erstellt werden.
Nein, nicht in Stein gemeißelt aber grundsätzlich funktioniert es erstmal. Ich habe das Skript hier dokumentiert, weil es vielleicht dem ein oder anderen nützen könnte oder wenn jemand Code-Verbesserungen vornehmen möchte er das hier gern tun kann.
Das Skript ist fertig und ist oben schon für die Nachwelt dokumentiert ![]()
P.S. Der Thread wurde auch schon als gelöst markiert.
Der OpenVPN Tunnel ist in einer anderen Umgebung im Produktiveinsatz und kann hier vernachlässigt werden. Der Tunnel mit Wireguard und der Server Adresse 10.252.1.0/24 hat dennoch funktioniert. Schau ich mir bei Gelegenheit nochmal genauer an.
Das hier ist mein erster Wireguard-Test in einer vom normalen Netzwerk getrennten "Entwicklungsumgebung". Ebenso ist der Wireguard-VPN-Server nicht von außen erreichbar, es sind keinerlei Portweiterleitungen eingerichtet da ich mich erstmal im Detail und in Ruhe in meiner "Entwicklungsumgebung" damit beschäftigen wollte. Nur die Client-Benachrichtigung ist ein musthave, ohne diese hätte ich mich nicht weiter mit wireguard beschäftigen brauchen ![]()
Ob ich den Wireguard-Server später manuell oder per GUI erzeuge, wird sich dann noch zeigen... ich wollte nur eine schnelle/einfache Testumgebung zum Laufen bekommen, damit ich an dem Benachrichtigungs-Skript arbeiten kann.
ah ok, Ursache für die doppelten Benachrichtigungen sind gefunden:
Die Zeile 40 fehlte bzw war an der falschen Stelle: send_notification="no"
Und hier nochmal das vollständige Skript, falls jemand ebenfalls Benachrichtigungen bei wireguard-Verbindungen per Pushover senden möchte. Optimierungen und Co sind ebenfalls gern gesehen:
#!/bin/bash
# Pushover-Token:
PUSHOVER_APP_TOKEN="XXXXX"
PUSHOVER_USER_TOKEN="XXXXX"
TITLE="$(cat /etc/hostname)"
# Variablen:
CLIENTS_DIRECTORY="/etc/wireguard/clientnotify"
NOW=$(date +%s)
# Status Disconnected nach XX Minuten:
TIMEOUT=1
# Ordner Client-Logfile vorhanden?
if [[ ! -e $CLIENTS_DIRECTORY ]];
then
mkdir -p $CLIENTS_DIRECTORY
echo "Ordner $CLIENTS_DIRECTORY nicht vorhanden, wird daher angelegt"
fi
echo "Ordner $CLIENTS_DIRECTORY vorhanden"
# Wireguard installiert?
if ! command -v wg &> /dev/null; then
printf "Sorry, Wireguard ist notwendig. Bitte erstmal installieren.\n"
exit 1;
fi
WIREGUARD_CLIENTS=$(wg show wg0 dump | tail -n +2) # remove first line from list
if [ "" == "$WIREGUARD_CLIENTS" ]; then
printf "Keine Wireguard-Clients gefunden.\n"
exit 1
fi
while IFS= read -r LINE; do
PUBLIC_KEY=$(awk '{ print $1 }' <<< "$LINE")
REMOTE_IP=$(awk '{ print $3 }' <<< "$LINE" | awk -F':' '{print $1}')
LAST_SEEN=$(awk '{ print $5 }' <<< "$LINE")
CLIENT_NAME=$(grep -R -B5 "$PUBLIC_KEY" /etc/wireguard/wg0.conf | awk -F "Name:" '{print $2}' | cut -c10-)
CLIENT_FILE="$CLIENTS_DIRECTORY/$CLIENT_NAME.txt"
send_notification="no"
# Clientfile erstellen falls notwendig
if [ ! -f "$CLIENT_FILE" ]; then
echo "offline" > $CLIENT_FILE
fi
# letzter Status des Clients
LAST_CONNECTION_STATUS=$(cat $CLIENT_FILE)
# Anzahl Sek. seit letzter Verbindung
LAST_SEEN_SECONDS=$(date -d @"$LAST_SEEN" '+%s')
# User online?
if [ "$LAST_SEEN" -ne 0 ]; then
# Anzahl Minuten seit letzter Verbindung
LAST_SEEN_ELAPSED_MINUTES=$((10#$(($NOW - $LAST_SEEN_SECONDS)) / 60))
# wenn Status = online und Timeout ueberschritten, dann Status des users offline
if [ $LAST_SEEN_ELAPSED_MINUTES -gt $TIMEOUT ] && [ "online" == $LAST_CONNECTION_STATUS ]; then
echo "offline" > $CLIENT_FILE
send_notification="getrennt"
# wenn Status = online und Timeout unterschritten, dann Status des users online
elif [ $LAST_SEEN_ELAPSED_MINUTES -le $TIMEOUT ] && [ "offline" == $LAST_CONNECTION_STATUS ]; then
echo "online" > $CLIENT_FILE
send_notification="verbunden"
fi
else
# User offline?
if [ "offline" != "$LAST_CONNECTION_STATUS" ]; then
echo "offline" > $CLIENT_FILE
send_notification="getrennt"
fi
fi
# Benachrichtigung senden
if [ "no" != "$send_notification" ]; then
printf "%s ist %s\n" $CLIENT_NAME $send_notification
MESSAGE="Wireguard/VPN: \`$CLIENT_NAME $send_notification ($REMOTE_IP)\`"
wget https://api.pushover.net/1/messages.json --post-data="token=$PUSHOVER_APP_TOKEN&user=$PUSHOVER_USER_TOKEN&message=$MESSAGE&title=$TITLE" -qO- > /dev/null 2>&1 &
else
printf "Client %s is %s, keine Nachricht senden.\n" $CLIENT_NAME $(cat $CLIENT_FILE)
fi
done <<< "$WIREGUARD_CLIENTS"
exit 0
Display More
Mhmm, warum kann ich dir nicht sagen, der Tunnel hat zumindest funktioniert. Ich hab bisher nur mit OpenVPN gearbeitet und wollt wireguard erstmal testen…
Hier die Default-Werte von wireguard-ui: https://github.com/ngoduykhanh/wi…/util/config.go
Kann ich machen. Lt. meinem Verständnis ist damit das VPN-Netzwerk gemeint. Die IP Adressen der Peers stehen drunter.
Noch ein kurzer Nachtrag, hab deine Frage vorhin übersehen. Sorry
QuoteWird dort automatisch die 10.254.1.0/24 eingetragen?
Nein, im Standard: 10.252.1.0/32
Die 0 steht jedoch im Standard bereits drin.
ne, wireguard-ui ist ein Frontend für die einfache Installation/Konfiguration des wireguard-Servers. siehe hier: https://github.com/ngoduykhanh/wireguard-ui/
Hier mal das komplette Skript (ist aus verschiedenen Einzel-Skripten zusammengetragen und modifiziert/ergänzt):
#!/bin/bash
# Pushover-Token und Variablen:
PUSHOVER_APP_TOKEN="XXXXX"
PUSHOVER_USER_TOKEN="XXXXX"
TITLE="$(cat /etc/hostname)"
send_notification="no"
# Variablen:
CLIENTS_DIRECTORY="/etc/wireguard/clientnotify"
NOW=$(date +%s)
# Status Disconnected nach XX Minuten:
TIMEOUT=1
# Client-Ordner vorhanden?
if [[ ! -e $CLIENTS_DIRECTORY ]];
then
mkdir -p $CLIENTS_DIRECTORY
echo "Ordner $CLIENTS_DIRECTORY nicht vorhanden, wird daher angelegt"
fi
echo "Ordner $CLIENTS_DIRECTORY vorhanden"
# Wireguard installiert?
if ! command -v wg &> /dev/null; then
printf "Sorry, Wireguard ist notwendig. Bitte erstmal installieren.\n"
exit 1;
fi
WIREGUARD_CLIENTS=$(wg show wg0 dump | tail -n +2) # remove first line from list
if [ "" == "$WIREGUARD_CLIENTS" ]; then
printf "Keine Wireguard-Clients gefunden.\n"
exit 1
fi
while IFS= read -r LINE; do
PUBLIC_KEY=$(awk '{ print $1 }' <<< "$LINE")
REMOTE_IP=$(awk '{ print $3 }' <<< "$LINE" | awk -F':' '{print $1}')
LAST_SEEN=$(awk '{ print $5 }' <<< "$LINE")
CLIENT_NAME=$(grep -R -B5 "$PUBLIC_KEY" /etc/wireguard/wg0.conf | awk -F "Name:" '{print $2}' | cut -c10-)
CLIENT_FILE="$CLIENTS_DIRECTORY/$CLIENT_NAME.txt"
# Clientfile erstellen falls notwendig
if [ ! -f "$CLIENT_FILE" ]; then
echo "offline" > $CLIENT_FILE
fi
# letzter Status des Clients
LAST_CONNECTION_STATUS=$(cat $CLIENT_FILE)
# Anzahl Sek. seit letzter Verbindung
LAST_SEEN_SECONDS=$(date -d @"$LAST_SEEN" '+%s')
# User online?
if [ "$LAST_SEEN" -ne 0 ]; then
# Anzahl Minuten seit letzter Verbindung
LAST_SEEN_ELAPSED_MINUTES=$((10#$(($NOW - $LAST_SEEN_SECONDS)) / 60))
# wenn Status = online und Timeout ueberschritten, dann Status des users offline
if [ $LAST_SEEN_ELAPSED_MINUTES -gt $TIMEOUT ] && [ "online" == $LAST_CONNECTION_STATUS ]; then
echo "offline" > $CLIENT_FILE
send_notification="disconnected"
# wenn Status = online und Timeout unterschritten, dann Status des users online
elif [ $LAST_SEEN_ELAPSED_MINUTES -le $TIMEOUT ] && [ "offline" == $LAST_CONNECTION_STATUS ]; then
echo "online" > $CLIENT_FILE
send_notification="connected"
fi
else
# User offline?
if [ "offline" != "$LAST_CONNECTION_STATUS" ]; then
echo "offline" > $CLIENT_FILE
send_notification="disconnected"
fi
fi
# Benachrichtigung senden
if [ "no" != "$send_notification" ]; then
printf "%s ist %s\n" $CLIENT_NAME $send_notification
MESSAGE="Wireguard/VPN: \`$CLIENT_NAME $send_notification ($REMOTE_IP)\`"
wget https://api.pushover.net/1/messages.json --post-data="token=$PUSHOVER_APP_TOKEN&user=$PUSHOVER_USER_TOKEN&message=$MESSAGE&title=$TITLE" -qO- > /dev/null 2>&1 &
else
printf "Client %s is %s, keine Nachricht senden.\n" $CLIENT_NAME $(cat $CLIENT_FILE)
fi
done <<< "$WIREGUARD_CLIENTS"
exit 0
Display More
Prinzipiell funktioniert des Skript mittlerweile. Wenn sich user2 per Wireguard VPN verbindet wird eine Pushnachricht geschickt, dass sich dieser User verbunden hat. Auch beim Trennen der Verbindung wird nach einem Timeout von 60 Sekunden eine Benachrichtigung versendet. Komischerweise erhalte ich aber bei der Verbindung von user1 jeweils 2 Benachrichtigungen (1x user1 verbunden und 1x user2 verbunden), beim Trennen das Gleiche (1x user1 getrennt und 1x user2 getrennt).
Hallo rpi444,
danke für deine Antwort. Die wg0.conf wird automatisiert von wireguard-ui erzeugt, manuelle Änderungen wären also nur temporär.
Hallo und Guten Morgen,
ich teste derzeit wireguard auf einem debian System und möchte eine Pushover-Nachricht beim Verbinden eines Clients mit dem Wireguard-Server versenden.
Mit folgendem Command ermittle ich den aktuellen Status:
Ausgabe:
Q8koecaHEfghkIuAahsz5KxkTcQ1Q/Q179RCe8ZZ/2WY= Ff4QW71tgfg9RoMutdte7BjGvHs2Rq8na96GRVPlXGD6M= 192.168.10.66:64620 10.254.1.0/24 1670660454 301116 2372912 off
yE+B0M/xxtcdjMwKfbYSTJ9BORoU0tXk0UCQgzzgn3g= hoNyYuVffhk9fF/52ZYHvVczvpd4wfORyTHVrwhYf+E= 192.168.10.67:63123 10.254.1.2/24 1670660970 45032 182380 of
Im nächsten Step würde ich anhand des Public-Key des jeweiligen Users, also z.B. "Q8koecaHEfghkIuAahsz5KxkTcQ1Q/Q179RCe8ZZ/2WY=" den Username mit Hilfe der wg0.conf
$ cat /etc/wireguard/wg0.conf
# This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui)
# Please don't modify it manually, otherwise your change might get replaced.
# Address updated at: 2022-12-09 17:20:59.1405372 +0000 UTC
# Private Key updated at: 2022-12-09 17:20:40.004535654 +0000 UTC
[Interface]
Address = 10.254.1.0/24
ListenPort = 51220
PrivateKey = sNIjdgjhgjQrhjJc+fqgpjp0v5HDw4MgDVxbQ3i7PWVQ=
MTU = 1450
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE
# ID: ce9mt82vncmse3592o40
# Name: user1
# Email:
# Created at: 2022-12-09 17:21:36.640191491 +0000 UTC
# Update at: 2022-12-09 17:21:36.640191491 +0000 UTC
[Peer]
PublicKey = Q8koecaHEfghkIuAahsz5KxkTcQ1Q/Q179RCe8ZZ/2WY=
PresharedKey = Ff4QW71tgfg9RoMutdte7BjGvHs2Rq8na96GRVPlXGD6M=
AllowedIPs = 10.254.1.1/24
# ID: cea7mguvncms5l8v8pmg
# Name: user2
# Email:
# Created at: 2022-12-10 07:54:43.063090979 +0000 UTC
# Update at: 2022-12-10 07:54:43.063090979 +0000 UTC
[Peer]
PublicKey = yE+B0M/xxtcdjMwKfbYSTJ9BORoU0tXk0UCQgzzgn3g=
PresharedKey = hoNyYuVffhk9fF/52ZYHvVczvpd4wfORyTHVrwhYf+E=
AllowedIPs = 10.254.1.2/32
Display More
So und nun komme ich nicht weiter, mein aktueller Versuch schaut so aus:
CLIENT_NAME=$(grep -R -B5 "yE+B0M/xxtcdjMwKfbYSTJ9BORoU0tXk0UCQgzzgn3g=" /etc/wireguard/wg0.conf) && echo $CLIENT_NAME
Ziel ist es, anhand des Public_Key den korrekten Usernamen, also z.B. user2 in die Variable CLIENT_NAME zu schreiben.
Kann mir jemand hier weiterhelfen??
Grüße M.
Leider bin ich noch immer nicht richtig schlau daraus geworden.
Photosync würde meine Fotos aus der Foto App automatisch auf einen FTP Server schicken. Danach könnte ich die vom iPhone löschen und die sind noch immer auf dem FTP vorhanden, richtig?
Die anderen Dienste von Nextcloud sind ja erstmal uninteressant. Hier gehts nur um Fotos und Videos. Aber im Prinzip macht doch Nextcloud das gleiche wie Photosync (wie ein paar Zeilen vorher von mir beschrieben) oder nicht?
Die Cloud soll im internen Netzwerk angeboten werden, aber warum nicht die Dienste von außen per Portfreigabe zur Verfügung stellen? Das wird doch idR von allen so gemacht, die eine eigene Cloud aufsetzen?
1) korrekt, die Bilder/Videos bleiben auf dem FTP-Server (Beispiel) erhalten, auch wenn diese auf dem iPhone gelöscht werden. Wenn du die Bilder vom FTP-Server auf dem iphone betrachten möchtest, brauchst du eine APP mit der du dich mit dem Storage/FTP-Server verbinden kannst (z.B.. documents) --> die Bilder/Videos liegen damit nicht mehr lokal auf deinem iPhone, belegen also auch keinen Speicher
2) nicht ganz, nextcloud app (=iPhone) und nextcloud server (=raspi) halten die Daten synchron. Um die Bilder/Videos zu betrachten, werden die Bilder durch die Nextcloud-App vom Nextcloud-Server geladen, belegen also auch weiterhin Speicher auf deinem iPhone. Du kannst anschließend zwar den Cache der Nextcloud-App leeren, dann müssen die Bilder aber beim Betrachten erst wieder vom Nextcloud-Server abgerufen werden, was z.B. bei Videos auch durchaus etwas dauern kann
3) Nein, das wird nur von denen gemacht die keine Ahnung haben oder es ihnen einfach egal ist.. Eine Portfreigabe auf deine inhouse-Cloud am Router öffnet Tür und Scheunentor für jeden außerhalb deines Netzwerkes. Wer solche Dienste von außen zugänglich macht, muss sich intensiv damit auseinandersetzen wie man diese Dienste bzw. sein privates Netzwerk vor Angreifern schützt. Ebenso gehört die Pflege/Aktualisierung und das regelmäßige Kontrollieren der Logfiles dazu. Von daher die allgemeine Empfehlung solche Dienste mit dem jetzigen Wissensstand nur im lokalen, eigenen Netzwerk anzubieten und wenn doch ein Zugang von außen gewünscht ist, dies ausschließlich über einen lokalen VPN-Server (kann auch auf dem gleichen raspi laufen) zur Verfügung zu stellen.
P.S: Alternativ zu nextcloud, kannst du dir auch noch seafile anschauen. Prinzip ist das Gleiche wie bei nextcloud, nur mit dem Unterschied dass sich seafile ausschließlich auf das synchronisieren von Daten/Bilder/Videos konzentriert und die Synchronisation deutlich schneller abläuft.
Photosync synchronisert die Bilder/Videos vom iOS-Device z.B. auf einen lokalen FTP-Server. Du kannst danach die Bilder auf dem iOS-Device löschen, die gesicherten Bilder bleiben auf dem FTP-Server erhalten. Andersherum kannst du nicht mehr benötigte Bilder aus dem Backup auf dem FTP-Server löschen und PhotoSync synchronisert diese nicht nochmal drüber ... Neben einem FTP-Server kannst du auch viele andere Ziele definieren, ebenso ist ein AutoUpload oder auch eine Schnellübertragung möglich. Wenn du die Bilder wieder sichten magst, ginge das z.B. mit der Documents APP von readdle.
Nextcloud stellt im Gegenzug diverse Dienste (Kalender, Kontakte, Speicher ...) zur Verfügung. Installation und Administration gehen mit etwas Einarbeitung gut zur Hand, läuft auch auf einem pi3/pi4 ganz gut. Über die Nextcloud App kannst du deine lokalen Bilder zum Nextcloud-Server sichern. Wenn du dir die Bilder anschaust, lädt die Nextcloud-App die Daten vom Server und kann sie hier auch wieder dauerhaft cachen, somit wird der Speicherbedarf (solange du keine Bilder/Videos unter iOS löscht) ungefähr verdoppelt (1x unter iOS und 1x unter der nextcloud APP). Schau dir mal 2-3 Videos von nextcloud an bzw. teste die Photosync APP ... du siehst sehr schnell die unterschiedlichen Einsatzzwecke. Ich nutze beides, zum synchronisieren der Bilder jedoch PhotoSync, Nextcloud stellt div. Dokumente zur Verfügung, ebenso erfolgt hier die Synchronisation von Kalender+Kontakten mit dem iOS-Device.
Ohne tiefgreifende Netzwerkkenntnisse sollten beide Lösungswege nur im internen Netzwerk angeboten werden. Falls du von außen diese Dienste nutzen möchtest, empfehle ich dir den Einsatz eines selbstgehosteten, lokalen VPN Servers (openvpn, wireguard ...). Bitte niemals diese Dienste von außen per Portfreigabe zur Verfügung stellen.
Grüße M.
Mahlzeit,
prinzipiell kannst du das schon mit nextcloud tun. Eigentlich würde dir aber die iOS App PhotoSync reichen und ein kleiner FTP-Server auf dem pi/NAS der die Bilder entgegen nimmt… die App kostet zwar 3-4 Euro, begleitet mich aber seit Jahren zuverlässig und synct alle Bilder/Videos auf diversen iOS Geräten.
Grüße M.
Hallo Michael,
vielen Dank für den Tipp und das Feedback. Werd‘s bei der nächsten Gelegenheit testen.
Grüße M.
Mahlzeit,
bin von 2000-2015 bei der Telekom/1&1 gewesen und bekam da ne FritzBox 7050 zur Verfügung gestellt welche bis zum Schluss im Einsatz war. 2015 bin ich dann zu Vodafone (ehem KabelDeutschland) gewechselt. Läuft im groben stabil, ca 1x pro Jahr gab es nen Ausfall 24h+ … letzte Störung wurde im Januar 2022 gemeldet, der telefonische Support war der Meinung es lag an meiner FRITZ!Box 6490 und schickte eine neue raus. Ich teilte mehrfach mit, dass ich bezweifle dass es an der 6490 lag und ich wollte auf keinen Fall Änderungen am Vertrag. Der *nette* Supporter von der Hotline änderte dennoch den Vertrag und schickte eine neue FRITZ!Box 6591 raus. Auftrag wurde meinerseits dann storniert und 2 Tage später lief nach einer Störbeseitigung durch CableWay wieder alles normal (mit der alten FRITZ!Box 6490). Worauf will ich hinaus? In den letzten 20 Jahren hatte ich noch keine defekte FritzBox, meine Geräte hängen aber alle an einer Steckerleiste mit Überspannungsschutz. Ich denke die Provider nutzen Störmeldungen um veraltete evtl demnächst nicht mehr kompatible Hardware zu tauschen bzw Vertragsumstellungen/-verlängerungen rechtzufertigen.
Grüße M.
N’Abend,
also prinzipiell kann man sich problemlos in das Thema einarbeiten, es gibt Informationen in Text- Bild- und Videoform ohne Ende. Die Klassiker sind hier für mich die Apu-Boards zB apu2b4 mit OPNsense/PFsense. Auf der anderen Seite kostet dich das auch Zeit und damit Geld wenn du dich selbst damit auseinander setzen möchtest. Ab einem gewissen Aufwand lohnt sich wieder ein externer Dienstleister. PFsense/OPNsense sind zumindest ohne Lizenzkosten einsetzbar, hier wäre also nur die Hardware und der Dienstleister zu zahlen… und das wichtigste. Eine fehlerhaft eingerichtete Firewall bringt absolut keinen Mehrwert in Sicherheit, eher das absolute Gegenteil.
Grüße M.