OpenSMTPD in jail: hostname macht Probleme; virtual user catchall mit userbase geht nicht

yggdrasil

Well-Known Member
Hallo zusammen,

bin auf folgende Probleme gestoßen bei dem Versuch, OpenSMTPD in einer jail zum laufen zu bringen.
Zunächst hat er sich immer über den hostnamen beschwert. Ich habe nur eine IP zur verfügung, muß daher die Jails intern über lo1 und 10.0.0.0/24 laufen lassen, pf übernimmt NAT und RDR. Das an sich tut auch wunderbar. Allerdings kann ich den Hostnamen nicht korrekt setzten, und das braucht OpenSMTPD zum starten. Ich habe über domainfactory eine Domain registriert und die Nameservereinträge auf meine IP gelegt, tut auch wunderbar, einschließlich wildcard subdomains.

Im Host ist security.jail.set_hostname_allowed auf 1 gesetzt, wenn ich eine jail starte sehe ich allerdings in der jail eine 0 bei diesem sysctl. Ich kann den hostname auch nicht in der jail mit hostname=smtp.example.com in der rc.conf ändern.

In meiner mit ezjail angelegten jail namens "smtp" habe ich irgendwann OpenSMTPD zum starten bekommen, mir ist aber nichtmal in Ansatz klar, warum. Es tat einfach irgendwann. Ich kann das auch nicht reproduzieren. Wenn ich die jail umbenenne (ezjail config -n neuername smtp) weigert OpenSMTPD sich wieder zu starten, auch wenn ich den hostnamen in rc.conf anpasse. Jemand eine Idee, was ich übersehe?

Das derzeit eigentliche Problem habe ich mit der Konfiguration von OpenSMTPD selbst. In der jail habe ich keine user angelegt, da ich die Mailadressen unabhängig von den Systemusern verwalten will. Soweit funktioniert das auch, die simple smtpd.conf sieht wie folgt aus:

Code:
listen on lo1
table users file:/usr/local/etc/mail/users
accept from any for domain "example.com" userbase <users>  deliver to maildir
accept for any relay

users:
Code:
user1 1000:100:/home/_virt/user1
catchall 1000:100:/home/_virt/catchall

Soweit, so toll. Wenn ich allerdings versuche, die users Datei um eine Zeile wie
@ 1000:100:/home/_virt/catchall
zu erweitern lehnt OpenSMTPD mails an nicht existente Adressen immernoch ab. Auch "@", *, "*", oder die Notation
@ => catchall
(wie in alias) helfen nicht.

Die Dokumentation auf opensmtpd.org und die Beispiele, die im Netz herumschwirren beziehen sich immer auf alias tables, die ja aber nur virtuelle Benutzer auf Systembenutzer mappen können.

Zu guter letzt: Wie sieht es bei der Kopplung von Dovecot mit OpenSMTPD aus. Momentan wollte ich die beiden Server in verschiedenen jails laufen lassen, mit nullfs gemounteten sockets für lmtp, oder nullfs gemounteten /home/_virt-Verzeichnis. Jemand Erfahrung damit oder Einwände dagegen?

Vielen Dank schonmal für alle Rückmeldungen.
 
Du kann OpenSMTPd den Hostname als Parameter für listen on übergeben siehe smtpd.conf(5). Nullfs zwischen Jails funktioniert in FreeBSD 10 problemlos. Sollten die Jails auf unterschiedlichen Hosts laufen kannst du sie per spiped oder stunnel verbinden.
 
Zurück
Oben