PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sasl_auth bei Postfix funzt nicht



mdkuser
27.05.04, 10:55
Hallo, habe folgends Problem:

Bei Postfix habe ich in der Main.cf die Einträge nach folgendem HowTo vorgenommen, http://www.pl-berichte.de/berichte/postfix-smtp-auth.html#ToC15
cyrus-sasl ist auch installiert. trotzdem kann ich mich noch per telnet localhost 25 auf den server verbinden, ohne dass eine passwort authentifizierung erfolgen muss. Woran kann das liegen? möchte postfix gerne so eintellen, dass ohne passwortabfrage keine smtp Verbindung möglich ist.

Jonta
27.05.04, 11:46
kannst Du Dich auf den Server verbinden UND ein ehlo absetzen?
Was steht denn unter smtpd_recipient_restrictions?

Normalerweise siehts so aus:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Gruss...

Doh!
27.05.04, 12:07
Hallo, habe folgends Problem:

Bei Postfix habe ich in der Main.cf die Einträge nach folgendem HowTo vorgenommen, http://www.pl-berichte.de/berichte/postfix-smtp-auth.html#ToC15
cyrus-sasl ist auch installiert. trotzdem kann ich mich noch per telnet localhost 25 auf den server verbinden, ohne dass eine passwort authentifizierung erfolgen muss. Woran kann das liegen? möchte postfix gerne so eintellen, dass ohne passwortabfrage keine smtp Verbindung möglich ist.

Bitte Deine main.cf ohne Kommentare posten

mdkuser
27.05.04, 12:10
Danke für die Antwort!
Also Ich kann per telnet auf den Server und ein ehlo (helo) absetzen.

Eingestellt habe ich in der main.cf:


smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks, reject_unauth_destination
check_relay_domains

Trotzdem kommt keine Passwortabfrage...

Muss nochwas eingestellt werden, cyrus.config o.ä.

mdkuser
27.05.04, 12:20
Hier die vollständige main.cf:



queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_owner = postfix


myhostname = mail.intranet.local


myorigin = $myhostname
myorigin = $mydomain


inet_interfaces = all


mydestination = $myhostname, localhost.$mydomain


unknown_local_recipient_reject_code = 450


mynetworks_style = host


alias_maps = hash:/etc/postfix/aliases

debug_peer_level = 2


debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5


sendmail_path = /usr/sbin/sendmail.postfix

newaliases_path = /usr/bin/newaliases.postfix

mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop

manpage_directory = /usr/share/man

sample_directory = /usr/share/doc/postfix-2.0.16/samples

readme_directory = /usr/share/doc/postfix-2.0.16/README_FILES
alias_database = hash:/etc/postfix/aliases

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks, reject_unauth_destination
check_relay_domains

Terran Marine
27.05.04, 12:21
D
Trotzdem kommt keine Passwortabfrage...


Kannst du per telnet Mails schicken ?

Von wo aus machst du den Telnet Zugriff ? (Welcher Rechner)

Gruß
Terran

mdkuser
27.05.04, 12:24
ja ich kann per telnet mails verschicken, zugriff erfolgt vom selben rechner auf dem postfix installiert ist also per:



telnet localhost 25

ehlo mail.intranet.local
mail from: root@intranet.local
rcpt to: user@intranet.local
data
subject: test
testmail
.
quit

Terran Marine
27.05.04, 12:28
ja ich kann per telnet mails verschicken, zugriff erfolgt vom selben rechner auf dem postfix installiert ist also per:


Ok, dann ists klar :

smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks, reject_unauth_destination

permit_mynetworks erlaubt allen Clients im Netzwerk, und damit auch der Maschine selbst das Senden.

Teste es von einem anderem Rechner aus (der nicht im mynetworks-Subnetz ist)

mdkuser
27.05.04, 20:49
Ok, dann ists klar :

smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks, reject_unauth_destination

permit_mynetworks erlaubt allen Clients im Netzwerk, und damit auch der Maschine selbst das Senden.

Teste es von einem anderem Rechner aus (der nicht im mynetworks-Subnetz ist)


Tja senden soll ja auch erlaubt sein, allerdings erst, nachdem ein Passwort zur Authentifizierung eingegeben wurde, jedenfalls wollte ich es so haben. Jeder Client im selben Subnetz wie der Mailserver soll Mails darüber verschicken dürfen, relay soll auch erlaubt sein, allerdings soll der Mailserver erst die smtp-Verbindung zulassen, wenn der client mit passwort angemeldet wurde. wie mache ich das?

Terran Marine
27.05.04, 21:25
Tja senden soll ja auch erlaubt sein, allerdings erst, nachdem ein Passwort zur Authentifizierung eingegeben wurde, jedenfalls wollte ich es so haben. Jeder Client im selben Subnetz wie der Mailserver soll Mails darüber verschicken dürfen, relay soll auch erlaubt sein, allerdings soll der Mailserver erst die smtp-Verbindung zulassen, wenn der client mit passwort angemeldet wurde. wie mache ich das?

permit mynetworks rausnehmen und per Mail-Client testen ob es klappt (Kmail, Mozilla, Outlook)

mdkuser
27.05.04, 21:57
danke, relayt der dann auch noch? na ich werds testen....

Terran Marine
27.05.04, 22:02
danke, relayt der dann auch noch? na ich werds testen....

Clients die in den smtpd_recipient_restrictions "permitted" werden, dürfen relayen.

Ist ja der Sinn von permit_sasl_authenticated.

Gruß
Terran

mdkuser
27.05.04, 22:05
ja schon klar, aber die passwortabfrage soll auch bei diesen permitted clients kommen, kommt aber nicht...

Terran Marine
27.05.04, 22:08
ja schon klar, aber die passwortabfrage soll auch bei diesen permitted clients kommen, kommt aber nicht...

Du musst bei den Clients einstellen, das sie sich authentifizieren sollen,

Haste permit_mynetworks rausgenommen ?

mdkuser
27.05.04, 22:17
wenn die clients sich nicht authenifizieren, dann soll die verbindung verweigert werden. permit_mynetworks nehme ich mal raus, aber ich fürchte, dass es dann probleme mit dem relayen geben könnte...
Danke jedenfalls für die Hilfe, ich habe jetzt einen Ansatz! :)

mdkuser
28.05.04, 09:48
jo, ohne permit_mynetworks nimmt er keine Mails mehr ohne Passwort an, jedoch relayt er auch nicht mehr, wenn ich permit_mynetworks wieder einstelle.
Na ich werde am wochenende mal ausgiebig weitertesten. Danke jedenfalls schon mal für die Tips!

mdkuser
29.05.04, 16:06
ich kriege sasl einfach nicht zum laufen, jetzt habe ich schon den usereintrag in die sasldb gemacht aber wenn ich dann beim Versenden das Kennwort eingebe, kommt die Meldung, bad syntax, das kennwort falsch...
Was muss ich denn noch einstellen?
Hier meine Postfix main.cf:



queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_owner = postfix

default_privs = nobody

myhostname = mail.intranet.local

mydomain = intranet.local

myorigin = $myhostname

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain $mydomain

unknown_local_recipient_reject_code = 450

mynetworks = 192.168.1.0/24, 127.0.0.0/8
relay_domains = $mydestination

relayhost = [mail.gmx.net]

alias_maps = hash:/etc/postfix/aliases

mail_spool_directory = /var/spool/mail

mailbox_command = /usr/bin/procmail -Y -a $Domain

debug_peer_level = 2

debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5


sendmail_path = /usr/sbin/sendmail.postfix

newaliases_path = /usr/bin/newaliases.postfix

mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop

manpage_directory = /usr/share/man

sample_directory = /usr/share/doc/postfix-2.0.16/samples

readme_directory = /usr/share/doc/postfix-2.0.16/README_FILES

alias_database = hash:/etc/postfix/aliases

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access

smtpd_recipient_restrictions = permit_sasl_authenthicated, permit_mynetworks, reject_unauth_destination, check_relay_domains

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain = $myhostname

broken_sasl_auth_clients = yes

masquerade_exceptions = root

masquerade_domains = gmx.net

Jonta
29.05.04, 21:00
Hast Du
sasl_pwcheck_method: auxprop
in der /etc/imapd.conf?

Gruss...

Terran Marine
29.05.04, 21:53
Hast Du
sasl_pwcheck_method: auxprop
in der /etc/imapd.conf?


Afaik ist die imapd.conf die Konf. für einen IMAP-Server und nicht für postfix.

Auf welche Authentifizierung ist denn der saslauthd eingestellt ?

Gruß
Terran

mdkuser
31.05.04, 13:03
jo, da muss ich Terran Marine recht geben, es geht mir hier nicht um die Authentifizierung zum Mailabholen sondern zum Mailversand (imap-Server ist bei mir eh nicht installiert, sondern nur pop3 server aber egal...).

unter /usr/lib/sasl2/smtpd.conf habe ich folgendes eingetragen:


pwcheck_method: saslauthd

Der saslauthd wird automatisch bei jedem systemstart mitgestartet.
ausserdem habe ich noch folgenden Befehl ausgeführt:


saslpasswd -a smtpd -c user

und das Kommando sasldblistusers gibt mir folgendes aus:


user: user realm: maschine mech: CRAM-MD5
user: user realm: maschine mech: DIGEST-MD5
user: user realm: maschine mech: PLAIN


sieht doch soweit alles richtig aus oder? Leider habe ich kein howto gefunden, das erklärt, wo man den saslauthd konfigurieren muss.
Wie habt ihr das hingekriegt?

mdkuser
31.05.04, 13:35
habe es jetzt hingekriegt. der trick war, dass ich bisher mit saslpasswd statt mit saslpasswd2 gearbeitet habe. hier für alle nochmal die lösung:

unter /usr/lib/sasl2/smtpd.conf folgendes eintragen:


pwcheck_method: saslauthd
mech_list: plain login


dann user anlegen und password vergeben mit:


saslpasswd2 -c user


in der postfix main cf muss folgendes stehen:


#sender, recipient restrictions
#
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_relay_domains

#saslauth configuration
#
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtp_sasl_password_maps = hash:/etc/sasldb2
broken_sasl_auth_clients = yes

mdkuser
01.06.04, 11:38
so, unter Fedora Core 1 funzt es wie oben beschrieben, allerdings unter mandrake 9.1 ist die Datei smtpd.conf gar nicht vorhanden obwohl cyrus-sasl installiert ist und der saslauthd sich starten lässt. Trotzdem meckert Postfix, dass er kein saslauth finden kann.
der Befehl saslpasswd -c user bringt auch die Fehlermeldung: "generischer Fehler" nachdem man das Passwort für den user 2x eingegben hat.
Weiss jemand eine Methode um saslauth unter JEDER Linux-Distri zu laufen zu bringen? Danke!