Benutzer-Werkzeuge

Webseiten-Werkzeuge


howto:ispconfig3_bind_dovecot

Howto ISPConfig3

incl. Apache2 + Php5 + bind9 + Postfix + Dovecot + Roundcube + SpamAssassin + ClamAV + Webalizer + PureFTPd + Https

Author: F4RR3LL|Sven
E-Mail: sven.richter@nixhelp.de
Stand: 26.04.2010


Diese Installation wurde auf Debian LENNY getestet

Sources.List


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


Installation Webserver


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


Installation FTP Server


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


Installation Quota

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


Installation DNS Server



aptitude install bind9



Install fail2ban Jailkit vLogger Webalizer

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


Installation Mailserver


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

Installation Squirrelmail oder Roundcube Webmail


SQUIRRELMAIL


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

ROUNDCUBE

!!! 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';


Installation ISPConfig 3

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

HTTPS für das Admin Interface / Webmail / Phpmyadmin


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


Hilfen und Extras


OpenVZ / Proxmox und PureFTPD


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

howto/ispconfig3_bind_dovecot.txt · Zuletzt geändert: 2015/04/20 15:45 (Externe Bearbeitung)

Seiten-Werkzeuge