Firewall

Für Fortgeschrittene geeignet
 

Voraussetzungen

Dauer

ca. 45 Min.

Es gibt viele Arten von Firewalls, sogar „Firewalls“ für Joomla! gibt es.

Da wir hier nicht weiter auf die verschiedenen Arten von Firewalls eingehen wollen, können wir nur auf http://de.wikipedia.org/wiki/Firewall verweisen. Dort sind die verschiedenen Arten gut beschrieben.

Generell kann man sagen wer seinen Server / PC ohne Firewall und Virenschutz mit dem Internet verbindet handelt grob fahrlässig.

Daher muss auch der Webmaster, der eine Joomla!-Seite betreut, eine Firewall am besten VOR dem eigentlichen PC installieren (Stichwort: Hardwarefirewall). Aber auch „Security-Suiten“ sind hier hilfreich.

Es gibt eigentlich 2 Varianten von Firewalls: Einmal die Personal Firewall (auch Desktop Firewall) oder die externen Firewalls (auch Netzwerk- oder Hardwarefirewall genannt).

Softwarelösungen:

Welche Software ist die richtige? Leider muss das jeder für sich selbst entscheiden bzw. herausfinden. Da jeder unterschiedliche Ansprüche hat.
Ein Test der „Security-Suiten“ von Dezember 2010 ist hier zu finden. http://www.chip.de/artikel/Security-Suiten-Test_33262870.html

Hardwarelösungen:

Die Hardwarelösungen haben einige Vorteile, z.B.: „sitzen“ sie vor den PC / Server und fangen Angriffe ab, sie verbrauchen keine Ressourcen vom PC / Server; sind meist schlechter zu umgehen, uvm.

Auch hier kann man keine Aussage machen welche die richtige ist, es hängt von den Anforderungen ab. In einigen Fällen reicht der DSL-Router mit Firewall für 100 € und in manchen Fällen muss eine Enterprise-Lösung für mehrere Tausend Euro her.

Hersteller von Hardwarefirewalls: Astaro, Cisco, D-Link, Funkwerk, gateprotect, Juniper, Netgear, Sonicwall, Watchgaurd, ZyXEL, usw.

Firewall:

Da es vermehrt zum Ausspionieren der FTP-Passwörter durch Trojaner in der Vergangenheit kam, ist ein Virenschutz und Firewall unabkömmlich. Diese sollten auch immer aktuell gehalten werden!
Wir können nur jedem davon abraten mit dem Rechner direkt ins Internet zu gehen, ohne Schutz. Schalten Sie einen Router davor, in dem eine Firewall aktiviert ist. Dieses kann viel zur Sicherheit beitragen. Es gibt auch Router / Firewalls mit Anti-Viren und Anti-Spam-Schutz, hier streiten sich die Geister ob es sinnvoll ist. Warum? Einige sind der Ansicht, um so mehr auf einer Firewall zum Einsatz kommt, desto größer ist auch die Angriffsfläche als ohne diese Zusatzfunktionen. Andere meinen, dass diese Funktionen zur besseren Abwehr beitragen und das Netzwerk dahinter besser schützen. Hier muss jeder selbst entscheiden was er möchte.

Ein Lösungsansatz wäre eine reine Firewall zu nehmen und direkt dahinter eine Firewall mit weiteren Filterfunktionen, wie Anti-Viren- / SPAM-Lösungen usw. Auch hier raten einige dazu Geräte von unterschiedlichen Herstellern zu nutzen, um die Angriffsfläche zu minimieren.

Server-Firewall:

Die hauseigene Firewall des Servers sollte generell aktiviert sein. Dadurch wird der Zugriff auf dem Server eingeschränkt.

WICHTIG: Denken Sie daran sich nicht selbst auszusperren!

Es ist auch sinnvoll eine externe Hardwarefirewall vor den Server zu schalten. Dieses hat den Vorteil, dass Sie die Angreifer vor dem Server abwehren können. Aber wie sollte die Server- bzw. externe Firewall konfiguriert sein?

Dieses ist relativ einfach zu sagen, es sollte nur das erreichbar sein, was auch benötigt wird und dies unter Umständen mit Einschränkungen in der Herkunft.

Externe Firewall:

Es gibt sowohl kommerziell, als auch OpenSource Lösungen für diesen Einsatz. Was für den einzelnen die richtige Lösung ist, muss individuell beurteilt werden. Eine externe Firewall hat einige Vorteile, aber auch Nachteile.

