Easy-Wi – das einfache Webinterface

Web Panel Installation

Ist noch kein Webspace installiert, bitte das Kapitel Webpanel Root durcharbeiten. Wird der Installer verwendet, sind die Dateien bereits auf dem Webspace und man muss nichts mehr hochladen.

Ohne Installer muss man als erstes die Dateien hochladen. Hat man das komplette Archiv gedownloaded, muss man den Inhalt des Ordners "web" hochladen. Falls man noch keine Datenbank angelegt hat, ist es nun Zeit dafür. Am besten verwendet man einen extra User, der ausschließlich auf diese Datenbank eine Datenbank Zugriff hat.

Ist ein User samt Datenbank angelegt, ruft man nach dem Hochladen das Installskript im Browser auf. Es befindet sich im "install" Ordner. Man macht dies, in dem man folgendes, angepasst auf seinen Webspace, eingibt:

http://meinedomain.tld/install/install.php

Der erste Schritte ist nur ein Willkommensbildschirm, den man mit "Weiter beendet".

Nun kommt man zu der System Überprüfung. Existiert eine Fehlkonfiguration, oder ist ein benötigtes Modul nicht installiert, so wird es hier angezeigt.

Im nächsten Schritt wird man dazu aufgefordert seine SQL Daten, so wie eine Passphrase für die Verschlüsselung der Datenbank anzugeben. Es ist aus Sicherheitsgründen ratsam einen langen String zu verwenden. Sollte dieser Schlüssel verloren gehen, sind weite Teile der Datenbank verloren, da eine 128bit AES Verschlüsselung verwendet wird. Der Zugang zum Webteil von easy-wi ist davon aber nicht betroffen, da die dazugehörigen Passwörter als Hash mit Salt gespeichert werden. Wurde der "easy-wi_installer.sh" verwendet, sollten die Zugangsdaten am ende des Prozesses angezeigt worden sein.

Jetzt wird der MySQL Zugang validiert und im darauf folgenden Schritt die Tabellen Struktur angelegt. Zur etwaigen Fehleranalyse werden die ausgeführten SQL Befehle angezeigt. Im Anschluss wird die Tabellen Struktur abermals validiert.

Nachdem die Tabellen Struktur erfolgreich erstellt worden ist, kann man den initialen Admin Account anlegen.

Im Schritt "Webseiten Daten" wird man dann aufgefordert die initiale Konfiguration vorzunehmen. Diese kann jederzeit nach der Installation wieder umgestellt werden.

Das erste Feld ist die URL, unter der Easy-WI erreichbar sein soll. Nur im Falle von einem fehlgeschlagenen Auto Detect überschreiben.

Die Zeitzone sollte auch automatisch voreingestellt sein. Nur umstellen, wenn diese nicht zutreffend ist.

Der Homepage Titel wird oben im Browser angezeigt und kann für das Branding der Installation genutzt werden.

Die Standartsprache wird beim Login und wenn der User eine im Panel nicht verfügbare Sprache verwendet. Ist der User erst einmal eingeloggt, kann er selbstverständlich eine andere Sprache wählen.

Die Email Adresse, die man hier angibt, wird vom Panel als Absender verwendet. Sie wird z.B. eingesetzt, wenn ein Backup erfolgreich erstellt wurde, oder die Installation eines Virtuellen Servers abgeschlossen ist.

Das Captcha kann zur Bot abwehr benutzt werden und sollte nur aktiviert werden, wenn man spürbare Brut Force Attacken hat.

Überschreitet ein User die erlaubte Fehlerzahl am Stück, wird die IP Adresse für 15 Minuten blockiert.

Der Servertag spielt nur für Game und Voice Server eine Rolle. Ist das Tag definiert und beim Server die Überwachung aktiviert, dass ein Tag verwendet werden muss, wird sowohl der Admin, als auch der User ge- bzw. ermahnt, dass ein Servertag im Namen zu verwenden ist.

Man kann bei Easy-WI benutzernamen automatisiert vorgeben. Ist die Funktion aktiviert, werden Zahlenfolgen an den definierten Namen beim Erstellen angehängt wie "user-123".

In den folgenden Schritten werden nach und nach alle notwendigen Datenbank Einträge vorgenommen.

Am Ende der Installation werden einem mögliche Cronjob Konfigurationen angezeigt. Hat man den "easy-wi_installer.sh" verwendet, sind die Cronjobs bereits eingerichtet und nachfolgende Schritte sind nicht mehr erforderlich.

Um alle Funktionen nutzen zu können, muss man noch die Cronjobs eintragen und Cron neu starten. Cronjobs trägt man in der Regel in die /etc/crontab ein. Bei Interfaces wie Plesk und Liveconfig muss man die Einstellungen direkt im Interface selber machen. Dabei lässt man den Teil mit dem PHP Usernamen aus. Ebenso wenig muss Cron danach neu gestartet werden.

nano /etc/crontab

Dort folgendes angepasst auf seine Installation eintragen:

0 */1 * * * easywi_web cd /home/easywi_web/htdocs && timeout 300 php ./reboot.php >/dev/null 2>&1
*/5 * * * * easywi_web cd /home/easywi_web/htdocs && timeout 290 php ./statuscheck.php >/dev/null 2>&1
*/1 * * * * easywi_web cd /home/easywi_web/htdocs && timeout 290 php ./startupdates.php >/dev/null 2>&1
*/5 * * * * easywi_web cd /home/easywi_web/htdocs && timeout 290 php ./jobs.php >/dev/null 2>&1
*/10 * * * * easywi_web cd /home/easywi_web/htdocs && timeout 290 php ./cloud.php >/dev/null 2>&1

"easywi_web" und das Verzeichnis sind auf die jeweilige Installation anzupassen. Falls die Cronjobs nicht laufen, kann dies viele Ursachen haben:

  • Falscher Pfad angegeben
  • Falscher User angegeben
  • Der Benutzer hat eine Shell konfiguriert, die nicht in der Datei "/etc/shells" gelistet ist.

Es kann zu Performance Problemen auf TS3 Seite beim Statuscheck kommen, wenn eine TS3 Instanz viele virtuelle beinhaltet. Aus diesem Grund kann ein Colldown gesetzt werden. Dieser lässt das Script N Nanosekunden zwischen den einzelnen Querys schlafen:

*/5 * * * * phpusername cd /var/www/deinedomain.tld/httpd/ && timeout 290 php ./statuscheck.php coolDown:2 >/dev/null 2>&1

Beim Statuscheck werden nur Server überprüft deren User und sie selber aktiviert vom Admin aktiviert wurden und der User nicht gestoppt hat. Wenn beim Statuscheck festgestellt wird, dass der Server offline ist, wird er automatisch neu gestartet.

Per Default werden mit der statuscheck.php Voice- und Gameserver abgefragt. Auf der Konsole kann man sie mit den Zusatzparametern 'gs' und 'vs' aufrufen. In diesem Fall werden dann entweder Voice- oder Gameserver überprüft. Eine solche Trennung macht dann Sinn, wenn man über sehr viele Server verfügt.

Nachdem man die beiden Einträge gemacht hat, speichert und schließt man Nano mit der Tastenkombination "strg+x" und dann "y". Im Anschluss startet man Cron neu:

/etc/init.d/cron restart

Im Browser sollte man nur Zugriff auf wenige PHP, JS, CSS und Grafik Dateien haben. Auf alle PHP Dateien, die nur includiert werden, braucht man z.B. keinen direkten Zugriff. Auf die config.php und keyphrasefile.php sollte der Zugriff aus dem Browser unter allem Umständen verhindert werden. Das Gleiche gilt für den Inhalt des "keys" Ordner. Es wird bereits eine .htaccess mit notwendigen Regeln beigelgt. Deren Funktion sollte aber validiert werden.

Den Zugriff kann man verhindern, indem man die Regeln in der .htaccess, oder direkt im Vhost erweitert. Wenn man die Wahl hat, dann trägt man sie direkt in den Vhost ein, da sie hier im Gegensatz zum .htaccess Eintrag nicht bei jedem Seitenaufruf geparst werden müssen.