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
yast2Wä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
ifconfigob 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 updateUnd starten Sie dann den Server neu, da Sie höchstwahrscheinlich auch einige Kernel-Updates installiert haben:
reboot6 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-TimeDate7 Journaled Quota
Um Quota zu installieren, führen Sie aus
zypper install quotaBearbeiten 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 /srvquotacheck -avugm
quotaon -avugSeien 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 pythonWenn 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/dovecotAn 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.rebootStarten Sie MySQL, Postfix und Dovecot und aktivieren Sie die Dienste, damit sie beim Booten gestartet werden.
systemctl enable mysql.service
systemctl start mysql.servicesystemctl enable postfix.service
systemctl start postfix.servicesystemctl enable dovecot.service
systemctl start dovecot.serviceJetzt installiere ich das getmail-Paket:
zypper install getmailUm die MySQL-Installation zu sichern, führen Sie aus:
mysql_secure_installationJetzt 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/clamdOpenSUSE 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/amavisKommentieren 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-reloadUm 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.serviceErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.