|
Communicate Pro brief
1. Prohibiting Unauthorized Relaying .
To protect your site from spammers, you should restrict the Server relaying functionality. Basically, only your own users should be able to use your Server to relay mail to other places on the Internet.
1.1 Specifying Client IP Addresses
The simplest way to decide if an incoming SMTP message is coming from your own user is to look at the net¬work (IP) address it is coming from. If all your users connect from one or several LAN(s), you can treat all mes¬sages coming from those networks as "messages from Clients", and your Server will relay them to the Internet.
Use the WebAdmin Interface to open the Network pages inside the Settings section (realm), and click the Client IP Addresses link. Enter the IP addresses on your client connect from, as well as the IP addresses of other systems that should be allowed to use your server as a mail relay:

1.2 Process LAN IP Addresses as Clients
Select this option to include all LAN IP Addresses into the Client IP Addresses list. The IP addresses are specified in a multi-line format. If you provide dial-up services, enter the IP address ranges you have allocated to your dial-up users.
Specifying Client Domains by Name
You can specify your Client IP Addresses using the reverse lookup domain names.

When a client connects from an IP address not listed in the Client IP Addresses list, and the Detect Clients by DNS Name option is enabled, the server tries to get the domain name for that IP address (if the IP address is aa.bb.cc.dd, the Server tries to retrieve the PTR record for the dd.cc.dd.aa.in-addr.arpa name). If the PTR domain name is retrieved, it is checked against the strings specified in the table (these strings can include the wildcard (*) symbols). If the retrieved name matches one of the table strings, the server retrieves the DNS A record for the retrieved domain name, and checks that the IP address is included into the IP addresses in that record. If it is included, the address is considered to be a "Client IP Address", and it is processed in the same way as if it was entered into the Client IP Addresses list.
Note: while this method was popular with legacy mail servers, it can be very expensive for large-scale systems. It requires the server to make 2 DNS transactions for each incoming connection not coming from explicitly speci¬fied Client IP Addresses, and these transactions can take a lot of time. Use this method only when absolutely nec¬essary, for example when your server needs to support a large (and unknown) set of campus networks, and the only thing known about those networks is the fact that all their IP addresses can be "reversed-resolved" into some subdomain of the school domain. Even in this case, try to enter all known addresses and networks into the Client IP Addresses list, decreasing the number of required "reverse-resolving" operations.
1.3 Configuring the SMTP module
When a message is received with the SMTP module, and the sender IP address is not found in the Client Addresses list, the message is marked as being received "from a stranger". If this message should be relayed by your server to some other host on the Internet, and that host is not listed in the Client IP Addresses list either, the message can be rejected.
As a result, servers and workstations included into the Client Addresses list can use your Server to send (relay) messages to any mail server on the Internet. But any message coming from an unlisted address and directed to some other unlisted system can be rejected. This will prohibit spammers from using your Server as an "open mail relay".
Since this functionality can affect your legitimate users if you do not specify their IP addresses correctly, the Relay to non-Clients option is available on the SMTP Settings page. Set that option to "if received from Clients", and "stranger-to-stranger" relay attempts will be rejected.
The Client IP Addresses list can include addresses of some other mail servers. The Server can relay mail sent by anybody and addressed to a server with a network address included into the Client IP Addresses list, but it can also check if the message address is a "simple" one.
On the SMTP Settings page you can set the Relay to Clients option. Set this option to "to simple addresses" to prohibit relaying of "complex addresses" (such as username%somehost@otherserver) to servers listed in the Client IP Addresses list. This setting will prevent spammers from using your servers for "two-server relays".
When the "two-server relay" method is used:
a spammer sends a message with the username%somehost@server2 address to the server1 server;
the server1 server relays the message to the server2 server, because the server2 address is included into the server1 Client IP Addresses list;
the server2 server relays the message to username@somehost, since it has received it from server1, which is included into the server2 Client IP Addresses list. When servers relay only "simple" E-mail addresses to each other, those servers cannot be used for "two-server relaying" even if they maintain "mutual trust" (i.e. list each other in the Client IP Addresses lists).
To avoid problems with old mail servers that ignore the quote marks in addresses, the addresses with the local part containing quotes cannot be relayed to Client IP Addresses servers if the "simple" option is selected. If the Relay to Client IP Addresses option is set to "no", these addresses are not processed in any special way - messages sent to servers with Client IP Addresses are processed in the same way as messages sent to servers with non-Client IP Addresses.
2. Relaying for Mobile (non-client) Users
If some of your users travel a lot, they may use various ISPs to connect to the Internet, and as a result they will connect to your Server from various IP addresses. If those users use your Server as the SMTP mail relay to which they submit all outgoing messages, Relay Restrictions will not allow them to send messages when their IP addresses are not in the Client IP Addresses list.
You should not select the Reject all Logins from Non-Client IP Addresses option if you want to support mobile users. Select the Allow Mobile Users to Login option instead.
The SMTP AUTH method
Many E-mail clients (including Microsoft Outlook Express, Netscape Messenger, Qualcomm Eudora, and many others) now support "SMTP AUTH" - the standard SMTP Authentication method that allows a mailer to authen¬ticate the user (the sender). If the SMTP module receives a message from an authenticated user, the message is marked as being "submitted from a local account” and this message can be relayed to the Internet.
The Read-then-Send method
To allow mobile users with older mailer applications (those not supporting SMTP AUTH) to send messages via the CommuniGate Pro server, the POP, IMAP, and other "access-type" modules check if an authenticated user has connected from an IP address not listed as one of the Client Addresses. During that POP/IMAP session, and for some time after the session is closed, that IP address is considered to be a "Client Address", so that users can send mail via your Server right AFTER they have checked their mailboxes.

