PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : postfix- konfigurierungsprioritäten



Mendark
01.03.04, 07:53
Ich habe mir unter suse 8.2 einen postfix mailserver für unser intranet mit cyrus gebastelt. ich bin nach einem how to vorgegangen das ich hier gefunden habe, aber nun nicht mehr wiederfinde. aber ich denke das sollte nicht so wichtig sein.


mein problem ist das weiterleiten der emails. alle emails dir an intra.net gehen werden zugestellt. alle anderen zb aol.com etc werden nicht weitergeleitet über unseren externen provider. laut der sufu hier soll es ja reichen einfach in der main.cf im /etc/postfix/ verzeichnis die ip des relayhost einzutragen. ich kann die mails versenden über kmail zb, aber sie kommen nicht an.

der externe emailer bietet folgende authentifizierungsmöglichkeiten

mailserver:/home/admin # telnet 141.90.142.61 smtp
Trying 141.90.142.61...
Connected to 141.90.142.61.
Escape character is '^]'.
220 blubdiwup.dumdidum.de ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2653.13) ready
ehlo
250-blubdiwup.dumdidum.de Hello [132.9.14.178]
250-XEXCH50
250-HELP
250-ETRN
250-DSN
250-SIZE 0
250-AUTH LOGIN

im internen netz wird über sasl authentifiziert. hier die postconf

mailserver:/home/admin # postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = vscan:
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
default_privs = nobody
defer_transports = smtp
disable_dns_lookups = yes
mail_name = Mailserver des intranets
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_transport = cyrus
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_exceptions = root
mydestination = $mydomain
mydomain = intra.net
myhostname = Mailserver.intra.net
myorigin = Mailserver.intra.net
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost = 141.90.142.61
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_ relay_domains,reject_unauth_destination
unknown_local_recipient_reject_code = 450
mailserver:/home/admin #


in dem etc/sysconfig editor von suse 8.2. hab ich nichts verstellt, ausser den punkt MAIL_CREATE_CONFIG auf no gesetzt.

/var/log/messages spuckt nix relevantes heraus.

in den postfix dateien, access, transport,virtual hab ich nichts reingeschrieben.


reicht es vielleicht doch nicht nur den relayhost in die main.cf einzutragen damit alle emails die NICHT an intra.net gehen an den externen provider weitergeleitet werden?

CYP
01.03.04, 09:06
das problem isdt vermutlich das die wenigsten provider heute mail von "nicht vorhanden"
rechner annehmen -> die rechner müssen einen offiziellen domainnamen
haben (kein dyn-ns oder ähnlich)

allerdings nehmen sie mails an wenn man sich an den server anmeldet

1. main.cf
smtp_sasl_auth_enable = yes
#die nächste zeile brauchst du sollte der provider nur plain login unterstützen
#z.b yahoo
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
transport_maps = hash:/etc/postfix/transport

2. saslpass:
smtp_server_des_providers username:passwort

#hier wird aufgelistet was mit den mails passiert -> alle lokalen mails werden vom postfix behandelt der rest an den smtp_server_des_providers gesendet
3. transport:
intra.net :
.intra.net :
* smtp_server_des_providers

zum schluss aus saslpass und tansport noch eine hash datei erzeugen
postalias hash:/etc/postfix/saslpass
postalias hash:hash:/etc/postfix/transport

so funktioniert es zumindest bei mir und dem smtp server von yahoo

Mendark
01.03.04, 09:56
bei mir klappen die einstellungen nicht.

mit deinen einstellungen ist der lokale versand von emails sowie auch der externe versand nicht möglich. kmail meckert " das versenden ist fehlgeschlagen, ihr smtp server unterstüzt PLAIN nicht".

es liegt wahrscheinlich an der einstellung in der main.cf smtpd_sasl_auth_enable=yes

wenn ich in der main.cf smtpd_sasl_auth_enable auf no stelle geht der interne versand (beim externen versand wird nicht gemeckert, aber die mails kommen nicht an).

zusatz:
ich weis nicht ob das hilft aber ich kann mit telnet mails verschicken beim externen provider....

