Archiv verlassen und diese Seite im Standarddesign anzeigen : postfix- konfigurierungsprioritäten
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?
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
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.
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
also ist smtpd für intern und smtp für extern? spielt das d so eine wichtige rolle?
jop :)
smtpDaemon
smtp <- das protokoll
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?
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
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
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
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.
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 ?
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
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 ?
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.
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
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
Wenn du alle Mails (ausser den lokalen) weiterleiten willst, dann schau dir in der main.cf den Parameter relayhost an.
HTH
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.