WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   postfix mit saslauthd und plain-authentifizierung (http://www.wcm.at/forum/showthread.php?t=174607)

groissi 23.09.2005 02:54

postfix mit saslauthd und plain-authentifizierung
 
Hi!

Habe mittlerweile 12h mit Google und seinen Ergebnissen verbracht, und bekomme keine wirklich nützlichen Informationen.

Habe akt. Postfix-Version und akt. Cyrus-SASL-Version.

Postfix soll keine Relay-Host werden, und deswegen möchte ich die Benutzer für das Versenden von Mails authentifizieren. Wenn eine ext. Verbindung kommt, welche auf ein internes Konto ein Mail senden will funktioniert das wunderbar.
Wenn ich ein Mail an eine interne Adresse sende auch, aber wenn die Adresse bzw. die Domain der Adresse nicht auf meinem Server liegt wird mir von Postfix immer mitgeteilt:
postfix/smtpd[2804]: NOQUEUE: reject: RCPT from
unknown[192.168.0.5]: 554 <testkonto@anywhere.tld>:
Relay access denied; from=<mein-lokales-konto@mein-server.tld>
to=<testkonto@anywhere.tld>
proto=ESMTP helo=<[192.168.0.5]>

Meine Authentifizierung findet statt mit Hilfe des saslauthd, welcher sich an pam wendet um auf eine MySQL-DB zuzugreifen. Bei Cyrus-IMAPD funktioniert das auch tadellos.
Das witzige ist allerdings, dass bei der SMTP-Authentifizierung AUTH PLAIN [Base-64-kodierte UN-PW-Kombination] der SMTP-Server mit AUTHENTICATION SUCCESSFUL antwortet, and danach trotzdem "Relay access denied" schreit.

[smtpd.conf]:
-------------
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

[main.cf - auth-teil]:
----------------------
# SMTP Authentication with SASL and PAM
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes

Ich wäre sehr dankbar, wenn mir jemand helfen könnte, denn ich bin mittlerweile schon sehr müde und habe eigentlich auch noch andere Dinge zu erledigen, wie seit 1 WOCHE (täglich 8h) fast nur damit zu verbringen Fehler von POSTFIX und CYRUS zu finden. *newb*

Also bitte rettet mich, danke im voraus

lg groissi

eAnic 23.09.2005 05:36

Hallo,

2 Punkte, die mir aufgefallen sind:

- smtpd_sasl_local_domain ist nicht ausgefüllt. Sollte aber nicht machen.

- Ich vermute mal, du speicherst deine Passwörter in der MYSQL Tabelle verschlüsselt ab, oder?
Wenn dies der Fall ist, so benötigt cyrus-sasl einen Patch.
Näheres kannst du gerne in meiner Dokumentation nachlesen, welche zwar Distributions spezifisch ist, allerdings überall funktionieren müsste. Den Hinweis über den Patch findest du im Abschnitt Cyrus-SASL 2 Install:

Ich hoffe geholfen zu haben :)

Sloter 23.09.2005 08:11

Postfix läuft in einer Chainroot.
Link setzen von der sasl auf /var/spool/postfix/var/run/saslauthd/

Sloter

m@rio 23.09.2005 09:10

Zitat:

Original geschrieben von eAnic
smtpd_sasl_local_domain ist nicht ausgefüllt. Sollte aber nicht machen.
Quatsch. Das MUSS bei Cyrus-SASL-2.x sogar leer sein!

Wie schauts den mit testsaslauthd aus? Funktioniert deine User/Pass Kombination da?
Läuft der smtp chrooted (das siehst du in der master.cf)?

groissi 23.09.2005 12:22

hi!

Danke für eure Antworten.
Das mit dem SASL-Patch stimmt nicht, da es schon dabei ist. Für den MySQL-Zugriff musst ihn vielleicht patchen, ist bei mir aber nicht notwendig, da ich über das pam_mysql-Modul darauf zugreife.
Die ganze Sache für den Cyrus-IMAPD ja auch funktioniert.
Die Passwörter sind shadow-kompatibel in der MySQL-DB abgespcihert.

