beik – Symantec Brightmail™ Engine Integration Kit
The beik module is an anti-spam module that provides support for the Symantec Brightmail™ Engine Integration Kit (BEIK). Because BEIK is an in-process version of the brightmail module, it provides superior performance.
If you intend to use this module, be sure to choose it during installation. The beik module is licensed by Symantec. Register this license as instructed by Symantec. Momentum supports version 6.3
of Brightmail Engine Integration kit. For more information, see “Installing Partner Modules”.
Note
Upon installation, this module applies the "Service Provider Full" rule set. Previously the "Service Provider Express" set was applied. If you are using a low-performance machine, you may wish to revert to the "Service Provider Express" rule set.
You must have a valid cert.pem
file in place to use the beik module with Momentum. Take the following steps:
-
Get the
file_name
.slf file from Symantec. -
To create a
cert.pem
file, run the following command as root:shell> /opt/msys/3rdParty/symantec/beik/sbin/register
-c /opt/msys/3rdParty/symantec/beik/etc/bmiconfig.xml
-lfile_name
.slf -
Stop ecelerity by issuing the command:
shell> /etc/init.d/ecelerity stop
-
Add a beik stanza to your
ecelerity.conf
file and commit this changed file to the repository as described in “Changing Configuration Files”. -
Start BEIK by issuing the command:
shell> /etc/init.d/msys-beik start
-
Restart ecelerity by issuing the command:
shell> /etc/init.d/ecelerity start
Note
You must restart ecelerity for these changes to have effect. Using config reload is ineffective here.
Unlike other validation modules, BEIK is always loaded in passive mode. When a module is loaded in passive mode, inbound messages will not be virus scanned unless you explicitly call the appropriate scripting action.
The following is an example configuration:
beik {
use_wire_rep = true
bmiconfig_path = "/opt/msys/3rdParty/symantec/beik/etc/bmiconfig.xml"
header_padding = 512
}
The following configuration options are available:
- accum_pool
-
Which thread pool to use when accumulating data against the scanned message. Default value is the
IO
thread pool. - bmiconfig_path
-
Indicates the full path to the BEIK configuration file
bmiconfig.xml
. Default value is/opt/msys/3rdParty/symantec/beik/etc/bmiconfig.xml
. For more information about this file, see the documentation provided by Symantec. - header_padding
-
When
use_wire_rep
is not or cannot be used, the number assigned toheader_padding
is added as padding to an internal allocation to avoid an additional call torealloc
. Sizing for this is guided by approximate size of the trace headers added by this MTA. The value ofheader_padding
should be larger than those trace headers, otherwise the internal memory buffers may need to berealloc
'd. Default value is512
. - scan_pool
-
Which thread pool to use when scanning a message. Default value is the
CPU
thread pool. For more information about defining thread pools, see threadpool. - use_wire_rep
-
If use_wire_rep =
true
(the default setting) and the message is “small” (i.e., it is less thanlarge_message_threshold
), then a dot-stuffed representation of the message is held entirely in memory and can be used as received, rather than loading pieces of the message as needed.If use_wire_rep =
false
, or if the message is “large,” then a dot-unstuffed representation of the message will be generated and passed to the module. This involves more memory allocations (malloc) and copying of data (memcpy).To summarize:
-
use_wire_rep =
true
and small message: no modifications will be passed to BEIK -
use_wire_rep =
true
and large message: modifications will be passed to BEIK -
use_wire_rep =
false
: modifications will be passed to BEIK
All messages that pass through the system are stored on disk dot-stuffed. This provides a more efficient transfer by eliminating the need to decode and then re-encode a message before it is sent.
-
This module makes the Lua function msys.symantec_beik.scan
available. For a description of how this function is used, see msys.symantec_beik.scan.
The beik module does not currently support IPv6 addresses.
If you attempt to inject and scan a message with an IPv6 address you will see an error in the panic log similar to the following:
1337205547:BEIK: bmiProcessConnection() fatal error [0x3000006] client: The API received an invalid argument
There is no other indication of an error.
The beik module can be controlled through the ec_console
. The following command is available:
- beik reload
-
Use this command to reload the beik module. You do not need to manually invoke this command; it is triggered by the updates service, msys-beik.