GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

Der perfekte Server – OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3]

Der perfekte Server - OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3]

Dies ist eine detaillierte Beschreibung zur Einrichtung eines OpenSUSE 12.1 64bit (x86_64) Server, der alle von ISPs und Hostern benötigten Dienste anbietet:Apache-Webserver (SSL-fähig) mit PHP-, CGI- und SSI-Unterstützung, Postfix-Mailserver mit SMTP-AUTH, TLS und virtuellen Mailbenutzern, BIND-DNS-Server, Pureftpd-FTP-Server, MySQL Server, Dovecot POP3/IMAP, Quota, Firewall, Mailman usw. Seit Version 3.0.4 bietet ISPConfig zusätzlich zu Apache volle Unterstützung für den nginx-Webserver; Dieses Tutorial behandelt die Einrichtung eines Servers, der Apache und nicht Nginx verwendet.

Ich werde die folgende Software verwenden:

  • Webserver:Apache 2.2 mit PHP 5
  • Datenbankserver:MySQL
  • Mailserver:Postfix mit virtuellen Benutzern
  • DNS-Server:BIND
  • FTP-Server:pureftpd
  • POP3/IMAP:Dovecot
  • Webalizer und AWStats für Website-Statistiken

Am Ende sollten Sie ein System haben, das zuverlässig funktioniert und mit dem ISPConfig 3 Control Panel einfach zu verwalten ist. Die folgende Anleitung gilt für die 64-Bit-Version von OpenSUSE.

Ich möchte zunächst sagen, dass dies nicht die einzige Möglichkeit ist, ein solches System einzurichten. Es gibt viele Wege, dieses Ziel zu erreichen, aber ich gehe diesen Weg. Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

Hinweis:Diese Anleitung gilt für ISPConfig 3.0.1 oder neuer. Es ist nicht für ISPConfig 2.x geeignet!

ISPConfig 3 Handbuch

Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3-Handbuch herunterzuladen.

Auf etwa 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Clients), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.

ISPConfig Monitor-App für Android

Mit der ISPConfig Monitor App können Sie Ihren Serverstatus überprüfen und herausfinden, ob alle Dienste wie erwartet laufen. Sie können TCP- und UDP-Ports überprüfen und Ihre Server anpingen. Darüber hinaus können Sie diese App verwenden, um Details von Servern anzufordern, auf denen ISPConfig installiert ist (Bitte beachten Sie, dass die installierte Mindestversion von ISPConfig 3 mit Unterstützung für die ISPConfig Monitor App 3.0.3.3 ist! ); Diese Details umfassen alles, was Sie aus dem Monitor-Modul im ISPConfig Control Panel wissen (z. B. Dienste, Mail- und Systemprotokolle, Mail-Warteschlange, CPU- und Speicherinformationen, Festplattennutzung, Quote, Betriebssystemdetails, RKHunter-Protokoll usw.) und natürlich , da ISPConfig Multiserver-fähig ist, können Sie alle Server prüfen, die von Ihrem ISPConfig-Masterserver gesteuert werden.

Anweisungen zum Herunterladen und zur Verwendung finden Sie unter http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

1 Voraussetzungen

Um ein solches System zu installieren, benötigen Sie Folgendes:

  • Die OpenSUSE 12.1DVD . Sie können es hier herunterladen:http://download.opensuse.org/distribution/12.1/iso/openSUSE-12.1-DVD-x86_64.iso
  • Eine schnelle Internetverbindung...

2 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

3 Das Basissystem

Booten Sie von Ihrer OpenSUSE 12.1 DVD und wählen Sie Installation:

Wählen Sie Ihre Sprache und Ihr Tastaturlayout aus und akzeptieren Sie die Lizenzbedingungen:

Das Installationsprogramm analysiert Ihre Hardware und erstellt den Software-Repository-Cache:

Wählen Sie Neuinstallation:

Wählen Sie die Region und die Zeitzone aus:

Wir wählen hier Andere> Minimale Serverauswahl (Textmodus), da wir einen Server ohne X-Window-Desktop installieren möchten. Das X-Window-System ist zum Ausführen des Servers nicht erforderlich und würde das System verlangsamen. Wir erledigen alle Verwaltungsaufgaben auf der Shell oder über eine SSH-Verbindung, z. über PuTTY von einem Remote-Desktop.

