Aus einer ähnlichen Erwägung heraus habe ich einen "Faxempfangs-Ersatz für sensible Dinge von Pflegediensten usw." gebaut.
Vorgabe: Keine externe Speicherung, SSL-geschützte Einlieferung, Minimalinterface, Einlieferung auf Server innerhalb der Praxis, Kommunikation von extern nur auf diesen Server. Server kann intern nur auf den Mailserver sendend per SSL zugreifen.
- Winziger Webserver (VM wäre auch denkbar gewesen) auf Ubuntu-Basis mit eigenem Subnetz (VLAN möglich)
- Hängt hinter dem Router / Firewall an eigenem Port
- Subdomain mit CNAME auf den Dyn-Namen der Praxis (myfritz ginge dafür z.B.) wegen SSL / Let´s Encrypt
- Portweiterleitung 80,443 auf diesen Webserver (80 nur für Let´s Encrypt) und Freigabe Webserver-an-PraxismailserverLokal Port 465 (sichere Mailübertragung)
- Dort befindet sich ein Upload-Formular (Evoluted Directory Listing)
- Dort mittels https hochgeladene und vom clamav beim Schreiben geprüfte PDF werden minütlich mit einem cronjob durch ghostscript geschubst:
Code: Alles auswählen
#!/bin/bash
cd /var/www/vhosts/DOMAIN.TLD/sub.DOMAIN.TLD/in
for file in *.pdf; do
if [[ -f "$file" ]]; then
# process the file with name in "$file" here
jetze=`date '+%Y_%m_%d__%H_%M_%S_%N'`;
new=$jetze-$file;
gs -o ../out/$new -dNoOutputFonts -sDEVICE=pdfwrite $file -sOutputCMYKProfile=/usr/share/ghostscript/9.26/Resource/ColorSpace/iso300.icc -dOverrideICC=true
mailbody="Neues Dokument:<br><b> Anhängende Datei $new</b>"
echo "From: no-reply@DOMAIN.local" > /tmp/mailtest
echo "To: praxis@local.domain" >> /tmp/mailtest
echo "Subject: Dokumentenbox" >> /tmp/mailtest
echo "" >> /tmp/mailtest
echo $mailbody >> /tmp/mailtest
(cat /tmp/mailtest; uuencode ../out/$new $new.pdf) | /usr/sbin/sendmail -t
rm $new.pdf
mv ../out/$new ../bit/$new
rm $file
fi
done
Das Farbprofil hat einen historischen Hintergrund: Das Script habe ich einst gebaut, um aus PDF-Formularen eine druckereitaugliche CMYK-Druckvorlage zu erzeugen.
Formal geht es hier aber nur darum, das PDF komplett "flat" zu machen, d.h. zu reinen Kurven/Vektoren ohne Schriften, Skripte und Formularfelder.
- Sendmail ist konfiguriert auf den praxisinternen Mailserver (hMailserver für Windows). Dieser ist vorhanden, damit er die Mails per Fetchmail vom Webspace aus dem Feuer holt, also lokal speichert.
- Sendmail stellt dann direkt in den Posteingang zu.
Ergebnis: Einmal komplett neugeschriebenes PDF aus einer gekapselten Box.
Restrisikobetrachtung (ohne Verfügbarkeitserwägungen):
- Angreifer müsste kleinen Ubuntuserver angreifen, also das kleine Interface per Port 80 oder 443. Präparierte Datei oder POST-Anweisungen für eine Shell via Port 443?
- Danach wären zwei Szenarien denkbar: Unterschieben einer verseuchten Datei in den Mailversand ins Praxispostfach (da läuft ja auch nochmal ein Malware-Scan) oder ein Versuch, den lokalen Mailserver über dessen SSL-Port zu knacken. Denn nur der ist überhaupt erreichbar.
Ein Upgrade besteht aktuell darin, dass die Files in einer lokalen Nextcloud landen, die dann das Script ausführt, per Mail benachrichtigt und einen Download-Link an das Praxispostfach schickt. Nach Download wird die Datei gelöscht. Einbindung per Freigabeordner wäre auch möglich (in TM reinziehen).
Hier bleibt aber zu beachten, den Upload nicht direkt in eine extern erreichbare Nextcloud, sondern eben über den o.g. Umweg zu gestalten.
Wenn Interesse besteht, kann ich das auch nochmal komplett ausführlich darstellen.
Inzwischen habe ich hier eine Handvoll Praxen, die das fröhlich nutzen für allerlei Sachen inkl. Bewerbungseingaben.
Gesamtaufwand mit Hardware: Miniserver (USFF-PC oder Raspi) 100 Euro, Zeitaufwand im schlimmsten Fall für alles bei 5 Stunden.
Voraussetzung ist lediglich eine Firewall mit entsprechender Ausleitung des Traffic. Ist die nicht vorhanden, geht es trotzdem, wäre aber deutlich weniger sicher.
Aber eine komplette und sachgerecht eingerichtete xyz-Sense ist auch für <1.000 Euro machbar und kann dann gleich VPN/Heimarbeit, Webfilter usw. miterledigen.
Have phun
Forti