Der Perfekte Server - Debian Squeeze (Debian 6.0) mit BIND, Dovecot & Nginx [ISPConfig 3] - Seite 5

14 Installation von PureFTPd und Quota

PureFTPd und Quota können mit folgendem Befehl installiert werden:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Editieren Sie die Datei /etc/default/pure-ftpd-common...

vi /etc/default/pure-ftpd-common

..., stellen Sie sicher, dass der Startmodus auf standalone gesetzt ist und setzen Sie VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Editieren Sie die Datei /etc/inetd.conf um zu verhindern, dass inetd versucht ftp zu starten:

vi /etc/inetd.conf

Gibt es eine Zeile beginnend mit ftp stream tcp, kommentieren Sie diese aus (gibt es diese nicht, ist alles in Ordnung. Dann brauchen Sie die Datei nicht zu verändern ):
[...]
#:STANDARD: These are standard services. #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper [...]
Sollten Sie die Datei /etc/inetd.conf geändert haben, starten Sie inetd nun neu:

/etc/init.d/openbsd-inetd restart

Nun bringen Sie PureFTPd dazu, FTP und TLS Sitzungen zu erlauben. FTP ist ein sehr unsicheres Protokoll, weil alle Passwörter in reinem Text übertragen werden. Durch Benutzung von TLS kann die gesamte Kommunikation verschlüsselt werden, dadurch wird FTP sehr viel sicherer gemacht.

Wollen Sie FTP und TLS Sitzungen erlauben, benutzen Sie

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

Um TLS verwenden zu können, müssen SIe zuerst ein SSL Zerifikat erstellen. Ich werde es im /etc/ssl/private/ Verzeichnis erstellen, deshalb muss ich dieses Verzeichnis ersteinmal erstellen:

mkdir -p /etc/ssl/private/

Danach generieren Sie das SSL Zertifikat wie folgt:

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 Ihren Bundesstaat oder Ihre Provinz an. Locality Name (eg, city) []: <-- Geben Sie Ihre Stadt an. Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Organisationsnamen an (z.B. den Namen Ihrer Firma). Organizational Unit Name (eg, section) []: <-- Geben Sie die Bezeichnung Ihrer Abteilung an (z.B. "IT Department"). Common Name (eg, YOUR name) []: <-- Geben Sie den vollen Domainnamen Ihres Systems an (z.B. "server1.example.com"). Email Address []: <-- Geben Sie Ihre E-Mail Adresse an.
Ändern Sie die Zugriffsberechtigungen 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 /etc/fstab. Meine Datei sieht so aus (ich habe ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zur Partition mit dem Mount Point / 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


15 Installation von Mailman

Ab Version 3.0.4 unterstützt ISPConfig die Verwaltung von Mailman Mailinglisten (Erstellen/Modifizieren/Löschen). Wollen Sie von dieser Neuerung Gebrauch machen, installieren Sie Mailman wie folgt:

apt-get install mailman

Bevor Sie Mailman starten können, müssen Sie zunächst eine erste Mailingliste namens mailman erstellen:

newlist mailman

root@server1:~# newlist mailman
Enter the email of the person running the list:
<-- Admin Email Adresse, z.B. info@example.com Initial mailman password: <-- Admin Password für die Mailman Liste To finish creating your mailing list, you must edit your /etc/aliases or
an equivalent file by adding the following lines:

## mailman mailing list
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Hit enter to notify mailman owner... <-- ENTER
root@server1:~#
Öffnen Sie danach /etc/aliases

vi /etc/aliases

… und fügen die folgenden Zeilen hinzu:
[...]
mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Benutzen Sie dann

newaliases
/etc/init.d/postfix restart

und starten Sie danach den Mailman Daemon:

/etc/init.d/mailman start

Nachdem Sie ISPConfig 3 installiert haben, können Sie folgendermaßen auf Mailman zugreifen:

The ISPConfig Apps vhost auf Port 8081 für nginx liefert eine Mailman Konfiguration, Sie können daher  http://server1.example.com:8081/cgi-bin/mailman/admin/<listname> oder http://server1.example.com:8081/cgi-bin/mailman/listinfo/<listname> benutzen, um auf Mailman zuzugreifen.

Wollen Sie Mailman von Ihren mit ISPConfig erstellten Webseiten nutzen, ist dies mit nginx etwas komplizierter als mit Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite in ISPConfig ein:
 location /cgi-bin/mailman {
root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location /images/mailman { alias /usr/share/images/mailman; } location /pipermail { alias /var/lib/mailman/archives/public; autoindex on; }
Dies definiert das Alias /cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie per http://<vhost>/cgi-bin/mailman/admin/<listname> für eine Liste auf die Mailman Administrator-Kontrolloberfläche zugreifen können; die Webseite für Benutzer einer Mailingliste kann unter http://<vhost>/cgi-bin/mailman/listinfo/<listname> gefunden werden.

Unter http://<vhost>/pipermail können Sie die Mailinglisten-Archive finden.

16 Installation des BIND DNS Servers

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils


17 Installation von Vlogger, Webalizer und AWstats

Vlogger, webalizer und AWstats können wie folgt installiert werden:

apt-get install vlogger webalizer awstats

Ö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 ] && /usr/share/awstats/tools/buildstatic.sh

18 Installation von Jailkit

Jailkit wird nur gebraucht, wenn Sie SSH Benutzer chrooten möchten. Es wird wie folgt installiert (wichtig: Jailkit muss vor ISPConfig installiert werden - es kann nicht im Nachhinein getan werden!):

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

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*


3 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Dirk67

unter Punkt 19 muss es für die /etc/fail2ban/filter.d/dovecot-pop3imap.conf
heißen:
-------------
[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=(?PS*),.*
ignoreregex =
-------------
--> http://wiki.dovecot.org/HowTo/Fail2Ban


Von: Dirk67

Mist... die noetigen Backslashes werden hier nicht mir eingefuegt (ggf. hatte der Autor das selbe Problem) ;-)
also einfach hier schauen --> http://wiki.dovecot.org/HowTo/Fail2Ban


Von: beyerservice

i got this: http://stackoverflow.com/questions/14972792/nginx-nginx-emerg-bind-to-80-failed-98-address-already-in-use

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

had to add ipv6only=on to the [::]:80



This error can be caused if you have a nginx configuration that is listening on port 80 and also on port [::]:80.

I had the following in my default site-available file:

listen 80;
listen [::]:80 default_server;


listen 80;
listen [::]:80 ipv6only=on default_server;