Mit testsaslauth funzt die Authentifizierung genau so gut, wie wenn ich es über einen Client mache, da kann ich mir beim Netzwerktraffic (oder in der log) auch ansehen, dass die Authentifizierung erfolgreich ist.
Das ist ja das große Problem, welches ich nicht nachvollziehen kann.

Wenn ich das richtig sehe, dann läuft er in keiner chroot-Umgebung.

lg groissi

m@rio 23.09.2005 13:54

Dann kann der Fehler eigentlich nur in der Postfix Konfig selbst liegen.

Mal ganz andere Frage funktioniert es überhaupt wenn du SASL deaktivierts und von localhost Mails verchickst?
Wenn das schon nicht geht, dann dürften vermutlich mynetworks oder mynetworks_style nicht passen.

Poste eventuell mal die Ausgabe von postconf.

groissi 23.09.2005 15:06

Hi m@rio!

Danke für deine Antworten, bin wirklich schon am verzweifeln.

Ich brauche SASL nicht deaktivieren, denn wenn ich von localhost versende dann lässt er mich auch ohne Authentifizierung senden da die loopback-adresse in mynetworks eingetragen ist.

danke für deine antworten.

lg groissi

[postconf-ausgabe - Teil I]:
----------------------------
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
address_verify_local_transport = $local_transport
address_verify_relay_transport = $relay_transport
address_verify_relayhost = $relayhost
address_verify_sender = postmaster
address_verify_service_name = verify
address_verify_transport_maps = $transport_maps
address_verify_virtual_transport = $virtual_transport
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_mail_to_commands = alias, forward
allow_mail_to_files = alias, forward
allow_min_user = no
allow_percent_hack = yes
allow_untrusted_routing = no
append_at_myorigin = yes
append_dot_mydomain = yes
application_event_drain_time = 100s
backwards_bounce_logfile_compatibility = yes
berkeley_db_create_buffer_size = 16777216
berkeley_db_read_buffer_size = 131072
best_mx_transport =
biff = yes
body_checks =
body_checks_size_limit = 51200
bounce_notice_recipient = postmaster
bounce_queue_lifetime = 5d
bounce_service_name = bounce
bounce_size_limit = 50000
broken_sasl_auth_clients = yes
canonical_maps =
cleanup_service_name = cleanup
command_directory = /usr/sbin
command_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ
command_time_limit = 1000s
config_directory = /etc/postfix
content_filter = smtp-amavis:127.0.0.1:10025
daemon_directory = /usr/libexec/postfix
daemon_timeout = 18000s
debug_peer_level = 2
debug_peer_list =
default_database_type = hash
default_rbl_reply = $rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}
default_recipient_limit = 10000
default_transport = smtp
default_verp_delimiters = +=
defer_code = 450
defer_service_name = defer
defer_transports =
delay_notice_recipient = postmaster
delay_warning_time = 0h
deliver_lock_attempts = 20
deliver_lock_delay = 1s
dont_remove = 0
double_bounce_sender = double-bounce
duplicate_filter_limit = 1000
empty_address_recipient = MAILER-DAEMON
enable_errors_to = no
enable_original_recipient = yes
error_notice_recipient = postmaster
error_service_name = error
expand_owner_alias = no
export_environment = TZ MAIL_CONFIG
fallback_relay =
fallback_transport =
fast_flush_domains = $relay_domains
fast_flush_purge_time = 7d
fast_flush_refresh_time = 12h
fault_injection_code = 0
flush_service_name = flush
fork_attempts = 5
fork_delay = 1s
forward_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ
forward_path = $home/.forward${recipient_delimiter}${extension}, $home/.forward
hash_queue_depth = 1
hash_queue_names = incoming, active, deferred, bounce, defer, flush, hold, trace
header_address_token_limit = 10240
header_checks =
header_size_limit = 102400
helpful_warnings = yes
home_mailbox =
hopcount_limit = 50
html_directory = no
ignore_mx_lookup_error = no
import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY
in_flow_delay = 1s
inet_interfaces = 192.168.0.13, 127.0.0.1
initial_destination_concurrency = 5
invalid_hostname_reject_code = 501
ipc_idle = 100s
ipc_timeout = 3600s
ipc_ttl = 1000s
line_length_limit = 2048
$default_destination_concurrency_limit
$default_destination_recipient_limit
local_command_shell =
local_destination_concurrency_limit = 2
local_destination_recipient_limit = 1
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
local_transport = local:$myhostname
luser_relay =
mail_name = Postfix
mail_owner = postfix
mail_release_date = 20040915
mail_spool_directory = /var/mail
mail_version = 2.1.5
mailbox_command =
mailbox_command_maps =
mailbox_delivery_lock = fcntl, dotlock
mailbox_size_limit = 51200000
mailbox_transport = cyrus
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
maps_rbl_domains =
maps_rbl_reject_code = 554
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
masquerade_exceptions =
max_idle = 100s
max_use = 100
maximal_backoff_time = 4000s
maximal_queue_lifetime = 5d
message_size_limit = 51200
mime_boundary_length_limit = 2048
mime_header_checks = pcre:/etc/postfix/body_checks
mime_nesting_limit = 100
minimal_backoff_time = 1000s
multi_recipient_bounce_reject_code = 550
mydestination = localhost.$mydomain, localhost, meine-domain.tld
mydomain = meine-domain.tld
myhostname = mail.meine-domain.tld
mynetworks = 127.0.0.1/8
mynetworks_style = subnet
myorigin = $mydomain
nested_header_checks = $header_checks
newaliases_path = /usr/bin/newaliases.postfix
non_fqdn_reject_code = 504
notify_classes = resource, software
owner_request_special = yes
parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,perm it_mx_backup_networks,qmqpd_authorized_clients,rel ay_domains,smtpd_access_maps
permit_mx_backup_networks =
pickup_service_name = pickup
prepend_delivered_header = command, file, forward
process_id_directory = pid
propagate_unmatched_extensions = canonical, virtual
proxy_interfaces =
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks

groissi 23.09.2005 15:07

[postconf-ausgabe - Teil II]:
-----------------------------
queue_directory = /var/spool/postfix
queue_file_attribute_count_limit = 100
queue_minfree = 0
queue_run_delay = 1000s
queue_service_name = qmgr
rbl_reply_maps =
readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES
receive_override_options =
recipient_bcc_maps =
recipient_canonical_maps =
recipient_delimiter =
reject_code = 554
relay_clientcerts =
relay_destination_concurrency_limit = $default_destination_concurrency_limit
relay_destination_recipient_limit = $default_destination_recipient_limit
relay_domains = $mydestination
relay_domains_reject_code = 554
relay_recipient_maps =
relay_transport = relay
relayhost =
relocated_maps =
require_home_directory = no
resolve_dequoted_address = yes
resolve_null_domain = no
rewrite_service_name = rewrite
sample_directory = /usr/share/doc/postfix-2.1.5/samples
sender_based_routing = no
sender_bcc_maps =
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
sendmail_path = /usr/sbin/sendmail
service_throttle_time = 60s
setgid_group = postdrop
show_user_unknown_table_name = yes
showq_service_name = showq
smtp_always_send_ehlo = yes
smtp_helo_name = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = $var_smtp_sasl_opts
smtp_sasl_tls_verified_security_options = $var_smtp_sasl_tls_opts
smtpd_authorized_verp_clients = $authorized_verp_clients
smtpd_authorized_xclient_hosts =
smtpd_authorized_xforward_hosts =
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_connection_count_limit = 50
smtpd_client_connection_limit_exceptions = $mynetworks
smtpd_client_connection_rate_limit = 0
smtpd_client_restrictions =
smtpd_data_restrictions =
smtpd_delay_reject = yes
smtpd_enforce_tls = no
smtpd_error_sleep_time = 1s
smtpd_etrn_restrictions =
smtpd_expansion_filter = \t\40!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
smtpd_hard_error_limit = 20
smtpd_helo_required = yes
smtpd_helo_restrictions =
smtpd_history_flush_threshold = 100
smtpd_junk_command_limit = 100
smtpd_noop_commands =
smtpd_null_access_lookup_key = <>
smtpd_policy_service_max_idle = 300s
smtpd_policy_service_max_ttl = 1000s
smtpd_policy_service_timeout = 100s
smtpd_proxy_ehlo = $myhostname
smtpd_proxy_filter =
smtpd_proxy_timeout = 100s
smtpd_recipient_limit = 1000
smtpd_recipient_overshoot_limit = 1000
smtpd_recipient_restrictions = reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, reject_unauth_destination, reject_rbl_client zombie.dnsbl.sorbs.net, reject_rbl_client relays.ordb.org, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client sbl.spamhaus.org, permit
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = no
smtpd_restriction_classes =
smtpd_sasl_application_name = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks =
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sender_login_maps =
smtpd_sender_restrictions =
smtpd_soft_error_limit = 10
smtpd_starttls_timeout = 300s
smtpd_timeout = 300s
smtpd_tls_CAfile =
smtpd_tls_CApath =
smtpd_tls_ask_ccert = no
smtpd_tls_auth_only = no
smtpd_tls_ccert_verifydepth = 5
smtpd_tls_cert_file =
smtpd_tls_cipherlist =
smtpd_tls_dcert_file =
smtpd_tls_dh1024_param_file =
smtpd_tls_dh512_param_file =
smtpd_tls_dkey_file = $smtpd_tls_dcert_file
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_loglevel = 0
smtpd_tls_received_header = no
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database =
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_wrappermode = no
smtpd_use_tls = no
soft_bounce = no
stale_lock_time = 500s
strict_7bit_headers = no
strict_8bitmime = no
strict_8bitmime_body = no
strict_mime_encoding_domain = no
strict_rfc821_envelopes = no
sun_mailtool_compatibility = no
swap_bangpath = yes
syslog_facility = mail
syslog_name = postfix
tls_daemon_random_bytes = 32
tls_daemon_random_source =
tls_ipv6_version = 1.26
tls_random_bytes = 32
tls_random_exchange_name = ${config_directory}/prng_exch
tls_random_prng_update_period = 60s
tls_random_reseed_period = 3600s
tls_random_source =
trace_service_name = trace
transport_maps =
transport_retry_time = 60s
trigger_timeout = 10s
undisclosed_recipients_header = To: undisclosed-recipients:;
unknown_address_reject_code = 450
unknown_client_reject_code = 450
unknown_hostname_reject_code = 450
unknown_local_recipient_reject_code = 550
unknown_relay_recipient_reject_code = 550
unknown_virtual_alias_reject_code = 550
unknown_virtual_mailbox_reject_code = 550
unverified_recipient_reject_code = 450
unverified_sender_reject_code = 450
verp_delimiter_filter = -=+
virtual_alias_domains = $virtual_alias_maps
virtual_alias_expansion_limit = 1000
virtual_alias_maps = hash:/etc/postfix/virtual, mysql:/etc/postfix/mysql-virtual.cf
virtual_alias_recursion_limit = 1000
virtual_destination_concurrency_limit = $default_destination_concurrency_limit
virtual_destination_recipient_limit = $default_destination_recipient_limit
virtual_gid_maps =
virtual_mailbox_base =
virtual_mailbox_domains = $virtual_mailbox_maps
virtual_mailbox_limit = 51200000
virtual_mailbox_lock = fcntl
virtual_mailbox_maps =
virtual_minimum_uid = 100
virtual_transport = virtual
virtual_uid_maps =

m@rio 23.09.2005 16:21

Ich glaub da könnte das Problem liegen.

Zitat:

smtpd_recipient_restrictions = reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, reject_unauth_destination, reject_rbl_client zombie.dnsbl.sorbs.net, reject_rbl_client relays.ordb.org, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client sbl.spamhaus.org, permit
Da sollte statt permit wahrscheinlich permit_sasl_authenticated stehen.

Probiers zum testen eventuell mal so
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

groissi 24.09.2005 04:23

Problem gelöst
 
Hi @ll!

Danke für eure tolle Mithilfe, hab' das Problem nun endlich gelöst.

Ich habe nämlich die smtpd_recipient_restrictions 2-mal vergeben, und anscheinend fügt postfix die enthaltenen Parameter nicht zusammen, sondern beim 2. Einlesen der smtpd_recipient_restrictions dürften die Werte vom 1. Einlesen überschrieben werden.

Danke,

lg groissi


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag