LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Server
User Name
Password
Linux - Server This forum is for the discussion of Linux Software used in a server related context.

Notices


Reply
  Search this Thread
Old 03-29-2011, 04:27 PM   #1
EarthDay47
LQ Newbie
 
Registered: Apr 2006
Posts: 2

Rep: Reputation: 0
sendmail, relaying, and apache on CentOS 5.5


Hello, everyone. I hope someone can help me. I have searched quite a bit on Google and here, scoured sendmail's confusing documentation, and I am still out of luck.

I am running sendmail and a PHP website on CentOS 5.5.

I am trying to do this:
  1. send mail from apache
  2. use a relay host
  3. rewrite the sender address to a domain address

The domain name of the CentOS computer is linux.localdomain . Mail sent by apache is always being sent as apache@linux.localdomain. All our email addresses are user@domain.org, and the SMTP relay server is 192.168.0.4. I want any email sent by apache on the Linux machine to be sent AS web@domain.org THROUGH 192.168.0.4 without exception. The Linux machine should NOT accept emails to local accounts.

I have tried the following:
  1. masquerading,
  2. /etc/mail/access,
  3. genericstable,
  4. local host names,
  5. domaintables,
  6. trusted users,
  7. aliases
and NONE of these settings work correctly.

All I want is for ANY email sent from the Linux machine to be from web@domain.org. And the ENVELOPE needs to be rewritten, not JUST the headers.


Here is what my sendmail.mc file currently looks like.

