Controlpanels / Hostingsoftware

ISPConfig

ISPConfig

Adminoberfläche von ISPConfig auf https gesicherte Verbindung umstellen

Veraltet: Inzwischen kann direkt bei der Installation von ISPConfig die https-Verschlüsselung aktiviert werden.

Diese Anleitung wurde mit ISPConfig 3.0.1.3 auf einem CentOS 5.3 getestet.

Standardmäßig läuft die Adminoberfläche von ISPConfig unverschlüsselt auf Port 8080. Da darüber aber etwa auch neue Benutzer angelegt, Mailboxen und Datenbanken konfiguriert werden, empfiehlt es sich schon das auf eine SSL-gesicherte Verbindung umzustellen.

Dazu muss nur die Konfigurationsdatei für den ISPConfig-Vhost angepasst werden, das dafür nötige SSL-Zertifikat habe ich inkl. Key unter /etc/pki/tls/certs -/key abgelegt.

Hier die Ergänzungen für die Konfigurationsdatei:

/etc/httpd/conf/sites-available/ispconfig.vhost
  <IfModule mod_ssl.c>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/meinserver.de.crt
    SSLCertificateKeyFile /etc/pki/tls/private/meinserver.de.key
  </IfModule>

Die gesamte Datei sieht jetzt folgendermaßen aus:

/etc/httpd/conf/sites-available/ispconfig.vhost
######################################################
# This virtual host contains the configuration        
# for the ISPConfig controlpanel                      
######################################################

Listen 8080
NameVirtualHost *:8080

<VirtualHost _default_:8080>
  ServerAdmin webmaster@localhost

  <IfModule mod_fcgid.c>
    DocumentRoot /var/www/ispconfig/
    SuexecUserGroup ispconfig ispconfig
    <Directory /var/www/ispconfig/>
      Options Indexes FollowSymLinks MultiViews +ExecCGI
      AllowOverride AuthConfig Indexes Limit Options FileInfo
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter .php
      Order allow,deny
      Allow from all
    </Directory>
  </IfModule>

  <IfModule mod_php5.c>
    DocumentRoot /usr/local/ispconfig/interface/web/
    AddType application/x-httpd-php .php
    <Directory /usr/local/ispconfig/interface/web>
      Options FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
          php_value magic_quotes_gpc        0
    </Directory>
  </IfModule>

  <IfModule mod_ssl.c>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/meinserver.de.crt
    SSLCertificateKeyFile /etc/pki/tls/private/meinserver.de.key
  </IfModule>

  # ErrorLog /var/log/apache2/error.log
  # CustomLog /var/log/apache2/access.log combined
  ServerSignature Off

</VirtualHost>

<Directory /var/www/php-cgi-scripts>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

<Directory /var/www/php-fcgi-scripts>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

Wenn man verhindern will, dass die Verbindung auf keinen Fall unverschlüsselt erfolgt, entfernt man die beiden folgenden Zeilen aus der Konfiguration:

  <IfModule mod_ssl.c>
    ...
  </IfModule>

Apache würde damit beim Starten mit einem Fehler abbrechen wenn mod_ssl nicht installiert ist.

Parallels PLESK

Parallels PLESK

ASP-Seiten funktionieren nicht

wenn auf einem frisch installierten Plesk-Webserver das ASP nicht funktioniert und nur folgenden Fehler ausgibt:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Web Server at xxx.de

beziehungsweise folgender Fehler im error_log:

[Mon Mar 05 16:45:04 2007] [error] [client 212.34.160.151] Can't locate object method "register_cleanup" via package "Apache2::RequestRec" at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 520.\n at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 520\n\tApache::ASP::RegisterCleanup('Apache::ASP=HASH(0x552b30f460)', 'CODE(0x552b30f500)') called at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 383\n\tApache::ASP::new('Apache::ASP', 'Apache2::RequestRec=SCALAR(0x552ae23470)', '/var/www/vhosts/fms-tuning.de/httpdocs/test/bla/register_clea...') called at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 185\n\tApache::ASP::handler('Apache2::RequestRec=SCALAR(0x552ae23470)') called at -e line 0\n\teval {...} called at -e line 0\n

oder auch

[Mon Mar 05 16:29:10 2007] [error] [client 212.34.160.151] Can't locate object method "get" via package "APR::Table" at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 2016.\n at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 2016\n\tApache::ASP::get_dir_config('APR::Table=HASH(0x552ae23470)', 'Global') called at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 275\n\tApache::ASP::new('Apache::ASP', 'Apache2::RequestRec=SCALAR(0x552ae23440)', '/var/www/vhosts/fms-tuning.de/httpdocs/test/apacheasp/index.asp') called at /usr/lib/perl5/site_perl/5.8.8/Apache/ASP.pm line 183\n\tApache::ASP::handler('Apache2::RequestRec=SCALAR(0x552ae23440)') called at -e line 0\n\teval {...} called at -e line 0\n

