Secure sSMTP

Diese Seite ist nur noch aus historischen Gründen hier.

Bitte nicht verwenden!

In manchen Situationen will man sich nicht immer einen Sendmail ans Bein binden, lieber lässt man E-Mails über einen fremden SMTP Server laufen.

In diesem Artikel gehen wir von folgenden Parametern aus:

NameWert
Hostnamekiste
Domainsample.org
SMTP Servermail.example.com
SMTP Port587
Nutzernameuser@example.com
PasswortVerySecret1

Wir wollen Letztendlich die Mails an someone@whatever.com verschicken.

Sendmail deaktivieren

Dies macht man durch ein paar Einträge in der /etc/rc.conf:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Danach versuchen jegliche Sendmail Instanz abzuschießen:

killall sendmail

sSMTP installieren

cd /usr/ports/mail/ssmtp
make config-recursive install replace clean

Die replace Anweisung ersetzt Sendmail als Standard in /etc/mail/mailer.conf.

Nochmal nachschauen: Die Einträge mit /usr/libexec/sendmail/sendmail sollten auskommentiert worden sein, und es sollten neue Einträge drin sein mit /usr/local/sbin/ssmtp.

Weiterhin sollten der User und die Gruppe ssmtp erstellt worden sein.

sSMTP einrichten

Die Konfiguration wird unter /usr/local/etc/ssmtp gesucht. Der Ordner sollte existieren und der Gruppe ssmtp gehören.

Die Einstellungen in der /usr/local/etc/ssmtp/ssmtp.conf:

Root=postmaster
MailHub=mail.example.com:587
#RewriteDomain=whatever.com
Hostname=kiste.sample.org
FromLineOverride=YES
UseSTARTTLS=YES
AuthUser=user@example.com
AuthPass=VerySecret1
  • Root: Der Empfänger an die die Mails für den root User gehen sollen. Es ließe sich auch direkt eine Mail-Adresse da rein schreiben, jedoch ist es die saubere Lösung dort postmaster zu hinterlegen und dafür einen Alias zu setzen.
  • MailHub: Der SMTP Server, an dem die Mails abgeliefert werden
  • RewriteDomain: Manchmal sinnvol zu setzen, wegen Spamfilter und/oder Rückantworten (falls gewünscht). Sollte dann auf whatever.com gesetzt werden.
  • Hostname: Der Hostname des Computers. Kann ein voller sein, oder bei aktiviertem RewriteDomain auch nur der kurze Hostname (kiste)
  • FromLineOverride: Ermöglicht es dem Email Programm ein From: zu setzen.
  • UseSTARTTLS (oder ggf. UseTLS): Verschlüsselung zum SMTP Server.
  • AuthUser: Der SMTP Username.
  • AuthPass: Das SMTP Passwort (deshalb besonders auf die Dateirechte dieser Config achten).

Falls man dies nicht schon getan hat: In pf sollte auch der entsprechende Port aufgemacht werden, damit die Mail auch raus kann. 587 == submission:

pass out proto tcp from any to any port = submission flags S/SA keep state

Sollte man den Port 465 nutzen wollen, muss man den Port entsprechend anpassen, und UseSTARTTLS durch UseTLS austauschen. Der Port heißt in pf dann smtps.

Funktionstest

Zum testen, ob das Mail versenden funktioniert kann man folgendes ausprobieren:

mail someone@whatever.com < cat /etc/motd

Oder direkt per Username:

mail root < cat /etc/motd

Aliase

Nachdem alles so grob funktionert, kann man sich Aliase setzen.

sSMTP verweigert den newaliases Befehl::

newaliases: Aliases are not used in sSMTP

Somit fällt auch die /etc/aliases hinten runter.

Aber man kann sich in der /etc/mail.rc für einzelne Benutzer trotzdem noch aliase setzen::

alias postmaster 'Master Of Post'<someone+postmaster@whatever.com>
alias root 'Awesome Super User'<someone+root@whatever.com>
alias user 'Not So Awesome User'<someone+user@whatever.com>

Hier verwende ich Kommentare in den Adressen, damit ich meinen Mailfilter darauf ansetzen kann.

Absender Name

Die (Menschenlesbaren-) Namen des Absenders werden aus der /etc/passwd gezogen. Falls man darin Sachen ändern möchte, unbedingt vipw verwenden!!1!