Code:
divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl #     /etc/mail/make
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
dnl #
dnl # Do not advertize sendmail version.
dnl #
dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnl
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration
dnl #
dnl define(`confLOG_LEVEL', `9')dnl
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
define(`SMART_HOST', `192.168.0.4')dnl
dnl #
dnl # WES 3/4/11 Trying this out: http://forums.fedoraforum.org/showthread.php?t=195968
dnl #
define(`confDOMAIN_NAME', `domain.org')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
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
define(`STATUS_FILE', `/var/log/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
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p')dnl
dnl #
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH.
dnl #
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #     cd /etc/pki/tls/certs; make sendmail.pem
dnl # Complete usage:
dnl #     make -C /etc/pki/tls/certs usage
dnl #
dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
dnl define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
dnl define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL', `groupreadablekeyfile')dnl
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
define(`confTO_IDENT', `0')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
dnl #
dnl # The following limits the number of processes sendmail can fork to accept
dnl # incoming messages or process its message queues to 20.) sendmail refuses
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his quota.
dnl #
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # For using Cyrus-IMAPd as POP3/IMAP server through LMTP delivery uncomment
dnl # the following 2 definitions and activate below in the MAILER section the
dnl # cyrusv2 mailer.
dnl #
dnl define(`confLOCAL_MAILER', `cyrusv2')dnl
dnl define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # enable both ipv6 and ipv4 in sendmail:
dnl #
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
LOCAL_DOMAIN(`linux.localdomain')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`mydomain.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
FEATURE(`masquerade_entire_domain')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl
MASQUERADE_AS(`domain.org')dnl
MASQUERADE_DOMAIN(`domain.org.')dnl
MASQUERADE_DOMAIN(`linux.localdomain.')dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
# WES 3/21/11 Trying genericstable http://www.madboa.com/geek/sendmail-genericstable/
FEATURE(`genericstable')dnl
GENERICS_DOMAIN(`localhost')dnl
GENERICS_DOMAIN(`localhost.localdomain')dnl
GENERICS_DOMAIN(`linux.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl
And my submit.mc file:

Code:
divert(-1)
#
# Copyright (c) 2001-2003 Sendmail, Inc. and its suppliers.
#       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.
#
#

#
#  This is the prototype file for a set-group-ID sm-msp sendmail that
#  acts as a initial mail submission program.
#

divert(0)dnl
sinclude(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`linux setup')dnl
define(`confCF_VERSION', `Submit')dnl
define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining
define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet
define(`confTIME_ZONE', `USE_TZ')dnl
define(`confDONT_INIT_GROUPS', `True')dnl
define(`confPID_FILE', `/var/run/sm-client.pid')dnl
define(`confDIRECT_SUBMISSION_MODIFIERS',`C')dnl
FEATURE(`use_ct_file')dnl
dnl
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
dnl FEATURE(`msp', `[127.0.0.1]')dnl
FEATURE(`msp', `[192.168.0.4]')dnl
There's other entries in /etc/mail/access and /etc/mail/genericstable, but I won't post those unless they're helpful.

If I try to force the envelope from address using the sendmail command, this happens:

command:

Code:
sendmail -v -f web@domain.org email@example.com
output:

Code:
e... Connecting to [192.168.0.4] via relay...
220 .
>>> EHLO linux@localdomain
250-relay.domain.org Hello linux@localdomain [192.168.0.8], pleased to meet you
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-SIZE 100000000
250-PIPELINING
250-8BITMIME
250 HELP
>>> MAIL From:<web@domain.org> SIZE=6 AUTH=web@domain.org
250 Sender <web@domain.org> OK
>>> RCPT To:<email@example.com>
>>> DATA
550 rejecting spoofed message
503 Bad sequence of commands
>>> RSET
250 Requested mail action okay, completed
>>> RSET
250 Requested mail action okay, completed
web@domain.org... Using cached ESMTP connection to [192.168.0.4] via relay...
>>> MAIL From:<> SIZE=1030
250 Sender <> OK
>>> RCPT To:<web@domain.org>
>>> DATA
250 Recipient <web@domain.org> OK
354 Start mail input; end with <CRLF>.<CRLF>
>>> .
250 Ok: queued as D4F6D40E0A2
web@domain.org... Sent (Ok: queued as D4F6D40E0A2)
Closing connection to [192.168.0.4]
>>> QUIT
221 relay.domain.org Goodbye linux@localdomain, closing connection
"550 rejecting spoofed message" is the pertinent error. But how to get around that????



Please, any help would be much appreciated. Please let me know if you need more information.
 
Old 03-31-2011, 04:15 AM   #2
Noway2
Senior Member
 
Registered: Jul 2007
Distribution: Gentoo
Posts: 2,125

Rep: Reputation: 781Reputation: 781Reputation: 781Reputation: 781Reputation: 781Reputation: 781Reputation: 781
I configured sendmail once on a server for basic relaying of HIDS alerts through a smart host. I will say it was a less than pleasant experience.

For what you are looking to do, I would recommend Postfix. It is a lot more straightforward to configure with no files with that dnl syntax and helper files that need to be compiled with settings that don't seem to do what you would think. Postfix, supports a whole host of rewrite and alias directives and I am sure one of them will do the trick. Here is a link to get started with. From the top of the document it says you can do the following, which sounds an awful lot like, if not exactly what you are after:
Quote:
Replace an internal address by an external address. For example, replace "username@localdomain.local" by "isp-account@isp.example" when sending mail from a home computer to the Internet
 
Old 03-31-2011, 03:47 PM   #3
amonamarth
Member
 
Registered: Dec 2009
Location: Los Angeles
Distribution: Fedora ,CentOS, RHEL
Posts: 59

Rep: Reputation: 17
Just a thought.

"550 rejecting spoofed message" could mean that sendmail cannot verify the message's sender; I wonder if there is a DNS issue here, whereas sendmail cannot determine the domain name of the localmachine.
Try this:
- In /etc/sendmail.cf, look for this section:

# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM

...change the last line to
Djdomain_name

... just domain name, do NOT add host name also.

- sudo /sbin/service sendmail reload
 
Old 04-01-2011, 09:06 PM   #4
EarthDay47
LQ Newbie
 
Registered: Apr 2006
Posts: 2

Original Poster
Rep: Reputation: 0
Thanks, guys. I did get this resolved, and I ended up going with postfix. That program is like a blessing granted for all the pain that sendmail caused me. I set up the masquerading in postfix and it works.

For the 550 error, it was actually our internal spam filter not recognizing that server as a "trusted relay". Just had to add an exception for it, and we're good to go.

No more dnl, please...
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Sendmail Relaying? your_shadow03 Linux - Newbie 1 10-01-2009 02:45 PM
Sendmail and relaying Wynand1 Linux - Networking 3 12-03-2004 09:50 AM
Sendmail relaying... kloppster Linux - Software 3 07-19-2004 12:49 PM
Sendmail and Relaying Hessian Rider Linux - Networking 2 03-04-2003 07:53 AM
Sendmail 8.11 relaying?? magyartoth Linux - General 3 04-29-2002 03:24 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Server

All times are GMT -5. The time now is 12:29 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration