2091052

Port-Forwarding: So sichern Sie Ihren Router ab

26.06.2015 | 12:03 Uhr |

Portweiterleitungen auf dem Router machen Linux zum Server im Internet, der von allen Netzteilnehmern erreichbar ist. Hier ist eine wirksame Absicherung Pflicht.

Mini-PCs und Platinencomputer wie der Raspberry Pi haben den Aufwand erheblich gesenkt, zu Hause einen kleinen Linux-Server zu betreiben. Das bedeutet aber nicht, dass es damit einfacher wird, einen Server sicher zu betreiben. Sie müssen einige fundamentale Sicherheitsvorkehrungen treffen. Denn obwohl der heimische Mini-Server nur an einer DSL-Leitung hängt und über eine dynamische Host-Adresse erreichbar ist, werden früher oder später ungebetene Besucher anklopfen. Dahinter stecken selten gezielte Angriffe, sondern in meistens automatisierte Scans, die stur einen Adressbereich abklappern, um nach Sicherheitslücken und Einfallstoren zu suchen.

Router: Nur benötigte Ports öffnen

Die erste Maßnahme betrifft den Router, der per Portweiterleitung den Zugang von außen erlaubt. Der Router dient zugleich als Firewall, die nur den Netzwerkverkehr auf die erlaubten Ports durchlassen soll. Einige Router bieten die Möglichkeit, einen „Exposed Host“ beziehungsweise eine DMZ (Demilitarisierte Zone) einzurichten, um alle Anfragen ungefiltert an die angegebene Server-Adresse im lokalen Netzwerk zu leiten.

Diese Lösung scheint bequem, da man sich dann über die einzelnen Ports angebotener Dienste keine Gedanken machen muss. Der Server wäre damit aber völlig exponiert. Leiten Sie nur jene Ports an einen lokalen Rechner weiter, die dieser auch wirklich bedienen soll: Für den Wartungszugang per SSH brauchen Sie nur die Weiterleitung von Port 22, HTTP verlangt Port 80 und HTTPS Port 443.

Heimzugriff ganz ohne Dyn DNS einrichten - so geht's

Zugangsdaten geheim halten

Wenn Sie unterwegs auf den heimischen Server zugreifen, dann achten Sie akribisch darauf, dass dafür nur verschlüsselte Protokolle zum Einsatz kommen. Denn es besteht immer ein erhöhtes Risiko, dass diese unverschlüsselten Daten in falsche Hände gelangen. Verwenden Sie deshalb immer verschlüsselnde Protokolle: HTTPS statt HTTP (auch mit selbst signierten Zertifikaten) und SSH statt FTP. Denn SSH dient nicht nur zur Anmeldung am Server zur Wartung (unter Windows mit dem SSH-Client Putty ), sondern auch zur sicheren Dateiübertragung. So kann Filezilla per SFTP Dateien von und zum Server übertragen.

Nur wirklich benötigte Ports weiterleiten: Der Router ist die Firewall für das lokale Netzwerk und sollte deshalb nur Ports öffnen, die der Server-Betrieb unbedingt benötigt. Verzichten Sie deshalb auf eine DMZ.
Vergrößern Nur wirklich benötigte Ports weiterleiten: Der Router ist die Firewall für das lokale Netzwerk und sollte deshalb nur Ports öffnen, die der Server-Betrieb unbedingt benötigt. Verzichten Sie deshalb auf eine DMZ.

Server: Updates zügig einspielen

Ein Linux-System kann sehr sicher sein, wenn es regelmäßig Updates bekommt. Ein System-Update führen Sie auf einem Linux wie Raspbian über das Kommando

sudo apt-get update && sudo apt-get upgrade  

aus. Auf dem kleinen Raspberry dauern umfangreiche Updates recht lange, so dass man diese immer wieder gerne aufschiebt. Updates können aber auch unbeaufsichtigt im Hintergrund eingespielt werden. Dazu installiert man mit dem Befehl

sudo apt-get install unattended-upgrades  

die automatischen Scripts zur Aktualisierung. Mit dem Texteditor Nano öffnen Sie über den folgenden Befehl:

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

die Konfigurationsdatei und entfernen das Kommentarzeichen „//“ vor dieser Zeile:

"o=Raspbian,a=stable";  

Nun benötigen Sie noch eine Konfigurationsdatei, die Sie mit

sudo nano /etc/apt/apt.conf.d/10periodic  

mit dem Editor Nano erstellen. Tragen Sie dort diese vier Zeilen ein:

APT::Periodic::Update-Package-Lists "1";  APT::Periodic::Download-Upgradea ble-Packages "1";  APT::Periodic::AutocleanInterval "3";  APT::Periodic::Unattended-Upgrade "1";  

Ab jetzt wird der Raspberry Pi jeden Tag um 6:25 Uhr das System unbeaufsichtigt aktualisieren. Testen können Sie dies mit diesem Befehl:

sudo unattended-upgrades --dryrun -d  