The expiration time is used because of the "dynamic IP address" policies of most ISPs: when a user disconnects from an ISP modem pool, and some other user connects to the Internet via the same ISP, the same IP address can be assigned to that other user. Inform your users about the expiration time. They should compose all their messages off-line, then they should connect to the Internet using any ISP, check their mailbox on your Server, and only then they can send the queued outgoing messages. If they want to reply to some messages they have just retrieved from the mailbox on your Server, they should use the Get Mail command in their mailer application again, and only then can they send their replies.
Since many mailer applications try to send queued messages first, the SMTP module checks the Return-Path (the address in the Mail from SMTP protocol command). If that address is an address of a registered user, a to-be¬relayed message is not rejected with the "permanent failure" error code. Instead, a "temporary failure" code is returned (with the "try to authenticate first" comment). Many mailers do not interrupt the mail session when they receive such a code, and continue by authenticating the user, retrieving the user mail, and retrying to send the queued messages. The queued messages will be accepted this time, because the user is authenticated from the same address.
An SMTP (message submit) session should start either during a POP or IMAP session, or within the expiration time after the end of the POP/IMAP session. Then that SMTP session can last as long as needed (several hours), if the queued messages are large and the link is slow.
Client-only Logins

If you do not plan to support mobile users, you may want to select the Reject all Logins from Non-Client IP Addresses option to allow any type of "login" operations from the Client IP Addresses only. Connections from other addresses are accepted, but only the services that do not require "login" operations will be available: SMTP
Account and Domain Settings
Support for mobile users can be disabled on per-account and per-domain basis by disabling the Mobile option in the Enabled Services section on the Account Settings and Domain Settings pages. If this service is disabled for an account, the account user will not be able to connect to that account from an internet address not included into the Client IP Addresses list.
Mail relaying for mobile users can be disabled on per-account and per-domain basis by disabling the Relay.
Return-Path Address Verification
Option in the Enabled Services section on the Account Settings and Domain Settings pages. If a user or a domain has this service disabled, the IP address from which they log in are not remembered as "temporary client IP addresses", and the SMTP Authentication will not allow those users to relay messages via your SMTP module. This setup is useful when you give users accounts on your server, but you do not want them to be able to relay SMTP mail through your server (they are forced to submit messages using the WebUser Interface or any other non-SMTP methods).
If your SMTP module can accept incoming TCP connections, your server can be used by spammers as a mail relay engine: they can distribute their messages all over the world using your server. To protect your site from spammers, the SMTP module can verify the Return-Path address (specified with the Mail From SMTP command) of incoming messages.
The SMTP module parses the message Return-Path (Mail From) addresses and rejects it if:
• the Return-Path domain name is an empty string (no domain specified)
• the Return-Path address is routed (via the Server Router) to the ERROR address
When the Verify HELO and Return-Path option is selected in the SMTP Service Settings, the SMTP module refuses to receive a message if:
• the Return-Path domain name is specified as an IP address, and that address is not included into the Client Addresses list.
If the connection comes from an address not included into the Client IP Addresses list, additional DNS verifica¬tion checks are done, and the SMTP module rejects the Return-Path address if:
• the Domain Name System does not have MX or A records for the Return-Path domain (an unregistered domain)
• the Domain Name System has an MX record for the Return-Path domain, but it points to an A-record that does not exist (a faked domain). The SMTP module uses the Router after it parses the Mail From address. If that address is an address of a local user, or the address is known (rerouted) with the Router, the Mail From address is accepted. This eliminates Domain Name System calls for the addresses "known" to the Server.
• The addresses routed to the ERROR address are rejected, so you can specify "bad" addresses and domains in the Router.
Examples: If you do not want to accept mail from any address in the offenderdomain.com domain, put the following line into the Router settings:
offenderdomain.com = error
or
<*@offenderdomain.com> = error
If you do not want to accept mail from all addresses starting with "promo" in the offenderdomain.com domain, put the following line into the Router settings:
<promo*@offenderdomain.com> = error
If the Return-Path domain cannot be verified because the Domain Name Server that keeps that domain records is not available, the module refuses to accept the message, but instead of a "permanent" error code the module returns a "temporary" error code to the sending system. The sending system will try again later.
You can tell the SMTP module to use SPF DNS records to check that messages with the specified Return-Path can come from the sender's network (IP) address.
3. Blacklisting Offenders
Since your SMTP module can accept incoming TCP connections, your server can be used by spammers as a mail relay engine: they can try to distribute their messages all over the world using your server, and they can also send a lot of unwanted messages to your account users. To protect your system from known spammer sites, CommuniGate Pro provides several methods to maintain
"black lists" of offending hosts IP addresses. When a "blacklisted" host connects to your server and tries to submit a message via SMTP, it gets an error message from your SMTP module and mail from that host is not accepted.
Use the WebAdmin Interface to open the Network pages inside the Settings section (realm), and click the Black¬listed IP Addresses link.
Specifying Offender Addresses
Enter the IP addresses of offending hosts in the Blacklisted IP Addresses field:

