|
Note:
Most of the commands listed below can or should only be executed
from the root account.
The program
used to control the sending and receiving of Email is sendmail.
- Normally
it runs as a background daemon.
- It determines
and controls how to send internal Email vs external Email
to the Internet.
- The daemon
also controls the retrieving of mail from an Email server.
In this document
we cover some options that can be used to determine sendmail status.
| Examples |
What
it does |
| sendmail
-bp or mailq |
Displays
the status of the mail queue. List Email files waiting
to be sent and incoming. |
| ps
ax|grep sendmail |
Lists
the process status of the sendmail daemon. May display
something similar to...
128 ? S 0:03 sendmail: accepting connections on port 25 |
| sendmail
-bi or newaliases |
Rebuilds
the aliases database. Should be run after any changes
are made to the alias file. |
top
of page
Most of the
parameters to control how sendmail works are stored in /etc/sendmail.cf.
You can view the contents of this file by using less /etc/sendmail.cf
Note:
You should not make changes to this file unless you understand
sendmail. A simple error in this file can cause sendmail to stop
working.
Very few changes
should have to be made to the standard supplied file. Here are
two main parameters that get changed.
- Cw
localhost ahinc.com
- DMahinc.com
top
of page
Start/Stop
sendmail
Whenever changes
are made to the sendmail.cf file, sendmail must be stopped and
restarted before changes take effect. To do so...
- cd
/etc/rc.d
- ./sendmail
stop
- ./sendmail
start
top
of page
Starting with
SuSE Linux 6.2, in order to allow the sending of email there are
two procedures that must be set up. If this is not done you will
get the message "Relaying not allowed - Error 550".
This is a new security feature to prevent someone from using your
email server for spam mail.
- User's
IP address most be added to the /etc/hosts
file
- Legal IP
addresses or domain names must be added to /etc/mail/access
file
- To
allow all IP's in starting with 192.168.1, enter 192.168.1
relay
- To
allow a domain name such as ahi.com, enter ahi.com
relay
top
of page
The file /etc/aliases
contains alternative or alias names.
- This can
be used to redirect Email to a different user or a group of
users.
- This file
can be maintained using a text editor such as vi
or the Webmin tool.
- Changes
are not active until the aliases database is rebuilt using either
sendmail BI
or newaliases.
Note:
upper Vs lower case letters are ignored in both Email names and
Domain names. Sending mail to Roger@AHInc is the same as roger@ahinc.com.
Using upper case letters only makes the name more readable.
- The first
value is always the Email address that the original mail was
sent to, i.e. the name used in composition of an Email message,
followed by a colon.
- The second
entry can take different forms.
- It
can simply be a new Email address where the mail is forwarded
to.
- It
can be a pointer to a file containing several Email addresses.
- It
can be a executable file that filters or further processes
the mail.
| Examples |
What
it does |
| sales:
roger@ahinc.com |
all
mail sent to 'sales', goes to 'roger@ahinc.com' |
| virusalert:
root |
all
mail sent to 'virusalert', goes to the local user 'root' |
| Majordomo:
"|/usr/lib/majordomo/wrapper majordomo" |
all
mail sent to 'Majordomo' is processed by the 'wrapper' program |
| horizon:
"|/usr/lib/majordomo/wrapper resend -l horizon horizon-list"
|
all
mail sent to 'horizon' is sent to the names in the file 'horizon-list' |
top
of page
If your connection
to the Internet is via a dialup line, the command fetchmail
can be used in conjunction with sendmail to get Email from
your ISP's server.
- Fetchmail
is normally scheduled by 'cron' to periodically get and send
new Email.
- The only
fetchmail command you typically want to execute banally is to
run a check to see if any new Email exists on the ISP server.
fetchmail
-c Will display the number of messages waiting
to be retrieved.
top
of page
| Location |
Used
for |
| /var/spool/mail |
Received
Email messages are stored in the directory. There is a separate
file for each user. |
| /var/mqueue |
Email
waiting to be sent |
| /var/log/mail |
A
log of Email sent and received. The contents
of the log file can be viewed by the command: less
/var/log/mail. |
| /etc/mail |
Email
configuration files |
top
of page
Most everyone
uses an Email client such as Eudora, Outlook, Netscape, etc to
send and read Email. You can use the standard Linux mail
command to send and read Email. Because this is not a very user-friendly
utility, it is recommend to only use the mail command for
testing Email. It can be handy for reading Email for the 'root'
account.
| Examples |
What
it does |
| mail |
- Allows
you to read Email.
- First
displays a summary list of unread Email messages.
- You
can select a message to read the message contents.
- You
can delete messages.
|
| mail
roger |
- Creates
an Email message to the local user 'roger'.
- You
will be prompted to enter the 'subject' and then the body
of the message.
- Enter
a period to exit mail and send the message.
|
| Mail
roger@ahinc.com |
If
your domain is not ahinc.com, this will send Email
to external user. |
A
better alternative to mail is to use the Email client pine.
Linux usually has pine already installed. It
provides help prompts for all commands and is easier to use and
understand. To use simply enter pine.
top
of page
Automatically Scan Email for Viruses
The following
is a summary of how to have sendmail scan for viruses.
Requirements
- F-Secure
for Linux
- Amavis
Installation
- F-Secure
for Linux
- Cron
Job
- Schedule
updates for once an hour via cron
- Change
crontab cromand line parms for daily scan
- Other
-
Compile and install tnef and xbin. Both
files should be placed in /usr/local/bin
- Compile
and install Amavis - ./configure -with-notify-receiver=yes
add code 8 to scanstatus8 in scanmails to catch suspicious
files
- Change
SuSEconfig sendmail (not sendmail.cf) directly to include
amavis.m4 macro
- Copy
amavis.m4 to /usr/share/sendmail/feature/
- Include
new feature in /sbin/conf.d/SuSEconfig.sendmail
- New
entry should be after procmail entry
- Run
SuSEconfig to automatically recreate the new /etc/sendmail.cf
- Check
/etc/sendmail.cf for new changes
- Restart
sendmail
- Send
an email message containing the test virus
top
of page
Bug
Fix for SuSE sendmail and Email Scanner
Depending
on your system, subprocesses are run as the UID of the local recipient
(not 'root'). Calling your local delivery program (usually procmail)
might have insufficient privileges to deliver it any further.
This usually happens on SuSE Linux 6.0 and
greater.
Changes
to /etc/sendmail.cf
Add the
o flag and remove the S flag in the Mlocal,
F= section.
Before
Mlocal,
P=/usr/sbin/scanmails, F=lsDFMAw5:/|@qSPfhn9,
S=10/30,
R=20/40,
T=DNS/RFC822/X-Unix,
A=scanmails -Y -a $h -d $u
After
Mlocal,
P=/usr/sbin/scanmails, F=olsDFMAw5:/|@qPfhn9,
S=10/30,
R=20/40
T=DNS/RFC822/X-Unix,
A=scanmails -Y -a $h -d $u
top
of page
Virtual
Email Hosting
Our concept
of a virtual Email host...
top
of page
Stopping Spam (Relay)
To prevent
your server from being used to send spam mail by relaying email
messages, the following configuration changes have to be installed.
Without this someone could use your email server to distribute
spam mail. To the email receipient it would appear as if your
domain sent the email. In addition it can add unneccesary overhead
to your server and network, causing access to the Internet and
your server to react very slowly.
Newer
version of sendmail (>= version 8.9)
sendmail.cf
Just for
your information, the newer version of sendmail
keeps the configuration file in /etc/mail/sendmail.cf
The older version kept it in /etc/sendmail.cf
/etc/mail/relay-domains
The file /etc/mail/relay-domains list the domains
that you want to allow relaying of email to an outside host.
The following
example lists three domain names that would be allowed to
relay mail from your server.
ahinc.com
n9sla.tzo.com
Chicago1.Level3.net
Older
version of sendmail (< version 8.9)
To stop relaying
of spam email, in the SuSE version of Linux, the following files
have to be edited.
/sbin/conf.d/SuSEconfig.sendmail
In this
file locate the section that starts with cat <<EOF and ends with EOF.
Just
before EOF there should a few lines like...
MAILER(\`uucp')dnl
MAILER(\`bsmtp')dnl
MAILER(\`fido')dnl
After
this section and before the EOF line, add...
HACK(\`use_ip',\`/etc/mail/LocalIP')dnl
HACK(\`check_rcpt4')dnl
/etc/mail/LocalIP
This file
may not exist so you may have to create it. This file contains
the local IP addresses. Example...
127.0.0.1
192.168.1
Implement
changes
After the
above changes have been made you need to....
- Run SuSEconfig (as root)
- Restart
the sendmail process
- To
stop, enter...
/etc/rc.d/sendmail stop
- To
start, enter...
/etc/rd.d/sendmail start
top
of page
|