Eine komplette Distribution-Aktualisierung, die auch geänderte Abhängigkeiten unter Paketen beachtet, müssen Sie hin und wieder manuell mit sudo apt-get dist-upgrade ausführen.

Video: Fritzbox - So machen Sie ein Firmware-Update

Sicherheitsvorkehrung: SSH-Angriffe blocken

Automatisierte Angriffe versuchen über Wörterbuch-Attacken auf dem SSH-Port eine Verbindung mit dem Server. Bei halbwegs vernünftig gewählten Passwörtern sind diese Angriffe erfolglos. Bei Hunderten von gescheiterten Verbindungsversuchen täglich wird aber das Access-Logfile unübersichtlich. Dagegen ist ein Kraut gewachsen: fail2ban ist ein Hintergrundprozess (Daemon), der die Logdateien auf erfolglose Log-in-Versuche überprüft und die verantwortliche IP-Adresse blockt. Das Paket „fail2ban“ ist in Raspbian sowie unter Ubuntu und Debian mit

sudo apt-get install fail2ban  

schnell installiert und muss bei Debian und Ubuntu nicht mal mehr konfiguriert werden: In den Standardeinstellungen wird nach fünf aufeinanderfolgenden fehlgeschlagenen Verbindungsversuchen via SSH die IP-Adresse des Clients für zehn Minuten geblockt. Eine Protokolldatei gibt es unter „/var/log/fail2ban.log“.

HTTPS: Selbst signierte Zertifikate ausstellen

Ausnahme zulassen: Firefox warnt wie jeder Browser vor selbst signierten Zertifikaten. Die Ausnahmeregel müssen Sie daher einmal zulassen; Zertifikatsänderungen wird Firefox künftig beanstanden.
Vergrößern Ausnahme zulassen: Firefox warnt wie jeder Browser vor selbst signierten Zertifikaten. Die Ausnahmeregel müssen Sie daher einmal zulassen; Zertifikatsänderungen wird Firefox künftig beanstanden.

Wenn der heimische Server Webdienste anbietet, die nicht öffentlich sind, sondern eine Anmeldung erfordern, dann ist verschlüsseltes HTTPS Pflicht. Dazu benötigen Sie ein SSL-Zertifikat, das Sie in die Webserver-Konfiguration einbinden. Für den Eigenbedarf reicht ein selbst signiertes Zertifikat aus, das Sie sich selbst ausstellen können. Auf einem Raspberry Pi statten Sie den Webserver Apache (Version 2) mit folgenden Schritten mit einem selbst signierten Zertifikat aus und aktivieren HTTPS:

1. Erstellen Sie das Zertifikat mit

sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/certs/apache.key -out /etc/ssl/certs/apache.crt  

und füllen Sie das kurze angezeigte Formular mit beliebigen Angaben aus.

2. Der Webserver Apache liefert schon eine Standardkonfiguration für SSL mit, die Sie in der Datei „/etc/apache2/sites-available/default- ssl“ finden. Öffnen Sie die Datei mit dem Texteditor Nano. Tauschen Sie die Zeile

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem  

gegen die folgende Zeile

SSLCertificateFile /etc/ssl/certs/apache.key  

aus, ferner die Zeile

SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key  

gegen diese:

SSLCertificateFile /etc/ssl/certs/apache.key 

3. Die gerade bearbeitete und gespeicherte Datei „default-ssl“ aktivieren Sie als Site mit dem Kommando

sudo a2ensite default-ssl  

in der Apache-Konfiguration

4. Schalten Sie das SSL-Modul von Apache mit dem Kommando

sudo a2enmod ssl  

ein, und starten Sie anschließend den Webserver mit

sudo service apache2 force-reload  

neu. Falls Ihnen ein Konfigurationsfehler unterlaufen ist, wird Sie Apache mit einer Meldung darauf hinweisen. Die Warnung „Could not reliably determine the server‘s fully qualified domain name“ können Sie ignorieren.

5. Mit dem Browser gehen Sie jetzt mit „https:// [Server-Adresse]“ zum Webserver des Raspberry Pi. Das eigene Zertifikat ist nicht durch eine zentrale Zertifizierungsstelle (CA) signiert, und deshalb wird sich der Browser beschweren, dass die Verbindung nicht vertrauenswürdig ist. Die Verbindung wird aber trotzdem verschlüsselt sein. In Firefox müssen Sie eine Ausnahme erst noch festlegen. Dies hat des Vorteil, dass das einmal akzeptierte Zertifikat dem Browser nun bekannt ist und ein Man-inthe- Middle-Angriff durch gefälschte Zertifikate auffallen würde.

6. Falls noch nicht geschehen, leiten Sie den Port 443 über den Router zum Raspberry Pi weiter, um Anfragen über HTTPS von außen anzunehmen.

Video: Die unglaublichsten Sicherheitslücken im Internet
0 Kommentare zu diesem Artikel
2091052