Der Perfekte Server – Ubuntu 11.10 [ISPConfig 3]
12 Installation von Postfix, Courier, Saslauthd, MySQL, rkhunter, binutils
Sie können Postfix, Courier, Saslauthd, MySQL, rkhunter und binutils mit einem einzigen Befehl installieren:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl getmail4 rkhunter binutils maildrop
Sie werden die folgenden Fragen gefragt werden:
New password for the MySQL „root“ user: <– IhrrootSQLPasswort
Repeat password for the MySQL „root“ user: <– IhrrootSQLPasswort
Create directories for web-based administration? <– No
General type of mail configuration: <– Internet Site
System mail name: <– server1.example.com
SSL certificate required <– Ok
Sollten Sie später herausfinden (später, nachdem Sie in ISPConfig Ihren erstes Mailkonto angelegt haben), dass Sie keine Mails versenden können und folgender Fehler in /var/log/mail.log auftaucht…
SASL LOGIN authentication failed: no mechanism available
… gehen Sie bitte auf https://www.howtoforge.com/forums/showpost.php?p=265831&postcount=25 um zu erfahren, wie man den Fehler behebt.
Wir wollen, dass MySQL alle Interfaces überprüft, nicht nur localhost. Editieren Sie deshalb /etc/mysql/my.cnf und kommentieren Sie die Zeile bind-address = 127.0.0.1 aus:
vi /etc/mysql/my.cnf
[...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Starten Sie MySQL dann neu:
/etc/init.d/mysql restart
Überprüfen Sie nun, ob Networking erlaubt ist. Benutzen Sie dazu
netstat -tap | grep mysql
Die Ausgabe sollte etwa so aussehen:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 22355/mysqld
root@server1:~#
Während der Installation werden die SSL Zertifikate für IMAP-SSL und POP3-SSL mit dem Hostnamen localhost erstellt. Um den korrekten Hostnamen anzugeben (server1.example.com in diesem Tutorial) löschen Sie die Zertifikate…
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
… und modifizieren die folgenden zwei Dateien; ersetzen Sie CN=localhost mit CN=server1.example.com (Sie können auch die anderen Werte ändern, sollte dies nötig sein):
vi /etc/courier/imapd.cnf
[...] CN=server1.example.com [...]
vi /etc/courier/pop3d.cnf
[...] CN=server1.example.com [...]
Replizieren Sie dann die Zertifikate…
mkimapdcert
mkpop3dcert
… und starten Courier-IMAP-SSL und Courier-POP3-SSL neu:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
13 Installation von Amavisd-new, SpamAssassin und Clamav
Um amavisd-new, SpamAssassin und ClamAV zu installieren führen Sie folgendes aus:
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract 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
Das ISPConfig 3 Setup benutzt amavisd, welches die SpamAssassin Filter Library intern lädt, sodass Sie SpamAssassin beenden können um ein wenig RAM zu gewinnen:
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
14 Installation von Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby
Sie werden folgendes gefragt werden:
Web server to reconfigure automatically: <– apache2
Configure database for phpmyadmin with dbconfig-common? <– No
Benutzen Sie dann den folgenden Befehl um die Apache-Module suexec, rewrite, ssl, actions und include zu erlauben (plus dav, dav_fs, und auth_digest wenn Sie WebDAV benutzen möchten):
a2enmod suexec rewrite ssl actions include
a2enmod dav_fs dav auth_digest
Starten Sie dann Apache neu:
/etc/init.d/apache2 restart
Wollen Sie auf Ihrer mit ISPConfig erstellten Webseite Ruby Dateien mit der Endung .rb hochladen, müssen Sie die Zeile application/x-ruby rb in /etc/mime.types auskommentieren:
vi /etc/mime.types
[...] #application/x-ruby rb [...]
(Dies ist nur für .rb Dateien nötig; Ruby Dateien mit der Endung .rbx werden ohne Vorkehrungen funktionieren.)
Starten Sie danach Apache neu:
/etc/init.d/apache2 restart
15 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
16 Installation des BIND DNS Servers
BIND kann folgendermaßen 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 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
18 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
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
Gibt der letzte Befehl einen Fehler wie diesen aus…
x86_64-linux-gnu-gcc -lpthread -o jk_socketd
jk_socketd.o jk_lib.o utils.o iniparser.o
jk_socketd.o: In function `main‘:
/tmp/jailkit-2.14/src/jk_socketd.c:474: undefined reference to
`pthread_create‘
collect2: ld returned 1 exit status
make[2]: *** [jk_socketd] Error 1
make[2]: Leaving directory `/tmp/jailkit-2.14/src‘
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/jailkit-2.14′
make: *** [build-arch-stamp] Error 2
root@server1:/tmp/jailkit-2.14#
… installieren Sie bitte gcc-4.4:
apt-get install gcc-4.4
Schauen Sie sich nun /usr/bin/gcc an:
ls -l /usr/bin/gcc*
/usr/bin/gcc sollte im Moment ein Symlink zu /usr/bin/gcc-4.6 sein:
root@server1:/tmp/jailkit-2.14# ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 2011-08-14 09:16 /usr/bin/gcc -> gcc-4.6
-rwxr-xr-x 1 root root 259232 2011-10-05 23:56 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 349120 2011-09-16 16:31 /usr/bin/gcc-4.6
root@server1:/tmp/jailkit-2.14#
Dies müssen Sie ändern, sodass /usr/bin/gcc zu /usr/bin/gcc-4.4 verweist:
ln -sf /usr/bin/gcc-4.4 /usr/bin/gcc
Bauen Sie Jailkit nun wie folgt:
make clean
./configure
make
make clean
./debian/rules binary
Wenn der ./debian/rules binary Befehl Ihnen nun keinen Fehler mehr anzeigt, können Sie das Jailkit .deb Paket folgendermaßen installieren:
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*
Letztendlich biegen Sie den /usr/bin/gcc Symlink wieder zu /usr/bin/gcc-4.6 um:
ln -sf /usr/bin/gcc-4.6 /usr/bin/gcc