Virtuellen Server mit Debian einrichten

Nachdem ich mich endlich durchgerungen hab, meinen virtuellen Server auf Debian umzustellen, will ich jetzt mal beschreiben, wie ich dabei vorgegangen bin. Bei der Installation habe ich eine ganze Menge HowTo’s zu Rate gezogen (man kann sich ja nicht alles merken 😉 ), aber irgendwie war das nervig, alles einzeln rauszusuchen. Deswegen schreibe ich das jetzt hier mal zusammen.

Ziel ist es, den Server mit Debian 4.0 (Etch) laufen zu lassen, die Administrationssoftware Plesk 8 nachzuinstallieren und am Ende in der Lage zu sein, den Server als Web- und Mailserver zu verwenden.

Debian kommt bei HostEurope auf VPS nur in einer Minimalinstallation daher. Was vorinstalliert ist, steht in den FAQs, ist aber wirklich sehr überschaubar. Wenn ich mich richtig erinnere, läuft außer SSH nichts nennenswertes.

Bevor wir anfangen, muss natürlich euer Server mit der Debian-Installation bereit stehen. Außerdem solltet ihr beim Support freundlich drum gebeten haben, dass man euch einen Plesk-Lizenzschlüssel auf dem Server ablegt. Bei mir wurde er ins Verzeichnis /root gelegt und hatte die Dateiendung „.key“; den Schlüssel übertragt ihr am besten auf euren lokalen Rechner (z.B. mit WinSCP), ihr braucht ihn später.

Alle Befehle solltest du als root (oder per sudo) ausführen, wenn nichts anderes dabei steht. Außerdem gehören die Befehle jeweils in eine Zeile (kein sein, dass beim Copy&Paste was kaputt geht).

Anpassen der Installationsquellen

Zuerst müssen wir die /etc/apt/sources.list erweitern, damit wir die Plesk-Pakete schön komfortabel über den Paketmanager laden können und nichts mehr umständlich selbst zusammenbasteln müssen:

echo -e "\n\n#Plesk Pakete von SWsoft:\n deb http://autoinstall.plesk.com/debian/PSA8 etch all" >> /etc/apt/sources.list

Ok, die Zeilen sind jetzt ans Dateiende angefügt. Ein

apt-get update

sorgt dafür, dass die Liste der verfügbaren Pakete erneuert wird.

Installation durchführen

So, und dann können wir auch schon loslegen. Wir installieren ein paar Tools, die man immer mal wieder braucht (sudo, memstat, usw.), Plesk an sich, einige Erweiterungen und ein paar Pakete für den SpamAssassin:

apt-get install sudo build-essential htop memstat ntp bc apache2 php5 mysql-client mysql-server mytop htop imagemagick php5-imagick xpdf gs catdoc htmldoc psa psa-autoinstaller psa-backup-manager psa-awstats-configurator psa-courier-imap psa-firewall psa-horde psa-imp psa-ingo psa-locale-de-de psa-mailman-configurator psa-mnemo psa-php5-configurator psa-proftpd psa-qmail psa-qmail-rblsmtpd psa-spamassassin psa-updates psa-watchdog libnet-xwhois-perl libmudflap0-dev psfontmgr xml-core libmail-spf-query-perl libnet-dns-perl libnet-ip-perl libgeo-ipfree-perl razor libnet-ident-perl dcc-client pyzor

Wenn eine Meldung kommt, dass einige Pakete nicht verifiziert werden können, bestätigen wir das einfach. Ich war zu faul, den entsprechenden Schlüssel zu hinterlegen und vertraue SWsoft in dem Punkt 😉

Mailman

Im Laufe der Installation kommt eine Meldung, dass MailMan eine Liste namens „site list“ nicht finden kann:

Keine Panik, ein einfaches

newlist mailman

löst dieses Problem für uns. Ausgaben, dass wir irgendwas in der aliases-Datei ändern sollen, ignorieren wir. Das übernimmt Plesk für uns. Wieso das Installations-Skript diese eine Liste nicht gerade selbst anlegt, ist für mich schleierhaft … aber irgend jemand wird sich vermutlich irgendwas dabei gedacht haben 😉

Fertig.

Das war’s schon. Plesk läuft bereits. Probehalber kannst du dich mal einloggen: https://<IP>:8443, der User heißt „admin“, das Passwort lautet „setup“ (muss beim ersten Login geändert werden). Nun kannst du deine Daten eingeben und den Lizenzschlüssel in Plesk einspielen (einfach .key-Datei über Plesk hochladen, zu finden unter Server > Lizenzverwaltung). Jetzt kannst du Plesk benutzen. Obwohl, ein paar Dinge sollten wir schon noch „fein tunen“ …

Hinweis: Wer nicht bei HostEurope ist, bekommt ggf. den Port 8443 nicht zu seinem Server durchgeroutet. In dem Falle bitte einfach mal den Support bemühen. Für alle gilt (wie immer) – Firewalls müssen den Port natürlich auch durch lassen 😉

Anzeige Traffic und Festplattennutzung reparieren

Wenn du mal eine Domain anlegst und etwas Inhalt hochlädst, dann wirst du feststellen, dass bei Plesk in der Domain-Übersicht keine Werte für die Festplattennutzung und den verbrauchten Traffic angezeigt werden (Anzeige ist jeweils 0.00 MB). Entsprechend wird natürlich auch das Quota-System nicht greifen. Da müssen wir kurz was reparieren:

mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -e“update misc set val=’byte‘ where param=’size_count_type’“

Jetzt ist die Datenbank repariert und im Prinzip würden wir jetzt Werte angezeigt bekommen. Allerdings läuft kein Job, der diese Werte automatisch aktualisiert (keine Ahnung warum, unter Plesk7 gab’s den noch standartmäßig). Aber das kriegen wir auch hin:

/usr/local/psa/admin/sbin/statistics >/dev/null 2>&1Watch Froning The Fittest Man In History (2015) Full Movie Online Streaming Online and Download

ist der Befehl, der Plesk die Statistiken aktualisieren lässt. Ich hab mir das als Cronjob angelegt, der alle 3 Stunden läuft. Wenn du nen paar Domains auf dem Server hast, dann wird das Skript nen Moment brauchen (bei mir ungefähr eine Minute bei 6 Domains) und recht viel Last produzieren. Also nicht zu häufig einplanen … 😉

Cronjobs kann man über Plesk unter Server > Crontab anlegen, User root auswählen. Oder über die Konsole, wenn man keinen Bock auf Klicken hat: crontab -e.

Diesen wertvollen Hinweis habe ich im ServerSupportForum gefunden – danke an dieser Stelle an den Autor alphalogic.

Hostnamen ändern

Der Standart-Hostname bei HostEurope ist etwas in der Form lvps-123-456-789-123.dedicated.hosteurope.de, was problematisch ist, da sich die IP des Servers daraus ablesen lässt. Viele Anbieter interpretieren das als dann als dynamische DailUp-Adresse, so dass Mails von einem solchen VPS abgewiesen werden. Z.B. mit GMX ist mir das aufgefallen (dort wurden meine Mails immer als Spam gekennzeichnet). Das ist natürlich unschön. Besonders wenn auch geschäftliche Domains auf dem Server laufen ist das eigentlich völlig inakzeptabel. Ich habe meinen Server daher „srv.sebastianleitner.de“ genannt. Dazu habe ich einen A-Record im DNS erzeugt, der auf die IP des Servers zeigt. Anschließend habe ich die Reverse Delegation im KIS bei HostEurope geändert (KIS > Administration > IP-Netze > Reverse Delegation). Und dann muss der neue Hostname noch an verschiedenen Stellen auf dem Server bekannt gemacht werden. Das hat HostEurope in den FAQs recht gut beschrieben:

