Author: F4RR3LL|Sven
E-Mail: sven.richter@nixhelp.de
Stand: 26.04.2010
Diese Installation wurde auf Debian LENNY getestet
Die Vergangenheit (Clamav Virenscanner ;) )
hat gezeigt das es nötig ist vor der eigentlichen Installation von ISPConfig erstmal dafür zu sorgen das die richtige
Sources.list auf dem Server ist. Also beginnen wir mit:
cat > /etc/apt/sources.list << "EOF" deb http://ftp2.de.debian.org/debian lenny main contrib non-free deb http://ftp2.de.debian.org/debian-security lenny/updates main contrib non-free deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free EOF
Auf gehts, wir installieren den Indianer mit ein paar Modulen:
aptitude install openbsd-inetd apache2 apache2.2-common apache2-doc apache2-mpm-prefork \ apache2-utils libexpat1 ssl-cert apache2-suexec libapache2-mod-php5 php5 \ php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi \ php5-mcrypt mcrypt libapache2-mod-fcgid php-pear php-auth php5-imagick \ imagemagick libapache2-mod-suphp mysql-server mysql-client libmysqlclient15-dev
Du wirst nach dem root pass für mysql gefragt.
Setzt dein gewünschtes root passwort und bestätige es dann noch einmal.
Folgende Frage taucht auf:
Webserver, die automatisch konfiguriert werden sollen: <– apache2
Nach der Installation folgende Module aktivieren:
a2enmod suexec rewrite ssl actions include
Phpmyadmin anpassen:
rm -rf /etc/phpmyadmin/htpasswd.setup
Folgenden Teil in der /etc/phpmyadmin/apache.conf auskommentieren:
nano /etc/phpmyadmin/apache.conf
# # Authorize for setup # <Files setup.php> # # For Apache 1.3 and 2.0 # <IfModule mod_auth.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # # For Apache 2.2 # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # Require valid-user # </Files>
Das mit dem ruby ist nen kleiner Fix den ich auf der Howtoforge Seite gesehen hab, den nehmen wir gleich mit ;)
nano /etc/mime.types
folgenden Teil auskommentieren
#application/x-ruby rb
Soo nun ists zeit für nen Apache neustart:
/etc/init.d/apache2 restart
Symlink für phpmyadmin
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
Wer Proxmox/Openvz benutzt findet hier noch die zu setzenden Capabilities die im Host zu setzen sind.
Sonst startet der FTP ned.→ Pureftpd CAPABILITYs
aptitude install pure-ftpd-common pure-ftpd-mysql
Nun zwei kleine Anpassungen
nano /etc/default/pure-ftpd-common
Hier den Startmodus ändern und chroot auf true ändern
STANDALONE_OR_INETD=standalone VIRTUALCHROOT=true
Um Auth TLS zu aktivieren mache folgendes:
cd /etc/pure-ftpd/conf echo 1 > TLS mkdir -p /etc/ssl/private/ openssl req -x509 -nodes -newkey rsa:1024 -keyout \ /etc/ssl/private/pure-ftpd.pem \ -out /etc/ssl/private/pure-ftpd.pem chmod 600 /etc/ssl/private/*.pem
Es bietet sich noch an die Passive Portrange des FTP auch gleich mit anzugeben.
Wenn man IPTABLES nutzt kann das ganz hilfreich sein.
In meinem Beispiel nehmen wir die Ports 4000 - 4020. Kann man allerdings beliebig abändern.
cd /etc/pure-ftpd/conf echo 4000 4020 > PassivePortRange
Nun öffne die Datei:
nano /etc/inetd.conf
hier folgende Zeile auskommentieren:
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
nun initd und den ftp neu starten
/etc/init.d/openbsd-inetd restart /etc/init.d/pure-ftpd-mysql start
aptitude install quota quotatool
Hier nun die /etc/fstab anpassen:
nano /etc/fstab
einfach bei der betreffenden Passage usrquota,grpquota mit anfügen.
zB so
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda2 /tmp ext3 defaults,noexec 0 2 /dev/sda3 none swap sw 0 0
aptitude install bind9
aptitude install fail2ban vlogger webalizer build-essential autoconf automake1.9 libtool flex bison
cd /usr/src/ wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz tar xvfz jailkit-2.11.tar.gz cd jailkit-2.11 ./configure make make install
aptitude install postfix postfix-mysql libsasl2-2 sasl2-bin libsasl2-modules-sql libsasl2-modules procmail \ dovecot-pop3d dovecot-imapd \ gamin libgamin0 libglib2.0-0 amavisd-new \ spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch \ apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon \ libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl getmail4
Fragen bei der Installation: (alles andere mit OK bestätigen)
Verzeichnisse für WWW-Administration anlegen? NEIN
Allgemeine Art der Konfiguration: Internet-Site
System-E-Mail-Name: deine.domain.tld
aptitude install squirrelmail ln -s /usr/share/squirrelmail/ /var/www/webmail
Anschließend muss man noch den Squirrel einrichten:
squirrelmail-configure
D drücken
dovecot reinschreiben
bestätigen mit anyeinem key ;)
speichern mit S
und schließen mit Q
!!! Vorsicht Roundcube ist bissl tricky ;) !!!
cd /usr/src/ wget wget http://downloads.sourceforge.net/roundcubemail/roundcubemail-0.3-stable.tar.gz?use_mirror=freefr tar xvzf roundcubemail-0.3-stable.tar.gz -C /var/www/ mv /var/www/roundcubemail-0.3-stable/ /var/www/webmail/ chmod 777 /var/www/webmail/temp/ chmod 777 /var/www/webmail/logs/
Bevor du Roundcube nutzen kannst, solltest du eine Datenbank und einen Benutzer für Roundcube erstellen.
Logge dich via PHPMyAdmin mit deinem MySQL-Root-Benutzer auf http://domain.server.tld/phpmyadmin/ ein.
Erstelle dir eine Datenbank und einen User mit Pass für Roundcube.
Nun im Browser die Seite http://domain.server.tld/webmail/installer/ aufrufen und den Anweisungen folgen.
Im Prinzip ist die Installation selbsterklärend.
Vermutlich wird dir im ersten Schritt der Roundcube-Installation angezeigt, dass 'FileInfo' nicht verfügbar ist.
Abhilfe schaffen wir so:
apt-get install php5-dev libmagic-dev pecl install fileinfo
Im Anschluss die 'php.ini' öffnen …
vi /etc/php5/apache2/php.ini
… und die Extension aktivieren.
extension=fileinfo.so
Ein paar Zeilen weiter unten finden wir die auskommentierte Zeile …
;date.timezone =
… und ergänzen sie; wenn wir eh schon mal grad' da sind.
date.timezone = "Europe/Berlin"
Abschließend die Datei speichern und den Apache neu starten.
/etc/init.d/apache2 restart
Wenn du nun die Roundcube-Installations-Seite im Browser neu lädst wirst du feststellen, dass alle relevanten „Not Available“s verschwunden sind. Also weiter im Takt …
Die Konfigurationen, die bei der Installation erstellt wurden, müssen bei Schritt 2 nach
nano /var/www/webmail/config/main.inc.php
und
nano /var/www/webmail/config/db.inc.php
kopiert werden.
Nach der Installation solltet ihr die Installationsdateien entfernen:
rm -rf /var/www/webmail/installer/
Um den Webmail-Usern die Möglichkeit zu geben ihr Passwort via Roundcube zu ändern …
nano /var/www/webmail/config/main.inc.php
$rcmail_config['plugins'] = array();
… durch …
$rcmail_config['plugins'] = array('password');
… ersetzen.
Danach kopieren wir im Ordner plugins/password die 'config.inc.php.dist' nach 'config.inc.php'.
cp /var/www/webmail/plugins/password/config.inc.php.dist /var/www/webmail/plugins/password/config.inc.php
In dieser Datei müssen wir drei Zeilen anpassen:
$rcmail_config['password_driver'] = 'sql'; $rcmail_config['password_db_dsn'] = 'mysql://roundcubemail:*passwd*@localhost/dbispconfig'; $rcmail_config['password_query'] = 'UPDATE mail_user SET password = %c WHERE email = %u LIMIT 1';
Schau am besten vor der Installation nach das Du auch die neuste Version benutzt http://www.ispconfig.org/
Derzeit ist Version 3.0.3 aktuell und dient als Grundlage für die Installation:
cd /usr/src/ wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xvfz ISPConfig-3-stable.tar.gz cd ispconfig3_install/install/ php -q install.php
php -q install.php -------------------------------------------------------------------------------- _____ ___________ _____ __ _ |_ _/ ___| ___ \ / __ \ / _(_) | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | __/ | |___/ -------------------------------------------------------------------------------- >> Initial configuration Operating System: Debian Lenny or compatible Following will be a few questions for primary configuration so be careful. Default values are in [brackets] and can be accepted with <ENTER>. Tap in "quit" (without the quotes) to stop the installer. Select language (en,de) [en]: de Installation mode (standard,expert) [standard]: Full qualified hostname (FQDN) of the server, eg server1.domain.tld [testispconfig.nixhelp.de]: MySQL server hostname [localhost]: MySQL root username [root]: MySQL root password []: monstermegahammergeheimespasswort MySQL database to create [dbispconfig]: MySQL charset [utf8]: Generating a 2048 bit RSA private key ..........................................+++ .................+++ writing new private key to 'smtpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:testispconfig.nixhelp.de Email Address []:chef@vomserver.de Configuring Jailkit Configuring SASL Configuring PAM Configuring Dovecot Configuring Spamassassin Configuring Amavisd Configuring Getmail Configuring Pureftpd Configuring BIND Configuring Apache Configuring vlogger Configuring Apps vhost Configuring Firewall Installing ISPConfig ISPConfig Port [8080]: Configuring DBServer Installing Crontab no crontab for root no crontab for getmail Restarting services ... Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly closed and upgrade needing tables.. Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix. Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd. Stopping amavisd: amavisd-new. head: cannot open `/etc/mailname' for reading: No such file or directory Starting amavisd: amavisd-new. Stopping ClamAV daemon: clamd. Starting ClamAV daemon: clamd . Restarting IMAP/POP3 mail server: dovecot. Restarting web server: apache2 ... waiting .. Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -b -E -p 4000:4020 -u 1000 -A -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -H -B Installation completed.
Du kannst Dich jetzt in deinen Webserver einloggen unter http://domain.server.tld:8080
Login: User: admin Pass: admin
Nach dem ersten Einloggen bietet sich an erstmal das Admin pass zu ändern und die Sprache auf Deutsch zu stellen.
Klicke auf Tools und dann auf Password and Language
Trage dein neues Passwort ein und wechsel die Sprache auf Deutsch
Für diese Passage bedanke ich mich bei Alexander Fox der diese Anleitung als gesondertes Howto auf howtoforge.de veröffentlicht hat. Da ich der Meinung bin das dies wichtiger Bestandteil der Hauptinstallation ist habe ich es hier direkt integriert.
mkdir /etc/apache2/ssl cd /etc/apache2/ssl
Zertifikate erstellen:
openssl genrsa -des3 -out ispserver.key 4096 openssl req -new -key ispserver.key -out ispserver.csr openssl x509 -req -days 3650 -in ispserver.csr -signkey ispserver.key -out ispserver.crt openssl rsa -in ispserver.key -out ispserver.key.insecure mv ispserver.key ispserver.key.secure mv ispserver.key.insecure ispserver.key
Das Apache ssl Modul aktivieren falls es noch inaktiv ist:
a2enmod ssl
Den vhost von ISPCONFIG anpassen
nano /etc/apache2/sites-available/ispconfig.vhost
füge die folgenden Zeilen innerhalb von “<VirtualHost ….></VirtualHost>” hinzu
SSLEngine On SSLCertificateFile /etc/apache2/ssl/ispserver.crt SSLCertificateKeyFile /etc/apache2/ssl/ispserver.key SSLProtocol All -SSLv2 SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown
Webmail und Phpmyadmin ebenfalls auf https switchen:
nano /etc/apache2/sites-enabled/000-default
fügt hier folgendes hinzu wieder wie oben zwischen “<VirtualHost ….></VirtualHost>”
<IfModule mod_rewrite.c> <IfModule mod_ssl.c> <Location /phpmyadmin> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}:8080/phpmyadmin [R] </Location> </IfModule> </IfModule> <IfModule mod_rewrite.c> <IfModule mod_ssl.c> <Location /webmail> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}:8080/webmail [R] </Location> </IfModule> </IfModule>
Neustarten des Apache
/etc/init.d/apache2 restart
Du kannst Dich jetzt in deinen Webserver einloggen unter https://domain.server.tld:8080
Das wars, viel Spaß mit ISPConfig 3
Gruß Sven
PureFTPD greift auf gewisse Schnittstellen zurück die der Virtuellen Maschine nicht vom Standard aus gegeben sind.
Hierzu muss im Host die Config der VM bearbeitet bzw. ergänzt werden.
Die Configs liegen unter /etc/vz/config !
CAPABILITY=”CHOWN:on DAC_READ_SEARCH:on SETGID:on SETUID:on NET_BIND_SERVICE:on NET_ADMIN:on SYS_CHROOT:on SYS_NICE:on “
Zurück zum Index