Archiv für den Monat: Juli 2012

msmtp hängt bei der Nutzung von TLS/SSL

Gerade habe ich msmtp eingerichtet, einen Mail Transfer Agent (MTA). Damit dieser auch eine sichere Verbindung zum SMTP-Server aufbaut, habe ich in meiner Konfiguration TLS auf on gesetzt. Leider es damit noch nicht ganz geklappt. Der Versand der Mail mittels msmtp bliebt hängen mit der Meldung „reading recipients from the command line„. Eine nicht ganz aussagekräftige Fehlermeldung…

Das Problem lässt sich jedoch schnell beheben, da man in diesem Fall wohl StartTLS noch nicht abgeschaltet hat, diese Option ist laut Dokumentation standardmäßig aktiviert. Der Befehl dazu lautet tls_starttls off.

Meine Konfigurationsdatei sieht nun so aus:

# Default Settings
defaults
auth             on
tls              on
tls_trust_file   path/to/certificate/ca.pem
tls_starttls     off

# First address
account          provider
host             smtp.provider.example
port             465
from             username@provider.example
user             username
password         password

Error: 1286 Unknown table engine ‚InnoDB‘

Eine Datenbank wie beispielsweise MySQL sollte unter Linux nicht unter root laufen. Dies kann nämlich eine eine nicht zu unterschätzende Sicherheitslücke darstellen. Also habe ich mich ans Werk gemacht, einen neuen Benutzer mit dem Namen mysql erstellt, so dass MySQL von nun an als normaler Benutzer läuft.

Ein wichtiger Punkt ist dabei ist, das der Benutzer mysql Zugriff auf das MySQL-Verzeichnis hat:

chown -R mysql:mysql /path/to/mysql/datadir

Gesagt, getan. Leider gab es dann bei einem Zugriff auf Tabellen des Typs InnoDB einen Fehler. Der Fehler lautete Error: 1286 Unknown table engine ‚InnoDB‘. Die Engine wurde zwischenzeitlich nicht in der Konfigurations-Datei abgeschaltet, also musste der Fehler wo anders liegen.

Des Rätsels Lösung war, dass der Benutzer mysql nicht auf alle benötigten Verzeichnisse Zugriff hatte. So gab es ein spezielles tmp-Verzeichnis für MySQL, bei dem ich das Ändern der Berechtigungen vergessen hatte. Sobald ich auch hier den Befehl

chown -R mysql:mysql /path/to/mysql/tmpdir

ausgeführt hatte und die Datenbank neu gestartet war, konnte ich auch wieder auf die InnoDB-Tabellen zugreifen.