dann fehlt eigentlich nur der folgende Eintrag in httpd.conf

PerlModule Apache2::compat

das Modul mod_perl und das Perl-Modul Apache::ASP muss installiert sein!

Parallels PLESK

Fehlermeldung nach Update auf 8.2.0 - Error: HTTPD SERVICE not defined

Folgender Fehler taucht nach dem Update des Plesk auf 8.2.0 beim Zugriff auf die Plesk-Administration auf:

AutoInstallerManager::CheckUpdates() failed: autoinstaller failed: autoinstaller: 
Error: HTTPD_SERVICE not defined

Folgender Fehler kommen beim Start der psa-Applikation:

root@bla bin]# service psa start
Starting MySQL                                             [  OK  ]
spamd: Error: HTTPD_SERVICE not defined
Starting psa-spamassassin service:                         [FAILED]
Processing config directory: /usr/local/psa/admin/conf/httpsd.*.include
/usr/local/psa/admin/bin/httpsdctl start: httpd started
Starting Plesk:                                            [  OK  ]
packagemng: Error: HTTPD_SERVICE not defined
packagemng: Error: HTTPD_SERVICE not defined
[root@bla bin]#

Folgende Zeilen in '/etc/psa/psa.conf' ergänzen, um das Problem zu beseitigen:

HTTPD_SERVICE httpd
LIB_SSL_PATH /lib/libssl.so.6
LIB_CRYPTO_PATH /lib/libcrypto.so.6
CLIENT_PHP_BIN /usr/local/psa/bin/php-cli

danach die Anwendung mit 'service psa restart' neu starten.

Parallels PLESK

FTP-Kennwort des Haupt-FTP-Accounts ausgeben

Mit diesem Script geht das ganz einfach. Aufruf etwa so: ./getftppw.sh <loginname>

#!/bin/bash

NAME=$1

if [ "x"$NAME = "x" ]
then
	echo "Syntax: $0 login"
	echo
else
	echo "select sys_users.login, accounts.password from sys_users left join accounts on accounts.id = sys_users.account_id where sys_users.login LIKE '%$NAME%';" \
	| mysql -p`cat /etc/psa/.psa.shadow` -u admin psa -B
fi
Parallels PLESK

mehrere parallele Verbindungen zum Courier-IMAP Server erlauben

Standardmäßig schränken linuxbasierte Server mit Plesk und dem Courier-IMAP gleichzeitige eingehende Verbindungen extrem ein, um zu verhindern, dass ein einzelner User zu viele Verbindungen aufmachen kann. Dies macht allerdings Probleme wenn etwa ein Kunde mit vielen Postfächern alle gleichzeitig abfragt oder etwa eine größere Firma hinter einer NAT-Firewall auf die Mailboxen zugreift.

Die Standardlimits betragen 4 Verbindungen pro IP-Adresse und 40 Verbindungen insgesamt. Schon ein aktueller Thunderbird kommt über diese Limits, da er aus Performancegründen schon bis zu 5 gleichzeitige Verbindungen öffnet.

Um diese Limits zu erhöhen müssen zwei Parameter in Courier-IMAP Konfigurationsdatei angepasst werden.

MAXDAEMONS legt die maximale Anzahl gleichzeitiger Verbindungen fest und MAXPERIP bestimmt die maximale Anzahl von Verbindungen pro IP-Adresse.

Für normale Ansprüche sollte es reichen MAXDAEMONS auf 80 und MAXPERIP auf 40 einzustellen. Für einen Shared-Webserver mit vielen großen Kunden drauf darf es auch ein bisschen mehr sein. Wenn etwa 50 gleichzeitige Zugriffe auf Mailboxen erwartet werden kann man etwa so rechnen: MAXDAEMONS = 50 x 5 und MAXPERIP ~ 50. Lieber ein wenig mehr zugeben ;)

Ggf. muss nach der Änderung der Courier-IMAP neu gestartet werden:

/etc/init.d/courier-imap restart

Parallels PLESK

Installation von Plesk auf CentOS 4.4 Server

Dieser Text beschreibt die Installation von Plesk 8.1 auf einem CentOS 4.4 Server

Zuerst: - Grundinstallation CentOS 4.4