Der perfekte Server – OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3] – Seite 2

4 Konfigurieren Sie die Netzwerkeinstellungen

Wir verwenden Yast, das Systemverwaltungstool von OpenSuSE, um die Netzwerkkarteneinstellungen neu zu konfigurieren. Nach dem ersten Start ist das System so konfiguriert, dass es die IP-Adresse mit DHCP bezieht. Für einen Server werden wir ihn auf eine statische IP-Adresse umstellen.

Ausführen

yast2

Wählen Sie Netzwerkgeräte> Netzwerkeinstellungen:

Wählen Sie Ihre Netzwerkkarte und dann Bearbeiten:

Wählen Sie Statisch zugewiesene IP-Adresse und geben Sie die IP-Adresse, die Subnetzmaske und den Hostnamen ein und speichern Sie die Änderungen, indem Sie Weiter:

wählen

Wählen Sie nun Hostname/DNS und geben Sie den Hostnamen (z. B. server1.example.com) und die Nameserver (z. B. 145.253.2.75 und 8.8.8.8) ein:

Wählen Sie nun Routing und geben Sie das Standard-Gateway ein und drücken Sie OK:

Um die Firewall zu konfigurieren (falls Sie sie nicht während der Basisinstallation konfiguriert haben), wählen Sie Sicherheit und Benutzer> Firewall in Yast:

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das mit einer eigenen Firewall geliefert wird. Deshalb deaktiviere ich jetzt die standardmäßige OpenSUSE-Firewall. Natürlich steht es Ihnen frei, es eingeschaltet zu lassen und nach Ihren Bedürfnissen zu konfigurieren (aber dann sollten Sie später keine andere Firewall mehr verwenden, da diese höchstwahrscheinlich die OpenSUSE-Firewall stört).

Wählen Sie Automatisches Starten der Firewall deaktivieren und Firewall jetzt stoppen und klicken Sie dann auf Weiter:

Klicken Sie auf „Fertig stellen“ und verlassen Sie Yast:

Danach sollten Sie mit

nachsehen
ifconfig

wenn Ihre Netzwerkkonfiguration korrekt ist. Wenn dies nicht der Fall ist (z. B. wenn eth0 fehlt), starten Sie das System neu ...

reboot

... und überprüfen Sie danach noch einmal Ihre Netzwerkkonfiguration - sie sollte jetzt stimmen.

5 Updates installieren

Jetzt installieren wir die neuesten Updates aus den openSUSE-Repositories. Ausführen

zypper update 

Und starten Sie dann den Server neu, da Sie höchstwahrscheinlich auch einige Kernel-Updates installiert haben:

reboot 

6 Einige Basispakete installieren

Ausführen

yast2 -i findutils readline glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo perl-TimeDate

7 Journaled-Quote

Führen Sie zum Installieren von Quota

aus
yast2 -i quota

Bearbeiten Sie /etc/fstab so, dass es so aussieht (ich habe ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zu den Einhängepunkten / und /srv hinzugefügt):

vi /etc/fstab
/dev/sda1            swap                 swap       defaults              0 0
/dev/sda2            /                    ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
/dev/sda3            /srv                 ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

Führen Sie dann Folgendes aus:

mount -o remount /
mount -o remount /srv

quotecheck -avugm
quotaon -avug

Machen Sie sich keine Sorgen, wenn Sie diese Fehlermeldungen sehen - sie sind normal, wenn Sie quotacheck zum ersten Mal ausführen:

server1:~ # quotacheck -avugm
quotacheck:Scannen von /dev/sda2 [/] abgeschlossen
quotacheck:Alte Benutzerkontingentdatei kann nicht angezeigt werden:Datei oder Verzeichnis nicht vorhanden
quotacheck:Alte Gruppe kann nicht angezeigt werden Quotendatei:Datei oder Verzeichnis nicht vorhanden
quotacheck:Alter Benutzer kann nicht ermittelt werden Quotendatei:Datei oder Verzeichnis nicht vorhanden
quotacheck:Quotendatei der alten Gruppe kann nicht ermittelt werden:Datei oder Verzeichnis nicht vorhanden
quotacheck:3872 Verzeichnisse und 32991 Dateien überprüft
quotacheck:Alte Datei nicht gefunden.
quotacheck:Alte Datei nicht gefunden.
quotacheck:Scannen von /dev/sda3 [/srv] abgeschlossen
quotacheck:Kontingentdatei des alten Benutzers kann nicht angezeigt werden:Keine solche Datei oder dieses Verzeichnis
quotacheck:Kontingentdatei der alten Gruppe kann nicht angezeigt werden:Keine solche Datei oder dieses Verzeichnis
quotacheck:Kontingentdatei des alten Benutzers kann nicht angezeigt werden:Keine solche Datei oder dieses Verzeichnis
quotacheck:Kontingentdatei der alten Gruppe kann nicht angezeigt werden:Keine solche Datei oder Verzeichnis
quotacheck:6 Verzeichnisse und 0 Dateien überprüft
quotacheck:Alte Datei nicht gefunden.
quotacheck:Alte Datei nicht gefunden.
ser ver1:~ #

Der perfekte Server – OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3] – Seite 4

8 Postfix, Dovecot, MySQL installieren

Ausführen

yast2 -i postfix postfix-mysql mysql mysql-community-server mysql-client libmysqlclient-devel dovecot12 dovecot12-backend-mysql pwgen cron python

Wenn Sie die Fehlermeldung Patterns-openSUSE-minimal_base-conflicts-12.1-25.21.1.x86_64 conflicts with python von python-2.7.2-7.1.3.x86_64 erhalten, wählen Sie die Option deinstallation of pattern-openSUSE-minimal_base-conflicts- 12.1-25.21.1.x86_64 und klicken Sie auf OK – Versuchen Sie es erneut:

Klicken Sie auf dem nächsten Bildschirm auf Akzeptieren...

... und schließlich OK:

Öffnen Sie /etc/postfix/master.cf...

vi /etc/postfix/master.cf

... und kommentieren Sie die folgende Zeile aus:

[...]
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
[...]

Erstellen Sie den folgenden symbolischen Link:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

Starten Sie MySQL, Postfix und Dovecot und aktivieren Sie, dass die Dienste beim Booten gestartet werden.

systemctl aktiviert mysql.service
systemctl startet mysql.service

systemctl postfix.service aktivieren
systemctl postfix.service starten

systemctl ermöglicht dovecot.service
systemctl startet dovecot.service

Jetzt installiere ich das getmail-Paket:

yast2 -i getmail

Um die MySQL-Installation zu sichern, führen Sie Folgendes aus:

mysql_secure_installation

Nun werden Ihnen mehrere Fragen gestellt:

server1:~ # mysql_secure_installation




HINWEIS:DAS AUSFÜHREN ALLER TEILE DIESES SKRIPTS WIRD FÜR ALLE MySQL
      SERVER IM PRODUKTIONSZWECK EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH!


Um sich bei MySQL anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie gerade MySQL installiert und
das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer,
also sollten Sie hier einfach die Eingabetaste drücken.

Enter Aktuelles Passwort für Root (Eingabe für keine):<-- ENTER
OK, erfolgreich verwendetes Passwort, weiter ...

Das Festlegen des Root-Passworts stellt sicher, dass sich niemand bei MySQL anmelden kann
Root-Benutzer ohne die entsprechende Berechtigung.

Root-Passwort festlegen? [Y/n] <-- Y
Neues Passwort: <-- yourrootsqlpassword
Neues Passwort erneut eingeben: <-- yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen. .
 ... Erfolg!


Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer, der ermöglicht, dass sich jeder
bei MySQL anmelden kann, ohne einen Benutzeraccount haben zu müssen für
sie erstellt. Dies ist nur zum Testen sollte und damit die Installation
etwas flüssiger läuft. Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Nutzer entfernen? [J/n] <-- J
 ... Erfolg!

Normalerweise sollte root nur erlaubt werden, sich von 'localhost' aus zu verbinden. Dies
stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.

Root-Anmeldung aus der Ferne nicht zulassen? [J/n] <-- J
 ... Erfolg!

