PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix Whitelistening funktioniert nicht



apt pupil
01.01.12, 15:27
Hi Leute

bin irgendwie schon länger an einem Postfix problem dran und sehe die lösung nicht.

Hintergrund ist der: ich habe mir "beim chinesen" ein handy bestellt. Dessen Mailserver sendet als helo leider nur "panda.flodders". Logischerweise leht der postfix 2.7 die mail dann ab.

nun habe ich gesehn daß dies beiweitem kein einzellfall ist. Viele (auch deutsche) TOP-Konfigurierte (Exchange??) Mailserver senden mit einer .local - Endung im Helo und werden abgelehnt.

habe dann versucht eine Helo Whitelist anzulegen. Diese sieht wie folgt aus:

panda.flodders OK
(nach dem erstellen der Datei habe ich diese mit postmap gehast)

dann die main.cf angepasst:

smtpd_delay_reject = yes
smtpd_require_helo = yes
smtpd_helo_restrictions = permit_mynetworks,
check_helo_access hash:/etc/postfix/helo_access ,
reject_invalid_hostname,
reject_unknown_hostname,
reject_unknown_client,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient


über telnet (von einem anderen Server aus) einen versuch gestartet, allerdings ohne Erfolg, ich bekomme immer noch die meldung:

Jan 1 13:10:45 srv4 postfix/smtpd[15376]: NOQUEUE: reject: RCPT from r2d2.yxcyc.de[146.xx.1x.15x]: 450 4.7.1 <panda.flodders>: Helo command rejected: Host not found; from=<contact@cect-shop.com> to=<cs@ayxcyxc.de> proto=ESMTP helo=<panda.flodders>

hmm
hab dann mal postconf -n probiert, dabei kam raus:

...
smtpd_client_restrictions = check_client_access hash:/etc/postfix/whitelist , reject_unknown_sender_domain, reject_non_fqdn_sender, permit_mynetworks, reject_unknown_client, reject_rbl_client zen.spamhaus.org
smtpd_delay_reject = yes
smtpd_helo_restrictions = permit_mynetworks, check_helo_access hash:/etc/postfix/helo_access , reject_invalid_hostname, reject_unknown_hostname, reject_unknown_client, reject_unauth_destination, reject_unauth_pipelining, reject_non_fqdn_recipient
...

Interessant! Client_restrictions sind vor den helo restrictions

gut gut
hab dann ne neue Datei erstellt, in dieser alles was mir einfiel reingeschrieben:

panda.flodders OK
static.51.56.63.178.clients.your-server.de[178.63.56.51] OK
static.51.56.63.178.clients.your-server.de OK
178.63.56.51 OK
contact@cect-shop.com OK
cect-shop.com OK


gehasht und in die main.cf:

smtpd_client_restrictions = check_client_access hash:/etc/postfix/whitelist ,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
permit_mynetworks,
reject_unknown_client,
reject_rbl_client zen.spamhaus.org


postfix neu gestartet, allerding wird bei meinen Tests der Hostname immer noch abgelehnt. hab versucht die "Whitelist" auch in die senden und recipient restrictions zu laden, allerdings auch ohne Erfolg.

weis jemand rat???

L00NIX
02.01.12, 12:02
Schau mal, was in der SMTPD_ACCESS_README von Postfix zu deiner Idee steht (http://www.postfix.org/SMTPD_ACCESS_README.html):


Dangerous use of smtpd_recipient_restrictions
...
1 /etc/postfix/main.cf:
2 smtpd_recipient_restrictions =
3 permit_mynetworks
4 check_helo_access hash:/etc/postfix/helo_access
5 reject_unknown_helo_hostname
6 reject_unauth_destination
7
8 /etc/postfix/helo_access:
9 panda.flodders PERMIT

Damit dürfte dann "panda.flodders" bei dir E-Mails schicken, wie sie wollen, oder anders ausgedrückt: Das willst du so nicht haben, du baust dir (immer mehr) ein Open Relay!

Wenn du eine genaue Fehlermeldung von Postfix hast, könntest du ja auch mal mit den richtigen Stichworten darauf aufbauend suchen? Oder jemand anderes... ;)

Gruß
L00NIX

apt pupil
02.01.12, 12:22
ja das stimmt

ich will ja lediglich daß mails zu meinem Server zugestellt werden.
(Dieser ist tatsächlich nur ein MX und leitet die mails dann an andere server weiter. Das habe ich über eine transport-db gelöst).

die Sache ist die:
soweit ich weis haben die restrictions ja folgenden Hintergrund:

telnet 192.168.0.2 25 # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix # <-smtpd_client_restrictions
HELO mail.example.com # <-smtpd_helo_restrictions
250 mail.example.com #
MAIL FROM:<ned@example.com> # <-smtpd_sender_restrictions
250 2.1.0 Ok #
RCPT TO:<ned@example.com> # <-smtpd_recipient_restrictions
250 2.1.5 Ok #
DATA # <-smtpd_data_restrictions
354 End data with <CR><LF>.<CR><LF> #
To:<ned@example.com> # <-header_checks
From:<ned@example.com> #
Subject:SMTP Test #
This is a test message # <-body_checks
. #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

ich hab die whitelist ja nur überall angefügt um zu sehen ob es irgendwie zieht. die whitelist kam immer nach permit_mynetworks und hätte alles andere überflügeln sollen.

hinter panda.flodders steht ja OK. Kann es vllt sein daß das OK dazu führt daß die whitelist an dieser Stelle zwar durchlaufen und nicht negativ abgebrochen wird, das OK aber nicht dafür genügt um die Überprüfungen abzuschließen?

eine Möglichkeit wie ich einen Hostnamen oder eine IP angeben kann wär mir auch lieber. Neben der Helo_access hab ich ja noch eine client_access whitelist probiert, diese führte aber auch nicht zum gewünschten ziel :-(

L00NIX
02.01.12, 12:38
Dein Problem liegt in den HELO-restrictions:


smtpd_helo_restrictions = permit_mynetworks,
check_helo_access hash:/etc/postfix/helo_access ,
reject_invalid_hostname,
reject_unknown_hostname,
reject_unknown_client,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient

Setze doch mal testweise die beiden fett gedruckten Restrictions außer Kraft.

Gruß
L00NIX

apt pupil
02.01.12, 12:43
ja doch, immer noch die

Helo command rejected: Host not found
aber ich glaub, das kommt von der Direktive:

smtpd_client_restrictions = check_client_access hash:/etc/postfix/whitelist ,
reject_unknown_sender_domain,
reject_non_fqdn_sender,

L00NIX
02.01.12, 12:50
Hab's editiert... Fehler ist mir dann doch noch ins Auge gesprungen. ;)

apt pupil
02.01.12, 13:36
hmm nope

450 4.7.1 <panda.flodders>: Helo command rejected: Host not found
da die Client restrictions zuerst kommen ist glaub da anzusetzen. ich teste mal.

/edit:
nein, die sind es leider auch nicht :-( hab sie auch mal komplett auskommentiert.
und alle helo restrictions auskommentiert
dennoch kommt dann immer noch Helo rejected, host not found

/edit2:
wenn ich alle restrictions auskommentiere wird die mail zugelassen

ich geh ma nach dem Ausschlussverfahren vor um den übeltäter zu finden

/edit3:
gefunden:
smtpd_sender_restrictions = reject_unknown_sender_domain,
# reject_unknown_hostname,
reject_non_fqdn_sender,
...
eigentlich unlogisch. Rein vom Namen her würde ich erwarten daß diese direktive nachprüft ob der Domainteil von mail from tatsächlich existiert. Stattdessen prüft es das Helo/ehlo

/edit4:
okay, die Direktive wurde mittlerweile in reject_unknown_helo_hostname "umbenannt"
vielen Dank für die Hilfe L00NIX :-)