What is SMTP-Gated ?

It is a server which have the ability to Scan, Recognize, and Block Mails that Containing Spam or Viruses.

How it works ?

It acts like proxy, intercepting outgoing SMTP connections and scanning session data on-the-fly. When messages is infected, the SMTP session is terminated.

Features:

  • Transparency – is meant to be totally transparent for users, but stone-build for worms 😉
  • Message data is intercepted on-the-fly, and scanned just before acknowledged to SMTP server
  • Does not break AUTH, PIPELINING or STARTTLS (TLS without scanning)
  • Can block messages if AUTH is not used (optionally passing if AUTH is not supported by MSA)
  • Can insert source IP (pre-NAT) and ident* into message header
  • Can block any mail from infected hosts for defined time
  • Logging of MAIL FROM and RCPT TO (plain or as base64-ed MD5)
  • Logging of HELO/EHLO hostname
  • Can impose some limits on number of SMTP sessions: total, per IP, per ident*
  • Can reject connections when load exceeds some limit
  • Can skip spam-scanning if load is high
  • Executing user script on certain events
  • Scanning limited to messages up to configured size
  • Can be used to build scanning-farm for one or more routers*
  • Logs all connections via syslog
  • Has nifty status screen 😉
  • Message size limit (since 1.4.16-rc1)
  • Outgoing XCLIENT support (since 1.4.16-rc1)
  • Conditional content scanning depending on SMTP-AUTH status (since 1.4.16-rc1)
  • Regular expression (regex) conditions for HELO/MAIL FROM/RCPT TO (since 1.4.16-rc1)
  • SPF checking (since 1.4.16-rc1)

Supports:

Content scanning:

  • Clam AntiVirus daemon (clamd)
  • mksd – daemonised version of mks_vir
  • SpamAssassin antispam scanning

    Access checking:

  • libpcre for HELO/MAIL FROM/RCPT TO regular expressions (not-)match
  • libspf2 for SPF (tested with debian libspf2 1.2.1)

    Uses various NAT frameworks (for standalone mode), or ident/proxy-helper* for external mode

  • patched ident daemon
  • proxy-helper daemon
  • netfilter framework of Linux
  • ipfw on FreeBSD
  • BSD/pf (packetfilter)
  • BSD/ipfilter