MySQL und Postfix · 5 min read · Dec 16, 2025

Der perfekte Server - OpenSUSE 11.4 x86_64 [ISPConfig 2] - Seite 4

8 MySQL

Um MySQL zu installieren, führen wir aus

yast2 -i mysql mysql-community-server mysql-client perl-DBD-mysql perl-DBI perl-Data-ShowTable libmysqlclient-devel libmysqlclient16 libmysqlclient16-32bit libmysqlclient_r16-32bit

Dann fügen wir die Systemstartlinks für MySQL hinzu und starten es:

chkconfig -f –add mysql
/etc/init.d/mysql start

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Führen Sie aus

netstat -tap | grep mysql

Im Output sollten Sie etwas wie dies sehen:

server1:~ # netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 5059/mysqld
server1:~ #

Wenn Sie keine Zeile wie diese sehen, bearbeiten Sie /etc/my.cnf, kommentieren Sie die Option skip-networking aus:

vi /etc/my.cnf

| [...] #skip-networking [...] |

und starten Sie Ihren MySQL-Server neu:

/etc/init.d/mysql restart

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

mysql_secure_installation

Jetzt werden Sie mehrere Fragen gestellt:

server1:~ # mysql_secure_installation

HINWEIS: DAS AUSFÜHREN ALLER TEILE DIESER SCRIPTES WIRD FÜR ALLE MySQL
SERVER IM PRODUKTIONSEINSATZ EMPFOHLEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG!

Um sich in MySQL einzuloggen und 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, 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 Festlegen des Root-Passworts stellt sicher, dass niemand ohne die
richtige Autorisierung auf den MySQL-Root-Benutzer zugreifen kann.

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

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

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

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

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

Standardmäßig kommt MySQL mit einer Datenbank namens ‘test’, auf die jeder
Zugriff hat. Dies ist ebenfalls nur für Tests gedacht und sollte
vor dem Wechsel in eine Produktionsumgebung entfernt werden.

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

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

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

Berechtigungstabellen jetzt neu laden? [Y/n] <– EINGABETASTE
… 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-Konfiguration gesichert sein.

Jetzt müssen wir dies tun…

mkdir -p /usr/local/lib/mysql
ln -s /usr/include/mysql /usr/local/lib/mysql/include
ln -s /usr/lib64/mysql /usr/local/lib/mysql/lib
cd /usr/local/lib/mysql/lib
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so.16
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so.16.0.0
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16.0.0

… denn andernfalls würden wir während der ISPConfig-Installation den folgenden Fehler erhalten:

configure: error: Cannot find libmysqlclient under /usr/local/lib/mysql. 

9 Postfix mit SMTP-AUTH und TLS

Jetzt installieren wir Postfix und Cyrus-SASL:

yast2 -i postfix cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd procmail

Dann fügen wir die Systemstartlinks für Postfix und saslauthd hinzu und starten sie:

chkconfig -f –add postfix
/etc/init.d/postfix start

chkconfig -f –add saslauthd
/etc/init.d/saslauthd start

Anschließend erstellen wir die Zertifikate für TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Als nächstes konfigurieren wir Postfix für SMTP-AUTH und TLS:

postconf -e ‘mydomain = example.com’
postconf -e ‘myhostname = server1.$mydomain’
postconf -e ‘mynetworks = 127.0.0.0/8’
postconf -e ‘smtpd_sasl_local_domain =’
postconf -e ‘smtpd_sasl_auth_enable = yes’
postconf -e ‘smtpd_sasl_security_options = noanonymous’
postconf -e ‘broken_sasl_auth_clients = yes’
postconf -e ‘smtpd_sasl_authenticated_header = yes’
postconf -e ‘smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,check_relay_domains’
postconf -e ‘inet_interfaces = all’
postconf -e ‘alias_maps = hash:/etc/aliases’
postconf -e ‘smtpd_tls_auth_only = no’
postconf -e ‘smtp_use_tls = yes’
postconf -e ‘smtpd_use_tls = yes’
postconf -e ‘smtp_tls_note_starttls_offer = yes’
postconf -e ‘smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’
postconf -e ‘smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’
postconf -e ‘smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’
postconf -e ‘smtpd_tls_loglevel = 1’
postconf -e ‘smtpd_tls_received_header = yes’
postconf -e ‘smtpd_tls_session_cache_timeout = 3600s’
postconf -e ‘tls_random_source = dev:/dev/urandom’

(Stellen Sie sicher, dass Sie den richtigen Hostnamen/Domäne in mydomain und myhostname verwenden!)

Um TLS-Verbindungen in Postfix zu aktivieren, bearbeiten Sie /etc/postfix/master.cf und entfernen Sie das Kommentarzeichen von der tlsmgr-Zeile, sodass sie wie folgt aussieht:

vi /etc/postfix/master.cf

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

Jetzt starten Sie Postfix neu:

/etc/init.d/postfix restart

Um zu sehen, ob SMTP-AUTH und TLS jetzt richtig funktionieren, führen Sie den folgenden Befehl aus:

telnet localhost 25

Nachdem Sie die Verbindung zu Ihrem Postfix-Mailserver hergestellt haben, geben Sie ein

ehlo localhost

Wenn Sie die Zeilen sehen

250-STARTTLS

und

250-AUTH PLAIN LOGIN 

dann ist alles in Ordnung.

Auf meinem System sieht die Ausgabe so aus:

server1:/etc/postfix/ssl # telnet localhost 25
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
server1:/etc/postfix/ssl #

Geben Sie ein

quit

um zur Shell des Systems zurückzukehren.

10 Courier-IMAP/Courier-POP3

Ich möchte einen POP3/IMAP-Daemon verwenden, der Maildir-Unterstützung hat. Deshalb verwende ich Courier-IMAP und Courier-POP3.

yast2 -i courier-imap fam-server courier-authlib expect tcl

Anschließend fügen wir die Systemstartlinks hinzu und starten POP3, IMAP, POP3s und IMAPs:

chkconfig -f –add fam
chkconfig -f –add courier-authdaemon
chkconfig -f –add courier-pop
chkconfig -f –add courier-imap
/etc/init.d/courier-pop start
/etc/init.d/courier-imap start
chkconfig -f –add courier-pop-ssl
chkconfig -f –add courier-imap-ssl
/etc/init.d/courier-pop-ssl start
/etc/init.d/courier-imap-ssl start

Wenn Sie ISPConfig nicht verwenden möchten, konfigurieren Sie Postfix, um E-Mails an das Maildir eines Benutzers zuzustellen:

postconf -e ‘home_mailbox = Maildir/‘
postconf -e ‘mailbox_command =’
/etc/init.d/postfix restart

*Bitte beachten Sie: Sie müssen dies nicht tun (aber es schadet nicht ;-)), wenn Sie beabsichtigen, ISPConfig auf Ihrem System zu verwenden, da ISPConfig die notwendige Konfiguration mit procmail-Rezepten vornimmt. Stellen Sie jedoch sicher, dass Sie Maildir unter Verwaltung -> Server -> Einstellungen -> EMail in der ISPConfig-Weboberfläche aktivieren.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.