Työpaikalla käytämme Exchangea sen ryhmätoimintojen verrattoman helppouden takia. Konfiguroinnista vastasi palvelutoimittajamme niiltä osin kuin osasi – projektin tärkein opetus oli minulle se, etten enää koskaan anna kenenkään ei-sertfifioidun asentajan tehdä hallitsemilleni palvelimille mitään. Toimittajamme mokasi mm. palomuurin konfiguroinnin joka johti 8h katkoon sähköpostiliikenteessämme. Tuo virhe oli SMTP-portin avaamatta jättäminen.
Nyt kuitenkin roskapostin määrä on kasvanut suuresti, joten seuraava operaatio on SpamAssassinin asentaminen Exchangen kaveriksi. Omilla Linux-palvelimillani olen ollut jo pitkään tyytyväinen SpamAssassinin käyttäjä, joten odotukset ovat korkealla.
SpamAssassin vaatii Perlin, jota harvemmin löytyy Windows-palvelimilta. Siksi asentaminen ei ole ihan yhtä yksinkertaista kuin yleensä Windowsilla. Ensimmäinen työvaihe on siis Perlin asentaminen. Tuoreimman version löydät täältä. Lataa .msi-versio.
Perlin pitäisi osata päivittää polun ympäristömuuttuja (%PATH%), mutta aina tämä ei onnistu. Tarkista toimivuus komennolla käynnistämällä komentotulkki (cmd.exe) ja kirjoita perl -v. Jos se ei onnistu, mene hakemistoon jonne asensit Perlin (Esim c:\Perl\bin\) ja kokeile sieltä. Jos tämä toimii, älä välitä polusta.
Seuraavaksi tarvitaan NMAKEn uusin versio, joka löytyy Microsoftin Knowledgebasesta. Kopioi 2 tarvittavaa tiedostoa (NMAKE.ERR ja NMAKE.EXE) Perlin bin-hakemistoon.
Perl tarvitsee myös muutaman moduulin, joiden asentaminen onnistuu helpoiten PPM-ohjelmalla, jonka löydät /Perl/binistä. Toinen vaihtoehto on käyttää CPANia, mutta tarvittavat moduulit ovat silti seuraavat.
Tarvittavia moduuleita on Net-DNS, Mail-SPF-Query ja DBI, asenna ne kirjoittamalla paketin nimi PPM-ohjelmaan ja paina “Mark for install”.
Sitten onkin aika hakea itse SpamAssassin. Tuoreimman version löydät osoitteesta http://spamassassin.apache.org. Valitse Downloads ja ota zip-pakattu versio. Pura paketti haluamaasi hakemistoon. Seuraavaksi siirry komentokehotteella siihen hakemistoon ja aloita asennus kirjoittamalla perl Makefile.pl. Jos saat virheilmoituksia, ne todennäköisesti johtuvat vääristä poluista, joten varmista, että perl toimii. Jos ei, niin kirjoita koko perlin polku. Tärkein kysymys on ensimmäinen:
Build spamc.exe (environment must be set up for C compiler)? (y/n) [y] n
Vastaa siihen siis ei, ellei sinulla ole C-kääntäjää (todennäköisesti tietäisit jos sinulla on moinen). Kirjoita sähköpostiosoitteeksi postmasterin osoite.
Seuraavaksi suorita NMAKE samassa hakemistossa, jonka jälkeen kirjoita vielä NMAKE install, joka aloittaa itse asennusprojektin.
Nyt SpamAssassin pitäisi olla asennettuna ja voit tarkistaa sen kirjoittamalla komentokehotteeseen:
spamassassin -D < sample-spam.txt
Eteesi tulee iso rivi tekstiä ja lopuksi itse viesti. Huomaa, että SA on lisännyt muutaman uuden X-SPAM-alkuisen headerin postiin. Homma siis toimii!
Seuraavaksi voit tehdä tarvittavia muutoksia SpamAssassinin konfiguraatiotiedostoihin, joskin oletukset pitäisi olla aikalailla kohdillaan, jos tarkoituksena on vain vähentää tai minimoida spammin määrää. Asetustiedosto löytyy /perl/site/etc/mail/spamassassin-hakemistosta ja on nimeltään local.cf. Huomaa että oletuksena kaikki rivit on kommentoitu pois. Tarkempia ohjeita konfigurointiin saa SpamAssassinin sivuilta.
Exchange ja SpamAssassin olisivat toimivin pari niin, että Exchangen edessä olisi Postfix-palvelin, jossa pyörisi SpamAssassin. Kun posti kulkee tuon ensimmäisen palvelimen läpi, siitä suodatetaan pois roskaposti ja vain oikea posti työnnetään eteenpäin. Tämä ei nyt ollut mahdollista, muutenhan emme SA:ta Windowsille tarvitsisikaan. Tarvitaan siis pari kikkaa, jotta posti kulkee myös SpamAssassinin kautta.
Täältä löytyy Eric Smithin virityksen pohjalta tekemäni päivitetty versio, joka tekee Event Sinkin joka käsittelee postin. Ohjelman testaamista helpottaa se, että siellä on myös Event Sinkin poistamiseen tarkoitettu skripti. Lue README.txt ajatuksella läpi ja tee tarvittavat muutokset.
Kun ajat AddSpamFilter.cmd-tiedoston (ilman virheitä) seuraavaksi määrittämäsi hakemiston pitäisi pikkuhiljaa täyttyä hamista ja spamista, omiin hakemistoihinsa. Koska ohjelma toimii niin, että se tuon suodatuksen jälkeen jatkaa Exchangen normaaleja metkuja, niin sähköpostien pitäisi valua myös käyttäjien postilaatikoihin, poislukien suodatettu spammi. Spammin ja “hamin” määrää voit tarkkailla tutkimalla noita kahta hakemistoa. Lisäksi voit testata SA:n toimivuutta siirtämällä BadMail-hakemistosta tiedostoja Exchangen jonoon (hakemisto PickUp), jolloin SA tarkistaa myös nuo postit uudelleen.
SpamAssassinin säätämisvaihtoehtoja on loputtomasti, joten wikiin tutustuminen on ehdottoman suositeltavaa. Lisäksi kannattaa aina välillä tarkistella muutenkin että onko spammin tunnistamisessa tapahtunut muutoksia ja muokata SpamAssassinia sen mukaisesti.
Lopussa kiitos seisoo ja Exchangessa on asennettuna ilmainen roskapostisuodatus, joka ei häviä vertailussa kaupallisillekaan ratkaisuille. Kuvaamani kaltaisessa ratkaisussa on silti suorituskykyongelmia, joiden takia en suosittele sitä isommille palvelimille. Tämä johtuu siitä, että jokaista saapunutta postia varten pitää käynnistää erikseen Perl-prosessi. Meidän 30 käyttäjän organisaatiossa kuorma ei kuitenkaan kasvanut juurikaan.