die Repos centosextras und centosplus müssen deaktiviert sein, sonst werden MySQL 5 und PHP 5 installiert mit denen Plesk die Installation verweigert.

benötigte Pakete (und deren Abhängigkeiten automatisch via yum mitinstallieren):

  • httpd
  • php
  • mod_ssl
  • mysql-server
  • mysqlclient10
  • php-mysql
  • php-domxml
  • php-mbstring
  • php-imap
  • php-pear

den PSA-Autoinstaller von der swsoft.com Homepage besorgen und mit

chmod a+x psa_installer_v3.1.0_build061201.02_os_CentOS_4.3_x86_64
./psa_installer_v3.1.0_build061201.02_os_CentOS_4.3_x86_64

ausführbar machen und starten (hier am Beispiel einer 64bit Linuxinstallation).

Mit Enter weiter bis zur Paketauswahl, dort entsprechend der gekauften Lizenz die Pakete selektieren. Mit Enter weiter.

So, jetzt zeigt sichs, ob alle benötigten Pakete wirklich installiert wurden. Falls nein und falls Plesk diese nicht automatisch installieren kann, bricht der Installer ab und man darf sich auf Fehlersuche begeben. Falls aber alles installiert ist, beginnt der Plesk-Installer jetzt damit die Pakete herunterzuladen und zu installieren.

Wenn der Installer fertig ist sollte der Server einmal rebootet werden.

Danach kann man sich unter der ServerIP, bzw. DNS-Name, + Port 8443 einloggen, z.B.: http://123.123.123.123:8443

Parallels PLESK

Logrotation für Plesk-Logfiles konfigurieren

Der Plesk bringt einen eigenen logrotate mit, der wie der Standard logrotate konfiguriert werden kann.

Die Konfigurationsdateien liegen in /usr/local/psa/etc/logrotate.conf (globale Logdateien wie FTP-Log, maillog) und /usr/local/psa/etc/logrotate.d (Logfiles der einzelnen Vhosts/Domains).

Parallels PLESK

Mails gehen zurück an Absender - mailbox is full

Problem: Mails an Empfänger auf dem Plesk-Server werden mit folgendem Fehler abgelehnt:

From: MAILER-DAEMON@plesk.XXX.de
To: XX@XXX.de
Subject: failure notice
Date: 26 Feb 2008 16:32:55 +0100

Hi. This is the qmail-send program at plesk.XXX.de.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<pleskuser@pleskdomain.de>:
Recipient's mailbox is full, message returned to sender. (#5.2.2)

--- Below this line is a copy of the message.

Return-Path: <XX@XXX.de>
Received: (qmail 5336 invoked from network); 26 Feb 2008 16:32:55 +0100
Received: from ServerX.XXX.de (212.34.160.151)
  by plesk.XXX.de with SMTP; 26 Feb 2008 16:32:51 +0100
Subject: Test
test

und folgendes findet man hierzu im Logfile:

Feb 26 16:32:55 plesk-neu qmail: 1204039975.926872 new msg 17105111
Feb 26 16:32:55 plesk-neu qmail: 1204039975.926917 info msg 17105111: bytes 189 from <XX@XXX.de> qp 5336 uid 2020
Feb 26 16:32:55 plesk-neu qmail: 1204039975.931822 starting delivery 1810: msg 17105111 to local 596-pleskuser@pleskdomain.de
Feb 26 16:32:55 plesk-neu qmail: 1204039975.931859 status: local 3/10 remote 5/20
Feb 26 16:32:55 plesk-neu qmail-local-handlers[5337]: Handlers Filter before-local for qmail started ...
Feb 26 16:32:55 plesk-neu qmail-local-handlers[5337]: from=XX@XXX.de
Feb 26 16:32:55 plesk-neu qmail-local-handlers[5337]: to=pleskuser@pleskdomain.de
Feb 26 16:32:55 plesk-neu qmail-local-handlers[5337]: cannot reinject message to 'pleskuser@pleskdomain.de'
Feb 26 16:32:55 plesk-neu qmail: 1204039975.939904 delivery 1810: failure: Recipient's_mailbox_is_full,_message_returned_to_sender._(#5.2.2)/
Feb 26 16:32:55 plesk-neu qmail: 1204039975.939939 status: local 2/10 remote 5/20
Feb 26 16:32:55 plesk-neu qmail-queue[5341]: mail: all addreses are uncheckable - need to skip scanning (by deny mode)
Feb 26 16:32:55 plesk-neu qmail-queue[5341]: scan: the message(drweb.tmp.SK3apR) sent by  to XX@XXX.de should be passed without checks, because contains uncheckable addresses

