Server Setup · 8 min read · Feb 13, 2026

Der perfekte Server - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3) - Seite 2

Jetzt mit dem Benutzernamen root und dem Passwort, das Sie während der Installation ausgewählt haben, anmelden.

4 Netzwerk Einstellungen konfigurieren

Wir verwenden Yast, das OpenSuSE-Systemverwaltungstool, um die Netzwerkkarteneinstellungen neu zu konfigurieren. Nach dem ersten Booten ist das System so konfiguriert, dass es die IP-Adresse über DHCP erhält. Für einen Server werden wir es auf eine statische IP-Adresse umstellen.

Führen Sie aus

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 auswählen:

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

Wählen Sie jetzt Routing und geben Sie das Standardgateway ein und drücken Sie OK:

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

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das mit seiner eigenen Firewall kommt. Deshalb deaktiviere ich jetzt die Standard-OpenSUSE-Firewall. Natürlich können Sie sie aktiv lassen und nach Ihren Bedürfnissen konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da sie wahrscheinlich mit der OpenSUSE-Firewall in Konflikt gerät).

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

Klicken Sie auf Fertigstellen und verlassen Sie Yast:

Danach sollten Sie überprüfen mit

ifconfig

ob Ihre Netzwerkkonfiguration korrekt ist. Wenn nicht (zum Beispiel, wenn eth0 fehlt), starten Sie das System neu…

reboot

… und überprüfen Sie Ihre Netzwerkkonfiguration danach erneut - sie sollte jetzt korrekt sein.

5 Updates installieren

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

zypper update

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

reboot

6 Einige grundlegende Pakete installieren

Führen Sie aus

zypper install 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 Quota

Um Quota zu installieren, führen Sie aus

zypper install quota

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

vi /etc/fstab

| /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap swap defaults 0 0 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 / ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /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 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 |

Führen Sie dann aus:

mount -o remount /  
 mount -o remount /srv
quotacheck -avugm  
 quotaon -avug

Seien Sie nicht besorgt, wenn Sie diese Fehlermeldungen sehen - sie sind normal, wenn Sie quotacheck zum ersten Mal ausführen:

server1:~ # quotacheck -avugm  
 quotacheck: Scanning /dev/sda2 [/] done  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Checked 3872 directories and 32991 files  
 quotacheck: Old file not found.  
 quotacheck: Old file not found.  
 quotacheck: Scanning /dev/sda3 [/srv] done  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Cannot stat old user quota file: No such file or directory  
 quotacheck: Cannot stat old group quota file: No such file or directory  
 quotacheck: Checked 6 directories and 0 files  
 quotacheck: Old file not found.  
 quotacheck: Old file not found.  
 server1:~ #

8 Postfix, Dovecot, MySQL installieren

Führen Sie aus

zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Wenn Sie die folgende Nachricht erhalten, wählen Sie bitte die Deinstallation von exim:

Problem: sendmail-8.14.5-85.1.2.x86_64 steht im Konflikt mit postfix, bereitgestellt von postfix-2.9.6-1.2.1.x86_64
Lösung 1: Folgende Aktionen werden durchgeführt:
das Installieren von postfix-2.9.6-1.2.1.x86_64 wird nicht durchgeführt
das Installieren von postfix-mysql-2.9.6-1.2.1.x86_64 wird nicht durchgeführt
Lösung 2: Deinstallation von sendmail-8.14.5-85.1.2.x86_64

Wählen Sie aus den obigen Lösungen nach Nummer oder abbrechen [1/2/c] (c): <– 2

Erstellen Sie den folgenden Symlink:

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

An diesem Punkt musste ich neu starten, da MySQL sich sonst weigerte zu starten mit der Fehlermeldung:

Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details.
reboot

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

systemctl enable mysql.service  
 systemctl start mysql.service
systemctl enable postfix.service  
 systemctl start postfix.service
systemctl enable dovecot.service  
 systemctl start dovecot.service

Jetzt installiere ich das getmail-Paket:

zypper install getmail

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

