IMFv2 na Exchange 2003

Service Pack 2 pro Exchange 2003 přinesl novou verzi Intelligent Message Filteru. Ačkoliv je tato verze poštovního serveru i zmíněný service pack krapet staršího data, pořád se potkávám s problémy se zprovozněním a s rozšířením o další nadstavbové funkce, které standardně nejsou povoleny. V tomto příspěvku si tedy sesumarizuji, co se vše musí provést pro korektní funkčnost.

Instalace IMFv2 

Prvním krokem je zprovoznění vlastního IMFv2. To je docela profláklé téma, takže jen stručně:

  • Exchange System Manager, organizace (Exchange), Global Settings, Message Delivery, Properties, záložka Intelligent Message Filtering - zde je třeba zvolit požadované mezní hodnoty a úkon, který se má provádět při blokování mailů na serveru.
  • Exchange System Manager, organizace (Exchange), Servers, server, Protocols, SMTP, zvolit správný SMTP server, Properties, záložka General, tlačítko Advanced, označit správnou IP adresu, tlačítko Edit..., zaškrtnout checkbox Apply Intelligent Message Filter
  • net stop smtpsvc, net start smtpsvc

Po zachycení prvního spamu na straně serveru by se měl vytvořit adresář UceArchive, v default instalaci zde - c:\Program Files\Exchsrvr\Mailroot\vsi 1\UceArchive\. Soubory je možné zpracovávat buď programově nějakým vlastním řešením, případně manuálně s využitím utility IMFCompanion. Pokud je žádoucí uchovávat u zachycených mailů hodnotu SCL, tak se musí založit záznam v registry HKLM\SOFTWARE\Microsoft\Exchange\ContentFilter\, DWORD ArchiveSCL s hodnotou 1.

Povolení aktualizací IMFv2 

IMF aktualizace se vydávají dvakrát do měsíce a to vždy první a třetí čtvrtek v měsíci. Hloupé je, že aktualizace není standardně zapnuta. Aby se aktualizace začaly objevovat v Microsoft Update, je zapotřebí založit jeden záznam v registry:

  • regedit 
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange
  • zde je potřeba vytvořit DWORD položku nazvanou ContentFilterState a zadat hodnotu 1
  • net stop smtpsvc, net start smtpsvc
  • Microsoft Update, zvolit update IMF, který by se měl objevit, počkat na výzvu k potvrzení instalace neověřeného driveru

Rozšíření funkcionality o Custom Weight List

Custom Weight List je dobrá funkce, pokud chcete ovlivňovat detekci spamu v závislosti na obsahu předmětu či vlastní e-mailové zprávy. Podrobná dokumentace je uvedena zde. Ukázkové XML pak může vypadat třeba takto:

<?xml version="1.0" encoding="UTF-16"?>
<CustomWeightEntries xmlns="http://schemas.microsoft.com/2005/CustomWeight">
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="DOWN"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="UP"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="WARNING"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="OK"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="CRITICAL"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="Cron"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="LogWatch"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="AntiSpam notification"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="SPAM Summary Digest"/>
     <CustomWeightEntry Type="SUBJECT" Change="MIN" Text="syslog"/>
     <CustomWeightEntry Type="SUBJECT" Change="MAX" Text="Medhelp"/>
     <CustomWeightEntry Type="SUBJECT" Change="MAX" Text="No weight - no problems"/>
     <CustomWeightEntry Type="BOTH" Change="MAX" Text="Viagra"/>
     <CustomWeightEntry Type="BODY" Change="4" Text="Special offer"/>
</CustomWeightEntries>

XML musí být uloženo v souboru nazvaném MSExchange.UceContentFilter.xml, přičemž zde mohou nastat dvě zapeklité situace:

  1. soubor MSExchange.UceContentFilter.xml musí být uložen v Unicode, nikoliv v ANSI. Pokud bude v ANSI formátu, IMF nenaběhne a zobrazí chybovou hlášku v Event logu. Po prvním uložení XML je potřeba restartnout SMTP službu. Při následných úpravách XML souboru to již potřeba není.
  2. soubor musí být uložen ve správném adresáři. A pojem "správný adresář" je závislý na tom, zdali byly povolené automatické aktualizace či nikoliv. Pokud nebyly, je tím správným cílovým místem např. C:\Program Files\Exchsrvr\bin\MSCFV2\MSExchange.UceContentFilter.xml. Pokud však byly aktualizace povoleny (viz výše), je nutné XML soubor umístit do příslušného podadresáře, tj. např. C:\Program Files\Exchsrvr\bin\MSCFV2\6.5.8002.0\MSExchange.UceContentFilter.xml. A v tomto je docela zrada. Aktualizace IMF si totiž vytváří nové a nové podadresáře, takže si administrátor musí napsat skript, který mu bude pravidelně kontrolovat přítomnost MSExchange.UceContentFilter.xml ve všech podadresářích :(

Microsoft nedodává pro úpravu tohoto XML souboru žádný GUI nástroj. Je však možné stáhnout a nainstalovat IMF Keyword Manager.

Rozšíření funkcionality o RecipList

IMFv2 standardně neumí vyloučit vybrané příjemce z filtrování spamů. To je docela hloupé v případě, kdy na Exchange serveru jsou schránky pracovníků zodpovědných za zpracovávání stížností zákazníků (nezřídka identifikovaných jako spam), či příjemců různých e-mailových poplachů monitorovacích systémů, které mohou být taktéž identifikovány jako spam. Existuje však neveřejný hotfix 912587, který přináší možnost vyloučit určité SMTP adresy z kontroly antispamem.

Nejprve je třeba získat neveřejný hotfix (postup zde), poté jej nainstalovat a rozhodnout se, zdali bude žádoucí tzv. exkluzivní list nebo inkluzivní list. Detaily jsou uvedeny v KB 912587.