Server Setup · 4 min read · Nov 19, 2025
Der perfekte Server - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Seite 3
8 Installieren Sie Postfix, Dovecot, MySQL
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 sendmail:
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:
installieren Sie postfix-2.9.6-1.2.1.x86_64 nicht
installieren Sie postfix-mysql-2.9.6-1.2.1.x86_64 nicht
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):<-- 2Erstellen 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 dem Fehler:
Fehler beim Ausgeben des Methodenaufrufs: Einheit mysql.service konnte nicht geladen werden: Datei oder Verzeichnis nicht gefunden. Siehe Systemprotokolle und 'systemctl status mysql.service' für 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 Sie mehrere Fragen gestellt:
server1:~ # mysql_secure_installation
HINWEIS: DAS AUSFÜHREN ALLER TEILE DIESER SCRIPT WIRD FÜR ALLE MySQL
SERVER IM PRODUKTIVEINSATZ EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG!
Um sich in MySQL einzuloggen, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie MySQL gerade installiert haben und
Sie das Root-Passwort noch nicht festgelegt haben, ist das Passwort
leer, sodass Sie hier einfach die Eingabetaste drücken sollten.
Geben Sie das aktuelle Passwort für root ein (drücken Sie Enter für keines): <– ENTER
OK, Passwort erfolgreich verwendet, weiter…
Das Festlegen des Root-Passworts stellt sicher, dass niemand ohne
die richtige Autorisierung auf den MySQL-Root-Benutzer zugreifen kann.
Root-Passwort festlegen? [Y/n] <– Y
Neues Passwort: <– yourrootsqlpassword
Neues Passwort erneut eingeben: <– yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Privilegientabellen werden neu geladen..
… Erfolg!
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
die es jedem ermöglicht, sich in MySQL einzuloggen, 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 zugelassen werden.
Dies stellt sicher, dass jemand das Root-Passwort nicht
ü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 obigen 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 $myhostname-Zeile mit Ihrem korrekten Hostnamen unter der $mydomain-Zeile 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 an /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 clamd nicht gestartet werden kann. Daher 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üfen 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
systemctl --system daemon-reloadum clamav zu starten, müssen wir die Datenbank herunterladen und mit dem Befehl fortfahren
freshclam
Hinweis: Es dauert lange, die Datenbank herunterzuladen, es wird empfohlen, nicht zu unterbrechen und 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.