sendmail - SMTP AUTH erzwingen

Morfio

Well-Known Member
Hallo alle zusammen,

ich habe laut diesem Tutorial http://www.freebsd.org/doc/de/books/handbook/smtp-auth.html SASL für SMTP AUTH installiert, konfiguriert und es funktioniert anscheinend auch (PAM).

Wenn ich im Mail-Client (MUA) Authentifikation einstelle, dann verlangt er nach dem richtigen Benutzernamen mit Kennwort. Allerdings, wenn ich die Authentifikation abschalte, dann nimmt sendmail auch die E-Mail an. Wie kann man das abschalten?

Hier meine Konfiguration:

Die mc-Datei

VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.29.2.1 2006/04/13 04:08:09 gshapiro Exp $')
OSTYPE(freebsd5)
DOMAIN(generic)

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

dnl Uncomment to allow relaying based on your MX records.
dnl NOTE: This can allow sites to use your server as a backup MX without
dnl your permission.
dnl FEATURE(relay_based_on_MX)

dnl DNS based black hole lists
dnl --------------------------------
dnl DNS based black hole lists come and go on a regular basis
dnl so this file will not serve as a database of the available servers.
dnl For that, visit
dnl http://directory.google.com/Top/Computers/Internet/Abuse/Spam/Blacklists/

dnl Uncomment to activate Realtime Blackhole List
dnl information available at http://www.mail-abuse.com/
dnl NOTE: This is a subscription service as of July 31, 2001
dnl FEATURE(dnsbl)
dnl Alternatively, you can provide your own server and rejection message:
dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-a

dnl Dialup users should uncomment and define this appropriately
dnl define(`SMART_HOST', `your.isp.mail.server')
dnl Uncomment the first line to change the location of the default
dnl /etc/mail/local-host-names and comment out the second line.
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
define(`confCW_FILE', `-o /etc/mail/local-host-names')

dnl Enable for both IPv4 and IPv6 (optional)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')

define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)

dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
FEATURE(`no_default_msa')dnl turn off default entry for MSA
DAEMON_OPTIONS(`Port=587, Name=MSA, M=E')dnl

In der access habe ich mal probiert, das hier zu machen:

To:localhost RELAY

Das ist derzeit ein Testserver, an den ich per "thorsten@localhost" Mails von einem andern Client aus schicke.

Vielleicht habt ihr ja noch eine Idee?

Viele Grüße, Morfio ...
 
Achso, ein ehlo localhost per telnet bringt folgendes:

Trying ::1...
Connected to localhost.rommerskirchen.roki.
Escape character is '^]'.
220 mail.rommerskirchen.roki ESMTP Sendmail 8.13.6/8.13.6; Thu, 17 Jan 2008 15:25:38 +0100 (CET)
ehlo localhost
250-mail.rommerskirchen.roki Hello localhost.rommerskirchen.roki [IPv6:::1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN
250-DELIVERBY
250 HELP
 
Da dürfte mindestens ein "250 - STARTTLS" fehlen und der saslauthd müßte auch noch laufen. Zumindest ist das auf meinen Debianservern so und das dürfte auf deinem BSD auch nicht viel anders sein.

Bei mir sieht das so aus:
Code:
ehlo localhost
250-mail.hobbyschneiderin.de Hello bras-co-85-197-2-167.westend.de [85.197.2.167], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP

laut freshports gibts die auch beide für FreeBSD
 
Da dürfte mindestens ein "250 - STARTTLS" fehlen und der saslauthd müßte auch noch laufen. Zumindest ist das auf meinen Debianservern so und das dürfte auf deinem BSD auch nicht viel anders sein.

Bei mir sieht das so aus:
Code:
ehlo localhost
250-mail.hobbyschneiderin.de Hello bras-co-85-197-2-167.westend.de [85.197.2.167], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP

laut freshports gibts die auch beide für FreeBSD

Danke schon einmal. saslauthd läuft, die Authentifikation klappt. STARTTLS brauche ich doch eigentlich nur, wenn ich eine verschlüsselte Kommunikation machen will, oder?

Mir geht es ja eher (erstmal) darum, wie ich sendmail beibringen kann, nur SMTP AUTH zu verwenden.
 
Danke schon einmal. saslauthd läuft, die Authentifikation klappt. STARTTLS brauche ich doch eigentlich nur, wenn ich eine verschlüsselte Kommunikation machen will, oder?

Sendmail kann inclusive Kaffeekochen vermutlich alles, außer Frauen aufzureißen - man braucht nur was länger, um es davon zu überzeugen. :p

Mir geht es ja eher (erstmal) darum, wie ich sendmail beibringen kann, nur SMTP AUTH zu verwenden.

Die user und passwörter hast Du mit saslpasswd angelegt und den hast Du auch schon gefunden:
http://www.sendmail.org/~ca/email/auth.html
 
Die user und passwörter hast Du mit saslpasswd angelegt und den hast Du auch schon gefunden:
http://www.sendmail.org/~ca/email/auth.html

Naja, eben nicht. Der läuft über PAM und zieht somit die Benutzer aus /etc/passwd. Darum geht es ja auch nicht wirklich, sondern darum, wie ich abschalten kann, dass er die Benutzeranmeldung umgeht und wie man das abschalten kann.

Theoretisch, so wie ich das verstanden habe, benötige ich in der access-Datei in /etc/mail einfach ein To:meinDomain RELAY. Das alleine funktioniert aber nicht.

Noch weitere Ideen? Ich meine, dass kann nur noch eine Kleinigkeit sein ...
 
Gibt es in /etc/mal die datei "local-host-names" und stehen dort Domains drin?

Wenn ja, ist es kein Wunder, dass sendmail Emails fuer jene Domains annimt, da er sich fuer diese schliesslich zustaendig fuehlt.
Und natuerlich darf in "access" eine Domain nicht erwaehnt sein, sofern sendmail keine Mails fuer diese annehmen soll.

Hier wird doch alles erklaert: http://www.sendmail.org/~ca/email/auth.html

Require AUTH
You can require the use of SMTP AUTH for relaying by simply turning off other means of relaying for incoming mail, e.g., the access map or class R. That is, if you have my.domain in /etc/mail/relay-domains or
my.domain RELAY
in the access map, then remove the entry from class R (/etc/mail/relay-domains) and use
To:my.domain RELAY
in the access map.

Requiring SMTP AUTH for all mails is in general a bad idea, because then you cannot receive mails from other users (since the cannot authenticate). So you must do this only on a server that is solely intended for your own users to send mail, not for a publically advertised (via MX records) server.
 
Naja, eben nicht. Der läuft über PAM und zieht somit die Benutzer aus /etc/passwd. Darum geht es ja auch nicht wirklich, sondern darum, wie ich abschalten kann, dass er die Benutzeranmeldung umgeht und wie man das abschalten kann.

Wenn Du einen Benutzer anmelden möchtest und das verschlüsselt, dann solltest Du einfach mal welche anlegen und schauen was passiert.


Theoretisch, so wie ich das verstanden habe, benötige ich in der access-Datei in /etc/mail einfach ein To:meinDomain RELAY. Das alleine funktioniert aber nicht.

Das ist ja auch für ein Relay zuständig - zumindest verstehe ich das so.
http://www.sendmail.org/tips/relaying.php
Du willst aber keine Domain zulassen, sondern Dich als user anmelden und dann deine Mails abschicken. Im ersten Fall sitzt Du nämlich mit runter gelassener Hose mitten auf dem Marktplatz und im zweiten bleiben die Türen zum Lokus dicht.


Noch weitere Ideen? Ich meine, dass kann nur noch eine Kleinigkeit sein ...

Das es eine war erkennt man aber immer erst nachher und zwar nach erheblichem Aufwand. ;)
 
So, wie es aussieht, müssen die Domains, die der Server verwaltet, dennoch in /etc/mail/local-host-names, weil er sonst die Annahme verweigert. Das hat aber anscheinend nicht mit der Authentifizierung zu tun, die anschleinlich jetzt funktioniert, wie sie soll.
 
Nein. Wenn du nur einen SMTP Server fuer ausgehende Emails haben willst, ist ein Eintrag in local-host-names nicht erforderlich. Es ist dann genau genommen _nichts_ notwendig, ausser natuerlich funktionstuechtiges SMTP-AUTH.
Wenn dein Server allerdings Domains selbst inne hat, dann sind access und local-host-names und u.U. weitere Files notwendig.
 
Wenn dein Server allerdings Domains selbst inne hat, ...

Wie verstehe ich denn den Satz?
Der Rechner einen FQDN von XXX.YYY.IRGENDWO und sendmail soll nicht nur für YYY.IRGENDWO sondern auch für ABC.IRGENDWO die einkommenden Mails annehmen?
 
Ein Mailserver ist schon einmal gerne viele weitere Domains konfiguriert und bietet fuer diese Mailboxen oder ist Relay fuer diese.
 
Nein. Wenn du nur einen SMTP Server fuer ausgehende Emails haben willst, ist ein Eintrag in local-host-names nicht erforderlich. Es ist dann genau genommen _nichts_ notwendig, ausser natuerlich funktionstuechtiges SMTP-AUTH.
Wenn dein Server allerdings Domains selbst inne hat, dann sind access und local-host-names und u.U. weitere Files notwendig.

Ja, das ist klar. Hatte ich wohl unterschlagen (:

Dennoch vielen Dank an alle!
 
Back
Top