Standardmäßig wird MySQL mit einer Datenbank namens "test" geliefert, auf die jeder
zugreifen kann. Dies ist auch nur zum Testen vorgesehen und sollte entfernt werden
bevor in eine Produktionsumgebung umgezogen wird.

Testdatenbank und Zugriff darauf entfernen? [J/n] <-- J
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für Testdatenbank entfernen...
 ... Erfolg !

Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen
sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [J/n] <-- J
 ... Erfolg!

Aufräumen ...



Alles erledigt! Wenn Sie alle obigen Schritte durchgeführt haben, sollte Ihre MySQL
Installation jetzt sicher sein.

Vielen Dank, dass Sie MySQL verwenden!


server1:~ #

Jetzt sollte Ihr MySQL-Setup gesichert sein.

9 Amavisd-new, Spamassassin und Clamav

Installieren Sie Amavisd-new, Spamassassin und Clamav Antivirus. Ausführen

yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Öffnen Sie /etc/amavisd.conf...

vi /etc/amavisd.conf

... und fügen Sie die Zeile $myhostname mit Ihrem korrekten Hostnamen unterhalb der Zeile $mydomain hinzu:

[...]
$mydomain = 'example.com';   # a convenient default for other settings
$myhostname = "server1.$mydomain";
[...]

Erstellen Sie dann einen Symlink von /var/run/clamav/clamd zu /var/lib/clamav/clamd-socket:

mkdir -p /var/run/clamav
ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.1 hat ein /run-Verzeichnis zum Speichern von Laufzeitdaten. /run ist jetzt ein tmpfs, und /var/run ist jetzt an /run von tmpfs gebunden und wird daher beim Neustart geleert.

Das bedeutet, dass nach einem Neustart das Verzeichnis /var/run/clamav, das wir gerade erstellt haben, nicht mehr existiert und daher clamd nicht gestartet werden kann. Deshalb erstellen wir jetzt die Datei /etc/tmpfiles.d/clamav.conf, die dieses Verzeichnis beim Systemstart erstellt (siehe http://0pointer.de/public/systemd-man/tmpfiles.d.html für weitere Details):

vi /etc/tmpfiles.d/clamav.conf
D /var/run/clamav 0755 root root -

Bevor wir amavisd und clamd starten, müssen wir das /etc/init.d/amavis Init-Skript bearbeiten - ich konnte amavisd mit dem Standard-Init-Skript nicht zuverlässig starten, stoppen und neu starten:

vi /etc/init.d/amavis

Kommentieren Sie die folgenden Zeilen im Start- und Stoppabschnitt aus:

[...]
    start)
        # ZMI 20100428 check for stale pid file
        #if test -f $AMAVIS_PID ; then
        #       checkproc -p $AMAVIS_PID amavisd
        #       if test $? -ge 1 ; then
        #               # pid file is stale, remove it
        #               echo -n "(stale amavisd pid file $AMAVIS_PID found, removing. Did amavisd crash?)"
        #               rm -f $AMAVIS_PID
        #       fi
        #fi
        echo -n "Starting virus-scanner (amavisd-new): "
        $AMAVISD_BIN start
        #if ! checkproc amavisd; then
        #    rc_failed 7
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Starting amavis-milter:"
        #    startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1
        #    rc_status -v
        #fi
        ;;
    stop)
        echo -n "Shutting down virus-scanner (amavisd-new): "
        #if checkproc amavisd; then
        #    rc_reset
            $AMAVISD_BIN stop
        #else
        #    rc_reset
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Shutting down amavis-milter: "
        #    killproc -TERM $AMAVIS_MILTER_BIN
        #    rc_status -v
        #fi
        ;;
[...]

Da wir das Init-Skript geändert haben, müssen wir

ausführen
systemctl --system daemon-reload

jetzt.

Um die Dienste zu aktivieren, führen Sie Folgendes aus:

systemctl aktiviert amavis.service
systemctl aktiviert clamd.service
systemctl startet amavis.service
systemctl startet clamd.service

10 Installieren Sie den Apache 2-Webserver mit PHP5, Ruby, Python, WebDAV

Installieren Sie Apache2 und suphp. Ausführen:

yast2 -i apache2 apache2-mod_fcgid

