Getting Started

Anti-Spam SMTP Proxy "Anti-Spam SMTP Proxy"is a spam filter that sits on port 25 (smtp), 
and optionally also 465 (smtps) and 587 (submission), in front of your regular SMTP server. 

ASSP relays the SMTP dialog between an incoming client and your SMTP server, intercepting the dialog as needed. 
ASSP performs a number of configurable spam checks and on detectinga spam message provides an immediate 
5xx SMTP error code back to the client. Non-spam messages are passed to your regular SMTP serverfor further 
processing and delivery. Spam messages can be blocked from delivery or subject-tagged and delivered. 
ASSP offers: a whitelist of known good senders Bayesian checks on message headers and contents local user validation 
using RFC822 checks flat lists or LDAP lookup relay denial HELO checking SPF (Sender Policy Framework) 
checking DNSBL (DNS Block List) checking using many block list services delaying of messages from unknown senders Virus detection.
ASSP is entirely administrator-managed and is almost totally transparent to users. 
In particular, users do not need to manage spam filters or challenge-response systems of their own. 
ASSP is configured using a web interface. The admin_port argument gives the network port for accessing configuration menu. 
It defaults to 55555. To access the configuration menu, start ASSP and then point your browser at the default eg. 127.0.0.1:55555.

->admin user is root
->admin password is nospam4me

Initial setup of ASSP involves several steps:

Review configuration options and adjust as necessary , stick to the defaults! 
Be sure to change the admin password. Set filters to "Test Mode" which means all messages will be delivered to their recipients. 
Decide on which network port(s) ASSP will listen and on which your normal SMTP server will listen. 
Typically, ASSP will listen on port 25 (smtp) and optionally also ports 465 (smtps) and 587 (submission) and your 
SMTP server will be moved to something like port 125 or 225. Reconfigure your SMTP server to its new port. 
Reconfigure ASSP to port 25 (listenPort) and optionally also 465 (listenPortSSL) and 587 (listenPort2) and restart.
Since ASSP is in Test Mode, all messages will be delivered to their recipients. Arrange for all users' outbound email 
to be processed by ASSP. This is necessary for ASSP to be able to automatically maintain its whitelist.
If a user's MUA (mail user agent) uses SMTP to port 25 or 587, this will happen without further intervention. 
If an MUA invokes /usr/sbin/sendmail and you're using the default configuration with submit queues, this will also happen 
without further intervention.  
Otherwise, you need to take whatever steps are necessary for each MUA that's being used. Optionally, 
send a message containing a list of email addresses that you want to receive email from to EmailWhitelistAdd. 
Have all your users do this. This will seed the whitelist. Messages from senders on the whitelist will never be blocked. 
An address can be removed from the whitelist by emailing it to EmailWhitelistRemove.
To set up the Bayesian word list filtering, do the following: Ensure some senders' addresses are in the whitelist, 
either by sending email to them or by seeding the whilelist as described above.
Allow some time (could be days or weeks, depending on the volume of email you receive) for enough email to collect. 
Mesages from senders to the whitelist will be copied in the notspam directory.  Other messages will either be passed or be copied 
in the spam directory based on word scores. 
Periodically examine the messages in the spamdirectories. Move any to the other directory as needed. If you're unsure about a 
particular message, just delete it. Also, examine the logfile (maillog.txt) for information about what ASSP is doing. 
After about 1000 messages have collected, filtering mode can be enabled. Enable the rebuildspamdb task to create 
the spam database from the logged messages. This is the part where the Bayesian filter learns about the words in your spam 
and notspam collections. Uncheck the Test Mode box to enable message blocking. It is recommended that the 
UseSubjectsAsMaillogNames configuration option is checked. This causes messages to be stored with readable filenames.
The benefits of this are that the size of the stored messages will be limited and that older messages are removed from the collection. 
This keeps the Bayesian word list current. 
This need not be done immediately; you can do this once you no longer feel the need to examine the spam messages in detail. 
Other filtering options (local user validation, RFC822 conformance, client HELO validation, SPF validation,the Delay List,
the use of DNSBLs and the ClamAV virus checker can be enabled by examining and adjusting their configuration options as needed. 
Mostly the defaults are just fine.
Once ASSP is live, users should forward a copy of any spam message that still gets through to asspspam@yourdomain.com 
in order to add it to spam database.  
Any non-spam that was mis-classified as spam can be copied to notspam. 
The rebuildspamdb task needs to be run periodically to update the spam database from the latest logged messages.


Some configuration values are not available in the GUI, because they needs a professional knowledge about assp (the code)
or they are very special to a single assp user.

# *********************************************************************************************************************************************
# hidden config variables that could be changed using the module lib/CorrectASSPcfg.pm
# or that could be changed using a commandline switch like --enableCrashAnalyzer:=1
# the values shown are the default values
# *********************************************************************************************************************************************
# $AddURIS2MyHeader = 0;               # (0/1) URI's detected with URIBLOK are added to myheader (X-Assp-Detected-URI:)
# $localnoDelayAddresses = 0;          # (0/1) skip delaying if the recipient matches 'noDelayAddresses' (incoming mail only)
# $enableCrashAnalyzer = 0;            # (0/1) enable the automatic crash analyzer (CA)
# $CrashAnalyzerTopCount = 10;         # (number > 0) number of records used for the CA top count
# $CrashAnalyzerWouldBlock = 1;        # (0/1) block the mail if CA detects that the mail would crash ASSP
# $AllowInternalsInRegex = 0;          # (0/1) allow internal variables in regexes - replace something like ${$EmailDomainRe} with the value of $EmailDomainRe
# $enableStrongRegexOptimization = 0;  # (0/1) enable the strong optimization of regular expressions
# $enhancedOriginIPDetect = 1;         # (0/1) enable the enhanced origin IP detection in the mail header
# $removeForeignBCC = 0;               # (0/1) remove foreign bcc: header lines from the mail header
# $IPv6TestPort = '51965';             # (port number) the port number that is used at startup to check if IPv6 is available
# $AnalyzeLogRegex = 0;                # (0/1) enables enhanced regex analyzing (in console mode only)
# $maxBayesValues = 60;                # (number > 0) count of values used to calculate the Bayesian value
# $DoT10Stat = 1;                      # (0/1) enable the top ten statistic count and the output in the GUI and BlockReports for admins
# ********************************************************************************************************************************************* 

Change or overwrite these values only if needed and if you know what you do.
