Die größten installierten DEB Pakete zu finden kann sehr nützlich sein, wenn wenig Festplattenkapazität verfügbar ist.

dpkg-query -Wf '${Installed-Size}t${Package}n' | sort -n

Das größte installierte DEB Paket befindet sich ganz unten. Das kleinste folglich ganz oben.

Keine Kommentare »
 

Ich möchte vorweg darauf hinweisen, das es bei mir bei dem Update heute nacht um 3 Uhr etwas turbulent zur Sache ging. Keine der Anleitungen die ich online gefunden hatte hatten ihr Froxlor Installationen nach dem Upgrade von SysCP überprüft. Keine dieser Anleitungen verlief Fehlerlos bzw. ohne Folgefehler durch Konfigurationsfehler. Der Server sollte natürlich bis morgens wieder für Hosting Kunden nutzbar funktionieren. Ich hoffe dieser Ärger bleibt euch mit diesem Tutorial erspart.

Vorwort

  • Es wird eine funktionsfähige Hetzner SysCP Image Installtion benötigt (SysCP Root: /var/syscp/web/)
  • Der gesamte Installationsvorgang findet über eine SSH Verbindung auf dem Server statt
  • Allgemein gilt in diesem Tutorial immer durch die entsprechenden Werte zu ersetzen

Update Vorbereitungen

  • SysCP sichern
    Zunächst sollten alle Daten von SysCP gesichert werden. Ebenso machen wir ein Backup von /etc/ da wir hier im zuge des Upgrades auch Änderungen vornehmen werden. Wir nutzen für das SysCP Datenbank Backup die Option „–add-drop-table“ um ein löschen der alten Inhalte vor dem einspielen der neuen auszulösen. Diese Option benötigen wir da wir im zuge des Updates den veränderten SysCP SQL Dump in diese selbe Datenbank wieder einspielen. Eure MySQL Zugangsdaten findet ihr in der SysCP Konfiguration (/var/syscp/lib/userdata.inc.php /).

    EMP-S:~# cp -rp /etc/ /root/etc_bak/
    EMP-S:~# cd /var/syscp/web/
    EMP-S:/var/syscp/web/# cp -rp * ../../syscp_bak/
    EMP-S:/var/syscp/web/# mysqldump --databases --opt -Q -u -p --add-drop-table syscp > ../../syscp_bak/db.sql
  • sources.list erweitern

    Die Datei /etc/apt/sources.list um erweitern um:

    deb      http://debian.froxlor.org lenny main
    deb-src  http://debian.froxlor.org lenny main

    Kommando zum öffnen der Datei (erspart Tipparbeit):

    EMP-S:~# nano /etc/apt/sources.list
  • SysCP Cronjobs deaktivieren
    Durch auskommentieren der Konfiguration deaktivieren wir die SysCP Cronjobs.
    Kommando zum öffnen der Datei:

    EMP-S:~# nano /etc/cron.d/syscp

    Dateinhalt nach der Bearbeitung:

    #
    # Set PATH, otherwise restart-scripts won't find start-stop-daemon
    #
    # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    #
    # Regular cron jobs for the syscp package
    #
    #00 */1 * * *   root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_tasks.php
    #0 0 * * *      root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_traffic.php
    #30 0 * * *     root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_ticketarchive.php
    #0 1 * * *      root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_used_tickets_reset.php
    #00 */1 * * *   root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_autoresponder.php
    #00 */1 * * *   root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_apsinstaller.php
    #*/15 * * * *   root    /usr/bin/php5 -q /var/syscp/web/scripts/cron_apsupdater.php
  • SQL Dump für Froxlor aufbereiten
    Hierbei ersetzen wir den Pfad /var/syscp/web/ mit /var/www/froxlor/ und den Pfad /var/syscp/ mit /var/www/ in einer Kopie unseren SysCP SQL Dumps.

    EMP-S:~# cd /var/sycp_bak/
    EMP-S:/var/sycp_bak/# cp db.sql db_new.sql
    EMP-S:/var/sycp_bak/# sed -i 's//var/syscp/web///var/www/froxlor//g' db_new.sql
    EMP-S:/var/sycp_bak/# sed -i 's//var/syscp///var/www//g' db_new.sql

