MailMarshal SMTP Anti-Spam Configuration

Transcription

MailMarshal SMTP Anti-Spam Configuration
Technical White Paper
MailMarshal SMTP
Anti-Spam Configuration
Contents
Best Practices
2
Optimum Base Configuration
2
SpamProfiler
3
SpamCensor
4
SpamBotCensor
6
URLCensor
6
Reputation Services (DNS Blacklists)
9
CountryCensor
14
HELO Rules
17
TextCensor Scripts
18
Attack Prevention
19
Spam Management Tips
19
Whitelisting Practices
22
Submitting Missed Spam Or False Positives to M86 Security
26
Common Pitfalls
27
Conclusion
28
MailMarshal SMTP provides an excellent spam detection rate out of the box. Basic configuration settings are covered
in the white paper “MailMarshal SMTP Anti-Spam Basics.” You should read that paper and review your MailMarshal
SMTP configuration before continuing to this paper.
This paper provides detailed information about anti-spam functions in MailMarshal SMTP and explains how to adjust
the settings of anti-spam options including SpamCensor, SpamProfiler, CountryCensor, and other items. The
information presented has been updated for MailMarshal SMTP 6.7.
This paper requires an intermediate level technical understanding of email concepts and MailMarshal configuration.
To fully understand and apply the ideas in this paper, you should be familiar with the MailMarshal Configurator, the
registry editor, and text configuration files.
m86security.com
MailMarshal SMTP continues the tradition of providing a comprehensive tool to control spam based on an extensive
array of functionality. The two key concepts are detection and management. MailMarshal SMTP uses technologies
that enable high spam detection rates and few false positives, with easy administration and a variety of precise
customization options. It does this within the context of an integrated email content management package.
MailMarshal SMTP is more than an anti-spam system – it provides organizations with the means to control all email
content, including spam, viruses, text, and attachments, within a rules-based framework.
BEST PRACTICES
Whether a system has been installed cleanly with all of the default rules in place, or upgraded from a number of major
versions back, it is very important to ensure that MailMarshal SMTP is taking advantage of all of the features
available. Spam updates are retrieved automatically through the web, but M86 Security will not make modifications or
additions to existing rules. In order to ensure that you are using the latest technology released, and to make use of
the files downloaded through the automatic updates, a base configuration should normally have a number of antiSpam features enabled. These include:
• SpamCensor
• SpamBotCensor
• SpamProfiler
• Reputation Services (DNS blacklists)
A number of other functions available within MailMarshal SMTP can also be used for anti-spam purposes. These
include:
• URLCensor, to check for links to domains frequently advertised in spam
• URLCensorIP, to check for links that resolve to IP addresses frequently used in spam
• CountryCensor, to check the country of origin of messages
• HELO rules, which are used to examine the behavior of the connecting SMTP system
• Attack Prevention capabilities, which allow you to enforce network-friendly behavior on the part of connecting systems
• TextCensor scripts, which provide you with a simple way of updating spam detection capabilities on the fly before automatic
spam updates are released.
The following sections will discuss the use of the various anti-Spam tools and other techniques available within
MailMarshal SMTP, and provide instructions for their implementation.
OPTIMUM BASE CONFIGURATION
To achieve the highest catch rate and optimum performance, anti-spam rules should be run in the order of the
MailMarshal 6.7 default rules:
• SpamBotCensor and SpamProfiler
• SpamCensor and SpamProfiler
• SpamProfiler
• SpamBotCensor
• SpamCensor
• DNS blacklists
When SpamProfiler, SpamBotCensor, SpamCensor, and DNS blacklists are used in this order, most environments
will see a spam catch-rate of over 99.5%. This document will cover more than just the aforementioned rules, but at a
bare minimum these should be enabled. Additional functions such as URLCensor and CountryCensor can improve
performance further.
Notes:
•
For basic information about these essential rules, see the “Anti-Spam Basics” white paper.
•
If you are reviewing your configuration after upgrading from a previous version, you should
read the latest Default Rules document and consider updating rules to match the new
defaults.
In order to maximize the effectiveness of the anti-spam components, the primary MX record for a domain should point
directly to the server on which MailMarshal SMTP resides, rather than directing email through a forwarder, SMTP
proxy, or relay of any sort. The direct connection is required for use of SpamBotCensor. Many powerful checks used
by SpamCensor and the other rules depend upon a remote host’s initial communication with MailMarshal SMTP.
Ensuring a direct MX connection is essential to ensure the effectiveness of any DNS Blacklist checks that are
performed within Receiver rules, because the blacklist checks query the IP address of the connecting host.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 2
SPAMPROFILER
The SpamProfiler is MailMarshal’s signature-based method of spam detection. In order to keep up-to-date with the
latest outbreaks, signature updates are provided as frequently as every minute. The SpamProfiler feature is available
in MailMarshal 6.4 onwards.
Given that the SpamProfiler is a signature-based system with very frequent updates, it is imperative to make sure the
updates are being received correctly. Unlike the SpamCensor updates which are performed centrally on the Array
Manager, the SpamProfiler updates are performed locally by each node. The Service responsible for the updates is
the MailMarshal Receiver service, and as such, signature update logging and troubleshooting information can be
found in the Receiver service logs.
If the signatures are being updated normally you should see entries like this in the Receiver logs:
SpamProfiler: [MICROUPDATE] Successful signatures incremental download from network
The downloaded signature files can be found on each node under MailMarshal’s install folder – by default, the full
path is:
C:\Program Files\Marshal\MailMarshal\SpamProfiler\micro_updates\
The two main signature files have a file extension of .aes and the expected size is 10s of MBytes
Using the SpamProfiler
The SpamProfiler is enabled and configured in the MailMarshal Configurator. From the Tools menu, click
MailMarshal Properties > Receiver Properties > SpamProfiler.
Basic configuration of SpamProfiler is through this interface. You can also use the SpamProfiler result in rules
(recommended and provided in the default email policy in version 6.7).
The following options are available when using the SpamProfiler:
• Deny at Receiver. The SpamProfiler can identify spam messages at SMTP connection time. The message must
be received in order to be matched against the SpamProfiler signature database. Before the SMTP transaction is
completed, MailMarshal will return a permanent error to the sending server to indicate rejection of the message.
While this does not provide any clear bandwidth savings (the message is received), it does eliminate the need for
any further handling of the message. Any legitimate mail server blocked in this way will be obliged to send a
notification to the original message sender.
• Do not deny at Receiver. If the above option is not selected, SpamProfiler results will be saved with each
message. The results will be available for use in Standard rules.
• Exclude messages. You can choose to exclude specific messages from SpamProfiler evaluation. You can apply
a global whitelist as well as per-user safe lists (configured through the Spam Quarantine Management website),
and you can exclude outbound messages. All of these options can help to reduce false positives.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 3
SPAMCENSOR
SpamCensor is an advanced heuristic filter that utilizes a combination of techniques to identify spam. Much more
than a simple key word filter, it utilizes the following:
• Detailed header analysis. This technique closely examines email message headers for any indication that it may
be spam. The SpamCensor looks for hundreds of typical spam indicators. These include irregularities such as
missing To or From header fields, invalid dates, and spaces in unusual places; they also include typical traits or
“spam genes” usually left by bulk mailers or spamware – the tools used to create and send spam.
• Advanced analysis of message content. The SpamCensor filter performs advanced searches of message
content. It searches for thousands of spam patterns, including common phrases that promise get rich quick
schemes and a better sex life, words with gaps between the letters, and sophisticated HTML patterns known to be
associated with spam. It has rules that target different areas of each message, including plain text, raw html, and
URL links. It can scan anything from the text between HTML tags, to the contents of the HTML tags themselves.
• Message composition. SpamCensor checks the message size and composition. Spam is not typically large, and
often has only an HTML part. This information is used alongside numerous other indicators.
As the SpamCensor runs, the results from each of the thousands of tests contribute to an overall spam ‘picture’. Each
item contributes to a numeric score. Once the score exceeds a threshold, MailMarshal SMTP will treat the message
as spam and take a predefined action. This weighted score approach results in high spam detection rates with few
false positives.
Using the SpamCensor
The following files are referenced in the discussion of SpamCensor:
• SpamCensor.xml
• SpamChecker.dll
• SpamEvals.dll
• spamfilter.xml
• UserDefined.xml
These files are found in the “Config” directory within the MailMarshal SMTP installation path. In a fresh installation of
MailMarshal SMTP the installation path is C:\Program Files\Marshal\MailMarshal\Config\
Before using the SpamCensor functionality, you should ensure that MailMarshal SMTP is using the latest revisions of
these files by performing a Spam Update (in the Configurator, see Tools > Server and Array Properties > Spam
Updates). If the updater is unable to check for updates, please contact M86 Security Technical Support.
Basic Configuration
SpamCensor is designed to be simple to set up, and once enabled in a rule it will immediately begin catching spam.
For the most basic configuration, see the default rules as described in MailMarshal Anti-Spam Basics. In MailMarshal
SMTP 6.7, these rules use the condition Where message is detected as spam by… If your MailMarshal installation
was first installed with an earlier version, you should consider updating your rules to use this condition.
Review the Default Rules document to understand how this condition is used.
Although there is a range of more advanced adjustments that can be made, in most cases the basic configuration is
all you need.
Category Scripts
Category Scripts are XML configuration files which contain different types of rules for checking email. The
SpamCensor is a special type of Category Script.
This section discusses basic configuration of the SpamCensor as a Category Script. Invoking the Category Script
allows you to use the “filter by type” function.
Note: Before creating a SpamCensor rule, check that one does not already exist.
To enable the SpamCensor as a Category Script:
1.
Start the Rule Wizard by right-clicking an existing Policy Group, and selecting New Rule.
2.
Choose “Standard Rules” and select Next until you arrive at the Rule Conditions window. Select the
checkbox Where message is categorized as.
3.
Create a rule that uses the SpamCensor.xml file. You will see a window as below.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 4
You will notice in the window that there are other XML Category Script files to choose from, some of which
may not exist within your installation. These may include other standard scripts, and custom scripts.
Warning: In most cases you should select only a single Category Script in each rule. Multiple
Category Scripts should NOT be checked in this window. Selecting multiple scripts significantly
reduces the catch rate of a rule.
If multiple scripts are selected the rule is evaluated using an “AND” condition. ALL selected scripts
must return positive for the condition to be true. For example in this instance, if both SpamCensor
AND Spamhaus were checked, the rule would only evaluate true for messages that trigger BOTH on
SpamCensor, AND on IP addresses blacklisted on Spamhaus.
4.
You should finish with a rule that looks similar to this:
Standard Rule: Block Spam - SpamCensor Category Script
When a message arrives
Where message is incoming
Where message is categorized as 'Spam'
Move the message to 'Spam'
You can use all the usual rule elements to refine your rules. For instance, you can combine a whitelist and a size rule
to improve accuracy. The whitelist would typically contain lists of newsletter sources, or other trusted or key sources
of bulk email. MailMarshal SMTP can even be configured to automatically generate a whitelist of friendly senders by
harvesting recipient addresses on outbound emails. Size conditions could be added as well, which would eliminate
scanning of larger emails that are unlikely to be spam.
Note: Any refinements, particularly size conditions, should be reviewed regularly to ensure they are not
reducing the effectiveness of SpamCensor. Default spam rules in MailMarshal 6.7 do not include size
conditions (this is a change from earlier versions).
A note on False Positives
Whitelists are an important tool to reduce false positives. The SpamCensor is a heuristic filter that seeks to identify
unsolicited bulk email. “Wanted” bulk email can be difficult to distinguish, since users may disagree about which
messages are “wanted”. A comprehensive list of friendly email addresses not only ensures the successful receipt of
wanted email, but also has the additional benefit of allowing the filters within MailMarshal SMTP to be stricter than is
feasible within a default setup.
Note: Over-use of whitelists, especially the use of wildcards, can contribute to false negatives. In particular,
whitelisting your own domain allows significant amounts of spam to pass through.
Some automated tactics will be detailed later in the “Whitelisting Practices” section. Administrators should also
encourage and train their end-users to make use of the web-based Spam Quarantine Management system. This
system allows each user to create personal white and black lists.
Since this document is primarily concerned with fine-tuning anti-spam filters, setup and configuration of the Spam
Quarantine Management system is not covered here. Additional information regarding the Spam Quarantine
Management system can be found in the MailMarshal SMTP User Guide, or by contacting M86 Security Technical
Support.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 5
Reviewing the SpamCensor Result
You can examine the log file in the MailMarshal Console for the reason why a particular message is blocked. In order
to find the message in question, you can either attempt to locate the message in Mail History, or perform a search
based upon relevant criteria. Once the message is found, click the tab labeled “Log”, and you will see an excerpt like
the one below:
SpamCensor Logging Levels
By default, MailMarshal SMTP does not retain a record of the SpamCensor score for messages that are not blocked.
When testing the SpamCensor it is sometimes useful to know what rules triggered when a message did not reach the
trigger level. The following Registry setting causes the SpamCensor to always log its output.
Open regedit on the Array Manager server, and navigate to:
HKEY_LOCAL_MACHINE\SOFTWARE\Marshal\MailMarshal\Default\Engine
Add the following registry entry:
Name: LogSpamAlways.
Type: DWORD
Value: 1
Set the value to 1 (true) to enable this extra logging. Setting the value to 0 (false) will disable the extra logging. This
setting does not significantly affect server load, but it does add volume to the text logs.
To apply this logging change, commit MailMarshal configuration, and then restart the Engine service.
SPAMBOTCENSOR
SpamBotCensor leverages the evaluation technology of SpamCensor using M86 Security’s research into spam
sources and particularly the major botnets that are responsible for the majority of spam. SpamBotCensor is updated
through the same update process used for SpamCensor. SpamBotCensor can efficiently identify a large percentage
of spam using a smaller number of evaluations for each message.
SpamBotCensor does not allow any advanced configuration. To use SpamBotCensor, see the standard rule condition
Where message is detected as spam by…
When using SpamBotCensor, ensure that SpamCensor updates are working and also ensure that MailMarshal
receives incoming mail directly from the Internet.
URLCENSOR
URLCensor queries external URL blacklists which provide records of domains that appear to be frequently advertised
within spam messages. These lists work in a similar fashion to DNS IP blacklists, but differ in that they list URLs
instead of IP addresses. The original purpose of this functionality was to provide a method of blocking messages that
contained very few triggers other than a link to a notoriously spam-advertised domain. Over time it has proven to be
an excellent complement to SpamCensor.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 6
How does URLCensor work?
URLCensor parses the body of an email, and extracts all the domain portion of any URLs that are found. It then
performs a DNS A record lookup for each domain using the DNS blacklist.
There are currently two permutations of URLCensor available for use within MailMarshal SMTP:
• URLCensor
• URLCensorIP
URLCensor
Checks domains found within a message body against a third-party DNS blacklist. By default URLCensor uses the
blacklist maintained by SURBL.org, or more specifically, multi.surbl.org. It can easily be configured to use other
blacklists as well (covered further on in this document). multi.surbl.org is a combined zone utilizing domains
provided by SpamCop, abuse-butler, SpamAssassin, and others. If for example URLCensor were to query
marshal.com against SURBL.org, it would query the “A” record for “marshal.com.multi.surbl.org”. By default, if the
DNS query returns any record at all, URLCensor will consider the domain to be blacklisted. If no record is returned
from the blacklist’s DNS server, the domain is not considered to be blacklisted. Once the lookup is performed, the
result, whether positive or negative, will be cached by URLCensor for a certain (adjustable) time to preserve
performance and avoid the need for repeated DNS lookups.
URLCensorIP
Performs in a similar way to URLCensor, but is designed to query against a blacklist that is formatted by the IP
address of the A record for the domain, rather than by the domain name. URLCensorIP resolves the domain to an IP
address using a traditional DNS query, and then submits the DNS blacklist query. By default, URLCensorIP uses the
combined Zen combined blacklist maintained by Spamhaus. Again if any result is returned, the domain is considered
to be blacklisted. If no record is returned, the domain is not considered to be blacklisted. URLCensorIP caches the
results of these queries for a specific interval in case they need to be used later.
Querying the IP address instead of the domain name is useful because spammers register large numbers of new
domains, and thus domain blacklists are difficult to keep up-to-date. However, because the spam-related domains
typically use a much smaller number of IP addresses, it is easier for the IP based blacklists to maintain a good hit
rate.
Both URLCensor and URLCensor IP can be configured to query other third party blacklists, so long as they are in one
of the two supported formats. Both also have a configurable cache duration. For more information, see the White
Paper “MailMarshal SMTP Anti-Spam Advanced Configuration.”
Using the URLCensor
The following files are referenced in the discussion of URLCensor:
• SpamSurbl.dll
• URLCensor.xml
• URLCensorIP.xml
These files are found in the “Config” directory within the MailMarshal SMTP installation path. In a fresh installation of
MailMarshal SMTP the default installation path is
C:\Program Files\Marshal\MailMarshal\Config\
Before using the URLCensor functionality, you should ensure that MailMarshal SMTP is using the latest revisions of
these files by performing a Spam Update. If the updater is unable to check for updates, please contact M86 Security
Technical Support.
The URLCensor is intended to be simple to implement. This section discusses basic configuration of the URLCensor.
In most cases the basic configuration is all you need. However, for those who like experimenting, a range of
advanced adjustments can be made (see the White Paper “MailMarshal SMTP Anti-Spam Advanced Configuration”).
To enable the URLCensor, create rules that use the URLCensor and URLCensorIP Category Scripts. In new
installations of MailMarshal these rules are present by default.
These rules make use of the same “Categories” Rule Condition that is used for SpamCensor and all other Category
Scripts.
To enable URLCensor:
1.
Start the Rule Wizard by right-clicking an existing Policy Group, and selecting New Rule.
2.
Select Next until you arrive at the ‘Rule Conditions’ window.
3.
Select the checkbox Where message is categorized as.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 7
4.
Create a rule that uses the URLCensor.xml file. You will see a window as below:
5.
Select the checkbox for URLCensor.xml
6.
Complete the wizard by naming the rule, and deciding upon an appropriate action. Many actions can be
taken based upon company policy and what the Administrator deems appropriate. For instance you can
move the message to a folder, or simply flag the message for handling by the end-user’s mail client.
You should finish with a rule that looks similar to this:
Standard Rule: Block Spam – URLCensor (by Domain)
When a message arrives
Where message is incoming
Where message is categorized as 'URLCensor Blacklisted'
Move the message to 'Spam'
As with SpamCensor, you can use all the usual rule elements to refine your rules. You can add a whitelist, a size rule,
a TextCensor excluding certain domains, and so on.
To enable URLCensorIP:
1.
Start the Rule Wizard by right-clicking an existing Policy Group, and selecting New Rule.
2.
Select Next until you arrive at the Rule Conditions window.
3.
Select the checkbox Where message is categorized as.
4.
Create a rule that uses the URLCensorIP.xml file.
You should finish with a rule that looks like this:
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 8
Standard Rule: Block Spam – URLCensor (by IP Address)
When a message arrives
Where message is incoming
Where message is categorized as 'URLCensor IPBlacklist'
Move the message to 'Spam'
URLCensor and False Positives
Whitelists always play an integral role in preventing false positives. However, because of the nature of the
URLCensor checks, false positives are very rare. The team at Spamhaus and SURBL do an excellent job of
maintaining these lists and keeping them up to date to ensure that legitimate domains do not get listed, and that
spam-advertised domains are listed in as timely a manner as possible.
Reviewing the URLCensor Result
You can examine the log file in the MailMarshal Console to determine the reason why a particular message is
blocked by URLCensor. You will see an excerpt like the one below.
The log file illustrates how the URLCensor works. From this log, you can see that the domain (j4fimage.com) is
blacklisted on multi.surbl.org. This particular domain exists in the DNS blacklist maintained by SURBL.org, indicating
that, SURBL.org had received indications that this domain was a commonly spam-advertised domain.
REPUTATION SERVICES (DNS BLACKLISTS)
In addition to examining domain names (URLs) found within a message body, MailMarshal SMTP can examine the
list of servers through which a message has traveled to see if any of them are known spam sources. The IP
addresses found within Received lines of a message header indicate the servers through which a message has
traveled. As the services use DNS as the method of querying their servers, they are also often referred to as DNS
blacklists.
Marshal IP Reputation Service
With MailMarshal SMTP 6.7, M86 Security introduces the Marshal IP Reputation Service, a DNS blacklist based on
information gathered by M86 Security and available exclusively to MailMarshal customers. For more information
about this service, see the User Guide.
Other Services
There are quite a number of blacklists available on the Internet. The lists vary in quality, availability, and
aggressiveness of listing policies. These lists are usually maintained by non-profit organizations, although some
charge for certain services.
One service that has a long history of accuracy and reliability is Spamhaus (http://www.spamhaus.org).
•
Note that use of Spamhaus services may require payment. Please carefully read the information at
http://www.spamhaus.org/organization/dnsblusage.html
Each of the various blacklists has its own criteria for determining the contents of their respective lists. Before adding a
new DNS blacklist, you should read the listing policy, if it is public, and speak to other users to determine the
likelihood of false positives.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 9
MailMarshal SMTP can perform queries against these blacklists, to aid in evaluation of messages. MailMarshal
SMTP provides rules to query the Marshal IP Reputation Service and Spamhaus by default. If your installation has
been upgraded from an older version, you may need to configure these services and create the rules.
This section will deal solely with the Marshal IP Reputation Service and Spamhaus. Other lists can be easily
integrated. This process is discussed in the White Paper “MailMarshal SMTP Anti-Spam Advanced Configuration.”
How can MailMarshal SMTP use DNS Blacklists?
MailMarshal SMTP can perform DNS blacklist lookups of IP addresses in two ways:
•
Receiver Rules
•
Standard Rules (using Category Scripts)
Each of these two methods has a specific purpose. For optimal performance and anti-spam recognition, you can
complement a Receiver rule that performs a DNS Blacklist lookup with a Standard rule that does the same. The
reasons for this recommendation are explained below.
DNS Blacklists in Receiver Rules and Standard Rules
There are important differences between the behaviors of Receiver rules and Standard rules in the use of DNS
blacklist lookups. Both rule types have their merits and drawbacks, and ideally both should be used.
Receiver-based DNS blacklist lookups
Receiver rules that utilize DNS blacklist lookups query the IP address of the connecting host. This is one of a number
of reasons MailMarshal SMTP should be the gateway of the network (the first server that accepts a message when it
enters the network). Receiver-based DNS blacklist lookups are rendered useless if another gateway is placed ahead
of MailMarshal SMTP. In that case the connecting IP address will always be the same (the IP of the other gateway).
The IP address of the external server that connected to this gateway might be blacklisted, but the MailMarshal
Receiver has no information beyond the server that connected directly to it. Even if a message originated from a
known spam source, a Receiver rule will never trigger because the connecting server is NOT listed as a known spam
source.
Another issue can occur if the MTA of your ISP is designated to handle inbound email prior to passing it on to
MailMarshal SMTP. In the rare event that the MTA of your ISP is listed on a DNS Blacklist, all email will be rejected
by the Receiver. Because Receiver rules reject a message rather than simply quarantining it, if a legitimate message
is inadvertently rejected at the Receiver, it will never be retried but is returned to the sender immediately. This threat
is remote but should be considered prior to enabling this or any type of Receiver rule.
On the other hand, this same behavior can provide an excellent benefit in terms of bandwidth and performance. A
Receiver rule will reject a message subsequent to the remote MTA issuing the “RCPT TO” command in the initial
SMTP handshake. In this scenario, the actual message body is never transmitted. The benefits of this are twofold:
•
Rejecting a message prior to the sending of the message body can reduce the bandwidth consumed by
unwanted, unsolicited messages.
•
Preventing the message from entering the system also prevents it from consuming a MailMarshal Engine
thread. Typical installations will have 2 Engine threads (with 4-5 in extreme circumstances on more robust
hardware). Any message the Engine does not have to deal with improves performance, and frees the
Engine to appropriately process legitimate messages entering the system.
Standard Rules performing DNS Blacklist lookups
Due to the limitations of Receiver rules, in most instances they should be supplemented with Standard rules.
Standard rules use Category Scripts to perform DNS RBL lookups against lists. Standard Rules using RBL lookups
cause MailMarshal SMTP to parse through the “Received” lines within a message header for IP addresses of servers.
Each IP address found results in a query to the DNS RBL.
This method of DNS RBL lookup implementation has the benefit that it checks for blacklisting of intermediate servers
through which a message has traversed. If any of these servers are listed, the IP address will trigger the rule.
However, since the entire message is received before a Standard rule is applied, the bandwidth to transmit the
message has already been used and an Engine thread will be required to process the message.
Important Note on DNS Blacklist Lookups
URLCensor, URLCensorIP, Marshal IP Reputation Service, and Spamhaus all require frequent requests to be sent to
DNS. The DNS server used for these lookups, as well as any other functions within MailMarshal SMTP that require
DNS, is the DNS server specified within the “Delivery” settings in the Configurator. If an array of MailMarshal SMTP
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 10
servers is in use, by default all nodes in the array will use the Delivery settings defined in the Server and Array
Properties. You can specify custom Delivery settings for a node in its individual Server Properties. MailMarshal SMTP
will NOT use the DNS server specified in the TCP/IP settings of the server’s network interfaces at any point in the
message handling.
It is absolutely imperative that a responsive, dependable, and forward-resolving DNS server is specified
within MailMarshal SMTP’s “Delivery” settings. One of the most common causes of poor Engine throughput
and Receiver responsiveness is a setup that uses DNS lookups through a slow or unresponsive DNS server.
This problem is especially noticeable when DNS blacklists are used.
You can check the time used for each processing action by reviewing the text Engine log. If the DNS server seems to
be a source of delay, you may wish to set up an internal, local DNS server using a DNS Zone Transfer for the DNS
blacklists in question. The procedure for setting up this configuration lies outside the scope of this document, and will
vary depending on the DNS server software being used.
DNS Blacklist Server Downtime and Timeouts
Occasionally DNS Blacklist servers become unavailable. In this scenario, MailMarshal SMTP waits for a period after
a failed DNS Blacklist connection and tests connectivity before resuming full use of the server. Messages will be
processed without checking against the DNS Blacklist until the server becomes available again. By default
MailMarshal SMTP re-tries a server four times before marking it unavailable.
Configuring Blacklists
To configure Blacklists (version prior to 6.4):
Before you enable any Receiver rules that use DNS blacklist lookups, in MailMarshal versions below 6.4 you must
enable each blacklist within the “Host Validation” window on the MailMarshal Configurator. For details of this setup,
see the User Guide and Help for your version of MailMarshal.
To configure Blacklists (version 6.4 and above):
1.
In the left pane of the Configurator, expand Reputation Services.
2.
To add a service, click New Reputation Service.
3.
Complete the Wizard. See Help for detailed information about the fields.
•
For a generic service, enter the domain to query (see the documentation for the specific list). For
instance, to add an entry for Spamcop enter bl.spamcop.net
•
For the Marshal IP Reputation Service, enter the Customer Number and Activation Code related to
your MailMarshal Product Key. If you do not have this information, you can retrieve it from the M86
Security website using the link provided on the wizard.
RBL use within Receiver rules
To create a DNS Blacklist Receiver rule (all versions):
1.
Start the new rule wizard by right-clicking the desired policy group and selecting New Rule.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 11
2.
On the first pane, change the type from “Standard Rule” to “Receiver Rule” and then click Next.
3.
If a whitelist of safe senders is available, it should be used. To use a whitelist, on the User Matching pane, add
the User Matching condition Except where addressed from. Then click the red “users” hyperlink and select the
user group corresponding to the whitelist, as seen below:
Once the group is highlighted, click the middle double - arrow (<<) to add the user group, then click OK.
Using a whitelist excludes “friendly senders” on the list from having mail rejected by this rule.
NOTE: Due to the aggressive nature of Receiver rules, it is good practice to exclude a list of known
legitimate senders from Receiver rules in general. If a Receiver rule is triggered, MailMarshal SMTP
will respond with a 500 series response code, which means that the message is rejected
permanently. This code will cause the connecting server to generate a Non Delivery Report (NDR)
and return it to the original sender.
4.
In the rule wizard, click Next.
5.
Select the option “Where sender’s IP address is listed in ‘Reputation Service’”
(earlier versions: ‘DNS Blacklist.’)
6.
On the blacklist selection window, all available DNS Blacklists are listed. Check the box to select the DNS
Blacklist of your choosing and then click OK.
7.
Click OK to continue to the “Rule Actions” pane.
8.
Ensure that “Refuse message and reply with” is selected. You can customize the response code and brief
message sent by clicking the blue ’Refuse message’ hyperlink.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 12
You should finish with a rule that looks like this:
Receiver Rule: Deny Spamhaus Blacklisted Senders at Receiver
When a message arrives
Where message is incoming
Except where addressed from ‘Global Whitelist’
Where sender’s IP address is listed in 'Spamhaus Zen'
Refuse message and reply with 'Rule imposed as {Sender} is blacklisted on
Spamhaus (see www.spamhaus.org)'
Using Blacklists within Standard rules
Through the use of Category Scripts, MailMarshal SMTP can utilize DNS Blacklists within “Standard” rules.
MailMarshal SMTP 6.7 includes rules to use Marshal IP Reputation Service and Spamhaus. If these blacklists are not
currently in use, setting them up is as quick and simple as utilizing any other Category Script, such as SpamCensor.
To enable Marshal IP Reputation Service and Spamhaus checks within Standard rules:
1.
Start the Rule Wizard by right-clicking an existing Policy Group and selecting New Rule.
2.
Select Next until you arrive at the Rule Conditions window.
3.
Select the checkbox Where message is categorized as.
4.
Create a rule that uses the appropriate XML file. You will see a window as below.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 13
You should finish with a rule that looks similar to this:
Standard Rule: Block Spam – Spamhaus Blacklisted
When a message arrives
Where message is incoming
Where message is categorized as 'Spamhaus Blacklisted'
Move the message to 'Spam'
Reviewing the Standard Rule Results
Using the MailMarshal Console, you can examine the message log file to determine why a particular message was
blocked by either the standard blacklist rules.
Note: Messages rejected by Receiver rules will not be shown in the MailMarshal Console. Analysis of receiver
rules will require manual review of the MMReceiver logs.
For messages blocked by Standard rules, you will see an excerpt in the Console like the one below:
In this instance, note that the IP address being queried (4.1.21.156) was not listed on sbl-xbl.spamhaus.org, but, it
was listed on bl.spamcop.net (the DNS query to bl.spamcop.net using this IP address returned a record). The log
shows the IP address in reversed order. This is simply due to the setup of most IP-based DNS Blacklists.
COUNTRYCENSOR
Included with MailMarshal SMTP is a powerful, unique utility called CountryCensor. CountryCensor allows mail
administrators to identify the countries through which a message has traveled, and handle it accordingly. This
capability can be very useful for an environment that receives little legitimate email from countries other than its own,
or for environments where email from specific countries should be handled in a manner different from others.
It is important to note that CountryCensor does NOT look at the top-level domain name found in any part of a
message but rather examines the IP addresses in the message header to determine the countries through which the
message has traveled.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 14
Prerequisites
CountryCensor requires the following files be in place within the “Config” folder under the MailMarshal SMTP
installation path:
• CountryCensor.xml
• CountryCensor.dll
• CountryCensorGroups.xml
• ip.db
• cc.db
A default installation of MailMarshal SMTP will already contain these files. If they are not present within your
installation, please contact M86 Security Technical Support.
Basic Configuration
CountryCensor currently requires some manual configuration. With the assistance provided in this document, the
configuration should prove relatively straightforward.
Prior to enabling CountryCensor within a rule, you must configure it. All configuration takes place within
CountryCensor.xml.
There are two options for adding countries to be checked by CountryCensor:
• Adding the two-letter country code for a specific country
• Adding a META group, which includes all countries that reside within that region
Two-letter country codes and their corresponding countries for use within CountryCensor are listed at the bottom of
CountryCensor.xml.
The countries included in each region and their corresponding groups are listed in CountryCensorGroups.xml. These
files include many comments, and most of the options available are described in the files.
To prepare CountryCensor to be used within a rule:
1. Launch a text editor (such as Notepad).
2.
Edit CountryCensor.xml
3.
Within the file, locate the Group entitled “BlacklistedCountryCodes” and add the desired two-letter country
codes as seen below:
If you wish to include all of the countries within a region, add the region here as well, see below:
By default, BlacklistedCountryCodes includes a META group named “TopSpammers”, which is simply a
group including the top thirteen spam-producing companies. This group is merely provided as a
demonstration of how to create and use META groups. You may choose not to use it. In any case, it
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 15
should not be used until it has been modified to include or exclude whichever countries are suitable for
your environment.
You can safely add or remove two-letter country codes from this group and include it in your
CountryCensor check by adding it to BlacklistedCountryCodes as shown below:
IP addresses of servers that should be excluded from CountryCensor checks should be added to the
section entitled “CCBlacklistExclusions”. Each IP address should be on a line by itself.
4.
Once satisfied with the configuration options, save the file and close the text editor.
When you have finished editing the configuration file, you can use CountryCensor within a rule. The sample settings
illustrated above will cause CountryCensor to trigger on the following countries:
United States
United Kingdom
New Zealand
Australia
North America – including the following:
(AG,AN,BB,BM,BS,CA,CR,CU,DM,DO,GD,GP,GT,HN,HT,JM,KY,LC,MQ,MX,NI,PA,PR,PY,SV,TT,US,VG,VI)
TopSpammers – including the following by default:
(US,CN,ES,KR,FR,PL,BR,DE,RU,IN,IL,IT,GB)
Using CountryCensor within MailMarshal SMTP
The steps described in this section enable CountryCensor to trigger on a message that has traversed servers in any
of the countries defined in CountryCensor.xml.
To enable CountryCensor:
1.
Start the Rule Wizard by right-clicking an existing Policy Group and selecting New Rule.
2.
Select Next until you arrive at the ‘Rule Conditions’ window and select the checkbox Where message is
categorized as.
3.
Create a rule that uses CountryCensor.xml.
You should finish with a rule as seen below:
Standard Rule: Block Spam – CountryCensor Banned Countries
When a message arrives
Where message is incoming
Where message is categorized as 'CountryCensor'
Move the message to 'Banned Countries’
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 16
Note: You should use this rule in conjunction with a comprehensive whitelist. While CountryCensor is a very
powerful utility when configured properly, it makes no distinction between legitimate and unsolicited mail from
a blocked country.
An extensive variety of options and tricks can be used with the CountryCensor technology. You could decide to list
(and block) a few countries that are known to be major spam producers. You could use it to define a list of allowed
countries, then quarantining email from all but the known friendly countries.
HELO RULES
MailMarshal SMTP can reject a message based on the validity of the connecting SMTP server. Spammers will
frequently attempt to send your own IP address as their HELO name in an attempt to fool some older filtering
systems. Per RFC specifications, a HELO name should be a server’s fully qualified domain name as published in
DNS. It should also match the connecting system’s PTR record. MailMarshal SMTP now has the ability to reject a
message solely based upon the HELO name used in the initial SMTP handshake. Creating this new type of rule
simply requires creating a new “Receiver” rule. A typical HELO rule would look as follows:
All of the typical Receiver rule options still apply. The options available for checking the HELO name are seen below:
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 17
Note: Use this condition with caution. As with other Receiver rules, it causes email to be rejected permanently
with no further notice.
TEXTCENSOR SCRIPTS
The easiest configurable addition to the default rules enabled within MailMarshal SMTP is the creation and use of
TextCensor scripts within the existing rules. The MailMarshal Configurator provides a simple graphical interface for
creating and modifying TextCensor scripts. By default MailMarshal SMTP includes a TextCensor script entitled
“Administrator maintained keyword list”. If a rule is enabled to utilize this TextCensor script, an administrator simply
needs to update the referenced TextCensor script. The changes to the configuration must then be committed before
they will take effect. This allows the administrator to make immediate updates as they see spam messages missed by
the current set of checks.
For details of TextCensor options, see the User Guide and Help.
Using TextCensor Scripts within Rules
Once a TextCensor script has been created, it will then need to be referenced within a rule in order for its checks to
be measured against messages. For example, if the “Block Specific Spam” rule is currently not created, the following
steps can be taken to utilize the script:
1.
Start the Rule Wizard by right-clicking an existing Policy Group and selecting “New Rule.”
2.
Create a new “Standard” rule that reads as follows:
When a message arrives
Where message is incoming
Where message triggers text censor script(s) ‘Spam - Administrator
Maintained Keyword list’
Move message to ‘Spam’
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 18
With this set up, when new spam variants come through that are not yet picked up by MailMarshal SMTP’s
definitions, administrators can simply add new entries to the referenced TextCensor script. This in turn will block the
new spam variants before they become an issue.
ATTACK PREVENTION
MailMarshal SMTP provides settings that allow you to protect your email system against email Denial of Service
attacks (DoS) and Directory Harvest Attacks (DHA). DHA attacks in particular are used by spammers to determine
valid email addresses at your domain.
Directory Harvest Attack (DHA) Protection
When enabled, DHA prevention guards your system against Directory Harvest Attacks (DHA). MailMarshal SMTP’s
DHA protection can detect a DHA, drop the connection from the connecting server and blacklist the server for a
specified length of time.
MailMarshal SMTP recognizes an “attack” when a remote server sends many messages to invalid users. Before
enabling this feature, you must provide MailMarshal SMTP with a list of valid users. The easiest way to populate such
a list is to import users from your mail server or Active Directory, using an LDAP or AD connector. See the section
“Whitelisting Practices,” below, for more details.
Setting up DHA Protection
Setup for this feature is accessed through the Configurator under Tools > Server and Array Properties > Attack
Prevention. Setup options and requirements differ slightly depending on the release of MailMarshal SMTP that is
installed.
Important Note: Before using DHA Prevention, you must provide MailMarshal SMTP with a list of all valid
email addresses within your organization. MailMarshal SMTP releases 6.1.6 and earlier use a group entitled
“All Employees” for this list. The “All Employees” group should NOT be renamed, nor should it be deleted. To
use other groups, insert them into this group.
MailMarshal SMTP release 6.1.8 and above allow you to select one or more groups that contain the list of valid
users.
For details of the setup requirements for this function, please review the User Guide and Help for your installed
version of MailMarshal SMTP.
SPAM MANAGEMENT TIPS
There are many different ways to handle messages once MailMarshal SMTP has identified them as spam.
Header Rewriting
MailMarshal SMTP has built-in header matching and rewriting ability. This feature can be used to tag the header to
flag the message as spam. Then, instead of quarantining the message, it can be passed through to the end-user
email client where automatic rules can determine what to do with it. The message may, for example, be automatically
moved to a “Possible Spam” folder for the end user to periodically review at their convenience. The following header
rewriting configuration tags the subject line with [SPAM].
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 19
This rule is included within the default MailMarshal SMTP rules. If upgrading from an earlier version of MailMarshal
SMTP, this can be used in a rule as follows:
Standard Rule: Modify Subject Line of Spam
When a message arrives
Where message is incoming
Where message is categorized as 'Spam'
Rewrite message headers 'Rename Spam Subject'
And pass message to the next rule for processing.
You are not limited to rewriting the subject line. MailMarshal SMTP can also be used to add custom headers. For
example, you may want to add a custom header field called X-MailMarshal and add “Spam” in the field. This has the
advantage of keeping the subject line intact and the end-user’s email client (depending on the type) can usually be
configured to detect its presence. The rule is as follows:
Standard Rule: SpamCensor – Flag Suspected Spam
When a message arrives
Except where addressed from 'Friendly Listservers'
Where message is categorized as 'Spam'
Rewrite message headers using 'Add X-Marshal Header'
And pass message to the next rule for processing.
To configure the custom header go to the Rule Wizard. In the Rewrite Message Header action, add a custom field as
illustrated below. There are standards relating to header fields so ensure your fields start with X- and use only
alphanumeric characters, see below.
The second step is to add an entry to the field, in this case “Spam”. This is illustrated below. The header field will look
like this: X-Marshal:Spam
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 20
You should finish with a rule that looks like the following:
These approaches place the responsibility for handling a detected spam message on the email client. This has the
added benefit of allowing users to manage their own junk mail. It also ensures the mail administrator isn’t responsible
for the incurrence of any false positives. This next option alleviates the need for an end-user to undertake any mail
client configuration.
Tip: Sometimes users want to know what SpamCensor rules a message triggered. The logging result of the
SpamCensor can be appended to an email message with a message stamp. It can also be added to a
message notification template, using a MailMarshal SMTP variable:
{SpamCensorResult}
In either the message stamp or notification template, type a ‘{‘ character to view a list of available variables,
and select SpamCensorResult.
Quarantining Detected Spam
Rather than relying on client configuration, MailMarshal SMTP has the ability to quarantine a message at the server
side. This is before it reaches the end-user’s inbox. It is also the default behavior for most of the existing Anti-Spam
rules within MailMarshal SMTP. In order to move a message to a folder rather than flagging it, you simply need to
navigate to the “Rule Actions” pane of the new rule wizard. Then select “Move message to ‘folder’”. It is typically
easier to move all spam messages to the same folder and the reason for this will be discussed later on in the
document. However a quarantine rule would look similar to the following:
When a message is quarantined to a folder, the user isn’t required to do anything unless they deem a message to be
legitimate. If the quarantine folder is set up to allow end-user spam management, the user can navigate to the Spam
Quarantine Management website. They would also add the sender to their personal whitelist. If desired, the
quarantine folder can be configured to send out a daily digest email, informing the user what emails have been
quarantined during that day. Message Digests are generated on a per-folder basis so multiple folders mean multiple
digests are sent to recipients. Additional configuration of the Spam Quarantine Management system is outside the
scope of this document. For more information regarding the end-user Spam Quarantine Management system, please
contact M86 Security Technical Support, or feel free to browse the knowledge base.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 21
WHITELISTING PRACTICES
The use of a comprehensive whitelist of “friendly” senders is integral to ensuring reliable message delivery within any
anti-spam system. While the filters contained within MailMarshal SMTP are highly accurate, the occasional false
positive can require some fine tuning from the administrator. Whitelists are a must for any implementation of an antispam system. An extensive whitelist will help to prevent wanted email from incorrectly being flagged as spam. This
also has the added benefit of allowing spam filters to be more restrictive. The better the whitelist, the stricter you can
be with email from infrequent or unknown senders. This allows you to refine and restrict the anti-spam filters to
extremely granular levels.
Note: Be wary of including entire domains in a whitelist. You should not include your own domain or common
domains such as *@hotmail.com. These domains are often spoofed, and whitelisting them can reduce antispam performance.
Valid Recipient Whitelist
Messages addressed to non-existent users in your domain are of no value, and cause valuable CPU, memory, and
network resources to be consumed processing and delivering them. Each one of these incoming messages requires
a connection to MailMarshal SMTP. Subsequently they use system resources when an Engine thread is occupied to
scan the messages.
In addition, once the messages have left the MailMarshal SMTP system they will be processed by the internal mail
exchanger. The mail exchanger is usually configured to reject the message with a “500” series response code.
MailMarshal SMTP, per RFC standards, is obliged to notify the original sender of the message that its delivery failed.
This is done by generating an NDR (Non-Delivery Receipt). Most of the time, the invalid messages are spam
messages, with a spoofed return-path.
MailMarshal SMTP can be bogged down with attempting to send a number of Non-Delivery Receipts, especially to
domains and senders that don’t exist or innocent third parties that never actually sent the message to begin with.
Sending illegitimate NDRs may well cause your server to be blacklisted.
Having MailMarshal reject messages to non-existent addresses eliminates the need to generate and send NDRs. For
this reason, MailMarshal SMTP should be given a list of every valid recipient for whom it should accept mail.
The problem is, by default MailMarshal SMTP has no information about which recipients are valid within your domain.
To generate a list of valid recipients, in most cases you can create one or more LDAP connectors that will import
addresses from your environment (Microsoft Active Directory, or another LDAP directory).
Note: You may also need to enter some addresses manually, if they are not readily accessible through LDAP.
LDAP connectors can be configured to automatically update at specific intervals and so alleviate the need for an
administrator to maintain the list. Once this list is imported, messages addressed to invalid recipients can be
eradicated completely. In turn this decreases the load on MailMarshal SMTP and the backend mail exchanger.
Ideally, a Receiver rule should be created to reject messages to invalid recipients. If a Receiver rule is used, the
unwanted message will be rejected immediately after the “RCPT TO” command. This occurs during the initial SMTP
handshake. Rejecting the message at this step in the process prevents the message body from ever being sent. This
frees up bandwidth, engine threads and overall resource consumption - both on the server where MailMarshal SMTP
resides and also on the internal email server.
The following procedure covers basic setup of a LDAP connector and user group, and a Receiver rule to reject
messages based on the contents of this group. For advanced techniques to “scrape” every available address from
Active Directory or other LDAP directories, see the white paper “MailMarshal SMTP Advanced Anti-Spam
Configuration.”
Step One: Setting up the LDAP Connector
1.
On the MailMarshal Configurator, expand “Policy Elements”.
2.
Right-Click “Connectors” and select New Connector.
3.
On the Connector Type window of the wizard, select the appropriate type of connector, based on the server
type. Click Next.
4.
If you are connecting to Microsoft Active Directory, choose to connect anonymously or with credentials.
Many installations require credentials to connect. Enter the appropriate information, and then click Next.
5.
If you are connecting to another type of LDAP server, enter the server name and credentials as required,
then enter additional information as prompted to specify the information that should be retrieved. To learn
more about the settings, see Help for each window.
Note: The wizard provides a selection of preconfigured connectors. If your LDAP server type is not in the
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 22
list, select “Generic LDAP Server.” You will be prompted for additional information. If necessary, ask the
LDAP server administrator for the appropriate settings.
6.
Set a reload schedule. MailMarshal will request updated information as scheduled. Click Next.
7.
Enter a name and optionally a description for the connector.
8.
Click Next, then Finish to complete the wizard and create the connector.
Step Two: Importing Groups
1.
On the MailMarshal Configurator, expand “Policy Elements”
2.
Right-click “User Groups” and select New User Group.
3.
On the User Group window of the wizard, choose “Import one or more user groups from the …connector.” If
you have created more than one connector, select the connector you want to work with (such as Active
Directory).
4.
On the Import User Groups window, click Browse to view a list of available groups. If necessary, ask the
LDAP server administrator for the appropriate groups that contain user email addresses.
5.
Tip: In Active Directory, a “Domain Users” or similar group probably contains many user email addresses.
6.
Click Next, then Finish to complete the wizard.
7.
Note the name of the group as created in the User Groups tree of the Configurator.
8.
Right-click “User Groups” and select Reload User Groups to retrieve members from the group immediately.
Select the group name to view a list of the email addresses it contains.
Step Three: Rejecting Mail to Invalid Recipients
Once the valid recipient whitelist has been created, all messages addressed to invalid users can be filtered
accordingly. The ideal method for accomplishing this is to create a “Receiver” rule that rejects messages outright
when they have been addressed to an invalid recipient.
Note: It is important to mention again that any addresses which do not exist in the list imported through LDAP
or Active Directory must be manually added to the “Valid Recipients” group (either directly, or by being added
to another group contained in it). This step is essential because a Receiver rule rejects the message rather
than quarantining it. Any rejected messages will be forever lost.
If you have doubts as to how comprehensive your valid user whitelist is, you may wish to set this rule up as a
“Standard” rule first. Then have messages to recipients that aren’t listed simply quarantined in a folder for you
to review.
This check can be set up as follows:
1.
Expand “Policy Elements” and right-click “User Groups.”
2.
Select New User Group and create a new MailMarshal SMTP user group named “Valid Recipients”. This
group will be used to collect all LDAP and local groups that contain valid recipients.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 23
3.
Right-click the newly created “Valid Recipients” group, and select Insert Groups.
4.
Insert all groups created using LDAP and AD connectors.
5.
Insert the MailMarshal SMTP user group that contains addresses that are not present in any LDAP or Active
Directory groups.
6.
Start the new rule wizard, and create a new “Receiver” rule that reads as follows:
Receiver Rule: Deny Messages to Invalid
When a message arrives
Where message is incoming
Except where addressed to 'Valid Recipients'
Refuse message and reply with 550 Rule imposed mailbox access for {Recipient} refused: user
invalid
Note: There can also be a negative effect of rejecting email to invalid recipients. Spammers can use the
response from a Receiver rule to create a refined list of valid email addresses within your organization.
Addresses that give a “250” in response to the “RCPT TO” command are assumed to be valid. Addresses that
return a 550 in this case, can be removed from the spammer’s address list. This tactic is basically a Directory
Harvest Attack (DHA). If DHA Protection is enabled within MailMarshal SMTP, rejecting messages to invalid
recipients isn’t especially needed.
Automated Whitelisting
To gather a useful whitelist, users can be trained to use the Quarantine Management System to whitelist their own
legitimate senders, or gather addresses from their address books.
As of MailMarshal SMTP version 6.x, the ability now exists to automate the generation of a whitelist in an intelligent
manner. If an end-user sends a message to an email address, there is a high probability that the email address is not
going to end up being a spam source. MailMarshal SMTP has the ability to harvest recipient email addresses on
outbound email, for automatic inclusion within the Global Whitelist.
Ideally, the top rule in an Anti-Spam rule-set would be a rule that skips over spam checks when the remote sender is
in a group of known legitimate senders. By default this is named “Global Whitelist”. If you do not already have this
group created, for organizational purposes, it is recommended to do so. The rest of this section will assume that there
is an existing Global Whitelist User Group.
With this set up, a typical top rule within an Anti-Spam rule-set would read:
Standard Rule: Allow Senders in Global Whitelist
When a message arrives
Where message is incoming
Where addressed from ‘Global Whitelist’
Pass the message on ‘to the next policy group’
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 24
This is the simple part of the process. The difficulty is in obtaining an extensive, worthwhile whitelist. There are two
crucial steps in getting this process working:
1.
Exclude Postmaster bounces and Out of Office Replies from adding to the harvested list.
2.
Set up a rule within MailMarshal SMTP to harvest addresses and add them to the Global Whitelist.
Step One: Excluding Postmaster Bounces
In order to exclude NDR messages from adding recipients to the whitelist, you initially need to set up a MailMarshal
User Group that contains the common postmaster aliases. You should also include any custom postmaster/root
aliases that might exist within your organization.
For our purposes, we will create a new User Group entitled “Postmaster Addresses”. A typical list will look as follows:
Though use of “root” as an alias within an organization is rare (and not recommended), you may also wish to add
root@*.*
Step Two: Excluding Out of Office Replies
Out of office replies typically have few obvious characteristics that distinguish them from regular email messages and
as such will never be 100% detectable. However with the use of a TextCensor script, we can make a large
percentage of these skip our harvesting rule.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 25
Create a TextCensor script similar to the following:
Although there may be messages that inadvertently trigger this TextCensor script, the only potential problem once we
are finished will be the failure to add the recipient to the whitelist automatically.
Note: This script is intended to trigger on nearly every message and NOT trigger if it contains text
common in out-of-office auto replies. You may wish to modify it to suit your own needs.
Step Three: Harvesting Recipients
1.
First, create a MailMarshal User Group (blank for now) entitled “Harvested Whitelist”
2.
Next, right click your Global Whitelist user group and select “Insert Group”. Insert the recently created
“Harvested Whitelist” group into the “Global Whitelist” group
3.
Create a rule within your top outbound ruleset that reads as follows:
As time goes on, this list will grow quite large. It does allow administrators to enforce a strict email policy without
concerns about legitimate messages being inadvertently trapped by their filters. You may wish to purge this list a few
times per year and eventually lead the end-users towards taking advantage of the Spam Quarantine Management
system.
SUBMITTING MISSED SPAM OR FALSE POSITIVES TO M86 SECURITY
In the event you receive an unacceptable number of spam messages, you may wish to notify M86 Security of the
missed messages. Similarly, if a valid message is blocked, you may wish to notify M86 Security.
Although it is easy to forward a message from the user’s mail client, samples submitted in this manner offer limited
useful information. The problem is that SpamCensor is optimized to check details that are lost when a message is
simply forwarded. For instance, forwarding these messages loses much valuable header information, used by a
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 26
considerable number of the checks within SpamCensor. Even if the header information is pasted within the email,
forwarding still loses evidence of format items such as bare carriage returns and arbitrary spacing.
In MailMarshal 6.7, you can submit a message as a false positive or false negative with a single click from the
Console. The submission buttons are present on the message window (highlighted below) and also in the various
mail listings where items can be multi-selected.
In earlier versions of MailMarshal SMTP, you can forward a message from the Console to one of the following
addresses: [email protected] (missed spam) or [email protected] (false positives).
Forwarding from the Console retains information and formatting that may be changed when you forward from a mail
client.
M86 Security attempts to gather an accurate picture of our customers’ message flow on an ongoing basis, particularly
in regard to spam or viruses that slips through customers’ filters. Samples submitted to the Security Labs are
exceptionally useful in our efforts to update our technology and to meet the needs of our customers.
M86 Security respects its customers’ privacy and will not disclose any information contained within a false positive
submitted for analysis.
COMMON PITFALLS
MailMarshal SMTP’s effectiveness at blocking spam can be reduced by a number of internal and external factors.
Three of the most common are:
Selecting multiple category scripts within one rule – this causes the “Where message is categorized as category”
condition to evaluate each category as an “AND”. If for example, you selected both Spamhaus and SpamCensor, the
message would have to have an IP address blacklisted on Spamhaus, AND trigger the default SpamCensor. This
rule would catch significantly fewer messages than either one of the conditions alone. You might choose this
combination intentionally to identify messages with high confidence, but in this case you would want to use other
rules as well. For examples of multiple condistions used in this way, see the MailMarshal 6.7 Default Rules.
Putting gateways in front of MailMarshal SMTP – As mentioned previously, many powerful rules within
MailMarshal SMTP examine the behavior of the connecting server. If this is your ISP’s SMTP server or another relay
host in front of MailMarshal SMTP, these checks will not trigger.
Firewalls with SMTP proxies or SMTP proxying applications – firewalls and proxies that attempt to “fix” SMTP
traffic by dropping packets or removing headers are notoriously detrimental not only to the spam catch rate but to
SMTP in general. Removal or modification of headers by upstream systems can lower the effectiveness of many
spam checks, especially SpamCensor.
Using entire domains in whitellists (such as *@hotmail.com) – it is common for these domains, and also your
local domain, to be spoofed. Whitelists should be as specific as possible.
Technical Whitepaper: MailMarshal SMTP Anti-Spam Configuration
Page 27
CONCLUSION
MailMarshal SMTP is an effective and capable anti-spam filter by default. It is designed to offer ‘set and forget’
installation and operation. Its architecture however is also customizable for the specific needs of individual sites or
organizations. There are multiple advanced options which can be set that can make a marked difference to the
overall effectiveness of MailMarshal SMTP’s anti-spam capability. However, with the default policies alone you should
find your spam detection rates to be at superior levels.
ABOUT M86 SECURITY
M86 Security is a global provider of Web and messaging security products, delivering comprehensive protection to
more than 20,000 customers and over 16 million users worldwide. As one of the largest independent internet security
companies, we have the expertise, product breadth and technology to protect organizations from both current and
emerging threats. Our appliance, software and cloud-based solutions leverage real-time threat data to proactively
secure customers’ networks from malware and spam; protect their sensitive information; and maintain employee
productivity. The company is based in Orange, California with international headquarters in London and offices
worldwide. For more information about M86 Security, please visit www.m86security.com.
TRY BEFORE YOU BUY
M86 Security offers free product trials and evaluations. Simply contact us or visit www.m86security.com/downloads
Corporate Headquarters
828 West Taft Avenue
Orange, CA 92865
United States
Phone: +1 (714) 282-6111
Fax: +1 (714) 282-6116
International Headquarters
Renaissance 2200
Basing View, Basingstoke
Hampshire RG21 4EQ
United Kingdom
Phone: +44 (0) 1256 848080
Fax: +44 (0) 1256 848060
Asia-Pacific
Millennium Centre, Bldg C, Level 1
600 Great South Road
Ellerslie, Auckland, 1051
New Zealand
Phone: +64 (0) 9 984 5700
Fax: +64 (0) 9 984 5720
© Copyright 2009 M86 Security. All rights reserved. M86 Security is a registered trademark of M86 Security. All other product and company names mentioned herein are trademarks or registered trademarks of their respective companies.
Version 11.10.09