SpamAssassin OpenBSD baasil: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Sliivand (talk | contribs)
Sliivand (talk | contribs)
 
(160 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Autor==
==Autor==
Siim Liivand
* Siim Liivand, AK31


==Versioonide ajalugu==
==Dokumendi ajalugu==
Viimati muudetud: ''30. jaanuar 2010''


12.01 algus
{|border="1"
|versioon
|kuupäev
|kommentaar
|-
|pre-alpha
|12.01.10
|algus...
|-
|beta1
|16.01.10
|OS-i installi osa on üldjoontes valmis ja mingid kohahoidjad ka muus dokumendi osas paigas
|-
|
|25.01.10
|väikene täiendamine
|-
|public beta
|27.01.10
|juhend on niipalju valmis, et on kasutatav
|-
|
|28.01.10
|lisatud mõned SpamAssassini reeglid ja tehtud mõned korrektuurid
|}


==Sissejuhatus==
==Sissejuhatus ja skoop==
Tekstiredaktorina kasutatakse näites vi'd.
Dokument käsitleb OpenBSD baasil rämpsposti filtreeriva serveri paigaldamist vaadeldes seejuures eraldi ka SpamAssassini konfigureerimist ja filtreid. Tulemuseks on rämpsposti filtreerimise server, mis võtab mailid vastu, kontrollib ja edastab seejärel lõppadressaadiks olevale serverile (näiteks ettevõtte Exchange'i server). Loomulikult on võimalik konfigureerida server ka selliselt, et maile ei edastata, vaid server ise ongi lõppadressdaadiks, st kohaks, kus asuvad kasutajate postkastid.


==Nõuded==
Tarkvara ja versioonid, mille puhul antud dokument peaks toimima:
*OpenBSD versioon 4.6
*Postfix versioon 2.6.5
*amavisd-new versioon 2.6.3
*SpamAssassin 3.2.5p1
 
==Nõuded, eeldused==
 
*OpenBSD toetab paljusid erinevaid [http://www.openbsd.org/plat.html riistvaraplatvorme], sh. loomulikult PC platvormi. Toetatud on nii 32- kui 64-bitised protsessorid ja mitmetuumalised protsessorid.
*Miinimumnõuded riistvarale. OpenBSD on võimalik paigaldada ''märkimisväärselt'' viletsale riistvarale, kuid mida parema jõudlusega riistvara kasutada, seda valutum on paigaldusprotsess ning hilisema valmis süsteemi töö. Kuigi põhimõtteliselt on võimalik antud süsteemi paigaldada kasvõi 500MB kõvakettale, võiks kõvaketta mahuks olla siiski vähemasti näiteks 20GB, mälu min 512MB. Protsessori jõudlus on seda olulisem, mida suurema koormusega süsteem tööle hakkab. SpamAssassin võib teatud juhtudel tarbida päris palju ressurssi. Põhimõtteliselt võib öelda, et riistvara osas tegelikult piiranguid ei ole. Siiski võib muidugi juhtuda, et mingi eriti uue või eksootilise riistvarakomponendi tugi puudub. Eelnevalt võib tutvuda ka [http://www.openbsd.org/i386.html#hardware toetatud riistvara] nimekirjaga.
*Kuna süsteemi installeerimine käib üle internetiühenduse, siis on loomulikult vajalik internetiühendus. Lisaks, kuna tegemist on e-posti serveriga, eeldab see iseenesest juba internetiühenduse olemasolu, kuna muidu oleks tegemist kasutu mittetoimiva süsteemiga.
*Kasuks tuleks minimaalne tekstiredaktori [http://www.openbsd.org/cgi-bin/man.cgi?query=vi&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html vi] kasutamise oskus.
*Vajalik on mingi baasteadmine arvutivõrgundusest.
*Näites installeeritakse süsteem [http://www.vmware.com/products/server/ vmware serveri] virtuaalmasinana. Sellisel juhul peaks olema olemas eelnev teadmine ''vmware'' kasutamisest.
*SpamAssassini konfigureerimiseks võiks olla olemas teadmised [http://www.cs.tut.fi/~jkorpela/perl/regexp.html perli regulaaravaldiste] kasutamisest.


==OpenBSD paigaldamine==
==OpenBSD paigaldamine==
Detailse OpenBSD [http://www.openbsd.org/faq/faq4.html installeerimise juhendi] leiab OpenBSD veebilehelt ja operatsioonisüsteemi paigaldamisel tuleks lähtuda ennekõike sellest. Järgnevalt on toodud siiski lühidalt OpenBSD installeerimise juhend, toetudes konkreetsele näitele.
Detailse OpenBSD [http://www.openbsd.org/faq/faq4.html installeerimise juhendi] leiab OpenBSD veebilehelt ja operatsioonisüsteemi paigaldamisel tuleks lähtuda ennekõike sellest ja konkreetsetest vajadustest. Järgnevalt on toodud siiski lühidalt OpenBSD installeerimise juhend, toetudes konkreetsele näitele.


===Baasinstall===
===Baasinstall===


Esmalt tuleb hankida OpenBSD installimeedia. Seda on võimalik hankida mitmel erineval kujul, kuid soovitav on tõmmata alla see minimalistlik [ftp://ftp.estpak.ee/pub/OpenBSD/4.6/i386/cd46.iso ISO-tõmmis] (5,89MB), mille saab kirjutada kas CD plaadile või haakida külge virtuaaldraivina. Bootides arvuti sellelt kettalt käivitub OpenBSD install.
Esmalt tuleb hankida OpenBSD installimeedia. Seda on võimalik hankida mitmel erineval kujul, kuid soovitav on tõmmata alla see minimalistlik [ftp://ftp.estpak.ee/pub/OpenBSD/4.6/i386/cd46.iso ISO-tõmmis] (5,89MB), mille saab kirjutada kas CD plaadile või haakida külge virtuaaldraivina. Bootides arvuti sellelt kettalt käivitub OpenBSD install.
Paigaldades OpenBSD'd VMWarele valige operatsioonisüsteemiks ''Others'' ja ''FreeBSD''. OpenBSD all saab kasutada FreeBSD jaoks mõeldud VMWare Tools'i
Paigaldades OpenBSD'd VMWarele valige operatsioonisüsteemiks ''Others'' ja ''FreeBSD''. OpenBSD all saab kasutada FreeBSD jaoks mõeldud VMWare Tools'e (see jääb küll antud dokumendi skoobist välja).


Installatsiooni käivitamisel jookseb üle ekraani kõigepealt hulk dmesg teateid, mida hiljem saab soovi korral alati üle vaadata failist /var/run/dmesg.boot
Installatsiooni käivitamisel jookseb üle ekraani kõigepealt hulk [http://en.wikipedia.org/wiki/Dmesg dmesg] teateid, mida hiljem saab soovi korral alati üle vaadata failist /var/run/dmesg.boot


Lõpuks jääb ekraanile järgmine tekst, vali ('''I''')nstall:
Lõpuks jääb ekraanile järgmine tekst, vali ('''I''')nstall:
Line 25: Line 64:
  (I)nstall, (U)pgrade or (S)hell? '''''i'''''
  (I)nstall, (U)pgrade or (S)hell? '''''i'''''


Kõikide valikute järel nurksulgudes toodud valik on see, mida installatsioon vaikimisi pakub. Kui tegelik pilt erineb näite omast, siis sisesta ikkagi näites toodud valik, kui ei ole põhjust toimida teisiti.
Kõikide valikute järel nurksulgudes toodud valik on see, mida installatsioon vaikimisi pakub. Kui tegelik pilt erineb näite omast, siis sisesta ikkagi näites vaikimisi toodud valik, kui ei ole teadaolevat põhjust toimida teisiti.


Vaikimisi klaviatuuripaigutus on ilmselt sobiv, aga soovi korral võib muidugi valida midagi muud.
Vaikimisi klaviatuuripaigutus on ilmselt sobiv, aga soovi korral võib muidugi valida midagi muud.
  Choose your keyboard layout ('?' or 'L' for list) [default] '''''Enter'''''
  Choose your keyboard layout ('?' or 'L' for list) [default] '''''Enter'''''


Määra serverile hostinimi. Praeguses näites kasutame nime ''mail''.
Määra serverile enda jaoks sobiv hostinimi. Praeguses näites nüüd ja edaspidi kasutame nime ''mail''.
  System hostname? (short form, e.g. 'foo') '''''mail'''''
  System hostname? (short form, e.g. 'foo') '''''mail'''''


Line 38: Line 77:
  Which one do you wish to configure? (or 'done') [vic0] '''''Enter'''''
  Which one do you wish to configure? (or 'done') [vic0] '''''Enter'''''


Võiksime kasutada ka DHCP'd, kuid seadistame praeguses näites võrguseaded käsitsi (kasuta oma kohalikule võrgule vastavaid seadeid).  
Võiksime kasutada ka DHCP'd, kuid seadistame praeguses näites võrguseaded käsitsi (kasuta oma kohalikule võrgule vastavaid seadeid). Serveritele DHCPga võrguseadete omistamine ei pruugi pikemas perspektiivis olla kõige parem idee.
  IPv4 address for vic0? (or 'dhcp' or 'none') [dhcp] '''''192.168.1.200'''''
  IPv4 address for vic0? (or 'dhcp' or 'none') [dhcp] '''''192.168.1.200'''''
  Netmask? [255.255.255.0] '''''Enter'''''
  Netmask? [255.255.255.0] '''''Enter'''''
Line 49: Line 88:
  Do you want to do any manual network configuration? [no] '''''Enter'''''
  Do you want to do any manual network configuration? [no] '''''Enter'''''


Määrame ''root''-kasutaja salasõna.
Määrame ''root''-kasutaja salasõna. Sisestamisel salasõna ei kuvata.
  Password for root account? (will not echo)
  Password for root account? (will not echo)
  Password for root account? (again)
  Password for root account? (again)
Line 55: Line 94:
  Start sshd(8) by default? [yes] '''''Enter'''''
  Start sshd(8) by default? [yes] '''''Enter'''''


Paigaldades operatsioonisüsteemi VMWare peale, vasta ''ntpd'''le '''''no''''' vastasel korral vasta '''''yes'''''.
Paigaldades operatsioonisüsteemi VMWare peale, vasta ''ntpd'''le '''''no''''' vastasel korral vasta '''''yes'''''. Kuidas virtuaalmasinal kõige paremini aega sünkroonis hoida, pead eraldi uurima. [http://www.vmware.com/pdf/vmware_timekeeping.pdf] [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427]
  Start ntpd(8) by default? [no] '''''Enter'''''
  Start ntpd(8) by default? [no] '''''Enter'''''
  Do you expect to run the X Window System? [yes] '''''no'''''
  Do you expect to run the X Window System? [yes] '''''no'''''
Line 66: Line 105:
  Use (W)hole disk or (E)dit the MBR? [whole] '''''Enter'''''
  Use (W)hole disk or (E)dit the MBR? [whole] '''''Enter'''''


OpenBSD pakub nüüd välja omapoolse ketta automaatse partitsioneerimisskeemi ja lihtsuse huvides võib sellega nõustuda. Tegelikult võiksime partitsioneerida ketta ka käsitsi, valides ''(C)ustom''. Näiteks on tõenäoliselt vaikimisi pakutud /home meie vajaduste jaoks liiga uure mahuga ning /usr liiga väike jne, aga partitsioneerimine vajab eelnevalt läbimõtlemist vastavalt konkreetsetele vajadustele.
OpenBSD pakub nüüd välja omapoolse ketta automaatse partitsioneerimisskeemi ja lihtsuse huvides võib sellega nõustuda. Tegelikult võiksime partitsioneerida ketta ka käsitsi, valides ''(C)ustom''. Näiteks on tõenäoliselt vaikimisi pakutud /home meie vajaduste jaoks liiga suure mahuga ning /usr liiga väikese jne. Konkreetne partitsioneerimisskeem vajab eelnevalt läbimõtlemist vastavalt vajadustele.
 
  Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] '''''Enter'''''
  Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] '''''Enter'''''


Kuna valisime installimeediaks variandi, mis ei sisalda endas rohkem tarkvara, kui vajalik installatsiooni käivitamiseks, siis paigaldame ülejäänud tarkvara üle võrgu. Valime meetodiks ''ftp'' ja serveriks mõne lähedal asuva serveri (Eestis on kaks serverit: ftp.aso.ee ja ftp.estpak.ee, rohkem variante näeb ''list'' käsuga).
Kuna valisime installimeediaks variandi, mis ei sisalda endas rohkem tarkvara, kui vajalik installatsiooni käivitamiseks, siis paigaldame ülejäänud tarkvara üle võrgu. Valime meetodiks ''ftp'' ja serveriks mõne lähedal asuva serveri (Eestis on kaks serverit: ftp.aso.ee ja ftp.estpak.ee, rohkem variante näeb ? käsuga). Korraldusega -x* eemaldame kõik graafilise keskkonna jaoks vajalikud installpaketid, kuid selle käsu võib ka andmata jätta.


  Let's install the sets!
  Let's install the sets!
  Location of sets? (cd disk ftp http or 'done') [cd] '''''ftp'''''
  Location of sets? (cd disk ftp http or 'done') [cd] '''''ftp'''''
  HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] '''''Enter'''''
  HTTP/FTP proxy URL? <nowiki>(e.g. 'http://proxy:8080', or 'none')</nowiki> [none] '''''Enter'''''
  Server? (hostname, list#, 'done' or '?') [ftp.estpak.ee] '''''Enter'''''
  Server? (hostname, list#, 'done' or '?') [ftp.estpak.ee] '''''Enter'''''
  Server directory? [pub/OpenBSD/4.6/i386] Enter
  Server directory? [pub/OpenBSD/4.6/i386] '''''Enter'''''
  Login? [anonymous] Enter
  Login? [anonymous] '''''Enter'''''
  Set name(s)? (or 'abort' or 'done') [done] '''''-x*'''''
  Set name(s)? (or 'abort' or 'done') [done] '''''-x*'''''
  Set name(s)? (or 'abort' or 'done') [done] '''''Enter'''''
  Set name(s)? (or 'abort' or 'done') [done] '''''Enter'''''
Line 86: Line 126:
Sellega on OpenBSD baasinstall on nüüd valmis ning teeme serverile alglaadimise.
Sellega on OpenBSD baasinstall on nüüd valmis ning teeme serverile alglaadimise.


  # '''''reboot'''''
  '''''reboot'''''


Edasi pole enam tarvidust konfigureerida serverit otse serveri konsoolilt, vaid võime logida serverisse SSH kliendiga (näiteks [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] abil).
Edasi pole enam tarvidust konfigureerida serverit otse serveri konsoolilt, vaid võime logida serverisse SSH kliendiga (näiteks [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] abil).
Line 94: Line 134:
Lihtsaim viis enamuse tarkvara installeerimiseks OpenBSD serverile, on portide kogumiku kasutamine. Selleks tõmbame alla ja pakime lahti ühe faili.
Lihtsaim viis enamuse tarkvara installeerimiseks OpenBSD serverile, on portide kogumiku kasutamine. Selleks tõmbame alla ja pakime lahti ühe faili.


  # cd /usr/
  cd /usr/
  # ftp ftp://ftp.estpak.ee/pub/OpenBSD/4.6/ports.tar.gz
  <nowiki>ftp ftp://ftp.estpak.ee/pub/OpenBSD/4.6/ports.tar.gz</nowiki>
  # tar -zxvf ports.tar.gz
  tar -zxvf ports.tar.gz
  # rm ports.tar.gz
  rm ports.tar.gz


Kataloogi /usr/ports all saame nüüd paigaldada serverisse erinevat tarkvara, liikudes soovitava kategooria alla soovitava tarkvara kataloogi ning andes käsu '''''make install'''''. Üks portide kogumiku kasutamise puudusi on, et selle kaudu paigaldatav tarkvaraversioon ei pruugi olla kõige uuem.
Kataloogi /usr/ports all saame nüüd paigaldada serverisse erinevat tarkvara, liikudes soovitava kategooria alla soovitava tarkvara kataloogi ning andes käsu '''''make install'''''. Üks portide kogumiku kasutamise puudusi on, et selle kaudu paigaldatav tarkvaraversioon ei pruugi olla kõige uuem. Mingil põhjusel soovitatakse OpenBSD veebilehel portide kollektsiooni kasutada vaid vilunud kasutajatel, ei oska kommenteerida.


===Installijärgne konfigureerimine===
==Postfixi paigaldamise protsess==
===Eeltööd===


Kõrvaldame vana sendmaili. Postfix paigaldab tagasiühilduvuse huvides selle asemele enda versiooni.
Kõrvaldame vana sendmaili. Postfix paigaldab tagasiühilduvuse huvides selle asemele enda versiooni.


  # rm /usr/sbin/sendmail
  rm /usr/sbin/sendmail


Kommenteerime crontab'i alt välja perioodiliselt käivitatava sendmaili käsurea.
Kommenteerime crontab'i alt välja perioodiliselt käivitatava sendmaili käsurea.


  # crontab -e
  crontab -e
 
Leia järgmised read ja kommenteeri need välja lisades rea ette #-märgi, nagu allpool näidatud.
Leia järgmised read ja kommenteeri need välja lisades rea ette #-märgi, nagu allpool näidatud.


Line 117: Line 159:
Keelame sendmaili käivitumise serveri bootimisel.
Keelame sendmaili käivitumise serveri bootimisel.


  # vi /etc/rc.conf.local
  vi /etc/rc.conf.local


Lisa faili järgmine rida ja salvesta.
Lisa faili järgmine rida ja salvesta.
Line 125: Line 167:
Failis ''rc.conf.local'' tehtud muudatused on ülimuslikud failis ''rc.conf'' sisalduvate seadistuste suhtes. Turvalisem ja ülevaatlikum on teha muudatusi failis ''rc.conf.local'', kuid soovi korral võib redigeerida ka otse ''rc.conf'' faili.
Failis ''rc.conf.local'' tehtud muudatused on ülimuslikud failis ''rc.conf'' sisalduvate seadistuste suhtes. Turvalisem ja ülevaatlikum on teha muudatusi failis ''rc.conf.local'', kuid soovi korral võib redigeerida ka otse ''rc.conf'' faili.


Katkesta kõik töötavad sendmaili protsessid
Katkesta töötav sendmaili protsess


  # kill `head -1 /var/run/sendmail.pid`
  kill `head -1 /var/run/sendmail.pid`


<!-- Lisame kasutajakontod ja grupid, mille all süsteemi erinevad osad tööle hakkavad. Turvalisuse huvides on hea, kui iga rakendus jookseb oma kasutajakonto all ja ei oma juurdepääsu süsteemi nendele osadele, millele ta juurdepääsu ei vaja.
Lisame kasutajakontod ja grupid... <!--, mille all süsteemi erinevad osad tööle hakkavad. Turvalisuse huvides on hea, kui iga rakendus jookseb oma kasutajakonto all ja ei oma juurdepääsu süsteemi nendele osadele, millele ta juurdepääsu ei vaja.-->


  # vipw
  vipw


Lisame faili lõppu järgmised read:
Lisame faili lõppu järgmised read:


  postfix:*:2000:2000::0:0:Postfix Mail Daemon:/var/empty:/sbin/nologin
  postfix:*:2000:2000::0:0:Postfix Mail Daemon:/var/empty:/sbin/nologin
  amavisd:*:3000:3000::0:0:Amavis Mail Scanner Daemon:/var/amavisd:/sbin/nologin
  <!-- amavisd:*:3000:3000::0:0:Amavis Mail Scanner Daemon:/var/amavisd:/sbin/nologin -->


  # vi /etc/group
  vi /etc/group


Lisame faili lõppu või soovitavalt ka numbrilises järjekorras õigesse kohta vahele järgmised read:
Lisame faili lõppu või soovitavalt ka numbrilises järjekorras õigesse kohta vahele järgmised read:
Line 144: Line 186:
  postfix:*:2000:
  postfix:*:2000:
  postdrop:*:2001:
  postdrop:*:2001:
  amavisd:*:3000: -->
<!-- amavisd:*:3000: -->
 
===Postfixi install===
Tõmbame alla ja kompileerime Postfixi kõige uuema ''stable'' versiooni. Võiksime kasutada Postfixi installatsiooniks ka OpenBSD portide kogumikku, kuid hetkel tuleb selle kaudu mitu väljalaset vanem versioon.
 
cd /root/
<nowiki>ftp ftp://ftp.estpak.ee/pub/postfix/postfix-release/official/postfix-2.6.5.tar.gz</nowiki>
tar -zxvf postfix-2.6.5.tar.gz
rm postfix-2.6.5.tar.gz
cd postfix-2.6.5
make
make install
 
Installatsioon küsib järjest hulga küsimusi, millele kõigile peaks sobima vaikimisi toodud vastus. Vajutada tuleb lihtsalt '''''Enterit'''''. Hiljem saab neid samu seadeid vajadusel muuta ''main.cf'' failis ''install-time configuration'' jaotise all.
 
Muudame Postfixi konfiguratsioonifaili vastavalt meie vajadustele.
 
vi /etc/postfix/main.cf
 
Kaldkirjas tekstid asenda enda tingimustele vastavatega.
 
myhostname = ''mail.kala.ee''
mydomain = ''kala.ee''
myorigin = $myhostname
mydestination= $myhostname, localhost.$mydomain, localhost
mynetworks = ''192.168.1.0/24'', 127.0.0.0/8
local_recipient_maps =
relay_domains = $mydestination, $mydomain
relayhost = ''192.168.1.210''
 
Toodud näites on ''192.168.1.210'' serveri aadress, millele edastatakse kontrollitud post (näiteks ettevõtte Exchange'i server vms)
<!-- Oletame, et ettevõttel on ''MS Exchange'i'' server IP aadressiga 192.168.1.210 ja täieliku domeeninimega exchange.kala.ee. Selleks, et ülekontrollitud kirjad edastataks sellele serverile, tuleb vastav määrang sisse kirjutada /etc/postfix/transport faili
 
vi /etc/postfix/transport
 
Lisa faili algusesse järgmine rida
 
kala.ee smtp:[192.168.1.210]
 
Kui soovid IP aadressi asemel kasutada Exchange'i serveri täielikku domeeninime, lisa hoopis järgmine rida. Et asi nii toimiks, peab DNS andma kindlasti õige vaste.
 
kala.ee smtp:exchange.kala.ee
 
Kuna Postfix otseselt transport faili ei loe, tuleb see konverteerida Postfixi jaoks loetavale kujule käsuga
 
postmap /etc/postfix/transport -->
<!-- Testime, kas Postfix töötab.
 
postfix start
postfix/postfix-script: starting the Postfix mail system
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.kala.ee ESMTP Postfix
-->
 
Teeme nii, et Postfix käivituks edaspidi alglaadimisel ja lisame selleks /etc/rc.local faili vajaliku info.
 
vi /etc/rc.local
 
Lisa faili read
 
# Start Postfix
echo -n ' postfix';  /usr/sbin/postfix start
 
== Amavisd-new ja SpamAssassini paigaldamine==
 
Amavisd-new paigaldamiseks kasutame portide kollektsiooni. Paigaldatakse mitte kõige uuem versioon, kuid see-eest on paigaldus lihtne, kuna installeeritakse ühtlasi suur hulk erinevat tarkvara, millest amavisd-new on sõltuvuses (erinevate failivormingude dekompressorid, vajalikud perli moodulid, SpamAssassin, Berkeley DB, ClamAV jne). Protsess võib sõltuvalt riistvara jõudlusest ja internetiühenduse kiirusest üsna kaua aega võtta.
 
cd /usr/ports/mail/amavisd-new
make install
 
==Postfixi konfigureerimine Amavisd-new kasutamiseks==
 
Lisame master.cf faili lõppu mõned read. See ütleb Postfixile, et me kasutame posti ülekontrollimiseks välist programmi.
 
vi /etc/postfix/master.cf
 
Esimene rida on päris faili alguses, teine rida tuleb sinna juurde lisada. Ülejäänud read lisada muude sobivasse kohta.
 
smtp      inet  n      -      n      -      5      smtpd
    -o content_filter=smtp-amavis:[127.0.0.1]:10024
smtp-amavis unix        -      -      n      -      2      smtp
    -o smtp_data_done_timeout=1200
    -o disable_dns_lookups=yes
127.0.0.1:10025 inet    n      -      n      -      -      smtpd
    -o local_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o strict_rfc821_envelopes=yes
 
==amavisd-new konfigureerimine==
 
vi /etc/amavisd.conf
 
Lisada faili järgmised read, või kui need on juba olemas, siis parandada näidatud kujule. #-märgi järel toodud märkusi pole vaja lisada.
 
@bypass_virus_checks_maps = (1);      # ajutiselt lülitame välja viirusetõrje koodi, ei mahu antud näite skoopi
$mydomain = 'kala.ee';                # siia kirjuta enda domeeninimi
$log_level = 2;                        # et logifailist natuke rohkem infot näha, alguses ehk ikka vajalik
$forward_method = 'smtp:127.0.0.1:10025';  # kuhu edastatakse ülekontrollitud kirjad
$notify_method = $forward_method;
$inet_socket_port = 10024;            # mis pordi kaudu võetakse kirjad kontrollimiseks vastu
$inet_socket_bind = '127.0.0.1';
$final_spam_destiny = D_PASS;          # D_PASS rämps saadetakse edasi, D_DISCARD rämps kõrvaldatakse
@local_domains_maps = ( [".$mydomain", '$mydomain'] );
 
SpamAssassinit puudutavad seaded amavisd-new konfifailis, kõiki arvulisi väärtusi võib muuta vastavalt vajadusele ja katsetada erinevaid. Arvulised väärtused tähistavad konkreetsele e-kirjale omistatud "spämmisuse" skoori.
 
$sa_spam_subject_tag = '***RÄMPS*** ';  # See lisatakse rämpsposti teemareale
$sa_tag_level_deflt  = -5;  # sellest skoorist alates lisatakse kirja päisesse spämmisuseinfo
                              # testimise huvides võib selle panna ka negatiivseks, et näha, mida üldse
                              # mailipäisesse kirjutatakse rämpspostitõrje poolt
$sa_tag2_level_deflt = 6.2;  # sellest skoorist alates loetakse kiri rämpspostiks, lisatakse vastav info
                              # kirja päisesse ja teemareale
$sa_kill_level_deflt = 6.9;  # käivitub mingi spämmi kõrvaldamise aktsioon
$sa_dsn_cutoff_level = 10;  # spam level beyond which a DSN is not sent
$sa_mail_body_size_limit = 400*1024; # kui kirja maht on suurem sellest, siis ei kontrollita
$sa_local_tests_only = 0;    # kui '0', siis ainult kohalikud testid, mis ei vaja internetiühendust (nagu razor, dcc)
 
Paneme amavisd-new käivituma alglaadimisel ja lisame /etc/rc.local faili vajalikud read.
 
vi /etc/rc.local
 
Lisa need read Postfixi käivitamise ridade ette.
 
if [ -x /usr/local/sbin/amavisd ]; then
        echo -n ' amavisd'; /usr/local/sbin/amavisd
fi
 
==SpamAssassini konfigureerimine==
 
vi /etc/mail/spamassassin/local.cf
 
Infot selle kohta, mida üldse annab selles failis seadistada leiab [http://search.cpan.org/~jmason/Mail-SpamAssassin-3.3.0/lib/Mail/SpamAssassin/Conf.pm perldoc Mail::SpamAssassin::Conf]alt.
 
Vt ka seda [http://wiki.apache.org/spamassassin/WritingRules reeglite kirjutamise juhendit].
 
On võimalik muuta näiteks juba olemasolevate eeldefineeritud reeglite spämmiskoori. On võimalik kirjutada ise juurde reegleid. Üldjuhul ei osutu see isegi vajalikuks, kuid näiteks võib tekkida vajadus mingi spetsiifilise eestikeelse rämpskirjatüübi väljafiltreerimiseks. Järgnevas näites loome ühe fiktiivse uue reegli, mis suurendab spämmiskoori 1 punkti võrra, kui kirjas sisaldub termin ''spämmitest''.
 
body SPAM_TEST /spämmitest/
describe SPAM_TEST Rämpsposti reegel testimiseks
score SPAM_TEST 1
 
Loome näiteks ka ühe reegli, mis leides teemarealt sõnad ''starmani e-arve'', suurendab kirja spämmiskoori 5 punkti võrra.
 
header ARVE Subject =~ /starmani e-arve/i
describe ARVE Ei taha saada arveid
score ARVE 5
 
Kui tuleb palju rämpsposti, mis on kirillitsas või mingis idamaa keeles, siis võime näiteks määrata järgmise seadistuse. Selle tulemusena kõik mitte nö lääne kooditabeleid kasutavad keeled saavad kõrgema spämmiskoori.
 
ok_locales en         
 
Kui on soov piirata sissetulevaid kirju konkreetselt keelte kaupa, võib proovida kasutada SpamAssassini keelte äraarvamise pluginat. Ära tuleb määrata keeled, mis on lubatud (täielikku keelte loendit vaata [http://search.cpan.org/~jmason/Mail-SpamAssassin-3.3.0/lib/Mail/SpamAssassin/Plugin/TextCat.pm perldoc Mail::SpamAssassin::Plugin::TextCat] lehelt).
 
ok_languages bs cy eo et eu fy ga gd is la lt lv rm sa sco sl yi
 
Eelnevalt võib olla vajalik redigeerida v310.pre faili ja veenduda, et seal failis ''TextCat'' plugin ikka laetakse, vajadusel eemalda kommentaari märk ''loadplugin'' eest.
 
vi /etc/mail/spamassassin/v310.pre
loadplugin Mail::SpamAssassin::Plugin::TextCat
 
Kui samast serverist käivad läbi näiteks ettevõttest väljaminevad kirjad, siis võime lisada reegli, mis vähendab väljuvate kirjade spämmiskoori näiteks 50 punkti võrra. See probleem oleks tegelikult mõistlik lahendada kuidagi teisiti, et väljuvaid kirju spämmi suhtes üldse ei kontrollitaks, aga näites toome selle praegu siiski ära. Sellise reegli loomiseks on kõigepealt vaja uurida ettevõtte serverist väljasaadetud kirja päist ja siis vastavalt seal nähtule konstrueerida regulaaravaldis. Näites toodud regulaaravaldis otsib päise ''Received'' väljast stringi, mis vastaks mustrile *.domain.com (*[*])
 
header LOCAL_RCVD Received =~ /.*\(\S+\.domain\.com\s+\[.*\]\)/
describe LOCAL_RCVD Received from local machine
score LOCAL_RCVD -50
 
2010. aastast hakkas tekitama probleeme üks SpamAssassini reegel, mis kontrollib, et kirjade kuupäevad ei oleks kaugel tulevikus. Ajutiselt võime näiteks selle reegli käibest kõrvaldada, määrates selle sooriks 0. Konkreetne probleem on võimalik lahendada uuendades SpamAssassini versiooni. Näide sellest, kuidas saab muuta olemasolevate reeglite skoori.
 
score FH_DATE_PAST_20XX 0.0
 
== Testimine ==
 
Testimise eesmärgil võib avada ühe täiendava PuTTY akna ning logida serverisse veel ühe sessiooniga sisse, ning anda seal aknas käsu ''maillog'' faili jälgimiseks. See käsk kuvab jooksvalt kõik lisandused ''maillog'' faili ja võimaldab jooksvalt jälgida Postfixi, amavisd-new ja SpamAssassini toimimist.
 
tail -f /var/log/maillog
 
Testimise käigus võib tekkida vajadus tühjendada Postfixi mailide ''queue'', seda saab teha käsuga
 
postsuper -d ALL
 
Tehes Postfixi, amavisd-new või SpamAssassini konfiguratsioonides muutusi, tuleb neile protsessidele teha taaskäivitus.
Seda saab teha järgmiste käskudega:
 
postfix reload
amavisd reload
<!--
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.lib.ttu.ee ESMTP Postfix
helo lib.ttu.ee
250 mail.lib.ttu.ee
mail from:liivand@lib.ttu.ee
250 2.1.0 Ok
rcpt to:net@campusttu.ee
250 2.1.5 Ok
Data
354 End data with <CR><LF>.<CR><LF>
Subject: Test
Kala
 
.
250 2.0.0 Ok: queued as 75562F76CB
quit
221 2.0.0 Bye
Connection closed by foreign host.
-->


==Postfixi paigaldamine==
==Varundamine ja taastamine==


<!-- Tõmbame alla ja kompileerime Postfixi viimase versiooni.
Varundamist ja taastamist puudutavast osas on tänapäeval ehk mõistlik installeerida servereid virtualiseeritult ning varundada korraga terve virtuaalserver.


# cd /root/
OpenBSD all käib kogu failisüsteemi varundamine ja taastamine ka käskudega [http://www.openbsd.org/cgi-bin/man.cgi?query=dump&sektion=8 dump] ja [http://www.openbsd.org/cgi-bin/man.cgi?query=restore&sektion=8 restore].
# ftp ftp://ftp.estpak.ee/pub/postfix/postfix-release/official/postfix-2.6.5.tar.gz
# tar -zxvf postfix-2.6.5.tar.gz
# cd postfix-2.6.5
# make -->


# cd /usr/ports/mail/postfix/
Olulised konfiguratsioonifailid, mida võib varundada:
# make install


/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/amavisd.conf
/etc/mail/spamassassin/local.cf


==Viited==


* [http://www.openbsd.org/ OpenBSD]
* [http://www.postfix.org/ Postfix]
* [http://www.ijs.si/software/amavisd/ amavisd-new]
* [http://spamassassin.apache.org/ SpamAssassin]
* Materjale:
** [http://www.openbsd.org/faq/faq4.html OpenBSD 4.6 Installation Guide]
** [http://flakshack.com/anti-spam/wiki/index.php?page=FairlySecureAntiSpamWiki FairlySecureAntiSpamWiki ]
** [http://www.dsrw.org/~dlg/sysadmin/spam/ openbsd+postfix+spamassassin+... ]
[[Category:IT infrastruktuuri teenused]]
[[Category:IT infrastruktuuri teenused]]

Latest revision as of 10:27, 30 January 2010

Autor

  • Siim Liivand, AK31

Dokumendi ajalugu

Viimati muudetud: 30. jaanuar 2010

versioon kuupäev kommentaar
pre-alpha 12.01.10 algus...
beta1 16.01.10 OS-i installi osa on üldjoontes valmis ja mingid kohahoidjad ka muus dokumendi osas paigas
25.01.10 väikene täiendamine
public beta 27.01.10 juhend on niipalju valmis, et on kasutatav
28.01.10 lisatud mõned SpamAssassini reeglid ja tehtud mõned korrektuurid

Sissejuhatus ja skoop

Dokument käsitleb OpenBSD baasil rämpsposti filtreeriva serveri paigaldamist vaadeldes seejuures eraldi ka SpamAssassini konfigureerimist ja filtreid. Tulemuseks on rämpsposti filtreerimise server, mis võtab mailid vastu, kontrollib ja edastab seejärel lõppadressaadiks olevale serverile (näiteks ettevõtte Exchange'i server). Loomulikult on võimalik konfigureerida server ka selliselt, et maile ei edastata, vaid server ise ongi lõppadressdaadiks, st kohaks, kus asuvad kasutajate postkastid.

Tarkvara ja versioonid, mille puhul antud dokument peaks toimima:

  • OpenBSD versioon 4.6
  • Postfix versioon 2.6.5
  • amavisd-new versioon 2.6.3
  • SpamAssassin 3.2.5p1

Nõuded, eeldused

  • OpenBSD toetab paljusid erinevaid riistvaraplatvorme, sh. loomulikult PC platvormi. Toetatud on nii 32- kui 64-bitised protsessorid ja mitmetuumalised protsessorid.
  • Miinimumnõuded riistvarale. OpenBSD on võimalik paigaldada märkimisväärselt viletsale riistvarale, kuid mida parema jõudlusega riistvara kasutada, seda valutum on paigaldusprotsess ning hilisema valmis süsteemi töö. Kuigi põhimõtteliselt on võimalik antud süsteemi paigaldada kasvõi 500MB kõvakettale, võiks kõvaketta mahuks olla siiski vähemasti näiteks 20GB, mälu min 512MB. Protsessori jõudlus on seda olulisem, mida suurema koormusega süsteem tööle hakkab. SpamAssassin võib teatud juhtudel tarbida päris palju ressurssi. Põhimõtteliselt võib öelda, et riistvara osas tegelikult piiranguid ei ole. Siiski võib muidugi juhtuda, et mingi eriti uue või eksootilise riistvarakomponendi tugi puudub. Eelnevalt võib tutvuda ka toetatud riistvara nimekirjaga.
  • Kuna süsteemi installeerimine käib üle internetiühenduse, siis on loomulikult vajalik internetiühendus. Lisaks, kuna tegemist on e-posti serveriga, eeldab see iseenesest juba internetiühenduse olemasolu, kuna muidu oleks tegemist kasutu mittetoimiva süsteemiga.
  • Kasuks tuleks minimaalne tekstiredaktori vi kasutamise oskus.
  • Vajalik on mingi baasteadmine arvutivõrgundusest.
  • Näites installeeritakse süsteem vmware serveri virtuaalmasinana. Sellisel juhul peaks olema olemas eelnev teadmine vmware kasutamisest.
  • SpamAssassini konfigureerimiseks võiks olla olemas teadmised perli regulaaravaldiste kasutamisest.

OpenBSD paigaldamine

Detailse OpenBSD installeerimise juhendi leiab OpenBSD veebilehelt ja operatsioonisüsteemi paigaldamisel tuleks lähtuda ennekõike sellest ja konkreetsetest vajadustest. Järgnevalt on toodud siiski lühidalt OpenBSD installeerimise juhend, toetudes konkreetsele näitele.

Baasinstall

Esmalt tuleb hankida OpenBSD installimeedia. Seda on võimalik hankida mitmel erineval kujul, kuid soovitav on tõmmata alla see minimalistlik ISO-tõmmis (5,89MB), mille saab kirjutada kas CD plaadile või haakida külge virtuaaldraivina. Bootides arvuti sellelt kettalt käivitub OpenBSD install. Paigaldades OpenBSD'd VMWarele valige operatsioonisüsteemiks Others ja FreeBSD. OpenBSD all saab kasutada FreeBSD jaoks mõeldud VMWare Tools'e (see jääb küll antud dokumendi skoobist välja).

Installatsiooni käivitamisel jookseb üle ekraani kõigepealt hulk dmesg teateid, mida hiljem saab soovi korral alati üle vaadata failist /var/run/dmesg.boot

Lõpuks jääb ekraanile järgmine tekst, vali (I)nstall:

Welcome to the OpenBSD/i386 4.6 installation program.
(I)nstall, (U)pgrade or (S)hell? i

Kõikide valikute järel nurksulgudes toodud valik on see, mida installatsioon vaikimisi pakub. Kui tegelik pilt erineb näite omast, siis sisesta ikkagi näites vaikimisi toodud valik, kui ei ole teadaolevat põhjust toimida teisiti.

Vaikimisi klaviatuuripaigutus on ilmselt sobiv, aga soovi korral võib muidugi valida midagi muud.

Choose your keyboard layout ('?' or 'L' for list) [default] Enter

Määra serverile enda jaoks sobiv hostinimi. Praeguses näites nüüd ja edaspidi kasutame nime mail.

System hostname? (short form, e.g. 'foo') mail

Tõenäoliselt on sobiv vaikimisi pakutav võrguliides.

Available network interfaces are: vic0 vlan0.
Which one do you wish to configure? (or 'done') [vic0] Enter

Võiksime kasutada ka DHCP'd, kuid seadistame praeguses näites võrguseaded käsitsi (kasuta oma kohalikule võrgule vastavaid seadeid). Serveritele DHCPga võrguseadete omistamine ei pruugi pikemas perspektiivis olla kõige parem idee.

IPv4 address for vic0? (or 'dhcp' or 'none') [dhcp] 192.168.1.200
Netmask? [255.255.255.0] Enter
IPv6 address for vic0? (or 'rtsol' or 'none') [none] Enter
Available network interfaces are: vic0 vlan0.
Which one do you wish to configure? (or 'done') [done] Enter
Default IPv4 route? (IPv4 address, 'dhcp' or 'none') 192.168.1.254
DNS domain name? (e.g. 'bar.com') [my.domain] kala.ee
DNS nameservers? (IP address list or 'none') [none] 192.168.1.254
Do you want to do any manual network configuration? [no] Enter

Määrame root-kasutaja salasõna. Sisestamisel salasõna ei kuvata.

Password for root account? (will not echo)
Password for root account? (again)
Start sshd(8) by default? [yes] Enter

Paigaldades operatsioonisüsteemi VMWare peale, vasta ntpd'le no vastasel korral vasta yes. Kuidas virtuaalmasinal kõige paremini aega sünkroonis hoida, pead eraldi uurima. [1] [2]

Start ntpd(8) by default? [no] Enter
Do you expect to run the X Window System? [yes] no
Change the default console to com0? [no] Enter
Setup a user? (enter a lower-case loginname, or 'no') [no] Enter
What timezone are you in? ('?' for list) [Europe/Tallinn] Enter
Available disks are: sd0.
Which one is the root disk? (or 'done') [sd0] Enter
Use (W)hole disk or (E)dit the MBR? [whole] Enter

OpenBSD pakub nüüd välja omapoolse ketta automaatse partitsioneerimisskeemi ja lihtsuse huvides võib sellega nõustuda. Tegelikult võiksime partitsioneerida ketta ka käsitsi, valides (C)ustom. Näiteks on tõenäoliselt vaikimisi pakutud /home meie vajaduste jaoks liiga suure mahuga ning /usr liiga väikese jne. Konkreetne partitsioneerimisskeem vajab eelnevalt läbimõtlemist vastavalt vajadustele.

Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] Enter

Kuna valisime installimeediaks variandi, mis ei sisalda endas rohkem tarkvara, kui vajalik installatsiooni käivitamiseks, siis paigaldame ülejäänud tarkvara üle võrgu. Valime meetodiks ftp ja serveriks mõne lähedal asuva serveri (Eestis on kaks serverit: ftp.aso.ee ja ftp.estpak.ee, rohkem variante näeb ? käsuga). Korraldusega -x* eemaldame kõik graafilise keskkonna jaoks vajalikud installpaketid, kuid selle käsu võib ka andmata jätta.

Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd] ftp
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] Enter
Server? (hostname, list#, 'done' or '?') [ftp.estpak.ee] Enter
Server directory? [pub/OpenBSD/4.6/i386] Enter
Login? [anonymous] Enter
Set name(s)? (or 'abort' or 'done') [done] -x*
Set name(s)? (or 'abort' or 'done') [done] Enter

Toimub tarkvara allalaadimine ja paigaldamine, mis sõltuvalt internetiühenduse kiirusest võib veidi aega võtta.

Location of sets? (cd disk ftp http or 'done') [done] Enter

Sellega on OpenBSD baasinstall on nüüd valmis ning teeme serverile alglaadimise.

reboot

Edasi pole enam tarvidust konfigureerida serverit otse serveri konsoolilt, vaid võime logida serverisse SSH kliendiga (näiteks PuTTY abil).

Portide kogumiku paigaldamine

Lihtsaim viis enamuse tarkvara installeerimiseks OpenBSD serverile, on portide kogumiku kasutamine. Selleks tõmbame alla ja pakime lahti ühe faili.

cd /usr/
ftp ftp://ftp.estpak.ee/pub/OpenBSD/4.6/ports.tar.gz
tar -zxvf ports.tar.gz
rm ports.tar.gz

Kataloogi /usr/ports all saame nüüd paigaldada serverisse erinevat tarkvara, liikudes soovitava kategooria alla soovitava tarkvara kataloogi ning andes käsu make install. Üks portide kogumiku kasutamise puudusi on, et selle kaudu paigaldatav tarkvaraversioon ei pruugi olla kõige uuem. Mingil põhjusel soovitatakse OpenBSD veebilehel portide kollektsiooni kasutada vaid vilunud kasutajatel, ei oska kommenteerida.

Postfixi paigaldamise protsess

Eeltööd

Kõrvaldame vana sendmaili. Postfix paigaldab tagasiühilduvuse huvides selle asemele enda versiooni.

rm /usr/sbin/sendmail

Kommenteerime crontab'i alt välja perioodiliselt käivitatava sendmaili käsurea.

crontab -e

Leia järgmised read ja kommenteeri need välja lisades rea ette #-märgi, nagu allpool näidatud.

# sendmail clientmqueue runner
# */30    *       *       *       *       /usr/sbin/sendmail -L sm-msp-queue -Ac -q

Keelame sendmaili käivitumise serveri bootimisel.

vi /etc/rc.conf.local

Lisa faili järgmine rida ja salvesta.

sendmail_flags = NO

Failis rc.conf.local tehtud muudatused on ülimuslikud failis rc.conf sisalduvate seadistuste suhtes. Turvalisem ja ülevaatlikum on teha muudatusi failis rc.conf.local, kuid soovi korral võib redigeerida ka otse rc.conf faili.

Katkesta töötav sendmaili protsess

kill `head -1 /var/run/sendmail.pid`

Lisame kasutajakontod ja grupid...

vipw

Lisame faili lõppu järgmised read:

postfix:*:2000:2000::0:0:Postfix Mail Daemon:/var/empty:/sbin/nologin
vi /etc/group

Lisame faili lõppu või soovitavalt ka numbrilises järjekorras õigesse kohta vahele järgmised read:

postfix:*:2000:
postdrop:*:2001:

Postfixi install

Tõmbame alla ja kompileerime Postfixi kõige uuema stable versiooni. Võiksime kasutada Postfixi installatsiooniks ka OpenBSD portide kogumikku, kuid hetkel tuleb selle kaudu mitu väljalaset vanem versioon.

cd /root/ 
ftp ftp://ftp.estpak.ee/pub/postfix/postfix-release/official/postfix-2.6.5.tar.gz
tar -zxvf postfix-2.6.5.tar.gz
rm postfix-2.6.5.tar.gz
cd postfix-2.6.5
make
make install

Installatsioon küsib järjest hulga küsimusi, millele kõigile peaks sobima vaikimisi toodud vastus. Vajutada tuleb lihtsalt Enterit. Hiljem saab neid samu seadeid vajadusel muuta main.cf failis install-time configuration jaotise all.

Muudame Postfixi konfiguratsioonifaili vastavalt meie vajadustele.

vi /etc/postfix/main.cf

Kaldkirjas tekstid asenda enda tingimustele vastavatega.

myhostname = mail.kala.ee
mydomain = kala.ee
myorigin = $myhostname
mydestination= $myhostname, localhost.$mydomain, localhost
mynetworks = 192.168.1.0/24, 127.0.0.0/8
local_recipient_maps =
relay_domains = $mydestination, $mydomain
relayhost = 192.168.1.210

Toodud näites on 192.168.1.210 serveri aadress, millele edastatakse kontrollitud post (näiteks ettevõtte Exchange'i server vms)

Teeme nii, et Postfix käivituks edaspidi alglaadimisel ja lisame selleks /etc/rc.local faili vajaliku info.

vi /etc/rc.local

Lisa faili read

# Start Postfix
echo -n ' postfix';   /usr/sbin/postfix start

Amavisd-new ja SpamAssassini paigaldamine

Amavisd-new paigaldamiseks kasutame portide kollektsiooni. Paigaldatakse mitte kõige uuem versioon, kuid see-eest on paigaldus lihtne, kuna installeeritakse ühtlasi suur hulk erinevat tarkvara, millest amavisd-new on sõltuvuses (erinevate failivormingude dekompressorid, vajalikud perli moodulid, SpamAssassin, Berkeley DB, ClamAV jne). Protsess võib sõltuvalt riistvara jõudlusest ja internetiühenduse kiirusest üsna kaua aega võtta.

cd /usr/ports/mail/amavisd-new
make install

Postfixi konfigureerimine Amavisd-new kasutamiseks

Lisame master.cf faili lõppu mõned read. See ütleb Postfixile, et me kasutame posti ülekontrollimiseks välist programmi.

vi /etc/postfix/master.cf

Esimene rida on päris faili alguses, teine rida tuleb sinna juurde lisada. Ülejäänud read lisada muude sobivasse kohta.

smtp      inet  n       -       n       -       5       smtpd
   -o content_filter=smtp-amavis:[127.0.0.1]:10024
smtp-amavis unix        -       -       n       -       2       smtp
   -o smtp_data_done_timeout=1200
   -o disable_dns_lookups=yes
127.0.0.1:10025 inet    n       -       n       -       -       smtpd
   -o local_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o strict_rfc821_envelopes=yes

amavisd-new konfigureerimine

vi /etc/amavisd.conf

Lisada faili järgmised read, või kui need on juba olemas, siis parandada näidatud kujule. #-märgi järel toodud märkusi pole vaja lisada.

@bypass_virus_checks_maps = (1);       # ajutiselt lülitame välja viirusetõrje koodi, ei mahu antud näite skoopi
$mydomain = 'kala.ee';                 # siia kirjuta enda domeeninimi
$log_level = 2;                        # et logifailist natuke rohkem infot näha, alguses ehk ikka vajalik
$forward_method = 'smtp:127.0.0.1:10025';  # kuhu edastatakse ülekontrollitud kirjad
$notify_method = $forward_method;
$inet_socket_port = 10024;             # mis pordi kaudu võetakse kirjad kontrollimiseks vastu
$inet_socket_bind = '127.0.0.1';
$final_spam_destiny = D_PASS;          # D_PASS rämps saadetakse edasi, D_DISCARD rämps kõrvaldatakse
@local_domains_maps = ( [".$mydomain", '$mydomain'] ); 

SpamAssassinit puudutavad seaded amavisd-new konfifailis, kõiki arvulisi väärtusi võib muuta vastavalt vajadusele ja katsetada erinevaid. Arvulised väärtused tähistavad konkreetsele e-kirjale omistatud "spämmisuse" skoori.

$sa_spam_subject_tag = '***RÄMPS*** ';  # See lisatakse rämpsposti teemareale
$sa_tag_level_deflt  = -5;   # sellest skoorist alates lisatakse kirja päisesse spämmisuseinfo
                             # testimise huvides võib selle panna ka negatiivseks, et näha, mida üldse
                             # mailipäisesse kirjutatakse rämpspostitõrje poolt
$sa_tag2_level_deflt = 6.2;  # sellest skoorist alates loetakse kiri rämpspostiks, lisatakse vastav info
                             # kirja päisesse ja teemareale
$sa_kill_level_deflt = 6.9;  # käivitub mingi spämmi kõrvaldamise aktsioon
$sa_dsn_cutoff_level = 10;   # spam level beyond which a DSN is not sent
$sa_mail_body_size_limit = 400*1024; # kui kirja maht on suurem sellest, siis ei kontrollita
$sa_local_tests_only = 0;    # kui '0', siis ainult kohalikud testid, mis ei vaja internetiühendust (nagu razor, dcc)

Paneme amavisd-new käivituma alglaadimisel ja lisame /etc/rc.local faili vajalikud read.

vi /etc/rc.local 

Lisa need read Postfixi käivitamise ridade ette.

if [ -x /usr/local/sbin/amavisd ]; then
        echo -n ' amavisd'; /usr/local/sbin/amavisd
fi

SpamAssassini konfigureerimine

vi /etc/mail/spamassassin/local.cf

Infot selle kohta, mida üldse annab selles failis seadistada leiab perldoc Mail::SpamAssassin::Confalt.

Vt ka seda reeglite kirjutamise juhendit.

On võimalik muuta näiteks juba olemasolevate eeldefineeritud reeglite spämmiskoori. On võimalik kirjutada ise juurde reegleid. Üldjuhul ei osutu see isegi vajalikuks, kuid näiteks võib tekkida vajadus mingi spetsiifilise eestikeelse rämpskirjatüübi väljafiltreerimiseks. Järgnevas näites loome ühe fiktiivse uue reegli, mis suurendab spämmiskoori 1 punkti võrra, kui kirjas sisaldub termin spämmitest.

body SPAM_TEST /spämmitest/
describe SPAM_TEST Rämpsposti reegel testimiseks
score SPAM_TEST 1

Loome näiteks ka ühe reegli, mis leides teemarealt sõnad starmani e-arve, suurendab kirja spämmiskoori 5 punkti võrra.

header ARVE Subject =~ /starmani e-arve/i
describe ARVE Ei taha saada arveid
score ARVE 5

Kui tuleb palju rämpsposti, mis on kirillitsas või mingis idamaa keeles, siis võime näiteks määrata järgmise seadistuse. Selle tulemusena kõik mitte nö lääne kooditabeleid kasutavad keeled saavad kõrgema spämmiskoori.

ok_locales en          

Kui on soov piirata sissetulevaid kirju konkreetselt keelte kaupa, võib proovida kasutada SpamAssassini keelte äraarvamise pluginat. Ära tuleb määrata keeled, mis on lubatud (täielikku keelte loendit vaata perldoc Mail::SpamAssassin::Plugin::TextCat lehelt).

ok_languages bs cy eo et eu fy ga gd is la lt lv rm sa sco sl yi

Eelnevalt võib olla vajalik redigeerida v310.pre faili ja veenduda, et seal failis TextCat plugin ikka laetakse, vajadusel eemalda kommentaari märk loadplugin eest.

vi /etc/mail/spamassassin/v310.pre

loadplugin Mail::SpamAssassin::Plugin::TextCat

Kui samast serverist käivad läbi näiteks ettevõttest väljaminevad kirjad, siis võime lisada reegli, mis vähendab väljuvate kirjade spämmiskoori näiteks 50 punkti võrra. See probleem oleks tegelikult mõistlik lahendada kuidagi teisiti, et väljuvaid kirju spämmi suhtes üldse ei kontrollitaks, aga näites toome selle praegu siiski ära. Sellise reegli loomiseks on kõigepealt vaja uurida ettevõtte serverist väljasaadetud kirja päist ja siis vastavalt seal nähtule konstrueerida regulaaravaldis. Näites toodud regulaaravaldis otsib päise Received väljast stringi, mis vastaks mustrile *.domain.com (*[*])

header LOCAL_RCVD Received =~ /.*\(\S+\.domain\.com\s+\[.*\]\)/
describe LOCAL_RCVD Received from local machine
score LOCAL_RCVD -50

2010. aastast hakkas tekitama probleeme üks SpamAssassini reegel, mis kontrollib, et kirjade kuupäevad ei oleks kaugel tulevikus. Ajutiselt võime näiteks selle reegli käibest kõrvaldada, määrates selle sooriks 0. Konkreetne probleem on võimalik lahendada uuendades SpamAssassini versiooni. Näide sellest, kuidas saab muuta olemasolevate reeglite skoori.

score FH_DATE_PAST_20XX 0.0

Testimine

Testimise eesmärgil võib avada ühe täiendava PuTTY akna ning logida serverisse veel ühe sessiooniga sisse, ning anda seal aknas käsu maillog faili jälgimiseks. See käsk kuvab jooksvalt kõik lisandused maillog faili ja võimaldab jooksvalt jälgida Postfixi, amavisd-new ja SpamAssassini toimimist.

tail -f /var/log/maillog

Testimise käigus võib tekkida vajadus tühjendada Postfixi mailide queue, seda saab teha käsuga

postsuper -d ALL

Tehes Postfixi, amavisd-new või SpamAssassini konfiguratsioonides muutusi, tuleb neile protsessidele teha taaskäivitus. Seda saab teha järgmiste käskudega:

postfix reload
amavisd reload

Varundamine ja taastamine

Varundamist ja taastamist puudutavast osas on tänapäeval ehk mõistlik installeerida servereid virtualiseeritult ning varundada korraga terve virtuaalserver.

OpenBSD all käib kogu failisüsteemi varundamine ja taastamine ka käskudega dump ja restore.

Olulised konfiguratsioonifailid, mida võib varundada:

/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/amavisd.conf
/etc/mail/spamassassin/local.cf

Viited