Installation eines Web, E-Mail & MySQL Datenbank Clusters unter Debian 6.0 mit ISPConfig 3 - Seite 3


Konfigurieren Sie nun PureFTPd, sodass es FTP und TLS Sitzungen erlaubt. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Daten in klarem Text übertragen werden. Durch Benutzung von TLS wird jegliche Kommunikation verschlüsselt, wodurch FTP sehr viel sicherer gemacht wird.

Wollen Sie FTP und TLS Sitzungen erlauben, benutzen Sie:

echo 1 > /etc/pure-ftpd/conf/TLS

Um TLS zu benutzen, müssen Sie ein SSL Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, deshalb muss ich dieses Verzeichnis erst erstellen:

mkdir -p /etc/ssl/private/

Danach können Sie das SSL Zertifikat generieren:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Country Name (2 letter code) [AU]: <-- Geben Sie Ihr Land an (z.B., "DE"). State or Province Name (full name) [Some-State]: <-- Geben Sie Ihr Bundesland an (z.B. Niedersachsen). Locality Name (eg, city) []: <-- Geben Sie Ihre Stadt an (z.B. Lueneburg). Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Firma an. Organizational Unit Name (eg, section) []: <-- Geben Sie den Namen Ihrer Abteilung an (z.B. "IT Department"). Common Name (eg, YOUR name) []: <-- Geben Sie den qualifiezierten Domainnamen Ihres Systems an (z.B. "server1.example.com"). Email Address []: <-- Geben Sie Ihre E-Mail Adresse an.
Ändern Sie die Zugriffsrechte auf das SSL Zertifikat:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Starten Sie dann PureFTPd neu:

/etc/init.d/pure-ftpd-mysql restart

Editieren Sie die /etc/fstab Datei. Meine sieht folgendermaßen aus (ich habe ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zur Partition mit dem Mountpunkt / hinzugefügt):

vi /etc/fstab


# /etc/fstab: static file system information.
# # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # swap was on /dev/sda5 during installation UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Um Quota zu aktivieren, benutzen Sie folgende Befehle:

mount -o remount /

quotacheck -avugm
quotaon -avug

Installieren Sie den BIND DNS Server:

apt-get -y install bind9 dnsutils

Installieren Sie vlogger, webalizer und awstats:

apt-get -y install vlogger webalizer awstats geoip-database

Öffnen Sie danach /etc/cron.d/awstats ...

vi /etc/cron.d/awstats

... und kommentieren Sie beide Cron Jobs in der Datei aus:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh
Installieren Sie Jailkit: Jailkit wird nur gebraucht, wenn Sie SSH Benutzer und Cron Jobs chrooten wollen. Es kann wie folgt installiert werden (Wichtig: Jailkit muss vor ISPConfig installiert werden - dies kann nicht nachträglich geschehen!):

apt-get -y install build-essential autoconf
automake1.9 libtool flex bison

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*

Installieren Sie fail2ban: Dies ist zwar optional, wird aber empfohlen, da der ISPConfig Monitor versucht, dessen Log anzuzeigen:

apt-get install fail2ban

Um fail2ban PureFTPd und Dovecot überwachen zu lassen, erstellen Sie die Datei /etc/fail2ban/jail.local:

vi /etc/fail2ban/jail.local


[pureftpd]
enabled = true port = ftp filter = pureftpd logpath = /var/log/syslog maxretry = 3 [dovecot-pop3imap] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp] logpath = /var/log/mail.log maxretry = 5
Erstellen Sie dann die folgenden zwei Filterdateien:

vi /etc/fail2ban/filter.d/pureftpd.conf


[Definition]
failregex = .*pure-ftpd: (.*@<HOST>) [WARNING] Authentication failed for user.* ignoreregex =

vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf


[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login (auth failed|Aborted login (tried to use disabled|Disconnected (auth failed|Aborted login (d+ authentication attempts).*rip=(?P<host>S*),.* ignoreregex =
Starten Sie fail2ban anschließend neu:

/etc/init.d/fail2ban restart

Um den SquirrelMail Webmail Client zu installieren, benutzen Sie:

apt-get install squirrelmail

Erstellen Sie dann folgenden Symlink...

ln -s /usr/share/squirrelmail/ /var/www/webmail

... und konfigurieren SquirrelMail:

squirrelmail-configure

SquirrelMail muss wissen, dass Sie Dovecot-IMAP/-POP3 benutzen:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <-- D
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others.  If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct.  This does not change everything.  There are
only a few settings that this will change.

Please select your IMAP server:
bincimap    = Binc IMAP server
courier     = Courier IMAP server
cyrus       = Cyrus IMAP server
dovecot     = Dovecot Secure IMAP server
exchange    = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx      = Mac OS X Mailserver
mercury32   = Mercury/32
uw          = University of Washington's IMAP server
gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything
Command >> <-- dovecot
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others.  If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct.  This does not change everything.  There are
only a few settings that this will change.

Please select your IMAP server:
bincimap    = Binc IMAP server
courier     = Courier IMAP server
cyrus       = Cyrus IMAP server
dovecot     = Dovecot Secure IMAP server
exchange    = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx      = Mac OS X Mailserver
mercury32   = Mercury/32
uw          = University of Washington's IMAP server
gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything
Command >> dovecot

imap_server_type = dovecot
default_folder_prefix = <none>
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false

Press enter to continue... <-- drücken Sie ENTER
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <-- S
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <-- Q
Als nächstes aktivieren Sie das globale Alias /webmail für Squirrelmail:

cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 reload

Öffnen Sie nun /etc/apache2/conf.d/squirrelmail.conf...

vi /etc/apache2/conf.d/squirrelmail.conf

... und fügen Sie die folgenden Zeilen zum <Directory /usr/share/squirrelmail></Directory> Container hinzu, der sicherstellt, dass mod_php für den Zugriff auf SquirrelMail benutzt wird, egal welchen PHP Modus Sie in ISPConfig für Ihre Webseite ausgewählt haben:
[...]
Alias /webmail /usr/share/squirrelmail <Directory /usr/share/squirrelmail> Options FollowSymLinks <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_admin_flag allow_url_fopen Off php_value include_path . php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php </IfModule> # access to configtest is limited by default to prevent information leak <Files configtest.php> order deny,allow deny from all allow from 127.0.0.1 </Files> </Directory> [...]
Erstellen Sie das Verzeichnis /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... und übergeben ihn in den Besitz des Benutzers www-data:

chown www-data /var/lib/squirrelmail/tmp

Laden Sie Apache neu:

/etc/init.d/apache2 reload

Das war es auch schon - /etc/apache2/conf.d/squirrelmail.conf definiert ein /squirrelmail genanntes Alias, welches auf SquirrelMails Installationsverzeichnis /usr/share/squirrelmail zeigt.

Sie können SquirrelMail nun folgendermaßen von Ihrer Webseite aus aufrufen:

http://www.example.com/squirrelmail

Sie können es außerdem folgendermaßen über den ISPConfig Control Panel vHost aufrufen (dies bedarf keiner Konfiguration in ISPConfig):

http://server1.example.com:8080/squirrelmail

1 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: g0rbi

Das HowTo ist wirklich klasse. Ich habe das Ding für 3 Server mit MySQL-Circle-Replication durchgespielt und bin fast zufrieden.
Was aber, wenn der Master-Server ausfällt? Fängt ISPconfig das ab? Meiner Meinung nach würde der Einsatz von virtuellen Adressen / DNS Einträgen zusammen mit Heartbeat oder Pacemaker erst vollends Sinn ergeben.
Das wre eine prima Erweiterung um dieses Tutorial abzurunden.