mysql_secure_installation

Jetzt werden Ihnen mehrere Fragen gestellt:

server1:~ # mysql_secure_installation

HINWEIS: DAS AUSFÜHREN ALLER TEILE DIESER SCRIPT WIRD FÜR ALLE MySQL
SERVER IN PRODUKTION EMPFOHLEN! BITTE JEDEN SCHRITT SORGFÄLTIG LESEN!

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

Geben Sie das aktuelle Passwort für root ein (drücken Sie die Eingabetaste für keines): <– EINGABETASTE
OK, Passwort erfolgreich verwendet, weiter…

Das Setzen des root-Passworts stellt sicher, dass niemand
ohne die richtige Autorisierung auf den MySQL-Benutzer root zugreifen kann.

Root-Passwort setzen? [Y/n] <– Y
Neues Passwort: <– IhrrootSQLPasswort
Neues Passwort erneut eingeben: <– IhrrootSQLPasswort
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen..
… Erfolg!

Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
die es jedem ermöglicht, sich in MySQL anzumelden, ohne
ein Benutzerkonto erstellt zu haben. Dies ist nur für
Tests gedacht und um die Installation etwas reibungsloser zu gestalten.
Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Benutzer entfernen? [Y/n] <– Y
… Erfolg!

Normalerweise sollte root nur von ‘localhost’ aus
verbunden werden dürfen. Dies stellt sicher, dass
niemand das root-Passwort über das Netzwerk erraten kann.

Root-Login aus der Ferne verbieten? [Y/n] <– Y
… Erfolg!

Standardmäßig kommt MySQL mit einer Datenbank namens ‘test’,
die jeder zugreifen kann. Dies ist ebenfalls nur für
Tests gedacht und sollte entfernt werden,
bevor Sie in eine Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? [Y/n] <– Y

  • Testdatenbank wird gelöscht…
    … Erfolg!
  • Berechtigungen auf Testdatenbank werden entfernt…
    … Erfolg!

Das Neuladen der Berechtigungstabellen stellt sicher, dass
alle bisher vorgenommenen Änderungen sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [Y/n] <– Y
… Erfolg!

Aufräumen…

Alles erledigt! Wenn Sie alle oben genannten Schritte abgeschlossen haben,
sollte Ihre MySQL-Installation jetzt sicher sein.

Danke, dass Sie MySQL verwenden!

server1:~ #

Jetzt sollte Ihre MySQL-Einrichtung gesichert sein.

9 Amavisd-new, Spamassassin und Clamav

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

zypper install 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 unter der Zeile $mydomain hinzu:

| [...] $mydomain = 'example.com'; # ein praktischer Standard für andere Einstellungen $myhostname = "server1.$mydomain"; [...] |

Dann erstellen Sie 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.3 hat ein /run-Verzeichnis zum Speichern von Laufzeitdaten. /run ist jetzt ein tmpfs, und /var/run ist jetzt von tmpfs nach /run 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 existieren wird, und daher wird clamd nicht starten. 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 Init-Skript /etc/init.d/amavis 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 Überprüfung auf veraltete PID-Datei #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # PID-Datei ist veraltet, entfernen # echo -n "(veraltete amavisd PID-Datei $AMAVIS_PID gefunden, entfernen. Ist amavisd abgestürzt?)" # rm -f $AMAVIS_PID # fi #fi echo -n "Starte 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 "Starte amavis-milter:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "Fahre Virus-Scanner (amavisd-new) herunter: " #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 "Fahre amavis-milter herunter: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |

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

systemctl --system daemon-reload

Um clamav zu starten, müssen wir die Datenbank herunterladen & mit dem Befehl fortfahren

freshclam

Hinweis: Es dauert lange, die Datenbank herunterzuladen, es wird empfohlen, nicht zu unterbrechen & den freshclam-Update-Dienst nicht dazwischen zu stoppen.

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

systemctl enable amavis.service  
 systemctl enable clamd.service  
 systemctl start amavis.service  
 systemctl start clamd.service
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.