Durch den Zwang an der TI teilnehmen zu müssen, nimmt der Internetverkehr in der Arztpraxis stark zu und damit steigen auch die Gefahren durch Viren und andere Schadprogramme exponentiell gegenüber einer abgeschotteten PVS-Installation.

Zum einen ist die Einrichtung eines "KIM-Rechners", auf dem einzig das von der Bundesregierung befohlene KIM-Programm läuft, welches root-Rechte(!) beansprucht, eine der notwendigen Maßnahmen zur Selbstverteidigung gegen Eindringlinge.

Eine andere ist, die vielen Gefahren aus Internet und E-Mail für die Praxisrechner zu reduzieren, indem man für die Praxisrechner sämtlichen Internetverkehr inklusive E-Mail rigoros sperrt.

Hat man aus Sicherheitsgründen den Internetzugang für alle Praxisrechner komplett gesperrt, müsste man ihnen aber eigentlich trotzdem gelegentlich zur Aktualisierung des Betriebssystems kurzzeitig in der FritzBox den Internetzugang freigeben, dann von Hand ein Update auslösen, und sie dann in der FritzBox wieder sperren.

Will man auch dies vermeiden, kann man einfach und viel sicherer ein automatisches Update und Upgrade des Betriebssystems von einem eigenen Spiegel(Mirror)-Server einrichten, zu dem die Praxisrechner Zugang haben (wie zum apraxos-Server), der aber selbst keinerlei Zugriff auf die Praxisrechner hat, genauso wenig wie der "KIM-Rechner" für den KIM-Dienst.

Dieser zweite Extrarechner, hier bezeichnet mit "internet", kann auch ein einfacher Raspberry oder eine einfacher Mini-Rechner sein, mit einer externen Festplatte für den oder die Spiegel, z.B. alle Update-Pakete von Debian bullseye und alle Pakete von raspian-bullseye für den hylafax-Rechner.

Dem unsicheren KIM-Rechner sollte man allerdings weder Zugriff auf die Praxisrechner noch auf den Spiegel-Rechner erlauben, er muss sich weiterhin selbst mit unattended-Upgrades aus dem Internet versorgen.

Wenn man als einfacher User keine Kernel-Änderungen o.ä. kompilieren kann oder muss, braucht man die Pakete deb-src nicht einzubeziehen.

Praxisrechner, die den eigenen Spiegelserver benutzen sollen, können die Debian- bzw. Raspian-System-Updates von diesem mit apt-update oder einem Paketmanger per http herunterladen und installieren, am komfortabelsten mit der Funktion "unattended-upgrades".

Es bietet sich an, diesen Rechner internet auch für die Labordatenübertragung, die apraxos-Updates, evtl. für normale E-Mails) und für den Zugang zum KV-safenet zu benutzen. Dafür richtet man die Benutzer kv, labor, update und email auf dem Rechner internet ein. Dann müssen die pubkeys der Praxisrechner zusätzlich in die authorized_keys Datei im Verzeichnis .ssh des Users "netz@internet" kopiert werden, und dasselbe, falls man unbedingt von den Praxisrechnern aus andere E-Mails als die KIM-Emails empfangen und senden möchte, beim User mail@internet; sowie den pubkey des Servers für das Abholen der Laborwerte beim User labor@internet und für den user update@internet (zum Herunterladen von apraxos-Updates) und alle Praxisrechner müssen in der /etc/hosts-Datei und der /etc/hosts.allow Datei des Rechners internet eingetragen werden. Seine /etc/hosts.deny sollte den Eintrag "ALL : ALL" enthalten.)

Der user netz@internet ist ausschließlich für den Zugang ins KV-Portal vorgesehen. Damit kein Zugriff auf andere Webseiten möglich ist, kann man in seinem Firefox alles Andere blockieren, in Einstellungen > Allgemein > Verbindungseinstellungen :

proxy

Im Firefox des users netz@internet legt man als Startseite die Login-Seite des betreffenden KV-Portals an.

Zusätzliche Sicherheit bietet ein user container@internet, der als abgeschottetes Download-Verzeichnis für den firefox oder den thunderbird dient und keinen Zugrif auf die anderen user des Rechners internet hat; wenn man hier eine heruntergeladene Datei öffnet, kann allenfalls das Verzeichnis des Users "container" verseucht werden.

Dagegen darf der internet-Rechner (wie ja auch der KVKIM-Rechner) auf den Praxisrechnern nur in der "/etc/hosts" erscheinen, nicht in der "/etc/host.allow" und sein rsa.pub darf nicht der authorized_keys auf einem Praxisrechner zugefügt werden, außerdem muss in der "/etc/hosts.deny" aller Praxisrechner stehen:

ALL : ALL

Die (evtl.externe) Festplatte des Spiegel-Servers "internet" sollte ausreichend groß sein, z.B. 500GB, da allein ein Spiegel für raspian-bullseye zwischen 70 und 160GB und ein Spiegel für Debian bullseye zwischen 90 und 170GB umfassen kann.

Er wird so eingerichtet, dass er die Updates von den jeweiligen Paketquellen für alle Betriebssysteme automatisch nacheinander, z.B. um 3°° Uhr und um 3:30 nachts abholt und speichert.

# crontab -e
30 4 * * * /usr/bin/apt-mirror

Die Praxisrechner werden dann so eingerichtet, dass sie automatisch beim Hochfahren oder auch zweimal täglich per unattended-upgrades ihre Betriebssystem-Updates vom spiegel@internet holen.

Dieses Vorgehen hat zudem den Vorteil, dass ein Schadprogramm, das sich trotz aller Vorsicht auf einem Praxisrechner befindet, keinen direkten Zugang ins Internet bekommt, z.B. könnte ein Crypto-Miner oder ein Bot dann nichts ausrichten; und auch ein Nachladen eines Schadprogramms aus dem Internet ist dann kaum möglich. Selbst wenn sich der internet-Rechner selbst ein Schadprogramm einfängt, könnte dieses nicht leicht auf den Praxisrechnern aktiv werden, da er ja keinerlei Zugriff auf die Praxisrechner hat. Auch ein Abfließen von Patientendaten ist kaum möglich, wenn allen Praxisrechnern der Internetzugriff in de Fritzbox gesperrt ist.

Zusätzlicher Bonus durch Updates über update@internet: das langwierige Herunterladen/Synchronisieren der apraxos-Upadte-Dateien kann während des ungestörten Praxisbetriebs laufen, und man kann schnell mal ein Probe-Update des Test-apraxos' auf update@internet machen, bevor man die DVD-Dateien auf den Server holt.

KATEGORIEN DER DANN VORHANDENEN RECHNER

Als Praxisrechner werden hier alle Rechner bezeichnet, auf denen mit apraxos gearbeitet wird, also der apraxos-Server und die apraxos-Clients, welche quasi den "inneren Ring" bilden.

Dazu kommen als "äußerer Ring": der internet-Rechner, der KIM-Rechner und bei Bedarf ein Hylafax-Server-Rechner, auf welche die Praxisrechner zugreifen können, die aber selbst keinen Zugriff auf die Praxisrechner haben.

EINRICHTEN DER PRAXISRECHNER FÜR AUTOMATISCHE SYSTEMAKTUALISIERUNGEN

Falls noch nicht vorhanden, als root:

apt-get install unattended-upgrades

ZEITPUNKT: Normalerweise ist nach Aktivierung des automatischen Updates und Upgrades in der Datei:

/etc/systemd/system/timers.target.wants/apt-daily.timer

festgelegt, wann der automatische UPDATEVORGANG ausgeführt wird. Wenn sie so aussieht:

 [Unit]
