Postfix Flag "reject_non_fqdn_recipient" Ausnahmen erlauben

Thomas233

New Member
Hallo liebe Serversupportler,

hätte eine Frage zu Postfix und Smtp.

Ich habe auf meinem VServer einen Postfix mit Smtp für meine Domain laufen. Die Authentifizierung läuft über SASL, das PAM Framework und dann über die Useraccounts. TLS ist optional auch verfügbar.

Mit meinen Kentnissen hab ich soweit möglich versucht den Server gegen unerlaubte Zugriffe und Spam abzusichern (Spam-Blacklists verwende ich dzt. bewusst nicht).

Es läuft nun eigentlich auch alles soweit ganz gut.

Ich will aber den Smtp noch unbedingt für folgenden Fall benutzen:
Ich hab zuhause ein Drucker-Multifunktionsgerät stehen. Dieses bietet u.a. auch die Möglichkeit Dokumente einzuscannen und dann über einen (externen) E-Mail-Server als PDF zu versenden.

Als Server wollte ich den Smtp meines VServers nehmen.
Das blöde ist nur, dass sich der Drucker nicht ganz an die Konventionen des Mail-Versandes hält, sprich beim HELO keinen gültigen Hostnamen übermittelt sondern den fixen Hostnamen nähmlich "<BR-NET>". Ich kann daran leider nichts ändern, dass ist wohl im (gut 6 Jahre alten) Gerät so implementiert.

Ich hab in den Restriktionen "reject_non_fqdn_hostname" angegeben. Dadurch wird die Verbindung dann abgewiesen, weil der Drucker ein HELO ohne qualifizierten Hostnamen sendet.

Gibt es eine Möglichkeit für das HELO eine Ausnahme zu definieren, dass er den Drucker durch lässt ?
Ich möchte das Flag reject_non_fqdn_hostnamenicht nicht unbedingt aus der Konfiguration rausnehmen (dann würde es allerdings funktionieren).

Ich habe versucht es über das check_helo_access Flag zu erlauben, es klappt aber leider so nicht.

main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = mail.meinedomain.com
mydomain = meinedomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = localhost, localhost.$mydomain, $mydomain, $myhostname
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +

# HIER wirds interessant
smptd_helo_restrictions =
permit_mynetworks,
check_helo_access pcre:/etc/postfix/helo_checks,
permit_sasl_authenticated,
reject_unauth_pipelining,
permit

smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_helo_access pcre:/etc/postfix/helo_checks,
reject_non_fqdn_hostname, # wenn ich das rausnehme geht es
reject_invalid_hostname,
check_sender_mx_access cidr:/etc/postfix/bogus_mx,
permit
mailbox_command = /usr/bin/procmail

# sasl
#smtpd_sasl_application_name = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes

message_size_limit = 16240000

/etc/postfix/helo_checks
/^ns\.meinedomain\.com$/ REJECT 550 Bad helo check
/^84\.38\.67\.78$/ REJECT 550 Bad helo check
/^\[84\.38\.67\.78\]$/ REJECT 550 Bad helo check
/^localhost$/ REJECT 550 Bad helo check
/^\<BR-NET\>$/ ALLOW # Drucker-Helo erlauben

Hier das entsprechende Log:
Mar 6 13:45:13 vserver2117 postfix/smtpd[17563]: connect from d86-32-6-85.cust.tele2.at[86.32.6.85]
Mar 6 13:45:13 vserver2117 postfix/smtpd[17563]: NOQUEUE: reject: RCPT from d86-32-6-85.cust.tele2.at[86.32.6.85]: 504 5.5.2 <BR-NET>: Helo command rejected: need fully-qualified hostname; from=<brother@meinedomain.com> to=<thomas@eineanderedomain.com> proto=SMTP helo=<BR-NET>
Mar 6 13:45:13 vserver2117 postfix/smtpd[17563]: lost connection after RCPT from d86-32-6-85.cust.tele2.at[86.32.6.85]
Mar 6 13:45:13 vserver2117 postfix/smtpd[17563]: disconnect from d86-32-6-85.cust.tele2.at[86.32.6.85]

Wäre euch sehr dankbar wenn ihr mir da helfen könnten.

Was hat es eigentlich mit der Reihenfolge der Flags auf sich ? Ich habe gelesen, die wäre vorgegeben und man darf daran nichts vertauschen, es finden sich aber überall ganz verschiedene Reihungen.

DANKE schon mal im voraus !

Beste Grüße,
Thomas
 
Die Restrictions werden in der Reihenfolge abgearbeitet, in der sie angegeben werden. Daher sollte man beispielsweise ein permit_sasl_authenticated möglichst am Anfangs stehen haben, damit bei denen, die sich anmelden, die ganzen anderen Restriktionen nicht mehr greifen. RBL-Checks machen weiter hinten Sinn, da sie durch DNS-Anfragen etwas Zeit kosten, so daß du manche lokalen Checks davor plazieren solltest - aber da hat auch jeder so ein wenig seine eigene Philosophie.
Zu deinem Problem: Kann dein MuFu sich per SMTP authentifizieren? Dann solltest du das auch aktivieren, das sollte dein Problem effektiv verhindern.
 
Hallo danton,

danke für die Info das war mir noch nicht ganz klar.

Ich kann beim Drucker einen Smtp-Server, Benutzernamen und Kennwort eingeben. Es gibt am Server einen entsprechenden Account für den Drucker (getestet mit WinMail - funktioniert).
Wie der Drucker die Verbindung dann herstellt kann ich nicht genau sagen, mehr Administrationsmöglichkeiten habe ich da einfach nicht.

Wenn ich das Flag "reject_non_fqdn_hostname" rausnehme dann wird die Email wie gewünscht gesendet siehe Log:

Mar 6 16:10:10 vserver2117 postfix/smtpd[20898]: connect from d86-32-6-85.cust.tele2.at[86.32.6.85]
Mar 6 16:10:10 vserver2117 postfix/smtpd[20898]: AED04AC210: client=d86-32-6-85.cust.tele2.at[86.32.6.85]
Mar 6 16:10:11 vserver2117 postfix/cleanup[20903]: AED04AC210: message-id=<0000001c.3c879db3.1.00@BRN_6959EA>
Mar 6 16:10:13 vserver2117 postfix/qmgr[20845]: AED04AC210: from=<brother@meinedomain.com>, size=14123, nrcpt=1 (queue active)
Mar 6 16:10:13 vserver2117 postfix/cleanup[20903]: A2CA0AC22E: message-id=<0000001c.3c879db3.1.00@BRN_6959EA>
Mar 6 16:10:13 vserver2117 postfix/qmgr[20845]: A2CA0AC22E: from=<brother@meinedomain.com>, size=14257, nrcpt=1 (queue active)
Mar 6 16:10:13 vserver2117 postfix/local[20904]: AED04AC210: to=<THOMAS@eineanderedomain.com>, relay=local, delay=3, delays=3/0.01/0/0, dsn=2.0.0, status=sent (forwarded as A2CA0AC22E)
Mar 6 16:10:13 vserver2117 postfix/qmgr[20845]: AED04AC210: removed

Der Drucker SOLLTE sich da eigentlich schon via Sasl authentifizieren oder ? Andernfalls hätte ich ja ein Open Relay konfiguriert, was ich nicht hoffe.

Wenn das Flag wieder in der Konfiguration ist wird der Drucker abgewiesen (siehe 1.Beitrag Log).

Danke !

Beste Grüße,
Thomas
 
Back
Top