Plesk 8 auf Plesk 9 updaten

Für ein Update von Plesk 8 auf Plesk 9 müssen Kunden der STRATO AG im Kündenmenü einen neuen Plesk Key (PLESK_9_FOR_VZ) beantragen (zu finden unter Serverkonfiguration -> Plesk). Nach der Anforderung kann man den Lizenzkey herunterladen.

Über die Konsole wird dann das Plesk Update mit /usr/local/psa/admin/bin/autoinstaller gestartet. Nach erfolgreicher Aktualisierung muss man daraufhin im Plesk System unter Server -> Lizenzverwaltung den neuen Key hochladen.

SpamAssassin installieren

Bei den Virtual Server-Angeboten von Strato ist für SuSE Linux inkl. Plesk kein SpamAssassin Lizenzkey mit dabei. Darum ist Handarbeit gefragt, denn man kann das Antispam-Programm selbst nachrüsten. Mit Hilfe von Huschis SpamAssassin-Tutorial aus dem serversupportforum und Unterstützung von Fabian Off aka „Fabs“ (Studienkumpel von Daniel) habe ich es als Linux-Neuling geschafft, den Spamtöter anzuheuern. Während der Installation sind einige Fehlermeldungen aufgetaucht, die im eigentlichen gar keine Fehler sind, sondern nur Hinweise. Also bitte nicht abschrecken lassen!

Die gesamte Installation wird über die Linux Konsole gesteuert. Die Begriffe, welche in die Konsole einzutippen sind, werde ich fett markieren. Die daraus resultierenden Hinweismeldungen werden kursiv dargestellt und meine eigenen Kommentare (bitte nicht mit eintippen) werde ich mit vorangestellten // auszeichnen.

Als kleiner Zusatz wird in diesem Tutorial auch noch das Antivirus-Programm ClamAV installiert, welches Emails auf Viren überprüft.

SpamAssassin installieren

// Das SpamAssasin-Paket über YaST installieren

yast -i spamassassin

// SpamAssassin starten. Bei einem erstmaligen Aufruf wird dadurch die Konfigurationsdatei user_prefs erstellt. Eine solche Datei kann mit dem SpamAssassin Configuration Generator an die eigenen Wünsche anpasst werden.

/etc/init.d/spamd start

warn: config: created user preferences file: /root/.spamassassin/user_prefs

// Virenscanner ClamAV über YaST installieren

yast -i clamav

// Init-Skript für ClamAV aktivieren (erzeugt einen Autostart von ClamAV)

insserv clamd

// Init-Skript für den Updater von ClamAV (freshclam) aktivieren.
// Im Normalfall sollte diese Datei schon existieren.

insserv freshclam

insserv: can not symlink(../vzquota, rc0.d/S11vzquota): File exists

// ClamAV starten

/etc/init.d/clamd start

// Updater von ClamAV starten

/etc/init.d/freshclam start

// Update von ClamAV ausführen
// Bitte nicht von den vielen Fehlermeldungen abschrecken lassen, solange „Downloading daily.cvd [100%]“ und „Database updated“ erscheinen, ist alles okay

freshclam -v

Current working dir is /var/lib/clamav
Max retries == 3
ClamAV update process started at Fri Jan 23 16:13:32 2009
Using IPv6 aware code
Querying current.cvd.clamav.net
TTL: 71
Software version from DNS: 0.94.2
main.cvd version from DNS: 49
main.cvd is up to date (version: 49, sigs: 437972, f-level: 35, builder: sven)
daily.cvd version from DNS: 8897
Retrieving http://database.clamav.net/daily-8684.cdiff
Trying to download http://database.clamav.net/daily-8684.cdiff (IP: 85.214.20.182)
WARNING: getfile: daily-8684.cdiff not found on remote server (IP: 85.214.20.182)
WARNING: getpatch: Can’t download daily-8684.cdiff from database.clamav.net
Retrieving http://database.clamav.net/daily-8684.cdiff
Trying to download http://database.clamav.net/daily-8684.cdiff (IP: 85.214.20.182)
WARNING: getfile: daily-8684.cdiff not found on remote server (IP: 85.214.20.182)
WARNING: getpatch: Can’t download daily-8684.cdiff from database.clamav.net
Retrieving http://database.clamav.net/daily-8684.cdiff
Trying to download http://database.clamav.net/daily-8684.cdiff (IP: 85.214.20.182)
WARNING: getfile: daily-8684.cdiff not found on remote server (IP: 85.214.20.182)
WARNING: getpatch: Can’t download daily-8684.cdiff from database.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Retrieving http://database.clamav.net/daily.cvd
Trying to download http://database.clamav.net/daily.cvd (IP: 85.214.20.182)
Downloading daily.cvd [100%]
daily.cvd updated (version: 8897, sigs: 61172, f-level: 38, builder: edwin)
Database updated (499144 signatures) from database.clamav.net (IP: 85.214.20.182)

// Nach einem erfolgreichen Update sollten ClamAV und Freshclam sich neu starten. Falls dies nicht passiert (kann mit ps -u vscan überprüft werden), müssen die beiden Prozesse manuell neu gestartet werden.

/etc/init.d/clamd start
/etc/init.d/freshclam start

// ripMIME (Extrahierer für Email-Dateianhänge) installieren

cd /usr/local/src
wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.5.tar.gz
tar zxvf ripmime-1.4.0.5.tar.gz
cd ripmime-1.4.0.5

// Die GNU Compiler Collection (GCC) installieren, um C Code kompilieren zu können

yast -i gcc

// ripMIME kompilieren

make
make install

// Symbolische Verknüpfung (engl. Symlink) für ripMIME anlegen

ln -s /usr/local/bin/ripmime /usr/bin/

// qSheff für die Verknüpfung von ClamAV und SpamAssassin installieren

cd /usr/local/src
wget http://www.huschi.net/download/qsheff-1.0-r4.tar.gz
tar -xzvf qsheff-1.0-r4.tar.gz
cd qsheff-1.0-r4
./configure
make

// Mailserver qmail anhalten

/etc/init.d/qmail stop

// Backup der Datei qmail-queue anlegen (Original wird später verändert)

cp -p /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.bak

// qSheff installieren

make install

// qSheff Konfiguration editieren

edit /usr/local/etc/qsheff/qsheff.conf

// In der Zeile von VIRUS_PROG den Pfad anpassen auf:

# VIRUS_PROG = „/usr/bin/clamdscan –-quiet“

// qSheff Schnittstelle installieren

/usr/local/etc/qsheff/install-wrapper.sh

// SpamAssassin in die qmail-queue einbinden:

rm -f /var/qmail/bin/qmail-queue
echo ‚#!/bin/sh‘ >/var/qmail/bin/qmail-queue
echo ‚/usr/bin/spamc | /var/qmail/bin/qmail-qsheff‘ >>/var/qmail/bin/qmail-queue
chmod 4755 /var/qmail/bin/qmail-queue

// Mailserver qmail wieder starten

/etc/init.d/qmail start

FEEEEEEEEEEEEEEEERTIG!

Mit dem Befehl ps aux | grep spamd lässt sich überprüfen, ob SpamAssassine läuft. Nach Ausführung des Befehls müsste mehr als 1 Eintrag erscheinen. Sollte SpamAssassin nicht laufen, hilft der Befehl /etc/init.d/spamd start.

Außerdem müssten in den Kopfdaten eingehender Spam-Emails jetzt folgende Zeilen zu finden sein:

Beispiel:

Received: (qmail 15739 invoked by uid 110); 11 Mar 2009 20:30:51 +0100
X-Mail-Scanner: Scanned by qSheff 1.0-r4 (http://www.enderunix.org/qsheff/)
Delivered-To: 5-user@email.de
Received: (qmail 15730 invoked from network); 11 Mar 2009 20:30:49 +0100
X-Mail-Scanner: Scanned by qSheff 1.0-r4 (http://www.enderunix.org/qsheff/)
X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on server
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.5 required=5.0 tests=DYN_RDNS_AND_INLINE_IMAGE,

553 sorry, that domain isn't in my list of allowed rcpthosts

Die Fehlermeldung „553 sorry, that domain isn’t in my list of allowed rcpthosts (#5.7.1)“ tritt häufig in Microsoft Outlook auf, wenn man gerade eine frisch eingerichtete Email-Adresse verwendet. Dabei ist der Fehler ganz banal.

Problem-Beseitigung:

Microsoft Outlook Express 6

Extras -> Konten -> Eigenschaften -> Server -> Postausgangsserver -> Häkchen bei „Server erfordert Authentifizierung“ -> Einstellungen -> Gleiche Einstellungen wie für den Posteingangsserver verwenden

Das Häkchen bei „Anmeldung durch gesicherte Kennwortauthentifizierung“ im Posteingangsserver muss abgewählt sein.

Diese Problemlösung hilft übrigens auch gegen Outlook Express Fehler 554:Recipient address rejected: Access denied„.

Einrichten eines AssaultCube Servers

ch spiele ab und zu AssaultCube, ein nur 40 MB großer kostenloser Multiplayer-Ego-Shooter. Der pefekte Mix aus Counter-Strike und Unreal Tournament. In AssaultCube gibt es nur etwa 50 öffentliche Server, weshalb mich die Idee überkam, einen eigenen Gameserver auf meinem Virtual Server aufzusetzen.

Als absoluter Linux-Anfänger ist das natürlich nicht so einfach aber da mein neustes Hobby „Fluchen und Schimpfen“ ist, habe ich es trotzdem getan. Im Prinzip musste ich gar nicht mal viel fluchen und schimpfen (eigentlich gar nicht), denn ich hatte tatkräftige Unterstützung von Pascal und einen guten Tipp von KanslozeClown (echter Name unbekannt).

Um anderen zu helfen, die Ähnliches vorhaben, habe ich die gesamte AssaultCube Server Installation protokolliert. Meine Anleitung bezieht sich auf einen Virtual Server mit Betriebssystem openSUSE 10.3 und integriertem Plesk 8.4. Alle Angaben sind selbstverständlich ohne Gewähr.

Einrichten eines dedizierten Linux Server für AssaultCube (v1.0.2):

  1. Zuerst braucht man die aktuelle Linux Version von AssaultCube. Die enthaltenen Dateien aus dem Archiv (*.tar.bz2) werden auf dem Server in einen neuen Ordner entpackt. Beispielpfad: /usr/games/ac/
  2. Damit die Verbindung auf den Server klappt, müssen die Standardports für AssaultCube (UDP 28763 und UDP 28764) freigeschaltet werden. UDP Port 28763 ermöglicht die Verbindung mit den Clients (Spielern) und UDP Port 28764 stellt die Verbindung mit dem Masterserver (Serverbrowser) her, welcher die Liste der Spielserver aktualisiert.
  3. Die Firewall wird von Plesk verwaltet, also müssen dort die entsprechenden Einträge gemacht werden. Das geht wie folgt:
    • Bei Plesk 8.4 anmelden und auf System -> Module -> Firewall -> Firewall-Konfiguration bearbeiten -> Angepasste Regel hinzufügen
    • Name der Regel: AssaultCube Server UDP Eingang
      Richtung abgleichen: Eingang
      Aktion: Erlauben
      Ports: UDP 28763 (hinzufügen), UDP Port 28764 (hinzufügen)
      Quellen: (beliebiger Host)
    • -> Angepasste Regel hinzufügen
    • Name der Regel: AssaultCube Server UDP Ausgang
      Richtung abgleichen: Ausgang
      Aktion: Erlauben
      Ports: UDP 28763 (hinzufügen), UDP Port 28764 (hinzufügen)
      Quellen: (beliebiger Host)
    • Es erscheint die Meldung: „Warnung: Die Änderungen, die Sie an der Firewall-Konfiguration vorgenommen haben, wurden noch nicht auf den Server angewandt. Um dies zu tun, klicken Sie auf Aktivieren.“ Daraufhin wählt man die beiden neuen Firewall-Regeln (AssaultCube Server UDP Eingang & AssaultCube Server UDP Ausgang) mit einem Häkchen aus und drückt im auf das gelbe Symbol mit der Lampe (Aktivieren).
    • Aktivierungsstatus:
      Das Firewall-Modul ist bereit, Ihre Konfiguration zu aktivieren. Um die Konfiguration auf Ihr System anzuwenden, wurde ein Shell Script generiert. Wenn Sie eine Vorschau dieses Skripts wünschen, klicken Sie auf den Button Vorschau unten.
    • Informationen: Die aktuelle Konfiguration wurde erfolgreich aktiviert.
    • Um sicher zu gehen, dass die neuen Einstellungen übernommen wurden, kann man den Server über Plesk neustarten.
  4. Damit der Server später administrierbar ist, kann man ihm gleich das Serverpasswort über die Konfigurationsdatei serverpwd.cfg (zu finden unter /usr/games/ac/config/) mitteilen. Die Passwörter werden einfach unter die letzte Zeile der Datei geschrieben. Die Passwörter können zusätzlich noch mit einem Leerzeichen gefolgt von einer 0 (für ein vollwertiges Admin-Passwort) oder einer 1 (für das Verbinden bei vollem Server) versehen werden.

    Beispiel:

    // list of additional server admin passwords
    // WARNING: You can NOT use CubeScript in here!!
    // one password per line

    // vollwertiges Admin-Passwort
    abc123
    // …genau das gleiche wie oben:
    abc123 0
    // mit ‚abc‘ kann man sich selbst bei vollem Server verbinden
    abc 1

  5. Man könnte jetzt schon versuchen den Server als root-Benutzer über die SSH-Kommandozeile (mit PuTTY) zu starten. Allerdings könnte es dann passieren, dass der Server sich beim Schließen der Kommandozeile (PuTTY) ebenfalls schließt. Um das zu verhindern, muss auf dem Linux Server noch der Fenstermanager GNU Screen installiert werden. Dabei behilflich ist YaST (Yet another Setup Tool).
    • Man tippt als angemeldeter root in die Kommandozeile „yast“ ein und es erscheint ein blaues Kontrollzentrum.
    • In YaST navigiert man (mit TAB und Pfeiltasten) auf Software -> Software installieren oder löschen
    • Nach der anschließenden Initialisierung sucht man nach dem Suchbegriffscreen“ und findet hoffentlich screen – A program to allow multiple screens on a VT100/ANSI Terminal mit Version 4.0.2 (oder höher). Danach lässt man screen installieren.
  6. Nach der Installation verlässt man YaST und gibt in die Kommandozeile (Kurzform: shell) den Befehl „screen“ ein. Durch einen Hinweis auf die Lizenz weiß man, dass screen gestartet ist. Nun gibt man „irssi“ ein und es erscheint wieder eine blanke Konsole, undzwar der sog. screen.
  7. In diesem screen führt man nun den Startbefehl für den Server aus. Das geschieht mit folgenden Eingaben:
    • cd /usr/games/ac/
    • /bin_unix/linux_server -c12 -n“Servername“ -o“Willkommens-Text“ -Xconfig/serverpwd.cfg

  8. Für die Datei linux_server gibt es noch weitere Parameter. Diese sind in der AssaultCube Dokumentation unter dem Stichpunkt Server switches beschrieben.
  9. Wenn alles geklappt hat, erscheint folgende Meldung:

    masterserver reply:
    Registration successful. Due to caching it might take a few minutes to see the your server in the serverlist

    Die Meldung bestätigt, dass sich der Server mit dem Masterserver (über UDP Port 27864) verbinden konnte.

  10. Falls der Fehler -bash: bin_unix/linux_server: Keine Berechtigung aufritt, müssen erst die CHMOD-Rechte für die Datei linux_server auf 0744 gesetzt werden (geht ganz einfach mit WinSCP).
  11. Ist alles okay, dann verlässt (engl. detach) man screen mit der Tastenkombination Strg + A gefolgt von Strg + D (in der Konsole) oder dem Befehl „^a d„. Das kann übrigens auch getan werden, wenn die Rückmeldung AssaultCube fatal error: could not create server info socket kommt. Weitere Hilfen zur Benutzung von Screen befinden sich übrigens im Rockfloat Howto.
  12. Mit dem Befehl „ps -ax“ kann man jetzt überprüfen, ob der Server läuft. Es müssten u.A. folgende Einträge erscheinen:
    SCREEN
    ./linux_server […]
  13. Nun kann die Konsole beruhigt beendet werden (Befehl: exit).
  14. Im Spiel AssaultCube ist es jetzt möglich auf den Server zu gelangen. Entweder über die Serverliste oder mit dem Chatbefehl /connect IP Port oder (falls eine Domain auf dem Virtualserver eingerichtet ist) mit /connect domain.tld Port. Die Portangabe ist optional, da bei der Einrichtung die Standardports (27863 und 27864) verwendet wurden.
  15. Möchte man den Server administrieren, hilft folgender Chatbefehl: /setadmin 1 adminpasswort

Ein wichtiges Kritierium beim Hosten eines Servers ist der Trafficverbrauch. Für AssaultCube ist der Trafficverbrauch wie folgt angegeben:

For n players, the average incoming bandwidth will be n * 750 Bytes/second.
For n players, the average outgoing bandwidth will be (n – 1) * n * 750 Bytes/second.

Bei 10 Spielern hat der Server also einen durchschnittlichen Download von 7500 Bytes/Sekunde und einen Upload von ungefähr 67.500 Bytes/Sekunde. Das macht einen Traffic von insgesamt 75.000 Bytes/Sekunde. Das wiederum sind 4.500.000 Bytes/Minute, was 4.29153 MByte/Minute entspricht. Es entsteht also bei 10 gleichzeitigen Spielern ein Traffic von 257.4918 MB/Stunde.

Die Log-Infos des Servers werden in der Datei messages unter /var/logs/ gespeichert.

Weitere hilfreiche Dokumente zum Einrichten eines AssaultCube Servers sind:

http://assault.cubers.net/docs/v1.0/server.html
http://assault.cubers.net/docs/v1.0/commandline.html
http://assault.cubers.net/wiki/Server_guide
http://assault.cubers.net/wiki/Server_requirements
http://assault.cubers.net/wiki/Server_setup
http://assault.cubers.net/wiki/Server_security
http://assault.cubers.net/wiki/Server_hints_1.0.2

Webseitenverzeichnis herausfinden

Um einen FTP-Account für ein Unterverzeichnis der gewünschten Webseite zu machen, muss man erstmal herausfinden, wo genau sich der Stammordner der Seite befindet. Das geht relativ einfach, wenn man in den index-Ordner (für gewöhnlich httpdocs) der gewünschten Domain eine Datei namens phpinfo.php anlegt, die folgenden Code beinhaltet:

<?php
phpinfo();
?>

Danach ruft man diese Datei auf: http://www.domain.tld/phpinfo.php und erhält Auskunft über sämtliche PHP relevanten Infos.

Darunter auch:
DOCUMENT_ROOT /srv/www/vhosts/domain.tld/httpdocs sowie
SCRIPT_FILENAME /srv/www/vhosts/domain.tld/httpdocs/phpinfo.php

Schon weiß man, dass die Domain „domain.tld“ im Ordner /srv/www/vhosts/domain.tld/ beheimatet ist.