Nachteil ist, dass sie meist im Rack beim Server verbaut werden müssen, was einige Provider nicht zulassen. Dieses ist oft erst möglich wenn Sie eine Housing bzw. Colocation (http://de.wikipedia.org/wiki/Serverhousing) gemietet haben. 

Fangen wir mit den wichtigsten Diensten an, die geschützt werden können / sollten:

SSH (Port 22):
Dieser Port sollte, wie im Beitrag SSH [Link] geändert werden z.B. auf Port 63457. Damit verzögert man bei einem Portscan, dass dieser schnell gefunden wird. Bietet aber wenig Schutz, da man immer noch feststellen kann, was auf dem Port für ein Dienst läuft. Hierdurch werden aber dennoch ein Großteil der automatisierten Angriffe ins Leere laufen.

Da bei einen vServer oder dedizierten Server nur wenige Personen Zugriff auf diesen Dienst haben, ist es sehr sinnvoll den Zugang zu diesem Dienst nur von bestimmen IP-Adressen zu erlauben. So kann es größtenteils verhindert werden, dass ein Angreifer hier Zugriff erlangt.

HTTP(S) (Port 80 und 443):

HTTP(S)-Zugriff beschränken oder blockieren? Das hängt von gewissen Faktoren ab, z.B. in einem Intranet, in dem man weiß, dass Benutzer X und Y immer aus dem selben IP-Bereich zugreifen, kann man hier eine Sperre für alle übrigen Adressen einrichten. (Also: Den gesamten Zugriff verweigern und nur von diesem bestimmten Bereich eine Ausnahme definieren!).

Plesk (Port 8443):

Uns ist nicht bekannt, dass man den Port von Plesk ohne sehr großen Aufwand ändern kann, weil diese Angabe tief im System verankert ist. Das bedeutet, dass der Port 8443 erst mal so bleiben muss.
Da bei Plesk immer der Benutzer „admin“ existiert wüsste ein Angreifer schon mal einiges über das System. Aber wie kann man jetzt Plesk sicherer machen? Auch hier kann man z.B. den Zugang nur von bestimmten IP-Adressen erlauben und ein starkes Passwort wählen [Link Passwort] Wobei hier Plesk bei der Passwortwahl Einschränkungen macht (Stand: Version 9.5)

 MySQL (Port 3306)

Bei vielen Providern ist der Port 3306 von außen erreichbar. Die meisten CMS-Systeme werden unter „localhost“ installiert bzw. auf einem internen Datenbankserver. Hier kann man einstellen, dass nicht von externen Quellen auf die Datenbank zugegriffen werden darf. Wenn es benötigt wird, sollte man nur explizit einen Zugang gewähren.

Webmin (Port 10000)

Wer Webmin auf dem Server installiert hat, kann hier in der Konfiguration den Port ändern und auch den Zugriff wieder einschränken. Zusätzlich kann festgelegt werden, dass nur der Zugriff über HTTPS erlaubt ist.

FTP (Port 20-21)

Den Port kann man hier auch ändern, aber dies kann zu einigen Fehlern führen. Es ist ebenfalls möglich den Zugriff nur von bestimmten IP-Adressen zu erlauben. Denken Sie hier auch wieder an „sichere“ Benutzernamen und Passwörter!

Nun sollten die Server schon sehr eingeschrängt sein, aber es gibt noch einige Möglichkeiten wie der Server weiter eingeschränkt werden kann zum Beispiel durch Tools wie Fail2Ban oder DenyHosts dieses sind sehr nützliche Werkzeuge um Angriffe abzuwehren.

Zum Beispiel überwacht Fail2Ban die Loginversuche über SSH (Auch FTP, HTTP-Auth., usw.) und sollte z.B. nach 3 Versuchen der Login erneut fehlgeschlagen sein, wird automatisch eine Regel in den IP-Tables / Netfilter (Firewall bei Linux) gesetzt, durch den der potenzielle Angreifer für eine bestimmte Zeit ausgesperrt wird.

Auch könnte man eine VPN-Verbindung zum Server aufbauen und dann die einzelnen Dienste ansteuern. Dieses bedarf aber einiger Grundkenntnisse von VPN- und Firewall-Einstellungen.

Tipp: Halten Sie die eingesetzten Dienste immer aktuell. Hierzu kann man einen Cron Job erstellen, der z.B. einmal am Tag nach Updates sucht und den Administrator via E-Mail informiert.


Weiterführende / Verwandte Artikel