Warum: https://kis.hosteurope.de/support/faq/index.php?cpid=11518
Wie: https://kis.hosteurope.de/support/faq/index.php?cpid=11517

Spamfilter

Dann will der SpamAssassin konfiguriert werden. Die nötigen Pakete haben wir oben schon mit installiert. Früher (unter SuSE 9.1 mit Plesk7) hatte ich einen 2.6er SpamAssassin, jetzt kommt ein 3.2er SA mit. Der arbeitet auf jeden Fall deutlich besser, auch die standartmäßig vorkonfigurierten RBLs arbeiten sehr gut.

Bitte diesmal nur einen Befehl pro Zeile:

pyzor discover #Pyzor-Server finden
cdcc „delete 127.0.0.1“ #kein lokaler DCC-Server
cdcc „IPv6 off“ #IPv6 nutzen wir auch nicht.
rm /etc/razor/razor-agent.conf #alte Config löschen
razor-admin -discover #Razor-Server finden
razor-admin -create #anonymen Account erstellen

Jetzt muss noch die /etc/spamassassin/local.cf angepasst werden. Meine sieht so aus:

rewrite_header Subject {SPAM!}
report_safe 1 #(Spam als Anhang)
required_score 4.9

report_contact admin@your-domain.de

#
# Black- und Whitelists
#
blacklist_from *@emailmarketing.com *@123.com
whitelist_from mailrobot@xing.com

#
# Header anpassen
#
add_header all Level _STARS(*)_
add_header spam Flag-Info found to be spam
add_header ham Flag-Info found to be no spam
add_header all Status Hits=_HITS_ (required=_REQD_)
add_header all Tests _TESTSSCORES(,)_

#
# Bayes konfigurieren
#
use_bayes 1
use_bayes_rules 1
bayes_path /root/.spamassassin/bayes
bayes_file_mode 0660
bayes_auto_learn 0
#bayes_auto_learn_threshold_nonspam 0.0
#bayes_auto_learn_threshold_spam 5.0
bayes_min_ham_num 200
bayes_min_spam_num 200
bayes_auto_expire 1
bayes_expiry_max_db_size 150000

#
# Razor2 konfigurieren
#
use_razor2 1
razor_timeout 5
razor_config /root/.razor/razor-agent.conf

#
# DCC konfigurieren
#
use_dcc 1
dcc_path /usr/bin/dccproc
#dcc_add_header 1

#
# RBLs und Netzwerktests
#
rbl_timeout 15
dns_available test
#skip_rbl_checks 0

#
# sonstige lokale Einstellungen
#
ok_locales en
allow_user_rules 0

So, um dem SpamAssassin nun noch zu sagen, dass er unsere Plugins auch benutzen soll, müssen wir noch in der /etc/spamassassin/v310.pre folgende Zeilen einkommentieren (# entfernen):

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop

Wer Graylisting nutzen möchte (ich persönlich bin kein Freund davon), kann noch mal in das HowTo im ServerSupportForum gucken, auf das ich oben schon mal hingewiesen habe. Darin ist beschrieben, wie man das machen kann.

Ach ja, den Virenscanner ClamAV habe ich bewusst nicht mit installiert, er scheint meiner Plesk-Lizenz nicht enthalten zu sein (oder ich habe etwas falsch gemacht; werde mich damit wenn ich etwas mehr Zeit habe noch mal auseinander setzen).

Fertig, die 2te.

So, das war’s jetzt aber wirklich erst mal mit dem Wichtigsten. Jetzt kannst du entweder alle betroffenen Dienste neu starten, damit die Änderungen greifen. Oder du bootest einmal und ab dann hast du einen sauber laufenden Server.

Komm doch ab und zu mal wieder vorbei – wenn ich noch was spannendes ändere, berichte ich hier darüber.