Installieren Sie PHP5:

yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
zypper install http://download.opensuse.org/repositories/server:/php/openSUSE_12.1/x86_64/suphp-0.7.1-3.3.x86_64.rpm

Führen Sie dann diese Befehle aus, um die Apache-Module (einschließlich WebDAV) zu aktivieren:

a2enmod suexec
a2enmod rewrite
a2enmod ssl
a2enmod Aktionen
a2enmod suphp
a2enmod fcgid
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
chown root:www /usr/sbin/suexec2
chmod 4755 /usr/sbin/suexec2

a2enflag SSL

Als nächstes bauen wir das Apache-Modul mod_ruby (es ist nicht als OpenSUSE 12.1-Paket verfügbar, daher müssen wir es selbst bauen):

yast2 -i apache2-devel ruby ruby-devel

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

a2enmod ruby

Um Python-Unterstützung hinzuzufügen, führen Sie Folgendes aus:

yast2 -i apache2-mod_python
a2enmod python 

Als nächstes installieren wir phpMyAdmin:

yast2 -i phpMyAdmin

Um sicherzustellen, dass wir später von allen Websites, die über ISPConfig erstellt wurden, auf phpMyAdmin zugreifen können, verwenden wir /phpmyadmin (z. B. http://www.example.com/phpmyadmin) und /phpMyAdmin (z. B. http://www.example.com/phpMyAdmin). ), öffnen Sie /etc/apache2/conf.d/phpMyAdmin.conf...

vi /etc/apache2/conf.d/phpMyAdmin.conf

... und füge gleich am Anfang die folgenden zwei Aliase hinzu:

Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin
Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin
[...]

Apache starten:

systemctl aktiviert apache2.service
systemctl startet apache2.service

Der perfekte Server – OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3] – Seite 5

11 Postbote

Seit Version 3.0.4 ermöglicht Ihnen ISPConfig auch das Verwalten (Erstellen/Ändern/Löschen) von Mailman-Mailinglisten. Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:

yast2 -i mailman

Bevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:

/usr/lib/mailman/bin/newlist mailman

server1:~ # /usr/lib/mailman/bin/newlist mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste führt:<-- Admin-E-Mail-Adresse, z. B. [email protected]
Anfängliches Mailman-Passwort:<-- Admin-Passwort für die Mailman-Liste
Drücken Sie die Eingabetaste, um den Mailman-Eigentümer zu benachrichtigen... <-- ENTER

server1:~ #

Erstellen Sie die Systemstart-Links für Mailman...

systemctl enable mailman.service

... und starten Sie es:

  systemctl start mailman.service

Als nächstes Postfix neu starten:

systemctl restart postfix.service

Um die Mailman-Apache-Konfiguration zu aktivieren, führen Sie...

aus
a2enflag MAILMAN

... und Apache neu starten:

systemctl restart apache2.service  

Nachdem Sie ISPConfig 3 installiert haben, können Sie wie folgt auf Mailman zugreifen:

Sie können den Alias ​​/mailman für alle Apache-Vhosts verwenden (bitte beachten Sie, dass suExec für alle Vhosts deaktiviert sein muss, von denen aus Sie auf Mailman zugreifen möchten!), was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http:///mailman/admin/, und die Webseite für Benutzer einer Mailingliste finden Sie unter http:///mailman/listinfo/.

Unter http:///pipermail/ finden Sie das Archiv der Mailingliste.

12 Installieren Sie PureFTPd

Installieren Sie den FTP-Daemon pure-ftpd. Ausführen:

yast2 -i pure-ftpd

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

Jetzt konfigurieren wir PureFTPd so, dass FTP- und TLS-Sitzungen zugelassen werden. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird.

OpenSSL wird von TLS benötigt; Um OpenSSL zu installieren, führen wir einfach Folgendes aus:

yast2 -i openssl

Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf...

vi /etc/pure-ftpd/pure-ftpd.conf

Wenn Sie FTP und zulassen möchten TLS-Sitzungen, setzen Sie TLS auf 1:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]

Wenn Sie nur TLS-Sitzungen akzeptieren möchten (kein FTP), setzen Sie TLS auf 2:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      2
[...]