Das Problem trat nach dem letzten Update des Pleskservers auf. Die Version war bereits 8.3.0. Es wurden dann anstehende Updates für den Autoinstaller, Plesk-Core und den Watchdog installiert. Ein Reboot des Plesk-Servers bringt keine Änderung.

Um das Problem zu lösen muss folgendes Tool ausgeführt werden:

/usr/local/psa/admin/sbin/mchk --with-spam

Laut dem sehr mageren Hilfetext stellt das Tool die Einstellungen aller Mailboxen wieder her (was auch immer das heißt, es hat funktioniert).

Parallels PLESK

open basedir-Restriction für vhost deaktivieren

Um die open_basedir-Restriction für einen einzelnen vhost zu deaktivieren:

einloggen als root:

vi /var/www/vhosts/<domain.com>/conf/vhost.conf

folgenden Inhalt eintragen:

<Directory /var/www/vhosts/<domain.com>/httpdocs>
   php_admin_value open_basedir none
</Directory>

danach den vhost neu laden:<br /> PLESK 5/6:

/usr/local/psa/admin/bin/my_apci_rst

PLESK 7/8

/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com
Parallels PLESK

Plesk 9 sperrt automatisch Domains und Kunden, die die gesetzten Limits überschreiten

Mit der Einführung von Plesk Version 9 wurde das Limit-Management überarbeitet. Es gibt nun einen Schalter, der in den Kunden- und Domaintemplates gesetzt werden kann, der die Überbenutzung erlaubt oder verbietet. Wenn man die Überbenutzung verbietet wird der Kunde und die Domain sofort komplett gesperrt, wenn das Limit überschritten wird. Dies ist natürlich in den allermeisten Fällen großer Mist, da einem die Kunden aufs Dach steigen.

Um die Überbenutzung bei neu angelegten Kunden und Domains automatisch zu erlauben muss das entsprechende Kunden- oder Domaintemplate angepasst werden. Dort könnte man dann auch den Kunden benachrichtigen lassen, wenn er seine Limits überschreitet.

Allen Kunden und Domains, die es bereits vor der Migration auf Plesk 9 gab, ist es standardmäßig verboten ihre Limits zu überschreiten. Um dies nun in einem Rutsch zu erlauben hilft folgender SQL-Code, der auf der Datenbank „psa“ des Servers ausgeführt werden muss:

UPDATE cl_param SET val = 'false' WHERE param = 'OveruseBlock';
UPDATE dom_param SET val = 'false' WHERE param = 'OveruseBlock';

Jetzt sollte der Admin aber darauf achten, dass man bei eventueller Überbenutzung zumindest per Mail informiert wird. Die Kunden dürfen jetzt fast alles, auch z.B. neue Datenbanken oder zusätzliche Domains anlegen, obwohl dies gar nicht im Hostingpaket beinhaltet ist.

Parallels PLESK

Plesk-Admin-Kennwort verloren

Das Admin-Kennwort für die Plesk-Weboberfläche steht im Klartext in folgender Datei:

/etc/psa/.psa.shadow
Parallels PLESK

Upgrade schlägt fehl - Plesk 8.3.0 auf Linux

Folgende Meldung beim Versuch den Plesk upzugraden: Upgrade fails with the „Failed to check whether a new license key is available“ error.

Ursache ist ein veralteter Autoinstaller. Dieser muss zuerst manuell geupdatet werden.

Lösung:

Beispiel für Centos5-i386:

wget http://download1.swsoft.com/Plesk/Plesk8.3/CentOS5/swsoft_installer_v3.3.0_build080116.12_os_CentOS_5_i386
cp swsoft_installer_v3.3.0_build080116.12_os_CentOS_5_i386 /usr/local/psa/bin/autoinstaller
cp swsoft_installer_v3.3.0_build080116.12_os_CentOS_5_i386 /usr/local/psa/admin/sbin/autoinstaller
chmod 755 /usr/local/psa/admin/sbin/autoinstaller /usr/local/psa/bin/autoinstaller
chown root:root /usr/local/psa/admin/sbin/autoinstaller /usr/local/psa/bin/autoinstaller

Sollte der Autoinstaller noch als Prozess laufen, muss er zuerst gekillt werden, sonst läßt sich die Datei nicht überschreiben!

Webmin

Webmin

Webmin - Kennwort vergessen

mit folgendem Befehl läßt sich das Kennwort für einen bestimmten User neu setzen:

/usr/libexec/webmin/changepass.pl /etc/webmin <user> <neueskennwort>