mailserver:/home/admin # telnet 142.80.142.61 smtp
Trying 142.80.142.61...
Connected to 142.80.142.61.
Escape character is '^]'.
220 blubdiwup ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2653.13) ready
helo
250 OK
helo
503 Bad Sequence
mail from
553 malformed address:

mail from: bob@tschaka.de
250 OK - mail from <bob@tschaka.de>
rcpt to: labamba@tschaka.de
250 OK - Recipient <labamba@tschaka.de>
data
354 Send data. End with CRLF.CRLF
Subject: Hallo welt
.
250 OK
quit
221 closing connection
Connection closed by foreign host.


edit: kleiner nachtrag, der emailserver nimmt als absender auch nicht existierende absender an.

CYP
01.03.04, 10:32
smtpd_sasl_auth_enable brauchst du wenn du möchtest das sich die benutzer anmelden müssen um über deinen postfix server mails zu versenden

smtp_sasl_auth_enable braucht man wenn man wenn sich postfix an einem anderen smtp server anmelden soll

verschicken müsste immer funktionieren aber die mails werden beim provider im spam filter landen

Mendark
01.03.04, 10:40
also ist smtpd für intern und smtp für extern? spielt das d so eine wichtige rolle?

CYP
01.03.04, 10:41
jop :)

smtpDaemon

smtp <- das protokoll

Mendark
01.03.04, 11:03
klappt trotzdem nicht. nun geht auch kein ionterner versand mehr, die mails verschwindne und kommen nicht an.

brauche ich in meiner main.cf nun 2 einträge?
smtpd_sasl_auth_enable und smtp_sasl_auth_enable?

Mendark
01.03.04, 11:05
Original geschrieben von CYP


2. saslpass:
smtp_server_des_providers username:passwort

[/B]

bei mir heist die datei sasl_passwd und liegt in /etc/postfix/

hab dort folgendes reingeschrieben

123.123.123.123 bob:passwort


der smtp ist nur über die iip erreichbar, aber das süpielt hoffentlich keien rolle

CYP
01.03.04, 11:17
wenn du nicht möchtest das sich lokale benutzer an deinen postfix server anmelden müssen
bevor sie irgendwas versenden können

dann brauchst du smtpd_sasl_auth_enable nicht

bei mir läuft das mit smtp_sasl_auth_enable so:

alle lokalen mails liefert der postfix daemon direckt in die benutzer maildirs aus
den ganzen rest liefert er an den smtp server von yahoo

dazu meldet er sich mit einem ganz normalen benutzer konto an
und gibt die mails an ihn weiter -> der yahoo server versendet sie dann

aber mir fällt gerade noch ein das ich etwas vergessen habe -> man muss der sender addresse der email verändern.

z.b deine lokale addresse lautet user@lokal wenn postfix diese mail nun an der yahoo server
schicken würde kämen fehler meldungen nie zurück -> der yahoo server kennt kein user@lokal

also muss postfix sie erst umschreiben: aus user@lokal wird user@yahoo.de (der konto muss natürlich bei yahoo bekannt sein) das geht so

main.cf:
sender_canonical_maps = hash:/etc/postfix/cnmap

cnmap:
user@lokal:user@yahoo.de

dann wieder
postalias hash:/etc/postfix/cnmap


postfix wird dann alle mails die von user@lokal versendet werden in user@yahoo.de umschreiben


du solltest unbedingt ein konsole mit tail -f /var/log/wo_immer_dein_syslog_liegt
offen halten -> dann siehst du woran es scheitert

CYP
01.03.04, 11:20
123.123.123.123 ?

ist das eine interne addresse ?

ich muss:

saslpass:
smtp.mail.yahoo.com username:password

transport:
lokal :
.lokal :
* smtp.mail.yahoo.com


angeben -> das ist der normale smtp server von yahoo

Mendark
01.03.04, 11:28
Original geschrieben von CYP
123.123.123.123 ?

ist das eine interne addresse ?

ich muss:

saslpass:
smtp.mail.yahoo.com username:password

transport:
lokal :
.lokal :
* smtp.mail.yahoo.com


angeben -> das ist der normale smtp server von yahoo