Description=Daily apt download activities
 [Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=60m
Persistent=true
 [Install]
WantedBy=timers.target

bedeutet das: jeden Tag um 6°° und um 18°° versucht der jeweilige Rechner die System-Update-Dateien innerhalb der nächsten Stunde herunterzuladen. Wird der Rechner erst nach 6°°Uhr eingeschaltet, wird es dann nachgeholt. Möchte man diese Datei ändern geht das als root mit:

systemctl edit apt-daily.timer

DAS UPGRADE selbst, also das Ersetzen der Systemdateien, wird gesteuert durch die Datei "/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer".

Wenn darin steht:

 [Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer
 [Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=60m
Persistent=true
 [Install]
WantedBy=timers.target

wird innerhalb der Stunde nach 6°° und 18°° upgegradet. (Die zufällige Auswahl eines Zeitpunktes innerhalb dieser Stunde soll eine Überlastung des Spiegel-Servers durch zu viele gleichzeitige Anfragen vermeiden). Möchte man diese Datei ändern, geht das als root mit:

systemctl edit apt-daily-upgrade.timer

INHALT DER UNATTENDED-UPGRADES:

Mit dem Befehl als root:

nano /etc/apt/apt.conf.d/50unattended-upgrades

kann man die Download-Verzeichnisse für die automatischen Updates ändern. Am besten sollte dieser Abschnitt für Debian-bullseye so aussehen:

Unattended-Upgrade::Origins-Pattern {
       // Codename based matching:
       // This will follow the migration of a release through different
       // archives (e.g. from testing to stable and later oldstable).
       // Software will be the latest available for the named release,
       // but the Debian release itself will not be automatically upgraded.
   //  "origin=Debian,codename=${distro_codename}-updates";
   //  "origin=Debian,codename=${distro_codename}-proposed-updates";
       "origin=Debian,codename=${distro_codename},label=Debian";
       "origin=Debian,codename=${distro_codename},label=Debian-Security";
       "origin=Debian,codename=${distro_codename}-security,label=Debian-Security";

Testen kann man es als root mit:

unattended-upgrades -d

Eigenen Spiegelserver einrichten

Benutzt man eine externe Festplatte an einem Minirechner oder einem Raspberry, sollte man sie auf jeden Fall zunächst fest in das Dateisystem einbinden, indem man ihre uuid mit einem Namen (z.B."usbplatte" und mit dem Attribut "nofail") in die fstab des Rechners "internet" einträgt, bevor man das Herunterladen startet, damit nicht zwei verschiedene Verzeichnisse entstehen. Achtung: hat man nach Abziehen und Wiederanstecken der externen Festplatte den Rechner "internet" nicht neu gestartet, landen die mirror-Dateien in einem ganz anderen, neuen Verzeichnis!

Ein Beispiel findet man auf:

https://derlinuxwikinger.de/lokaler-raspberry-spiegelserver/

Anpassung der Datei apt-mirror für debian-security Pakete:

die Datei /usr/bin/apt-mirror ist fehlerhaft! Abhilfe: in Zeile 673 bis 676 einfügen:

if ( $filename =~ m{^$component/i18n/Translation-[^./]*\.(gz|bz2|xz)$} )
 {
     add_url_to_download( $dist_uri . $filename, $size );
 }

Zu dem Vorgehen gehört aber noch, dass man den apache2-server auf dem Rechner "internet" konfiguriert.

Zur Verbindung muss ein symlink von /var/www/apt-mirror nach mirrordeb@internet gelegt werden.

z.B. mit:

ln - s /media/usbplatte/apt-mirrordeb/ /var/www/apt-mirror

In die Datei /etc/apache2/apache2.conf auf dem Rechner "internet" trägt man dann ein:

   <Directory /media/usbplatte/apt-mirrordeb/>
    Options Indexes FollowSymLinks
    AllowOverride None
	Require all granted
</Directory>

Achtung: unter jedem Directory muss als letzte Zeile nochmal </Directory> eingefügt werden!

Die Clientrechner konfigurieren

Auf den Praxisrechnern ändert man die Paketquellen als root mit:

# cp /etc/apt/sources.list /etc/apt/sources.list_BACKUP
# nano /etc/apt/sources.list

In dieser Datei kommentiert man sämtliche Einträge aus und fügt folgende neue Zeilen ein:

deb [arch=armhf] http://192.168.***.***/apt-mirror/apt-mirrordeb/mirror/archive.raspbian.org/raspbian/ bullseye main contrib non-free rpi
deb http://192.168.***.***/apt-mirror/apt-mirrordeb/mirror/deb.debian.org/debian/ bullseye non-free contrib main
deb http://192.168.***.***/apt-mirror/apt-mirrordeb/mirror/security.debian.org/debian-security/ bullseye-security non-free contrib main

Ist der Download auf unserem Server abgeschlossen, kann man in der Kommandozeile auf den Praxisrechnern die Kontaktierung zum neuen Server überprüfen:

# apt update

Achtung: wenn auf einem raspberry in der Datei "etc/apt/sources.list.d/raspi.list" eine Paketquelle steht, muss sie evtl. auskommentiert werden!

Weitere Schritte wären eventuell:

  1. USB-Festplatte automatisch in den Ruhemodus versetzen:

    # apt install hd-idle
    # hd-idle -i 0 -a sdx -i 300

bei Bedarf in crontab -e:

@reboot /sbin/hd-idle -i 0 -a sdx -i 300

(bedeutet dass die Festplatte sda nach 6min Untätigkeit in Ruhemodus versetzt wird).

  1. Falls im BIOS möglich, automatischen Rechnerstart einstellen: z.B um 03°° Uhr.

  2. als cronjob einen automatisches Herunterfahren einstellen, z.B. um 21:30°° Uhr.

    # crontab -e:  30 21 * * * /sbin/shutdown -P now

Einrichtung zusätzlicher Funktionen des Spiegelserver-Rechners

DEN USER netz@internet FÜR DAS KV-PORTAL VORBEREITEN:

Eine feste Route ins KV-Safenet legen nach Anleitung in apraxos.pdf (S.54). Weil aber der firefox sehr schwergewichtig ist und die CPU des Rechners "internet" sehr schwach, würde der Aufruf von ssh -X netz@internet firefox zu einem quälend langsamen Seitenaufbau führen. Abhilfen:

  1. Deaktivierung der Hardwarebeschleunigung in den Einstellungen des firefox in netz@internet nach Enfernen des Hakens vor "Allgemein" > "Empfohlene Leistungseinstellungen verwenden"

  2. im firefox des Rechners "internet" about:config aufrufen und den Wert von "gfx.xrender.enabled" auf false setzen.

  3. Aufruf des firefox vom apraxos-Client mit Komprimierung:

    ssh -YC4 netz@internet firefox

Apraxos für den BEFUNDABRUF über den user labor@internet vorbereiten:

Auf dem apraxos-Server eine Datei erstellen mit Namen "befundloe" mit dem Inhalt:

rm befund/*

Dann im apraxos-Verzeichnis die lab.sh ändern (hier als Beispiel für das Programm iLab des Labors LADR) in:

# Konfiguration Labordateiübertragung Import
#!/bin/bash
cd
sftp -b befundloe labor@internet
ssh labor@internet /home/labor/ladr/LADRclient/ladrclient.sh -aktion abholen
ssh labor@internet '(cat befund/*.LDT) ' > a/lab.txt

Erklärung: Zuächst wird der Ordner "befund" auf dem labor@internet geleert, dann werden die abgeholten Daten vom Programm iLab zunächst in labor@internet:/befund abgelegt, diese Dateien zusammengefügt als lab.txt ins apraxos-Verzeichnis übertragen, wobei die alte lab.txt überschrieben wird.

Hinweise zur Datenübernahme ins Praxisnetz

Vom Rechner "internet" oder vom kim-Rechner kann man gefahrlos Daten auf die Praxisrechner kopieren auf die drei folgenden Arten:

  1. Vom Praxisrechner aus einen Text auf contain@internet öffnen, am Bildschirm den gewünschten Text markieren und in eine Datei auf dem eigenen Rechner oder in die geöffnete apraxos-Kartei einfügen.

  2. Ein Bildschirmfoto z.B. mit spectacle machen und dieses lokal speichern, dieses Bild dann auf den apraxos-Server kopieren.

  3. Den Text auf einem Praxisdrucker ausdrucken und ins Praxisnetz einscannen.

  4. Eine etwas weniger sichere Methode ist, die Datei auf contain@internet in eine andere Art, z.B. von PDF in eine openoffice-writer-Datei umzuwandeln (oder umgekehrt) und sie dann direkt vom contain@internet auf den eigenen Rechner zu kopieren: entweder durch einfaches Öffnen und dann Abspeichern im anderen Format in OpenOffice oder sicherer über das Programm "Dangerzone".

Hat man all diese Funktionen eingerichtet, braucht man fast nie wieder mit den apraxos-Rechnern ins Internet zu gehen.

Über eine Rückmeldung von Anwendern, die diese Anleitung nützlich finden, würde ich mich sehr freuen, und noch mehr über Verbesserungsvorschläge/gefundene Bugs oder Fehler!