Browsergame-Hosting Teil 3: Nützliche Dienste und Utilities
Browsergame-Betreiber haben es schwer. Es ist noch lange nicht damit getan, ein gutes Spiel zu programmieren. Neben der eigentlichen Entwicklungsarbeit muß das Spiel auch immer irgendwie zum Spieler gelangen. Die kostengünstigste und wohl auch beliebteste Variante der Bereitstellung ist hier wohl ein eigener Server. Aber Achtung: Die Anschaffung eines eigenen Servers will wohl überlegt sein. Im dritten und letzte Teil dieser Artikelserie stellen wir eine Reihe nützlicher Tools und Programme vor, die euch bei der Administration eures Server gute Dienste leisten werden.
Backups
Man sollte darauf achten regelmäßig Backups der auf dem Server gespeicherten Daten zu machen. Welche Art von Software man dafür verwendet spielt meist nur eine geringe Rolle. Für kleinere Aufträge bietet sich ein rsync-basiertes Tool an, während für größere Jobs eine komplette Backuplösung wie zum Beispiel bacula sinnvoll ist. Je nachdem wohin man die Daten sichert sollte man sich auch Gedanken über eine Verschlüsselung der Daten machen. Bietet zum Beispiel der Hoster Backupspace via FTP an, so werden die Daten einerseits im Klartext übertragen, sodass sie durch man-in-the-middle-Angriffe abgehört werden können und andererseits gibt es keine Garantie, dass auf dem Backupserver niemand auf die gespeicherten Daten zugreift. Außerdem sollte man regelmäßig überprüfen ob die erstellten Backups fehlerfrei sind. Denn treten beim erstellen der Backups oder der Lagerung Fehler auf, so kann dies im schlimmsten Fall dazu führen, dass das gesamte Backup unbrauchbar ist.
subversion
Subversion oder auch svn genannt, ist ein sogenanntes Versionsverwaltungssystem und der Nachfolger des populären CVS. Es dient dazu verschiedene Softwareversionen von Projekten strukturiert verwalten zu können. Gerade für die Entwicklung in Teams, wie es auch bei vielen Browsergames der Fall ist, stellt svn ein unentbehrliches Hilfsmittel dar. Für den Webserver Apache gibt es ein svn-Modul über das man auf die verschiedenen Repositories zugreifen kann. Ohne Apache bietet sich ein Zugriff via ssh an. Dabei gibt es serverseitig mehrere Möglichkeiten. Die einfachste ist den in svn integrierten svnserve zu nutzen.
Jabber
Je nach Belieben bietet es sich an einen Jabber-Server aufzusetzen. Geeignet dafür ist ejabberd. Dieser bietet eine sehr feinkörnige und dennoch nicht allzu komplizierte Konfiguration und kann dank vielfältig vorhandener Authentifizierungsmodule gegen die bestehende Datenbank mit den E-Mail-Adressen authentifizieren, sodass es möglich ist, zu jeder E-Mail-Adresse einen passenden Jabber-Account anzubieten.
Mandatory Access Control
Möchte man seinen Server noch mehr absichern gibt es die Möglichkeit des Mandatory Access Control. Dabei werden die Rechte von Nutzern und Prozessen sehr feinkörnig beschränkt, sodass bei richtiger Konfiguration selbst nach einem erfolgreichen Einbruch kaum eine Chance für einen Hacker besteht den Server zu übernehmen. Allerdings hat dieses Verfahren den großen Nachteil, dass die Konfiguration sehr aufwendig und trickreich ist und sich somit für die hobbymäßige Verwendung eines Rootservers in den meisten Fällen nicht eignet. Beispiele für die Implementierung von Mandatory Access Control sind SELinux oder AppArmor.
chkrootkit
chkrootkit ist ein Tool mit dem sich Trojaner und Rootkits aufspüren lassen. Somit empfiehlt es sich den eigenen Server von Zeit zu Zeit stichprobenartig mit chkrootkit zu überprüfen. Findet chkrootkit keine Schadsoftware, so bedeutet dies natürlich noch lange nicht, dass der Computer frei von Schadsoftware ist. Aber es ist auf jeden Fall besser als wenn man gar nicht erst nach Schadsoftware gesucht hätte.
aide
aide steht für Advanced Intrusion Detection Environment und versucht die Integrität von Dateien zu garantieren. Dazu erstellt man einmalig eine Datenbank die zu jeder (wichtigen) Datei einen Hash enthält. Somit kann später durch erneutes bilden und anschließendes vergleichen der Hashs überprüft werden ob die Datei verändert wurde. Somit lassen sich bösartige Veränderungen an bestimmten Systemdateien feststellen, wobei man ein wenig Fingerspitzengefühl benötigt um zu wissen welche Änderungen gewollt und welche ungewollt sind.
portsentry
Oftmals geht gezielten Hacks ein Portscan voraus, bei dem überprüft wird welche Ports des Servers offen sind und welche Programme dahinter hören. Um Portscans zu erkennen und den Angreifer gegebenenfalls gleich zu blockieren bietet sich das Tool portsentry an. Es erkennt Portscans und kann den Administrator benachrichtigen oder den Angreifer ab einer bestimmten Anzahl von Versuchen sperren. Allerdings sollte man bei der Einrichtung einer Sperrung darauf achten, dass man sich selbst nicht aus seinem Server ausschließt. Denn wenn portsentry einen Rechner sperrt, dann kommt dieser Rechner vorerst nicht mehr direkt an den Server heran. Hier hilft nur der Login von einer anderen IP aus oder ein Start des Rescue-Systems des Servers.
molly-guard
molly-guard ist ein kleines aber feines Tool welches verhindert, dass man aus Versehen den Server herunterfährt, weil man sich beispielsweise im Konsolenfenster geirrt hat. So führt jeder Befehl der einen Shutdown zur Folge hätte dazu, dass molly-guard den Namen des Rechners erfragt der heruntergefahren werden soll und ihn erst nach korrekter Eingabe des Namens herunterfährt.
apticron
Um seinen Server softwaremäßig immer auf dem neusten Stand zu halten und nicht zu vergessen wichtige Sicherheitsupdates einzuspielen, bietet es sich an auf dem Server ein Tool zu installieren, welches über anstehende Softwareupdates informiert. Unter debianbasierten Distributionen eignet sich hierfür apticron, welches regelmäßig überprüft ob Updates vorhanden sind und wenn ja eine E-Mail an eine definierte E-Mail-Adresse schickt.
Fazit
Wenn man als Administrator eines eigenen Rootservers grundlegende Linuxkenntnisse besitzt und einige Grundregeln beachtet ist es ohne Probleme möglich einen Rootserver für ein Browsergame einzurichten und zu warten. Für die meisten Fragestellungen finden sich gute Tutorials im Internet und wenn nicht, dann helfen zahllose Foren und IRC-Channels weiter. Vielleicht entschließt sich der eine oder andere Entwickler, bestärkt durch diesen Artikel, ja dazu endlich sein Browsergame zu veröffentlichen. Insofern werden wir hoffentlich in näherer Zukunft viele neue und interessante Browsergames sehen.