also die 123 ip ist natürlich abgeändert. unser netz ist praktisch ein subnetz von jemand anderen ohne dns server, deshalb nur per ip. die 123 ip ist die externe.

unser subnetz hat 132.9.14.178 und das übergeordnete netz 123.123.123.123.

CYP
01.03.04, 11:37
achso :)

ist 141.90.142.61 und142.80.142.61 der selbe rechner ?

weil du in deiner main.cf den ersten und später per telnet auf den zweiten zugreifst

mail from: bob@tschaka.de
rcpt to: labamba@tschaka.de

kam die mail denn an ?

Mendark
01.03.04, 13:25
Original geschrieben von CYP
achso :)

ist 141.90.142.61 und142.80.142.61 der selbe rechner ?

weil du in deiner main.cf den ersten und später per telnet auf den zweiten zugreifst

mail from: bob@tschaka.de
rcpt to: labamba@tschaka.de

kam die mail denn an ?


ja das ist derselbe rechner. wollte das bissi abändern weil man ja nie weis ob mit dieser info jemand was negatives machen kann.


also mails die von einem absender sind der bei dem externen provider exestieren z.b. bob@realemail.de kommen an.

mails von frei erfunden absendern zb. hfdsgiue@ehgfir.de kommen nicht zu einem real exestierenden account bei dem mailserver an zb an bob@realemail.de

CYP
01.03.04, 14:50
ahh :)

und mails die du an aol.com schickst verschwinden ins nirvana ....

könnte man mal die status meldungen aus dem syslog sehen ?

denn wenn der server beim provider kein relaying mag solltest du die mails gar nicht erst abschicken können

also bei dir sieht es so aus (so wie ich es verstanden habe)

client -> postfix server -> mail server des provider -> rest der welt

die mails vom client zum postfix funktionieren
die mails vom client zum provider funktionieren auch (per telnet)

nur vom client -> postfix server -> mail server des provider -> zu aol.com klappt net ?

stimmt das so ?

Mendark
02.03.04, 11:27
Also mal resume was ich alles gemacht habe. Vor diesen Änderungen ist folgendes möglich: nur interner emailversand von @intra.net zu @intra.net. alles was an externe gesendet wird klappt nicht, verschwindet ohne fehlermeldung ins nirvana.
Nun hab ich folgendes gemacht (zeichenabstände entsprechen dem so wie ich’s gemacht habe)
1.
In der main.cf folgendes eingetragen
main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
transport_maps = hash:/etc/postfix/transport

