2

sender_email - email address that does not exist, but must be used as FROM address, because receiver host rejects emails from other emails.

receiver_email - email that is supposed to receive the sent message

local_smtp - SMTP server that is installed on another computer in the local network and forwards all received messages to external_smtp

external_smtp - SMTP server that is installed on a computer in another network and rejects all emails that do not come from sender_email

I have configured sendmail to send emails from sender_email and authenticate with user/password to local_smtp that is supposed to send the email message further to external_smtp that only accepts emails sent from a specific email, which is sender_email in this case. However, judging from the log files sendmail authenticates with external_smtp instead of local_smtp. I do not want to authenticate with external_smtp, because that is up to local_smtp.

logfile:

10745 <<< Subject: Terminal Email Send
10745 <<<
10745 <<< Email Content line 1
10745 <<< Email Content line 2
10745 <<< [EOF]
10759 === CONNECT local_smtp.
10759 <<< 220 **********************************************************************^M
10759 >>> EHLO mgmt-snmp
10759 <<< 250-local_smtp says hello^M
10759 <<< 250-AUTH LOGIN PLAIN^M
10759 <<< 250-VRFY^M
10759 <<< 250 8BITMIME^M
10759 >>> MAIL From:<sender_email> AUTH=sender_email
10759 <<< 530 authentication required^M
10759 >>> This is a MIME-encapsulated message
10759 >>>
10759 >>> --t8IEdmbX010759.1442587188/mgmt-snmp
10759 >>>
10759 >>> The original message was received at Fri, 18 Sep 2015 16:39:48 +0200
10759 >>> from root@localhost
10759 >>>
10759 >>>    ----- The following addresses had permanent fatal errors -----
10759 >>> receiver_email
10759 >>>     (reason: 530 authentication required)
10759 >>>

I guess it has something to do with AUTH=sender_email, but I do not know how to change it.

sendmail.mc:

divert(-1)dnl
#-----------------------------------------------------------------------------
# $Sendmail: debproto.mc,v 8.14.4 2014-02-11 13:02:08 cowboy Exp $
#
# Copyright (c) 1998-2010 Richard Nelson.  All Rights Reserved.
#
# cf/debian/sendmail.mc.  Generated from sendmail.mc.in by configure.
#
# sendmail.mc prototype config file for building Sendmail 8.14.4
#
# Note: the .in file supports 8.7.6 - 9.0.0, but the generated
#   file is customized to the version noted above.
#
# This file is used to configure Sendmail for use with Debian systems.
#
# If you modify this file, you will have to regenerate /etc/mail/sendmail.cf
# by running this file through the m4 preprocessor via one of the following:
#   * make   (or make -C /etc/mail)
#   * sendmailconfig 
#   * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# The first two options are preferred as they will also update other files
# that depend upon the contents of this file.
#
# The best documentation for this .mc file is:
# /usr/share/doc/sendmail-doc/cf.README.gz
#
#-----------------------------------------------------------------------------
divert(0)dnl
#
#   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.
#
#  This file is used to configure Sendmail for use with Debian systems.
#
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.4-4.1ubuntu1 2014-02-11 13:02:08 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl #   into this directory before writing files.
dnl #   If *all* your user accounts are under /home then use that
dnl #   instead - it will prevent any writes outside of /home !
dnl #   define(`confSAFE_FILE_ENV',             `')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove `, Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl #
dnl # Be somewhat anal in what we allow
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE(`use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE(`access_db', , `skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE(`greet_pause', `1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE(`delay_checks', `friend', `n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define(`confBAD_RCPT_THROTTLE',`3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define(`confCON_EXPENSIVE',`True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl

dnl LOCAL_CONFIG
dnl EXPOSED_USER(root uucp)dnl # users exempt from masquerading
dnl LOCAL_USER(root)dnl
dnl MASQUERADE_AS(`external_smtp')dnl
dnl FEATURE(`allmasquerade')dnl
dnl FEATURE(`masquerade_envelope')dnl
dnl FEATURE(`nullclient', local_smtp)dnl

LOCAL_CONFIG
## Custom configurations below (will be preserved)
define(`SMART_HOST', `local_smtp')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash /etc/mail/authinfo')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl

authinfo:

AuthInfo:local_smtp "U:root" "I:my_username" "P:my_password"
  • Looks like whatever is connecting to local_smtp is not authenticating, as it did not issue an AUTH verb, and instead issued a MAIL FROM, which local_smtp then shot down. Is the MTA on whatever is connecting to local_smtp properly configured to authenticate as a client? – thrig Sep 18 '15 at 15:49
  • I use sendmail for authentication and it is configured in sendmail.mc file: FEATURE(``authinfo', ``hash /etc/mail/authinfo')dnl – Jonas Hoffmann Sep 18 '15 at 16:24
  • But it did use AUTH for local_smtp: 10759 <<< 250-AUTH LOGIN PLAIN^M. Or is this not it? – Jonas Hoffmann Sep 21 '15 at 7:43
  • That's the banner from the server. Had the client authenticated, I would expect to see a response >>> AUTH .... Instead, there is a >>> MAIL ... line. – thrig Sep 21 '15 at 14:27
0

As root send a test message with tracking map (authinfo) lookups.

#!/bin/sh
# -d60.5 turn on traking map lookups
/usr/sbin/sendmail -d60.5 -v -i -fsender_email -- receiver_email  <<END
subject: test

test
END

Possible outcomes to define next tests:

  • no authinfo lookups
  • authinfo lookups with keys other than you expected
  • authinfo lookups returning "no match"
  • authinfo lookups returning correct values

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.