Der Perfekte Server – Ubuntu 11.10 mit nginx [ISPConfig 3]

16 Installation von PureFTPd und Quota

PureFTPd und quota können mit dem folgenden 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

… und stellen Sie sicher, dass der start mode gleich standalone und VIRTUALCHROOT=true gesetzt sind:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Konfigurieren Sie nun PureFTPd dazu, FTP und TLS Sitzungen zu erlauben. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Dateien in reiner Textform übertragen werden. Durch die Benutzung von TLS wird die gesamte Kommunikation verschlüsselt, wodurch es FTP sehr viel sicherer macht.

Wollen Sie FTP und TLS Sitzungen erlauben, führen Sie folgenden Befehl aus:

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

Um TLS benutzen zu können, müssen Sie ein SSL Zertifikat erstellen. Ich tue dies in /etc/ssl/private/, dieses Verzeichnis muss ich zuerst erstellen:

mkdir -p /etc/ssl/private/

Danach können Sie das SSL Zertifikat folgendermaßen erstellen:

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 Ihre Landesbezeichnung an (z.B., „DE“).
State or Province Name (full name) [Some-State]:
<– Geben Sie Ihr Bundesland an.
Locality Name (eg, city) []:
<– Geben Sie Ihre Stadt an.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
<– Geben Sie den Namen Ihrer Organisation an (z.B., den Namen Ihrer Firma).
Organizational Unit Name (eg, section) []:
<– Geben Sie den Namen Ihrer Organisationseinheit an (z.B. „IT Abteilung“).
Common Name (eg, YOUR name) []:
<– Geben Sie die vollwertige Domain des Systems an (z.B. „server1.example.com“).
Email Address []:
<– Geben Sie Ihre 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 wie folgt aus (Ich habe ,usrjquota=quota.user,grpjquota=quota.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 nodev,noexec,nosuid 0 0
/dev/mapper/server1-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# /boot was on /dev/sda1 during installation
UUID=6fbce377-c3d6-4eb3-8299-88797d4ad18d /boot ext2 defaults 0 2
/dev/mapper/server1-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Um Quota zu erlauben, benutzen Sie diese Befehle:

mount -o remount /

quotacheck -avugm
quotaon -avug

17 Installation des BIND DNS Servers

BIND kann folgendermaßen installiert werden:

apt-get install bind9 dnsutils

18 Installation von Vlogger, Webalizer und AWstats

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

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

19 Installation von Jailkit

Jailkit wird nur gebraucht, wenn Sie SSH Benutzer chrooten möchten. Es kann wie folgt installiert werden (wichtig: Jailkit muss vor ISPConfig installiert werden – dies kann später nicht nachgeholt werden!):

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

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

Installieren Sie das Jailkit .deb Paket nun folgendermaßen:

cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*

20 Installation von fail2ban

Diese ist optional aber empfohlen, da der ISPConfig Monitor versucht, den fail2ban Log anzuzeigen:

apt-get install fail2ban

Um fail2ban PureFTPd, SASL und Courier ü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

[sasl]

enabled = true
port = smtp
filter = sasl
logpath = /var/log/mail.log
maxretry = 5

[courierpop3]

enabled = true
port = pop3
filter = courierpop3
logpath = /var/log/mail.log
maxretry = 5

[courierpop3s]

enabled = true
port = pop3s
filter = courierpop3s
logpath = /var/log/mail.log
maxretry = 5

[courierimap]

enabled = true
port = imap2
filter = courierimap
logpath = /var/log/mail.log
maxretry = 5

[courierimaps]

enabled = true
port = imaps
filter = courierimaps
logpath = /var/log/mail.log
maxretry = 5

Erstellen Sie dann die folgen fünf Filterdateien:

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

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

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

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = pop3d: LOGIN FAILED.*ip=[.*:<HOST>]

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

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

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = pop3d-ssl: LOGIN FAILED.*ip=[.*:<HOST>]

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

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

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = imapd: LOGIN FAILED.*ip=[.*:<HOST>]

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

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

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = imapd-ssl: LOGIN FAILED.*ip=[.*:<HOST>]

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Starten Sie fail2ban danach neu:

/etc/init.d/fail2ban restart

Das könnte Dich auch interessieren …