Braucht ein Rootserver ein Firewall?
Root-Server sind Computer welche in einem Rechenzentrum stehen. Den Rechner hat man für sich alleine. Im Gegensatz dazu stehen Shared-Server. Bei diesen wird auf einem einzigen Computer bis zu hunderten wenn nicht sogar tausenden von Homepages für unterschiedlichste Kunden geteilt. Der Vorteil liegt auf der Hand. Man hat den Rechner, d.h. die ganze Rechenleistung für sich alleine. Shared Server sind je nach momentaner Sitation sehr langsam, dies wenn z.B. andere Kunden auf dem gleichen Server rechenintensive Dinge ausführen.
Aber hier wollen wir nun den Root-Server betrachen. Diesen hat man, wie gesagt, ganz für sich alleine und kann daher auch nach gutdünken walten und schalten.
Aus Sicherheitsgründen startet man auf dem Root-Server nur die benötigten Dienste. Also z.B. Apache Webserver sowie das Postfix-Mailprogramm. Aber braucht es in diesem Szenario eine Firewall? Einige Leute sagen “Nein, denn man hat ja nur einen einzigen Server, kein Netzwerk. Zudem sind auf dem Server ja nur genau die Port geöffnet welche man braucht. Also z.B. http und smtp”.
Ich bin da anderer Meinung: Es braucht eine Firewall!
Obige Argumentation der “Gegner” einer Firewall stimme ich zu. Aber es geht weiter. Mit einer Firewall kann man TCP/IP Adressen sperren. D.h. man kann ganze Länder sperren.
Beispiel: Man hat eine Webseite über eine lokale Dienstleistung, z.B. ein Malermeister, ein Sanitärinstallateur, ein Autohändler. Wie gross ist die Wahrscheinlichkeit, dass jemand aus einem Land in einer Entfernung grösser als 1000km etwas von mir bestellt? Ich denke fast gleich Null?
Aber die Wahrscheinlichkeit, dass aus einem dieser Ländern Hacker zu Besuch kommen, Bots die Webseite absaugen, Bots den Blog und das Forum vollspammen ist ziemlich gross.
Nicht selten sehe ich Bots im Sekunden Takt 20 Einträge in mein WordPress Blog zu schreiben. Natürlich habe ich Karma Spam im Einsatz. Dies blockiert mir eigentlich 99.9% aller Spam Einträge. Warum dann eine Firewall?
Schauen wir genauer was passiert wenn ein Bot kommt um einen Spam-Eintrag zu erstellen:
1.) Die Firewall schaut ob die ankommende Anfrage erlaubt ist
2.) Wenn ja wird sie dem Apache Web-Server weiter gereicht
3.) Dieser erzeugt einen neuen Child-Prozess. Das braucht CPU und RAM. Andere Prozesse werden gebremst
4.) Der neue Eintrag muss dann überprüft werden ob es Spam ist oder nicht. Das braucht CPU und Abfragen aus der CPU.
5.) Ob nun Spam oder nicht. Das Resultat wird in die Datenbank eingetragen und geloggt. Das erzeugt “teure” SQL Inserts und Updates. Das bremst das System aus.
Kein Problem wenn es ein wirklicher Beitrag war. Aber wenn ein Spam-Welle auftritt so sind das 20..30 Anfragen von Bot-Netzen pro Sekunden. D.h. obige Abfolge wird dann 20..30x pro Sekunde verlangt.
Das kann dann schnell in einem Speicher Engpass münden und der Server beginnt zu Swappen. Dann wird er für alle Benutzer extrem langsam.
Schaut mal ein wenig woher alle diese Bot-Anfragen kommen so sieht man, dass 95% von Ländern weiter als 1000km kommen. Würde man nun diese Länder mit der Firewall sperren so würde obiger Ablauf bereits bei Position 1 gespoppt werden. Das “teure” erzeugen neuer Prozesse sowie die SQL Abfragen und Inserts könnte man sich sparen.
Natürlich sollte man ein wenig selektiv sein welche Länder man sperrt und vor allem nicht USA sperren! Die meisten Suchmaschinen kommen aus USA.
Tags: firewall, root, root-server, rootserver, server