Archive

Kategorien

Postfix Login-Sender Maps

Der Postifix-Parameter smtpd_sender_login_maps ist ein ganz cooles Feature. Damit kann man festlegen, dass ein bestimmer SMTP-Login nur definierte MAIL FROM verwenden kann. Per default erlaubt Postfix nach erfolgreicher Authentifizierung jeden Absender.

1
2
3
4
# /etc/postfix/main.cf
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-sasl_login.cf
smtpd_sender_restrictions = ...,reject_sender_login_mismatch
smtpd_recipient_restrictions = ...,permit_sasl_authenticated,reject
1
2
3
4
5
6
# /etc/postfix/mysql-sasl_login.cf
hosts = meinMysqlHost
user = mysqlUser
password = mysqlPass
dbname = mysqlDB
query = SELECT `sasl` FROM `logins` WHERE `sender`='%s' AND `active`='1'

das führt aber dann zum Problem, wenn man bestimmten Usern erlauben will mit allen Absendern einer Domain Mails zu verschicken und anderen nur einen bestimmten Absender z.B.

1
2
# sasl sender
meinUser@domain.tld @domain.tld

in dem Fall kann meinUser@domain.tld mit jedem Absender @domain.tld eine Mail verschicken. Was aber wenn der Absender @xyz.domain.tld ist? In dem Fall ergibt die MySQL-Query kein Resultat und die Mail würde abgelehnt. Jetzt könnte man natürlich @xyz.domain.tld ebenfalls in die DB als sender eintragen. Das ist aber bei vielen Subdomains nicht praktikabel.

Daher erweitert man am besten die MySQL-Tabelle um eine Spalte: mismatch.
User welche auch mit @xyz.domain.tld versenden können sollen bekommen bei mismatch eine 1 eingetragen. Dann passt man die Mysql-Query folgendermassen an

1
query = SELECT `sasl` FROM `logins` WHERE `sender`='%s' AND `active`=1 AND `mismatch`=0 OR `sender`=CONCAT('@','%2','.','%1') AND `active`=1 AND `mismatch`=1

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

  

  

  

2 × 3 =

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .