smtp-auth

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
preyz
Posts: 54
Joined: 2003-09-17 16:40

smtp-auth

Post by preyz » 2004-01-28 21:10

ich habe nun mehrere tutorials/howtos für das einrichten von smtp-auth durchgelesen.
dabei musste ich immerwieder feststellen, dass meine einstellungen korrekt waren!
dennoch funktioniert smtp auth nicht!

"/etc/mail/sendmail.mc":

Code: Select all

divert(-1) 
dnl This is the sendmail macro config file. If you make changes to this file, 
dnl you need the sendmail-cf rpm installed and then have to generate a 
dnl new /etc/sendmail.cf by running the following command: 
dnl 
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 
dnl 
include(`/usr/share/sendmail-cf/m4/cf.m4') 
VERSIONID(`linux setup for Red Hat Linux')dnl 
OSTYPE(`linux') 
define(`confDEF_USER_ID',``8:12'')dnl 
undefine(`UUCP_RELAY')dnl 
undefine(`BITNET_RELAY')dnl 
define(`confAUTO_REBUILD')dnl 
define(`confTO_CONNECT', `1m')dnl 
define(`confTRY_NULL_MX_LIST',true)dnl 
define(`confDONT_PROBE_INTERFACES',true)dnl 
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl 
define(`ALIAS_FILE', `/etc/aliases')dnl 
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl 
define(`UUCP_MAILER_MAX', `2000000')dnl 
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl 
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl 
define(`confAUTH_OPTIONS', `A')dnl 
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
dnl define(`confTO_QUEUEWARN', `4h')dnl 
dnl define(`confTO_QUEUERETURN', `5d')dnl 
dnl define(`confQUEUE_LA', `12')dnl 
dnl define(`confREFUSE_LA', `18')dnl 
dnl FEATURE(delay_checks)dnl 
FEATURE(`no_default_msa',`dnl')dnl 
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl 
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl 
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl 
FEATURE(redirect)dnl 
FEATURE(always_add_domain)dnl 
FEATURE(use_cw_file)dnl 
FEATURE(use_ct_file)dnl 
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl 
FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl 
FEATURE(`blacklist_recipients')dnl 
EXPOSED_USER(`root')dnl 
dnl Change sendmail to only listen on the loopback interface and 
dnl the internal network interface; never accept outside traffic. 
dnl Add "dnl" to both DAEMON_OPTIONS lines to accept mail from 
dnl all network interfaces. 
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 
dnl DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.1, Name=MTA') 
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires 
dnl a kernel patch 
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6') 
dnl We strongly recommend to comment this one out if you want to protect 
dnl yourself from spam. However, the laptop and users on computers that do 
dnl not have 24x7 DNS do need this. 
dnl FEATURE(`accept_unresolvable_domains')dnl 
dnl FEATURE(`relay_based_on_MX')dnl 
MAILER(smtp)dnl 
MAILER(procmail)dnl 
Cwlocalhost.localdomain 
dennoch funktioniert smtp-auth nicht.

(ausgabe wenn ich "ehlo localhost" mache:)

Code: Select all

220 server.jakobjp.de ESMTP Sendmail 8.11.6/8.11.6; Wed, 28 Jan 2004 20:48:45 +0
100
ehlo localhost
250-server.jakobjp.de Hello 129.33.dsl2.ip.foni.net [62.214.33.129], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-XUSR
250 HELP
ich bitte um eure hilfe!

(und ja, ich habe per "m4" eine neue sendmail.cf erstellt und in /etc/ kopiert und sendmail neugestartet. alle anderen dateien die in den howtos angegeben werden sind auch mit dem richtigen inhalt vorhanden.)

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: smtp-auth

Post by squize » 2004-01-28 21:49

Ich habe mich auch mal durch dei m4 macros gekämpft und hatte ähnliche Probleme :)

Bei wollte AUTH LOGIN nicht funktionieren, so dass ich es am Ende die sendmail.cf manuell geändert habe.

Jetzt habe ich mal mein sendmail Buch ausgepackt und dachte am Ende: "Jo preyz hat doch alles korrekt gemacht" :)

Aber dann kam mir die Erleuchtung und dir wird auch auffallen, dass du vor lauter konfigurieren dummerweise eine entscheidende Zeile vergessen hast.

divert <- Directs the output of the m4 process,

-1 Discards this output
0 Send this data through normal processing


Wenn du also erst ein divert(-1) machst entspricht dass einen (* bei PHP oder einem /* bei C, dann solltest du bevor du relevante Konfigurationanweisungen setzt mit einem divert(0) dies wieder ausschalten. Im Prinzip übergibst du m4 eine leere Datei :).

Ich schlage folgende Ã?nderung vor:

Code: Select all

divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/sendmail.cf by running the following command:
dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include(`/usr/share/sendmail-cf/m4/cf.m4') 
ändern in

Code: Select all

divert(-1)
#This is the sendmail macro config file. If you make changes to this file,
#you need the sendmail-cf rpm installed and then have to generate a
#new /etc/sendmail.cf by running the following command:
#
#m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
divert(0)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
OSTYPE(`linux')dnl
Viel Erfolg

Marc

P.S.: Ã?brigens bin ich mir auch nicht mehr ganz sicher, ob die Leerzeichen zwischen ") dnl" nicht auch problematisch sind, ich würde sie sicherheitshalber mal entfernen.

preyz
Posts: 54
Joined: 2003-09-17 16:40

Re: smtp-auth

Post by preyz » 2004-01-28 22:48

leider hat die vorgeschlagene ønderrung nicht geholfen.

übrigens: es handelt sich bei mir um sendmail in der version 8.11.6

ich verstehe einfach nicht warum es nicht funktioniert.
dieses tutorial sollte angeblich auch mit meiner version erfolgreich getestet worden sein...
http://rx-crx.no-ip.com/howtos/smtpauth.html

kann es vielleicht sein, das irgendwelche einstellungen von "pop 3 bevor smtp" das überschreibt, was ich mit smtp_auth versuche?
(der server war standardmäsig so konfigueriert, das man erst eine pop3 verbindung herstellen musste, bevor man per smt versenden konnte - ausser man wollte an eine meiner eigenen domains verschicken.)

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: smtp-auth

Post by squize » 2004-01-28 23:18

Was für eine Distri hast du?
Gibt es die Datei /usr/share/sendmail-cf/m4/cf.m4?

Kannst du in deiner sendmail.cf folgende Einträge finden?
C{TrustAuthMech}LOGIN PLAIN GSSAPI CRAM-MD5 DIGEST-MD5
C{TrustAuthMech}LOGIN PLAIN CRAM-MD5 DIGEST-MD5 GSSAPI

....
# list of authentication mechanisms
O AuthMechanisms=LOGIN PLAIN CRAM-MD5 DIGEST-MD5 GSSAPI

Was sat das Log, wenn du sendmail startest?

Gruss

Marc

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: smtp-auth

Post by squize » 2004-01-28 23:31

Okay vielleicht hilft dir mein Setup sendmail 8.12.3 mit Cyrus IMAP:

sendmail.mc:

Code: Select all

divert(-1)
# Copyright (c) 1997-1999,2000 SuSE GmbH Nuernberg, Germany.
# Author: Florian La Roche
#         Werner Fink      <feedback@suse.de>
#
# After the `divert(0)' all lines starting with `dnl' are
# comments until the next newline character.
# Putting words into `'-pairs disables macro expansion
#
include(`/usr/share/sendmail/m4/cf.m4')
divert(0)dnl
VERSIONID(`@(#)Setup for SuSE Linux     8.12.2-0.4 (SuSE Linux) 2002/01/14')
define(`confBIND_OPTS', `-DNSRCH -DEFNAMES')dnl
OSTYPE(`test')dnl
DOMAIN(`test.de')dnl
define(`LUSER_RELAY', `local:postmaster')dnl
define(`confLOCAL_MAILER', `cyrus')dnl
FEATURE(`nocanonify')dnl
FEATURE(`always_add_domain')dnl
TRUST_AUTH_MECH(`CRAM-MD5 DIGEST-MD5 GSSAPI')dnl
define(`confAUTH_MECHANISMS',   `CRAM-MD5 DIGEST-MD5 GSSAPI')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`cyrus')dnl

LOCAL_RULE_0
R$=N                    $: $#local $: $1
R$=N < @ $=w . >        $: $#local $: $1
Rbb + $+ < @ $=w . >    $:cyrusbb $: $1
passend dazu test.m4

Code: Select all

divert(-1)
#
#  Copyright (c) 1999,2000 SuSE GmbH Nuernberg, Germany.
#  Author: Werner Fink <werner@suse.de>
#
divert(0)
VERSIONID(`@(#) suse-linux.m4   8.12.3-0.6 (SuSE Linux) 2002/01/14')
define(`confCF_VERSION', `SuSE Linux 0.6')dnl
dnl
dnl Flags
dnl
define(`confDEF_USER_ID',               `daemon:daemon')dnl
define(`confCOPY_ERRORS_TO',            `Postmaster')dnl
define(`confMAX_MIME_HEADER_LENGTH',    `256/128')dnl
define(`confMAX_HEADERS_LENGTH',        `32768')dnl
dnl define(`confQUEUE_LA',              `12')dnl
dnl define(`confREFUSE_LA',             `18')dnl
define(`confMAX_DAEMON_CHILDREN',       `15')dnl
define(`confTO_ICONNECT',               `30s')dnl
dnl Many sysadmins have disabled IDENT
define(`confTO_IDENT',                  `0s')dnl
dnl Should we set noreceipts aka disable DSN?
define(`confPRIVACY_FLAGS',             `authwarnings,needmailhelo,novrfy,noexpn,noverb')dnl
define(`confTRUSTED_USERS',             `mdom wwwrun root uucp daemon mail')dnl
define(`confNO_RCPT_ACTION',            `add-to-undisclosed')dnl
dnl Note: RFC1891 says that, but often misused
dnl define(`confRRT_IMPLIES_DSN',       `True')dnl
FEATURE(`always_add_domain')dnl
dnl
dnl Mailer
dnl
dnl
dnl The default data base type is hash
dnl
define(`DATABASE_MAP_TYPE', `hash')dnl
dnl
dnl Main paths
dnl
define(`SMLIBDIR',                      `/usr/lib/sendmail.d')dnl
define(`MAIL_SETTINGS_DIR',             `/etc/mail/')dnl
define(`confDEAD_LETTER_DROP',          `/var/log/dead.letter')dnl
define(`STATUS_FILE',                   `/var/log/statistics')dnl
define(`QUEUE_DIR',                     `/var/spool/mqueue')dnl
define(`confHOST_STATUS_DIRECTORY',     `.hoststat')dnl
define(`HELP_FILE',                      SMLIBDIR`/helpfile')dnl
define(`ALIAS_FILE',                    `/etc/aliases')dnl
define(`confHOSTS_FILE',                `/etc/hosts')dnl
define(`confCT_FILE',                   `-o /etc/mail/trusted-users %[^#]')dnl
define(`confCW_FILE',                   `-o /etc/mail/local-host-names %[^#]')dnl
define(`confCR_FILE',                   `-o /etc/mail/relay-domains %[^#]')dnl
define(`confUSERDB_SPEC',               `/etc/mail/userdb.db')dnl
define(`confSERVICE_SWITCH_FILE',       `/etc/mail/service.switch')dnl
define(`confEBINDIR',                    SMLIBDIR`/bin')dnl
define(`confDONT_BLAME_SENDMAIL',       `AssumeSafeChown,TrustStickyBit,GroupReadableSASLDBFile')dnl
define(`confCONTROL_SOCKET_NAME',       `/var/run/sendmail/control')dnl
define(`CERT_DIR',                       MAIL_SETTINGS_DIR`certs')dnl
define(`confCACERT_PATH',                CERT_DIR)dnl
define(`AUTH_DIR',                       MAIL_SETTINGS_DIR`auth')dnl
dnl
dnl Daemon (disable new Message Submission Agent)
dnl
dnl
dnl Common features
dnl
FEATURE(`mailertable',                  `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`genericstable',                `hash -o /etc/mail/genericstable.db')dnl
FEATURE(`virtusertable',                `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db',                    `hash -T<TMPF> -o /etc/mail/access.db')dnl
dnl
LOCAL_CONFIG
und passend dazu test.de.m4:

Code: Select all

divert(-1)
#
# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
#       All rights reserved.
# Copyright (c) 1983 Eric P. Allman.  All rights reserved.
# Copyright (c) 1988, 1993
#       The Regents of the University of California.  All rights reserved.
#
# By using this file, you agree to the terms and conditions set
# forth in the LICENSE file which can be found at the top level of
# the sendmail distribution.
#
#

#
#  The following is a generic domain file.  You should be able to
#  use it anywhere.  If you want to customize it, copy it to a file
#  named with your domain and make the edits; then, copy the appropriate
#  .mc files and change `DOMAIN(generic)' to reference your updated domain
#  files.
#
divert(0)
VERSIONID(`$Id: generic.m4,v 8.15 1999/04/04 00:51:09 ca Exp $')
define(`confFORWARD_PATH', `$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward')dnl
define(`confMAX_HEADERS_LENGTH', `32768')dnl
define(`confCR_FILE',`/etc/mail/relay-domains')dnl
FEATURE(`redirect')dnl
FEATURE(`use_cw_file')dnl
define(`confAUTH_MECHANISM', `LOGIN PLAIN GSSAPI CRAM-MD5 DIGEST-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN GSSAPI CRAM-MD5 DIGEST-MD5')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=587, Name=MSA, M=Ea')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth/auth_info')dnl
Ich hoffe das hilft dir. Wenn nicht, dann ist die beste Vorgehensweise alles aus den macros rauszuscheissen, wass dir ichts sagt und dann langsam wieder das hinzuzufügen, was gebraucht wird.

Gruss

Marc

preyz
Posts: 54
Joined: 2003-09-17 16:40

Re: smtp-auth

Post by preyz » 2004-01-28 23:35

ich habe red hat (welche version weiss ich leider nicht).

die datei "cf.m4" ist im angegebenen verzeichniss vorhanden.

ich finde nur folgende zeilen:
C{TrustAuthMech}DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
und
O AuthMechanisms=DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

edit:
oh, jetzt hasst du ja schon weiteres gepostet...
werde ich sofort austesten.

vielen dank für die hilfe und anstrengungen!
Last edited by preyz on 2004-01-28 23:45, edited 1 time in total.

preyz
Posts: 54
Joined: 2003-09-17 16:40

Re: smtp-auth

Post by preyz » 2004-01-28 23:39

kann ich nun die zwei dateien einfach direkt übernehmen?

also von der .mc eine neue sendmail.cf erstellen, aber wo soll die test.m4 hin? (in /usr/share/sendmail-cf/m4/ ?)

---
noch zur vorigen frage:

/var/log/maillog sagt folgendes beim restart von sendmail:
Jan 28 23:42:36 server sendmail[1578]: starting daemon (8.11.6): SMTP+queueing@01:00:00

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: smtp-auth

Post by squize » 2004-01-29 00:01

Hast du mal ein


updatedb
locate sendmail.cf

gemacht?

einige Distris haben nämlich sendmail.cf in
/etc/mail
andere in
/etc

Vieleicht liest er ja einfach das falsche sendmail.cf ein?

Gruss

marc

preyz
Posts: 54
Joined: 2003-09-17 16:40

Re: smtp-auth

Post by preyz » 2004-01-29 08:35

also die richtige sendmail.cf wird schon ausgelesen.

leider verstehe ich nicht ganz den zusammenhang zwischen den zwei dateien, die du vorhin gepostet hasst.
was ist das für eine test.m4 datei?
soll ich irgendwas in den files ändern?

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: smtp-auth

Post by squize » 2004-01-29 11:29

Normalerweise wird über das macro DOMAIN und OSTYPE jeweils eine weitere Datei eingebunden in der OS-spezifische und DOMAIN-spezifische Anweisngen stehen, dafür gibt es unter /usr/share/sendmail die Ordner ostype und domain.

Da ich ein 8.12.2-3 benutze ist es bei dir eventuell anders

Gruss

Marc

olaf.dietsche
RSAC
Posts: 409
Joined: 2002-12-19 02:06
Location: Siegburg

Re: smtp-auth

Post by olaf.dietsche » 2004-01-31 11:50

preyz wrote:(ausgabe wenn ich "ehlo localhost" mache:)

Code: Select all

220 server.jakobjp.de ESMTP Sendmail 8.11.6/8.11.6; Wed, 28 Jan 2004 20:48:45 +0
100
ehlo localhost
250-server.jakobjp.de Hello 129.33.dsl2.ip.foni.net [62.214.33.129], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-XUSR
250 HELP
Ich sehe hier keine Zeile mit

Code: Select all

250-AUTH LOGIN PLAIN
D.h. dein sendmail wurde ohne AUTH gebaut. Wenn dieser Mechanismus nicht vorhanden ist, dann funktioniert AUTH natürlich nicht.