Froxlor Installieren

  • Froxlor Installation über APT Paketmanagement System
    EMP-S:~# apt-get update
    EMP-S:~# apt-get install froxlor
  • Besitzer und Gruppe des Froxlor Verzeichnisses anpassen
    EMP-S:~# chown -R www-data:www-data /var/www/froxlor/
  • Alte SysCP Konfiguration in Froxlor nutzen
    EMP-S:~# cp /var/syscp_bak/lib/userdata.inc.php /var/www/froxlor/lib/
  • Bearbeitete Kopie der SysCP Datenbank für Froxlor einspielen
    EMP-S:~# mysql -u -p
    mysql> use syscp  
    mysql> source /var/syscp_bak/db_new.sql
  • Symlinks für phpMyAdmin und Squirrelmail erstellen
    EMP-S:~# ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin
    EMP-S:~# ln -s /usr/share/squirrelmail/ /var/www/squirrelmail
  • Verzeichnisse kopieren
    Wichtig ist hierbei Rechte und Benutzer beizubehalten. Die User Unterverzeichnise in fcgi/ logs/, tmp/ und webs/ sollten den entsprechenden fcgi Benutzer (Kunden) gehören. Das Verzeichnis mails/ dem Benuter vmail. Das bewirkt die Option -p beim Kopieren mit cp.

    EMP-S:~# cp -rp /var/syscp/fcgi/ /var/www/
    EMP-S:~# cp -rp /var/syscp/logs/ /var/www/
    EMP-S:~# cp -rp /var/syscp/mails/ /var/www/
    EMP-S:~# cp -rp /var/syscp/tmp/ /var/www/
    EMP-S:~# cp -rp /var/syscp/webs/ /var/www/
  • Apache Konfiguration für Froxlor anpassen
    Hierbei muss der Pfad /var/syscp/web/ in /var/www/froxlor geändert werden. Der Ordnung halber ist es empfehlenswert die Konfigurationsdatei entsprechend umzubenennen und den Symbolischen Link auf die Konfiguration zu ändern.

    EMP-S:~# sed -i 's//var/syscp/web///var/www/froxlor//g' /etc/apache2/sites-available/syscp
    EMP-S:~# mv /etc/apache2/sites-available/syscp /etc/apache2/sites-available/froxlor
    EMP-S:~# rm /etc/apache2/sites-enabled/00-syscp
    EMP-S:~# ln -s /etc/apache2/sites-available/froxlor /etc/apache2/sites-enabled/froxlor
  • Suexec Pfade für Froxlor anpassen
    In der Datei /etc/apache2/suexec/www-data den Pfad /var/syscp/ in /var/www/ ändern.

    EMP-S:~# sed -i 's//var/syscp///var/www//g' /etc/apache2/suexec/www-data
  • Postfix Konfiguration für Froxlor anpassen
    Konfigurations Option virtual_mailbox_base in /etc/postfix/main.cf von /var/syscp/mails/ in /var/www/mails/ ändern.

    EMP-S:~# sed -i 's//var/syscp/mails///var/www/mails//g' /etc/postfix/main.cf
  • Squirrelmail Konfiguration für Froxlor anpassen
    Die Pfade /var/syscp/squirrelmail/data/ und /var/syscp/squirrelmail/attach/ müssen in der Datei auf /var/www/squirrelmail/*/ angepasst werden.

    EMP-S:~# sed -i 's//var/syscp///var/www//g' /etc/squirrelmail/config.php

    Anmerkung
    In dieser Datei können Providername, Logo und dergleichen für Squirrelmail angepasst werden. Nutzt die Gelegenheit sonst macht ihr das nie.

  • Froxlor Cronjob erstellen
    Wir erstellen die Datei /etc/cron.d/froxlor

    EMP-S:~# nano /etc/cron.d/froxlor

    und füllen sie mit den Werten für die Froxlor Cronjobs:

    #
    # Set PATH, otherwise restart-scripts won't find start-stop-daemon
    #
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    #
    # Regular cron jobs for the froxlor package
    #
    */1 * * * *     root    /usr/bin/php5 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php
  • Apache und Postfix neu starten

    EMP-S:~# /etc/init.d/apache2 restart
    EMP-S:~# /etc/init.d/postfix restart

Froxlor Konfiguration

Froxlor ist nun unter Eurer IP:Euerm Port (Standard 81) erreichbar.

  • Installationsassistent
    Den neuen Prozess Spawn Manager habe ich auch nicht aktiviert. Ich warte erstmal ein paar Erfahrungsberichte ab.
  • Fehlerquelle: php.ini Settings
    Die Zeile

    open_basedir = "{OPEN_BASEDIR}"

    sollte in den php.ini Konfigurationen durch

    {OPEN_BASEDIR_C}open_basedir = "{OPEN_BASEDIR}"

    ersetzt werden. Ansonsten könnte es zu Fehlern in PHP Applikationen kommen. Im Falle Magento bekommt man die Ausgabe „No input file specified“.

SysCP entfernen

Prüft nochmals alle Funktionen bevor ihr euer SysCP vom Server entfernt.

  • SysCP löschen
    Das „immutable“ Attribut von den fcgi Scripts entfernen (chattr -i) und den SysCP Ordner vom Dateisystem löschen.

    EMP-S:~# chattr -i -R /var/syscp/fcgi/
    EMP-S:~# rm -r /var/syscp/

    Vergesst die Backups nicht. /root/etc_bak/ und /var/syscp_bak/. Aufheben oder löschen. Wie es euch lieb ist.

  • Jagd nach Überlebenden
    Wer lustig ist kann nun noch nach überbleibseln von SysCP auf dem Server suchen und diese beseitigen. Den Datenbankname könnte man noch von syscp auf froxlor ändern. Ebenso den Unix Benutzer syscp. Weitere Überbleibsel findet man auch mit dem Kommando:

    grep -r syscp *

Froxlor ist nun via Debian APT Paketmangement Software updatebar installiert und konfiguriert. Ich hoffe bei euch läuft das mit Hilfe der Anleitung weniger turbulent und stressig. Abweichung und weitere Tipps sind erwünscht. Möchte jemand das Tutorial zu einem Update Script zusammenfassen? 😛

10 Kommentare »
 

Die erste Frage die einem aufkommt ist: „Wozu brauche ich Ruby Gems als Apt Pakete?“. Nach kurzer Zeit fand ich heraus wozu. Die Ruby Pakete enthalten in Debian sind veraltet oder gar nicht erst vorhanden. Bei Ubuntu Hardy ist die Auswahl ebenfalls sehr gering. Auf meiner Debian Lenny Installation war von den Debianern sogar Rubygems in der Funktionalität eingeschränkt. Dies wird einem sogar schriftlich vorgehalten:

gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get.

Das manuelle installieren / kompilieren von Paketen ist ein großer Zeitaufwand. Glücklicherweise fand ich einen Service der Debian Pakete von einem allen relevanten Gem Paketen anbietet. Die Debgem Kurzbeschreibung von der eigenen Webseite:

Apt is the package management system of choice for Debian users. Historically, only a very limited number of Ruby programs and libraries are packaged for Debian and installable through Apt. Instead, most Ruby programs and libraries are installed through RubyGems, a separate package management system created specifically for Ruby.

DebGem provides an Apt repository for Ruby programs and libraries which are currently available as gems. Debian users can now manage all their Ruby software through a single, centralized package manager – Apt – thereby making system administration a joy again!

Ich nutze diesen Service derzeit für Ruby 1.8 auf meinem Debian Lenny System und bin vollsten zufrieden damit. Der Haken an der Sache ist, das Debgem nur während der Beta Phase kostenlos bleiben wird. Es bleibt zu hoffen das die Gems bis dahin besser in Debian / Ruby 1.8 integriert sind.

INFO: Beim compilieren von Ruby 1.9.* in der neusten Version sollte das Problem nicht mehr bestehen.

Keine Kommentare »
 

Dinge die jeder an den Linux Distributionen liebt. Man benötig ein Programm und wie soll es auch anders sein, es funktioniert ohne Gebastel nicht. Der Installationsversuch des Frostwire Paketes von frostwire.com bringt folgendes zu tage:

dpkg: Fehler beim Bearbeiten von frostwire-4.21.1.i586.deb (--install):
Paket-Architektur (i386) passt nicht zum System (amd64)

Was für ein Glück das ich Java schon installiert hatte. 🙂
Das deb Paket auf der Webseite ist leider nicht für AMD64 „verpackt“. Die Prozessor Architektur spielt jedoch keine Rolle da Frostwire ein Java Programm ist. Die kurze Zeile

dpkg -i --force-architecture <PAKETNAME>.i586.deb

sollte das Problem lösen und den P2P Client installieren.

Keine Kommentare »
 

Mein Artikel „Debian Backup mittels Paketlisten & MySQL Dumps & FTP Upload“ wurde soeben aktuallisiert. Das Script passt nun die Prozess und I/O Priorität für den eigenen Prozess an um den Server nicht bei seinen regulären Arbeiten zu behindern und verschlüsselt das Backup auf Wunsch mit GnuPG.

Zum Artikel gehts mit diesem Link: Verschlüsseltes Debian Backup

Keine Kommentare »
 

Beim studieren der Server Logs meines Debian Lenny Servers fiehl mir auf das sehr viele fehlgeschlagene authentifizierungs Versuche am SMTP Daemon von Postfix statt gefunden hatten. Folgende Meldung wiederholte sich mehrfach:

Apr 28 15:33:56 mail postfix/smtpd[8110]: warning: unknown[218.248.1.181]: SASL CRAM-MD5 authentication failed: PDM2NjYyMjQ0OTU5OTE5MTMuMTI3MjQ2MTYzNUBFTVAtUz4=

Mich wunderte das die IP Adresse nicht nach 3 Versuchen von Fail2ban (Version 0.8.3-2sid1) gebannt wurde. Es hat sich herausgestellt das der Reguläre Ausdruck den Fail2ban für das erkennen Fehlgeschlagener authentifizierungs Versuche nicht mit der Log-Nachricht übereinstimmt. Ein Entfernen des $ am Ende des Regulären Ausdrucks (failregex) in der Datei /etc/fail2ban/filter.d/sasl.conf reichte aus um die Logs passend zu filtern.

Warum das $ entfernen?
Das $ steht in einem Regulären Ausdruck für das Ende der zu suchenden Zeichenkette. Da aber nach „authentication failed“ in dem Log Eintrag weitere Zeichen folgen passt der Reguläre Ausdruck nicht zum Logeintrag.

failregex = : warning: [-._w]+[<HOST>]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed

Ist meine aktueller Eintrag um fehlgeschlagene authentifizierungs Versuche am Postfix SMTP Daemon zu erkennen.

Spamassassin füllte meine Logs zum selben Zeitpunkt mit:

Apr 28 00:31:27 mail spamd[21987]: spamd: creating default_prefs: /nonexistent/.spamassassin/user_prefs
Apr 28 00:31:27 mail spamd[21987]: config: cannot write to /nonexistent/.spamassassin/user_prefs: No such file or directory
Apr 28 00:31:27 mail spamd[21987]: spamd: failed to create readable default_prefs: /nonexistent/.spamassassin/user_prefs

Eine weitere Lösung musste her… Da Spamassassin bei mir unter dem Benutzer nobody läuft und dieser zu diesem Zeitpunkt kein gültiges Heimatverzeichnis in der /etc/passwd Datei hinterlegt hatte blieben mir sinnvolle 2 Möglichkeiten. Zum einen das Eintragen eines gültigen Heimatverzeichnisses in die Datei /etc/passwd. (Platzhalter: <VERZEICHNIS>)

nobody:x:65534:65534:nobody:<VERZEICHNIS>:/bin/false

Zum Anderen gab es die Möglichkeit Spamassassin durch eine Änderung in /etc/defaults/spamassassin mit einem virtuellen Verzeichnis zu starten. Hier mein Aktueller Eintrag für standard Startoptionen von Spamassassin: (Platzhalter: <VERZEICHNIS>)

OPTIONS="--create-prefs --max-children 5 --helper-home-dir -u nobody -x --virtual-config-dir=<VERZEICHNIS>"

Ich entschied mich für die zweite Möglichkeit (Verzeichnis: /var/spool/spamassassin).

ein Kommentar »