2. in der saslpasswd folgendes eingetragen:
123.123.123.123:bob/mailserver/nachname:passwort
(der anmeldename setzt sich so zusammen bob/.... ich hoffe die slashs sind kein problem

3. dann in der transport.cf folgendes eingetragen

intra.net :
.intra.net :
* 123.123.123.123 (also die ip des externen smtp servers)
(hier gab es das problem das ich * : 123.123.123.123 eintragen mußte damit nicht gemeckert wurde beim postalias.

4. dann nen hash erzeugt
postalias hash:/etc/postfix/saslpasswd
postalias hash:hash:/etc/postfix/transport
(geht eigentlich auch postmap /etc/postfix/usw?)
5.dann hab ich das so eingestellt das sich die lokalen benutzer nicht am lokalen mailserver anmelden müssen
in der main.cf
smtpd_auth_enable = no

5. dann hab ich die adresse umschreiben lassen
in der main.cf
sender_canonical_maps = hash:/etc/postfix/canonical

6. in der canonical.cf folgendes eingetragen
jürgen@intra.net:jürgen@extern.net
hier wurde nach einem postalias gemeckert das der username local sein muß. Daraufhin hab ich das in
jürgen:jürgen@extern.net
geändert, dann meckert ein postalias auch nicht.


und nun geht weder interner noch externer versand. hab auch mit tail etc syslog offen, aber da steht nichts brauchbares drin.


kleiner nachtrag. ich habe mit kmail die smtp fähigkeiten des externen mailservers getestet. er hat keine verschlüsselung und unterstüzt LOGIN.

emails an mein emailkonto bei web.de kommen auch nicht an.

Mendark
02.03.04, 14:33
nu bin ich nen schritt weiter. var/log/messages hat nie was relevantes gezeigt weil das ja /var /log/mail heisen muß.

nun hab ich folgende conf

mailserver:/home/admin # postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = vscan:
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
default_privs = nobody
defer_transports = smtp
disable_dns_lookups = yes
mail_name = Mailserver
mail_owner = postfix
mail_spool_directory = /var/mai
mailbox_transport = cyrus
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_exceptions = root
mydestination = $mydomain
myhostname = Mailserver.intra.net
mynetworks = 132.9.14.178/24, 127.0.0.0/8, 132.9.14.0/24
myorigin = Mailserver.intra.net
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
relayhost = 141.90.142.61
sample_directory = /usr/share/doc/packages/postfix/samples
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
unknown_local_recipient_reject_code = 450
mailserver:/home/admin #

internemails klappen. zusätzlich habe ich nun rausgefunden das der externe smtpserver mails (von domains für die er zuständig ist) ohne passwort abfrage zustellt.

wenn ich nun mails verschicke an extern hab ich folgende var/log/mail


Mar 2 15:19:26 mailserver ipop3d[9194]: pop3 service init from 132.9.14.100
Mar 2 15:19:26 mailserver ipop3d[9194]: Command stream end of file while reading line user=??? host=[132.9.14.100]
Mar 2 14:19:33 mailserver postfix/smtpd[9196]: connect from unknown[132.9.14.178]
Mar 2 14:19:33 mailserver postfix/smtpd[9196]: DEB75299C1: client=unknown[132.9.14.178]
Mar 2 14:19:34 mailserver postfix/cleanup[9197]: DEB75299C1: message-id=<200403021519.33334.Ernst Kubisch <>>
Mar 2 14:19:34 mailserver postfix/qmgr[9096]: DEB75299C1: from=<>, size=529, nrcpt=1 (queue active)
Mar 2 14:19:34 mailserver postfix/smtpd[9196]: disconnect from unknown[132.9.14.178]
Mar 2 15:19:36 mailserver amavis[9199]: starting. amavis 0.3.12pre8 Mon Mar 17 18:52:54 UTC 2003
Mar 2 15:19:37 mailserver postfix/smtpd[9203]: connect from localhost[127.0.0.1]
Mar 2 15:19:37 mailserver postfix/smtpd[9203]: 540B2299D3: client=localhost[127.0.0.1]
Mar 2 14:19:37 mailserver postfix/cleanup[9197]: 540B2299D3: message-id=<200403021519.33334.Ernst Kubisch <>>
Mar 2 14:19:37 mailserver postfix/qmgr[9096]: 540B2299D3: from=<>, size=766, nrcpt=1 (queue active)
Mar 2 15:19:37 mailserver postfix/smtpd[9203]: disconnect from localhost[127.0.0.1]
Mar 2 15:19:37 mailserver postfix/pipe[9198]: DEB75299C1: to=<scp@web.de.de>, relay=vscan, delay=4, status=sent (mailserver.intra.net)
Mar 2 14:19:37 mailserver postfix/qmgr[9096]: 540B2299D3: to=<scp@web.de.de>, relay=none, delay=0, status=deferred (deferred transport)

irgendwo muss doch der hase im pfeffer liegen. am liebsten würde ich alles was mit relaying zu tun hat mal austellen sodas nur noch intra.net funktioniert, und mich dann langsam vorarbeiten. weil wenn interne mails funktionieren, und der smtp server alles ohne passwort abfrage durchläßt dürfte es doch nicht soo schwierig sein.

leider hab ich relaymäßig nicht so den durchblick bei den ganzen transport,access, sasl_passwd, smtp_atuh, sender_recpipients und cnonical dateien

Mendark
03.03.04, 05:09
kommt schon. das ist doch eine zusammenfassung wie im bilderbuch die ich gemacht habe, nicht ala habs probiert, geht nicht. hab jeden schritt durchgeführt und dann das resume paralel geschrieben.

kennt den keiner die fehlermeldung? ich google zwischendurch mal bissi

Jinto
03.03.04, 22:42
Wenn du alle Mails (ausser den lokalen) weiterleiten willst, dann schau dir in der main.cf den Parameter relayhost an.

HTH