Each line can contain either one address:
10.34.56.78
or an address range:
10.34.50.01-10.34.59.99 A comment can be placed at the end of a line, separated with the semicolon (;) symbol. A line starting with the semicolon symbol is a comment line, and it is ignored.
3.1 Using DNS-based Blacklisting (RBL)
It is difficult to keep the Server "blacklist" current. So-called RBL (Real-time Blackhole List) services can be used to check if an IP address is known as a source of spam. Some ISPs have their own RBL servers running, but any RBL server known to have a decent blacklist can be used with your CommuniGate Pro server. Consult with your provider about the best RBL server available.
To use RBL servers, select the Use Blacklisting DNS option and enter the exact domain name (not the IPaddress!) of the RBL server. Now, when the SMTP module accepts a connection from an IP address aaa.bbb.ccc.ddd and this address is not listed in the Blacklisted, Unblacklistable, or Client Addresses lists, the module composes a fictitious domain name ddd.ccc.bbb.aaa.rbl-server-name where rbl-server¬name is the domain name of the RBL server you have specified.
The SMTP module then tries to "resolve" this name into an IP address. If this operation succeeds and the retrieved IP address is in the 127.0.0.2-127.1.255.255 range, then the aaa.bbb.ccc.ddd address is considered to be blacklisted.
Note: this option results in an additional DNS (Domain Name System) operation and it can cause delays in incoming connection processing.

You can specify several RBL Servers using the last (empty) field in the RBL Server table. To remove a server from the list, enter an empty string into its field. The more servers you use, the larger the incoming connection processing delay. If you really need to use several RBL servers, but do no want those additional delays, make your own DNS server retrieve the RBL information from those servers (using daily zone updates) and use your own DNS server as an RBL server.
Note: An RBL server failure can cause very long delays for incoming connections. To avoid these situations, the requests to RBL servers are sent not more than twice, each time with the minimal time-out.
3.2 Blacklisting Domains by Name
When a client connects from a network address not listed in the Client IP Addresses and Blacklisted IP Addresses lists, and the Blacklist by DNS Name option is enabled, the server tries to get the domain name for that IP address (if the IP address is aa.bb.cc.dd, the Server tries to retrieve the PTR record for the dd.cc.dd.aa.in-addr.arpa name). If the PTR domain name is retrieved, it is checked against the strings specified in the table (these strings can include the wildcard (*) symbols). If the retrieved name matches one of the table strings, the address is processed as a blacklisted one.

Note: if the Blacklist by DNS Name option is enabled, the server has to make an additional reverse-lookup DNS operation (unless the Detect Clients by DNS Name has been already enabled). This additional DNS operation can cause additional delays when processing incoming SMTP connections, so enable this option only when needed, and only when you cannot specify all blacklisted addresses explicitly - in the Blacklisted IP Addresses list.
Note: if the reverse-lookup DNS operation fails, the server places the DNR error code into the container used to keep the reverse-lookup DNS operation results (DNS names). The error code is enclosed in parenthesis. To blacklist all network addresses that do not have reverse-DNS records, place the (host name is unknown) string into the Blacklist by DNS Name table:

3.3 Un-listing Addresses (White Hole Addresses)
When using RBL Servers or DNS Names for blacklisting, you may want to avoid blacklisting certain sites. Enter those "unblacklistable" addresses using the same format you use for Blacklisted IP Address list:

Note: Addresses listed in your Client IP Addresses list are never checked using any Blacklisting method, so there is no reason to include the Client IP Addresses into the UnBlacklistable IP Addresses table once again. You can "unblacklist" addresses using their DNS (PTR) names:

Select the checkbox to enable this option and enter the DNS domain names you do not want to be blacklisted. This can be useful if some "good" addresses are blacklisted with the RBL services you use.
Note: The explicitly specified Blacklisted IP Addresses cannot be "unblacklisted" using the DNS Names.
3.4 Processing Messages from Blacklisted Addresses
You can modify the SMTP module reaction on messages coming from blacklisted IP addresses. Instead of reject¬ing them (by adding the @blacklisted suffix to all their recipient addresses), the module can accept those message, but add a specified Header field to each of them:

The Header field string can contain the following macro combinations:
^0. This combination is replaced with the name of the RBL host blacklisting the address.
If no RBL host was used, the combination is replaced with an empty string.
^1. This combination is replaced with the network address of the blacklisted host.
3.4 Automatic Blacklistings
CommuniGate Pro maintains its own "temporary Blacklist". Addresses in that list are blacklisted for the speci¬fied period of time only. See the SMTP module description for more details.
4. Checking Network Address Status
Your IP tables can become quite large, making it difficult to check if a particular network address is recognized by the Server as a Client one, or as a Blacklisted one. Use the Test Address panel located on the Client IP Addresses and Blacklisted IP Addresses pages:

Enter an IP address and click the Test button. The IP address status appears.
The status shows the IP address you have entered. It can have the Local prefix, if the address is the local address of your Server, or it can have the LANprefix, if the address is included into LAN IP Addresses list.
The "reverse-resolved" name is displayed if the Server had to perform the "reverse-resolving" DNS operation to get the address status. The address and optional name are followed by the address status:
• Trusted
the IP address is a Client IP address.
• TempTrusted
the IP address is processed as a Client IP address because some user (with the Relay Service enabled) has recently authenticatied from that address.
• Blacklisted
the IP address is blacklisted. If the address is blacklisted because it is included into some RBL, the name of that RBL server is displayed.
• Regular
all other addresses.
5. Spam Traps
You can protect your site from incoming spam by creating and advertising one or several "spam-trap" E-mail addresses. The CommuniGate Pro Router detects a special local address, spamtrap. If your server receives a message, and at least one of its recipients is spamtrap@yourhost or at least one of its recipients is routed to spamtrap, the Server rejects the entire message.
You may want to create one or several alias records for "nice-looking" fictitious E-mail addresses and route those addresses to spamtrap:
<misterX> = spamtrap
<johnsmith@subdomain.com>= spamtrap
You do not have to create fictitious accounts, you should create the Router alias records only. Then you should do your best to help these addresses (misterX@yoursite.com, johnsmith@subdo-main.com) to get to the bulk mailing lists used by spammers. Since most of those lists are composed by robots scanning Web pages and Usenet newsgroups, place these fictitious addresses on Web pages and include them into the signatures used when you and your users post Usenet messages. To avoid confusion, make the fictitious E-mail addresses invisible for a human browsing your Web pages and/or attach a comment explaining the pur¬pose of these addresses. Many bulk mailing lists are sorted by the domain name, and as a result many spam messages come to your site addressed to several recipients. These recipients are the E-mail addresses in your domain(s) that became known to spammers. When the fictitious, "spam-trap" addresses make it to those databases, most of spam messages will have these addresses among the message recipients. This will allow the Server to reject the entire messages, and they will not be delivered to any real recipient on your site.
6. Banning Mail by Header and Body Lines
You can specify a set of message Header and Body lines to be used to detect spam. When the server receives mail in the RFC822 format (via SMTP, RPOP, POP XTND XMIT, PIPE modules), it compares each received header and body line with the specified lists. If a message contains one of the specified lines, the message is rejected.
You can use the wildcard ('*', asterisk) symbols in the Banned Lines you specify. Usually you should not use them, since you are expected to compose the "banned" lists by copying header or body lines from the known spam messages.
7. Filtering Mail
Message lines are compared to the specified Banned lines in the case-sensitive mode. Each Header line can include the end of line symbols if the header field was "wrapped". If a message header or body is encoded (using MIME or UU encoding), the lines are not decoded before they are compared to the Banned line sets.
To specify the set of Banned Lines, open the Queue page in the Settings section of the WebAdmin Interace, and click the RFC822 Receiver link.

To add a new line, enter it in the empty field, and click the Update button. To remove a line, delete it from its field, and click the Update button.
When a message is received with the Server, a set of Server-Wide Rules is applied. These Rules can be used to detect unwanted messages and reject, discard, or redirect them. For example, the following Rule can be used to reject all messages that have a missing or empty To: and/or Cc:header fields:

You can create various filtering rules using all features of CommuniGate Pro Automated Mail Processing, including external filter programs started with the Execute Rule Action.
|