Um TLS überhaupt nicht zuzulassen (nur FTP), setzen Sie TLS auf 0:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      0
[...]

Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, also erstelle ich zuerst dieses Verzeichnis:

mkdir -p /etc/ssl/private/

Anschließend können wir das SSL-Zertifikat wie folgt generieren:

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

Ländername (2-Buchstaben-Code) [AU]:<-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Staats- oder Provinzname (vollständiger Name) [Some-State]:<-- Geben Sie Ihren Staat ein oder Provinzname.
Ortsname (zB Stadt) []:<-- Geben Sie Ihre Stadt ein.
Organisationsname (zB Firma) [Internet Widgits Pty Ltd]:<-- Geben Sie Ihren Organisationsnamen ein (z. B. der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abteilung) []:<-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. IHR Name) []:<-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []:<-- Geben Sie Ihre E-Mail-Adresse ein.

Ändern Sie die Berechtigungen des SSL-Zertifikats:

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

Starten Sie abschließend PureFTPd neu:

systemctl restart pure-ftpd.service 

Das ist es. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten jedoch Ihren FTP-Client so konfigurieren, dass er TLS verwendet – siehe nächstes Kapitel, wie Sie dies mit FileZilla tun.

13 Installieren Sie BIND

Der BIND-Nameserver kann wie folgt installiert werden:

yast2 -i bind

Erstellen Sie die Startlinks für das BIND-System und starten Sie es:

systemctl enable named.service
systemctl start named.service

14 Installieren Sie Webalizer und AWStats

Da ISPConfig 3 Ihnen die Wahl lässt, ob Sie Webalizer oder AWStats verwenden möchten, um Ihre Website-Statistiken zu erstellen, installieren wir beide (zum Zeitpunkt des Schreibens dieses Artikels gab es kein AWStats-Paket für OpenSUSE 12.1, daher installiere ich das für OpenSUSE 11.4). :

yast2 -i webalizer perl-DateManip
zypper install http://download.opensuse.org/repositories/network:/utilities/openSUSE_11.4/noarch/awstats-7.0-14.1.noarch.rpm

15 Installieren Sie fail2ban

fail2ban kann wie folgt installiert werden:

yast2 -i fail2ban

16 Jailkit installieren

Jailkit kann folgendermaßen installiert werden:

zypper install http://download.opensuse.org/repositories/security/openSUSE_12.1/x86_64/jailkit-2.13-1.1.x86_64.rpm

17 Synchronisieren Sie die Systemuhr

Wenn Sie die Systemuhr mit einem NTP-Server synchronisieren möchten, gehen Sie wie folgt vor:

yast2 -i xntp

Fügen Sie dann Systemstartlinks für ntp hinzu und starten Sie ntp:

systemctl aktiviert ntp.service
systemctl startet ntp.service

18 Installieren Sie rkhunter

rkhunter kann wie folgt installiert werden:

yast2 -i rkhunter

Der perfekte Server – OpenSUSE 12.1 x86_64 mit Apache2 [ISPConfig 3] – Seite 6

19 Installieren Sie SquirrelMail

Um den SquirrelMail-Webmail-Client zu installieren, führen Sie Folgendes aus:

yast2 -i squirrelmail-beta

Als nächstes erstellen wir die Aliase /webmail und /squirrelmail gleich am Anfang von /etc/apache2/conf.d/squirrelmail.conf, damit auf SquirrelMail von jedem vhost zugegriffen werden kann (z.B. http://www.example.com/webmail oder http://www.example.com/squirrelmail):

vi /etc/apache2/conf.d/squirrelmail.conf
Alias /squirrelmail /srv/www/htdocs/squirrelmail
Alias /webmail /srv/www/htdocs/squirrelmail
[...]

Als nächstes erstellen wir das Verzeichnis /srv/www/htdocs/squirrelmail/data und geben ihm ausreichende Berechtigungen, damit die Gruppe www darin schreiben kann:

mkdir /srv/www/htdocs/squirrelmail/data
chown root:www /srv/www/htdocs/squirrelmail/data
chmod 770 /srv/www/htdocs/squirrelmail/data

Starten Sie dann Apache neu:

systemctl restart apache2.service

Konfigurieren Sie dann SquirrelMail:

/srv/www/htdocs/squirrelmail/config/conf.pl

Wir müssen SquirrelMail mitteilen, dass wir Dovecot verwenden:

WARNUNG:
  Die Datei "config/config.php" wurde gefunden, aber ist für 
  eine ältere Version von SquirrelMail. Es ist möglich immer noch 
  die Standardwerte aus dieser Datei zu lesen , aber sei gewarnt dass sich viele
 Präferenzen zwischen Versionen ändern. Es wird empfohlen, dass
 Sie mit einer sauberen config.php für jedes Upgrade beginnen, das Sie
  durchführen. Dazu verschieben Sie einfach config/config.php aus dem Weg.

Weiter laden mit der alten config.php [j/N]? <--y

Möchten Sie, dass ich aufhöre, Sie zu warnen [y/N]? <--y

SquirrelMail-Konfiguration : Lesen Sie: config.php (1.5.0)
--------------------- ------------------------------------
Hauptmenü --
1. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Benutzeroberfläche
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
10. Spracheinstellungen
11. Anpassungen

D. Festlegen vordefinierter Einstellungen für bestimmte IMAP-Server

C   Farbe einschalten
S   Daten speichern
Q   Beenden

Befehl >> <-- D


SquirrelMail-Konfiguration : Lesen Sie: config.php
---------------------- ------------------------------
Während wir SquirrelMail entwickelt haben, haben wir einige
Einstellungen entdeckt die mit einigen Servern besser funktionieren, die mit anderen nicht
gut funktionieren. Wenn Sie Ihren IMAP-Server auswählen, legt diese Option 
einige vordefinierte Einstellungen für diesen Server fest.

Bitte beachten Sie müssen noch durchgehen und sicherstellen, dass
alles so ist ist richtig. Das ändert nicht alles. Es sind
nur einige Einstellungen, die dadurch geändert werden.

Bitte wählen Sie Ihren IMAP-Server aus:
    bincimap    = Binc-IMAP-Server
    courier     = Courier-IMAP-Server
    cyrus       = Cyrus IMAP Server
    dovecot     = Dovecot Secure IMAP Server
    exchange    = Microsoft Exchange IMAP Server
    hmailserver = hMail Server
    macosx      = Mac OS X > Mailserver 
    macosx      = Mac OS X > Mailserver /32
    uw          = IMAP Server der University of Washington
    gmail       = IMAP-Zugriff auf Google Mail (Gmail) Konten

    beenden        = Nichts ändern

Befehl >> <-- dovecot


SquirrelMail Configuration : Read: config.php
------------------- --------------------------------------
Während wir SquirrelMail entwickelt haben, wir haben einige
Einstellungen entdeckt, die mit einigen Servern besser funktionieren, die mit anderen nicht
gut funktionieren. Wenn Sie Ihren IMAP-Server auswählen, legt diese Option 
einige vordefinierte Einstellungen für diesen Server fest.

Bitte beachten Sie müssen noch durchgehen und sicherstellen, dass
alles so ist ist richtig. Das ändert nicht alles. Es sind
nur einige Einstellungen, die dadurch geändert werden.

Bitte wählen Sie Ihren IMAP-Server aus:
    bincimap    = Binc-IMAP-Server
    courier     = Courier-IMAP-Server
    cyrus       = Cyrus IMAP Server
    dovecot     = Dovecot Secure IMAP Server
    exchange    = Microsoft Exchange IMAP Server
    hmailserver = hMail Server
    macosx      = Mac OS X > Mailserver 
    macosx      = Mac OS X > Mailserver /32
    uw          = IMAP Server der University of Washington
    gmail       = IMAP-Zugriff auf Google Mail (Gmail) Konten

    beenden        = Nichts ändern

Befehl>> dovecot

IMAP_SERVER_TYPE =DOVECOT
default_folder_prefix =
tRash_Folder =Trash
sent_Folder =sent
entworfen_folder =entworfen
show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_op tion = false
            optional_delimiter = detect
                 delete_folder = false
      force_username_lowercase = true

Drücken Sie die Eingabetaste, um fortzufahren... <-- ENTER


SquirrelMail Konfiguration : Lesen Sie: config.php (1.5.0)
------------------------------------ ------------------------
Hauptmenü --
1. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Benutzeroberfläche
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Database
10. Language settings
11. Tweaks

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.5.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. User Interface
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Language settings
11. Tweaks

D. Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> S

Data saved in config.php



Done activating plugins; registration data saved in plugin_hooks.php

Press enter to continue... <-- ENTER


SquirrelMail Configuration : Read: config.php (1.5.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. User Interface
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Language settings
11. Tweaks

D. Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <-- Q

After you have created a website in ISPConfig, you can access SquirrelMail using the /webmail or /squirrelmail aliases:

20 ISPConfig 3

Before we install ISPConfig 3, make sure that the /var/vmail/ directory exists:

mkdir /var/vmail/

Download the current ISPConfig 3 version and install it. The ISPConfig installer will configure all services like Postfix, Dovecot, etc. for you. A manual setup as required for ISPConfig 2 is not necessary anymore.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel, so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install /installieren/

Now start the installation process by executing:

php -q install.php

server1:/tmp/ispconfig3_install/install # php -q install.php


--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | | `--. \  __/  | | / _ \| '_ \| _| |/ _` | |_ |
 _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: openSUSE or compatible, unknown version.

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with .
    Tap in "quit" (without the quotes) to stop the installer.


Select language (en,de) [en]: <-- ENTER

Installation mode (standard,expert) [standard]: <-- ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- ENTER

MySQL server hostname [localhost]: <-- ENTER

MySQL root username [root]: <-- ENTER

MySQL root password []: <-- yourrootsqlpassword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

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]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, sect ion) []: <-- ENTER
Common Name (eg, YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
chmod: cannot access `/etc/dovecot/dovecot-sql.conf~': No such file or directory
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- ENTER

Generating RSA private key, 4096 bit long modulus
........++
.....................................++
e is 65537 (0x10001)
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]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER
An optional company name []: <-- ENTER
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
redirecting to systemctl
redirecting to systemctl
redirecting to systemctlredirecting to systemctl
redirecting to systemctl
redirecting to systemctl
redirecting to systemctl
redirecting to systemctl
Installation completed.
server1:/tmp/ispconfig3_install/install #

Clean up the /tmp directory:

cd /tmp
rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Open /etc/suphp.conf...

vi /etc/suphp.conf

... and make sure that it contains x-httpd-suphp="php:/srv/www/cgi-bin/php" instead of x-httpd-suphp="php:/srv/www/cgi-bin/php5" towards the end of the file:

[...]
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/srv/www/cgi-bin/php"
[...]

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ (http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password after your first login):

20.1 ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend to download the ISPConfig 3 Manual.

On about 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

20.2 ISPConfig Monitor App For Android

Mit der ISPConfig Monitor App können Sie Ihren Serverstatus überprüfen und herausfinden, ob alle Dienste wie erwartet laufen. Sie können TCP- und UDP-Ports überprüfen und Ihre Server anpingen. In addition to that you can use this app to request details from servers that have ISPConfig installed (please note that the minimum installed ISPConfig 3 version with support for the ISPConfig Monitor App is 3.0.3.3! ); these details include everything you know from the Monitor module in the ISPConfig Control Panel (e.g. services, mail and system logs, mail queue, CPU and memory info, disk usage, quota, OS details, RKHunter log, etc.), and of course, as ISPConfig is multiserver-capable, you can check all servers that are controlled from your ISPConfig master server.

Anweisungen zum Herunterladen und zur Verwendung finden Sie unter http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

  • OpenSUSE:http://www.opensuse.org/
  • ISPConfig:http://www.ispconfig.org/

Panels
  1. Der perfekte Server – OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  2. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 2]

  3. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 3]

  4. Der perfekte Server - Ubuntu 11.04 [ISPConfig 3]

  5. Der perfekte Server – CentOS 5.6 x86_64 [ISPConfig 2]

Der perfekte Server – CentOS 6.2 x86_64 mit Apache2 [ISPConfig 3]

Der perfekte Server – CentOS 6.1 x86_64 mit nginx [ISPConfig 3]

Der perfekte Server – OpenSUSE 12.2 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)