Labor2 E-post: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kkarma (talk | contribs)
Fpark (talk | contribs)
 
(42 intermediate revisions by 4 users not shown)
Line 2: Line 2:


Ver. 0.00, 03.11.2009<br>
Ver. 0.00, 03.11.2009<br>
Ver. 0.01, 14.12.2009
Ver. 0.01, 14.12.2009<br>
Ver. 0.02, 17.12.2009<br>
Ver. 0.03, 18.12.2009


=Tegijad=
=Tegijad=
Line 9: Line 11:
Ken Karma<br>
Ken Karma<br>
Lauri Võsandi<br>
Lauri Võsandi<br>
=Sissejuhatus=
Meil on kaks domeeni, kus on mailiserverid ja osapooled saavad omavahel e-posti teel suhelda. ssurva.ee ja kkarma.ee. kkarma.ee peale on seadistatud nii spämmifilter kui ja viirusetõrje sissetulevate mailide jaoks. Mõlemad domeenid samas logivad logiteateid eraldi faili.


=Nõuded=
=Nõuded=
Line 33: Line 38:
kohalikud domeenid kkarma ja ssurva paigutame faili /etc/bind/named.conf.local
kohalikud domeenid kkarma ja ssurva paigutame faili /etc/bind/named.conf.local


=Installeerimine=
<pre>
zone "6.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/db.6.168.192.in-addr.arpa";
};
zone "ssurva.ee" IN {
        type master;
        file "/etc/bind/db.ssurva.ee";
};
zone "kkarma.ee" IN {
        type master;
        file "/etc/bind/db.kkarma.ee";
};
 
</pre>
 
<pre>
nano /etc/bind/db.ssurva.ee
nano /etc/bind/db.kkarma.ee
nano /etc/bind/db.6.168.192.in-addr.arpa
</pre>


mida vaja installida:
Nende failide sisu muuta järgmiselt


mailscanner(?)
<pre>
;
; BIND data file for ssurva.ee
;
$ORIGIN ssurva.ee.
$TTL    604800
@      IN      SOA    ns.ssurva.ee. root.ssurva.ee. (
                              3        ; Serial
                        604800        ; Refresh
                          86400        ; Retry
                        2419200        ; Expire
                        604800 )       ; Negative Cache TTL
;
ssurva.ee. IN      NS      ns.ssurva.ee.
ssurva.ee. IN      MX      10 mail.ssurva.ee.
ns.ssurva.ee.      IN      A      192.168.6.88
mail.ssurva.ee.    IN      A      192.168.6.88
www.ssurva.ee.    IN      CNAME      ssurva.ee.
ssurva.ee. IN      A  192.168.6.88


spamassassin (?)
</pre>
<pre>
;
; BIND data file for kkarma.ee
;
$ORIGIN kkarma.ee.
$TTL    604800
@      IN      SOA    ns.kkarma.ee. root.too.ee. (
                              3        ; Serial
                        604800        ; Refresh
                          86400        ; Retry
                        2419200        ; Expire
                        604800 )       ; Negative Cache TTL
;
kkarma.ee. IN      NS      ns.kkarma.ee.
kkarma.ee. IN      MX      10 mail.kkarma.ee.
ns.kkarma.ee.      IN      A      192.168.6.87
mail.kkarma.ee.    IN      A      192.168.6.87
www.kkarma.ee.    IN      CNAME      kkarma.ee.
kkarma.ee. IN      A  192.168.6.87
</pre>


sendmail või postfix
;
; BIND data file for local loopback interface
;
$TTL    604800
@      IN      SOA    localhost. root.localhost. (
                              3        ; Serial
                          604800        ; Refresh
                          86400        ; Retry
                        2419200        ; Expire
                          604800 )      ; Negative Cache TTL
;
6.168.192.in-addr.arpa.      IN    NS    ns.ssurva.ee.
88.6.168.192.in-addr.arpa.    IN    PTR    ns.ssurva.ee.
88.6.168.192.in-addr.arpa.    IN    PTR    mail.ssurva.ee.
87.6.168.192.in-addr.arpa.    IN    PTR    mail.kkarma.ee.


clamAV (?)
=E-posti tarkvara paigaldus=


Kõik installeerimised on tehtud root kasutaja alt, kui toiminguid tehakse root õigst omava kasutaja alt '''siis tuleb iga käsu ette lisada sudo''' !  
Kõik installeerimised on tehtud root kasutaja alt, kui toiminguid tehakse mõne muu kasutaja alt '''siis tuleb iga käsu ette lisada sudo''' !  


E-postiserveriks valitud "Postfix'i" installeerimine:
MTA ehk Mail Transfer Agent on Postfix:
   apt-get install postfix
   apt-get install postfix
Spammiga hakkab võitlema "Spamassassin", installeerime:
Rämpspostifilter SpamAssassin:
   apt-get install spamassassin
   apt-get install spamassassin
Viiruste kontrolliga tegeleb ClamSMTP
Antiviirus ClamSMTP:
   apt-get install clamsmtp
   apt-get install clamsmtp
MDA ehk Mail Delivery Agent on Courier:
  apt-get install courier-imap
SASL autentimiseks:
  apt-get install libsasl2-2 sasl2-bin
=Kirjade vastuvõtmine=
Postfix kuulab pordil 25 ning saadab kirjad edasi 10030 pordile, kus ClamSMTP teeb viirusetõrjet. Peale seda ClamSMTP saadab need edasi 10025 pordile, kus Postfix nad uuesti vastu võtab ja teeb rämpsposti filtreerimist. Kirjad mis on läbinud sellise ahela paigutatakse ~/Maildir alla.


=Konfigureerimine=
==Postfix==
Postfix võtab vastu posti ka väljastpoolt ning salvestab vaikmisi /var/mail alla, selleks et kasutada uuemat Maildir formaati, mille korral paigutatakse kirjad ~/Maildir alla, ava '''/etc/postfix/main.cf''' ja lisa sinna:
home_mailbox = Maildir/
#Selleks, et võimaldada ITK tudengitele meile saata muuda relayhost selliseks- siis saad sisev6rgus olles sinna kirju saata:
relayhost = earl.itcollege.ee


Postfix võtab vastu posti ka väljastpoolt ning salvestab /var/mail alla.
Tee kindlaks et '''mydestination''' viitaks kohalikule masinale (et pingida saaks):
Käsurea rakendusega 'mail' saab seda sealt lugeda.<br>
mydestination = kkarma.ee,
Vaikimisi Postfixi seadistus EI luba open relay'd, selleks et Courer need e-kirjad kätte saaks, tuleb lisada '''/etc/postfix/main.cf''' faili rida:<br>
{{home_mailbox = Maildir/}} <br>
See tähendab, et e-kirjad salvestatakse ~/Maildir kataloogi mitte /var/mail alla nagu vanasti.<br><br>


'''Postfixi seadistusfail asub:'''
/etc/postfix/master.cf
Ava: /etc/postfix/master.cf ja tee kindlaks et seal on sellised read:<br>
'smtp      inet  n      -      -      -      -      smtpd # Kuula pordil 25
  -o content_filter=clamav:127.0.0.1:10030                    # Saada edasi kohaliku masia pordile 10030


10025    inet  n      -      -      -      -      smtpd # Kuula pordil 10025
Peale seda ava Postfixi peamine seadistusfail /etc/postfix/master.cf ja tee kindlaks et seal on sellised read:
  -o content_filter=spamassassin                              # Saada läbi SpamAssassini UNIX socketi (vt allpool)
<code lang="bash">
smtp      inet  n      -      -      -      -      smtpd
# Kuula pordil 25
  -o content_filter=clamav:127.0.0.1:10030                   
# Saada edasi kohaliku masia pordile 10030
10025    inet  n      -      -      -      -      smtpd  
# Kuula pordil 10025
  -o content_filter=spamassassin                               
# Saada läbi SpamAssassini UNIX socketi (vt allpool)
smtps    inet  n      -      -      -      -      smtpd
# Kuula TLS'iga krüpteeritud ühendusi pordil 465
  -o smtpd_sasl_auth_enable=yes                             
# Luba autentimine läbi SASL+PAM


smtps     inet  n      -      -      -      -      smtpd # Kuula TLS'iga krüpteeritud ühendusi pordil 465
Sama faili lõppu tuleks veel lisada filtri definitsioon:
  -o smtpd_sasl_auth_enable=yes                               # Luba autentimine läbi SASL+PAM'
spamassassin unix -     n      n      -      -      pipe
        user=nobody argv=/usr/bin/spamc -f -e
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}
clamav      unix  -      -      n       -      16      smtp
        -o smtp_send_xforward_command=yes


Sama faili lõppu tuleks veel lisada filtri definitsioon:<br>
Peale seadistuste muutmist tuleks Postfix'i deemon uuesti laadida:
spamassassin unix -    n      n      -      -      pipe
/etc/init.d/postfix reload
        user=nobody argv=/usr/bin/spamc -f -e
</code>
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}


clamav      unix -      -      n      -      16      smtp
==SASL seadistamine==
        -o smtp_send_xforward_command=yes
Tuleb lisada kasutaja '''postfix''' gruppi '''sasl''':
  sudo adduser postfix sasl


Ava /etc/postfix/sasl/smtpd.conf:
pwcheck_method: saslauthd
saslauthd_path: /etc/mux
mech_list: login plain


'''Spamassassin'i seadistusfail asub:'''<br>
Ava SASL seadistuste fail: /etc/default/saslauthd:
/etc/default/spamassassin
START=yes
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/etc"


Peale seda tuleks SASL teenus taaskäivitada:
sudo /etc/init.d/saslauthd restart


==ClamSMTP seadistamine==
Ava /etc/clamsmtpd.conf ja muuda selle sisu selliseks
# Port kuhu edasi suunata meilid
OutAddress: 10025
# Kuula SMTP ühendusi kohaliku masina pordil 10030
Listen: 127.0.0.1:10030
# ClamAV deemon laetakse üks kord mällu ning ta kuulab clamd.ctl UNIX socketil
# ClamSMTPD on lihtsalt üks ClamAV deemoni "klientidest" mis ühendub sinna socketisse
# Iga meili jaoks ClavAV andmebaasi laadimine oleks lihtsalt väga aeglane
ClamAddress: /var/run/clamav/clamd.ctl
# Kasutaja kellena ClamSMTPD jookseb
User: clamsmtp
TempDirectory: /var/spool/clamsmtp
PidFile: /var/run/clamsmtp/clamsmtpd.pid
#MaxConnections: 64
#TimeOut: 180
#Header: X-AV-Checked: ClamAV using ClamSMTP
#Bounce: off
#Quarantine: off
#TransparentProxy: off


'''ClamSMTP seadistusfail asub:'''<br>
Peale seadistuste muutmist tuleks ClamSMTP deemon uuesti laadida:
Seadista /etc/clamsmtpd.conf
/etc/init.d/clamsmtp reload


# Port kuhu edasi suunata meilid
==SpamAssassin==
OutAddress: 10025
Kõigepeal veendu, et /etc/default/spamassassin failis oleks, siis saab Postfix käivitada spamc rakenduse!
ENABLED=1


# Kuula SMTP ühendusi kohaliku masina pordil 10030
Tasub veel teada et pordil 783 kuulab SpamAssassin'i deemon, mille kaudu saab suvalist teksti filtreerida. Postfix kutsub välja käsurearakendust '''spamc''', mis ühendub nimetatud pordile ning filtreerib kirju. Deemoni kinnipanemiseks või käivitamiseks võib kasutada käsku:
Listen: 127.0.0.1:10030
/etc/init.d/spamassassin start|stop


# ClamAV deemon laetakse üks kord mällu ning ta kuulab clamd.ctl UNIX socketil
=Testimine=
# ClamSMTPD on lihtsalt üks ClamAV deemoni "klientidest" mis ühendub sinna socketisse
==Saatmine SMTP'ga==
# Iga meili jaoks ClavAV andmebaasi laadimine oleks lihtsalt väga aeglane
Selleks, et oleks lihtne testida teeme sellise faili, mille sisuks on:
ClamAddress: /var/run/clamav/clamd.ctl
import smtplib
fromaddr = "'''[saatja@aadress]'''"
toaddrs  = "'''[siht@aadress]'''"
msg = "'''[Sõnumisisu]'''?\n"
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()


# Kasutaja kellena ClamSMTPD jookseb
Seejärel käivitame selle Python rakenduse:
User: clamsmtp
python <eelpool loodud faili nimi>
==Lugemine IMAP'iga==
Järgnev Python programm püüab kohalikku masinasse sisse logida IMAP kaudu ning püüab tõmmata viimast e-kirja. Samas kontrollib, kas e-kirjale tehti viirusetõrjet ning rämpspostikontrolli:
# -*- coding: utf-8 -*-
import getpass, imaplib, sys
def main():
  M = imaplib.IMAP4("localhost", 143)
  print "Username: ",
  username = sys.stdin.readline().strip()
  password =  getpass.getpass()
  M.login(username, password)
  status, value = M.select()
  if status != "OK":
    print "Failed to log in"
    return
  mails = value[0]
  status, data = M.fetch( mails,'(RFC822)')
  if status != "OK":
    print "Failed to fetch mail!"
    return
  content = data[0][1]
  print content
  print "\nConclusion:"
  if "X-Virus-Scanned: ClamAV using ClamSMTP" in content:
    print "* Virus scan performed"
  else:
    print "* NO Virus scan performed!!!"
  if "X-Spam-Checker-Version: SpamAssassin" in content:
    print "* Spam check performed"
  else:
    print "* NO Spam check performed!!!"
  M.close()
  M.logout()
main()


TempDirectory: /var/spool/clamsmtp
Seejärel käivitame selle Python rakenduse:
PidFile: /var/run/clamsmtp/clamsmtpd.pid
python <eelpool loodud faili nimi>


#MaxConnections: 64
==Kontrolli kas kõik sõlmed läbitakse, seda saab kirja päisest-HEADERS'ist==
#TimeOut: 180
Näide:
#Header: X-AV-Checked: ClamAV using ClamSMTP
#Bounce: off
Return-Path: <testing@kkarma.localdomain>
#Quarantine: off
X-Original-To: root@localhost
#TransparentProxy: off
Delivered-To: root@localhost
Received: by kkarma.localdomain (Postfix, from userid 65534)
        id DD69C17E20; Thu, 17 Dec 2009 19:31:18 +0200 (EET)
'''X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on kkarma.ee'''
'''X-Spam-Level: **'''
'''X-Spam-Status: No, score=2.7 required=5.0 tests=ALL_TRUSTED,MISSING_SUBJECT,
        TVD_SPACE_RATIO autolearn=no version=3.2.5'''
Received: from kkarma.localdomain (localhost [127.0.0.1])
        by kkarma.localdomain (Postfix) with ESMTP id 0F5BC17E1B
        for <root@localhost>; Thu, 17 Dec 2009 19:31:18 +0200 (EET)
Received: from kkarma.ee (localhost [127.0.0.1])
        by kkarma.localdomain (Postfix) with ESMTP id CCCFC17DFD
        for <root@localhost>; Thu, 17 Dec 2009 19:31:17 +0200 (EET)
Message-Id: <20091217173117.CCCFC17DFD@kkarma.localdomain>
Date: Thu, 17 Dec 2009 19:31:17 +0200 (EET)
From: testing@kkarma.localdomain
To: undisclosed-recipients:;
'''X-Virus-Scanned: ClamAV using ClamSMTP'''


=Testimine=
Tumendatud trükis olev kiri käib Spammiroboti ja viirusetõrje töötamise kohta!
Selleks, et oleks lihtne testida teeme sellise faili, mille sisuks on:<br>
Pythoni rakendus e-posti saatmiseks:<br>
import smtplib<br>
fromaddr = "'''[saatja@aadress]'''"<br>
toaddrs  = "'''[siht@aadress]'''"<br>
msg = "'''[Sõnumisisu]'''?\n"<br>
server = smtplib.SMTP('localhost')<br>
server.sendmail(fromaddr, toaddrs, msg)<br>
server.quit()<br>
<br>


Seejärel k2ivitame selle meili saatmse:
=Varundamine=


python <eelpool loodud faili nimi>
Varundada tuleb kõik seadistusfailid, mida muudeti:


=Varundamine ja taastamine=
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/default/spamassassin
/etc/clamsmtpd.conf


Varundada tuleb kõik seadistusfailid, mida muudeti:<br>
Postfix, SpamAssassini ja ClamSMTP seadistuste varundamine, et oleks hea näha millal varundamine tehti lisame sellele varundamise kuupäeva, selline kuupäevaformaat(AastaKuuPäev)võimaldab kiirelt viimase faili leida:
tar cvf varundamine.`date '+%Y%m%d'`.tar /etc/postfix/* /etc/default/spamassassin /etc/clamsmtpd.conf


/etc/postfix/main.cf<br>
=Taastamine=
/etc/postfix/master.cf<br>
Järgneva käsuga saab kõik seaded taastada varemsalvestatud ''tarball''ist
/etc/default/spamassassin <br>
cd / && tar xvf varundamine.tar
/etc/clamsmtpd.conf


=Kasutatud kirjandus=
=Kasutatud kirjandus=

Latest revision as of 17:32, 13 March 2010

Legend

Ver. 0.00, 03.11.2009
Ver. 0.01, 14.12.2009
Ver. 0.02, 17.12.2009
Ver. 0.03, 18.12.2009

Tegijad

Sander Surva
Ken Karma
Lauri Võsandi

Sissejuhatus

Meil on kaks domeeni, kus on mailiserverid ja osapooled saavad omavahel e-posti teel suhelda. ssurva.ee ja kkarma.ee. kkarma.ee peale on seadistatud nii spämmifilter kui ja viirusetõrje sissetulevate mailide jaoks. Mõlemad domeenid samas logivad logiteateid eraldi faili.

Nõuded

  1. domeenid kkarma ja ssurva
  2. d1 viirusetõrjega
  3. d1 spammifilter
  4. logima syslog-i + eraldi faili


 +----+           +----+
 | D1 |   ------> | D2 |
 +----+           +----+

Eeldused

Operatsioonisüsteemiks peab olema Ubuntu Server, mis jookseb kernelil 2.6.28-11

Enne vaja seadistada DNS

kasutame BIND-i, põhjalikuma leheküle leiab: [1]

 apt-get install bind9

kohalikud domeenid kkarma ja ssurva paigutame faili /etc/bind/named.conf.local

zone "6.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/db.6.168.192.in-addr.arpa";
};
zone "ssurva.ee" IN {
        type master;
        file "/etc/bind/db.ssurva.ee";
};
zone "kkarma.ee" IN {
        type master;
        file "/etc/bind/db.kkarma.ee";
};

nano /etc/bind/db.ssurva.ee
nano /etc/bind/db.kkarma.ee
nano /etc/bind/db.6.168.192.in-addr.arpa

Nende failide sisu muuta järgmiselt

;
; BIND data file for ssurva.ee
;
$ORIGIN ssurva.ee.
$TTL    604800
@       IN      SOA     ns.ssurva.ee. root.ssurva.ee. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
ssurva.ee. IN      NS      ns.ssurva.ee.
ssurva.ee. IN      MX      10 mail.ssurva.ee.
ns.ssurva.ee.      IN      A       192.168.6.88
mail.ssurva.ee.    IN      A       192.168.6.88
www.ssurva.ee.     IN      CNAME       ssurva.ee.
ssurva.ee. IN      A   192.168.6.88

;
; BIND data file for kkarma.ee
;
$ORIGIN kkarma.ee.
$TTL    604800
@       IN      SOA     ns.kkarma.ee. root.too.ee. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
kkarma.ee. IN      NS      ns.kkarma.ee.
kkarma.ee. IN      MX      10 mail.kkarma.ee.
ns.kkarma.ee.      IN      A       192.168.6.87
mail.kkarma.ee.    IN      A       192.168.6.87
www.kkarma.ee.     IN      CNAME       kkarma.ee.
kkarma.ee. IN      A   192.168.6.87
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
6.168.192.in-addr.arpa.       IN     NS     ns.ssurva.ee.
88.6.168.192.in-addr.arpa.    IN     PTR    ns.ssurva.ee.
88.6.168.192.in-addr.arpa.    IN     PTR    mail.ssurva.ee.
87.6.168.192.in-addr.arpa.    IN     PTR    mail.kkarma.ee.

E-posti tarkvara paigaldus

Kõik installeerimised on tehtud root kasutaja alt, kui toiminguid tehakse mõne muu kasutaja alt siis tuleb iga käsu ette lisada sudo !

MTA ehk Mail Transfer Agent on Postfix:

 apt-get install postfix

Rämpspostifilter SpamAssassin:

 apt-get install spamassassin

Antiviirus ClamSMTP:

 apt-get install clamsmtp

MDA ehk Mail Delivery Agent on Courier:

 apt-get install courier-imap

SASL autentimiseks:

 apt-get install libsasl2-2 sasl2-bin

Kirjade vastuvõtmine

Postfix kuulab pordil 25 ning saadab kirjad edasi 10030 pordile, kus ClamSMTP teeb viirusetõrjet. Peale seda ClamSMTP saadab need edasi 10025 pordile, kus Postfix nad uuesti vastu võtab ja teeb rämpsposti filtreerimist. Kirjad mis on läbinud sellise ahela paigutatakse ~/Maildir alla.

Postfix

Postfix võtab vastu posti ka väljastpoolt ning salvestab vaikmisi /var/mail alla, selleks et kasutada uuemat Maildir formaati, mille korral paigutatakse kirjad ~/Maildir alla, ava /etc/postfix/main.cf ja lisa sinna:

home_mailbox = Maildir/
#Selleks, et võimaldada ITK tudengitele meile saata muuda relayhost selliseks- siis saad sisev6rgus olles sinna kirju saata: 
relayhost = earl.itcollege.ee

Tee kindlaks et mydestination viitaks kohalikule masinale (et pingida saaks):

mydestination = kkarma.ee,


Peale seda ava Postfixi peamine seadistusfail /etc/postfix/master.cf ja tee kindlaks et seal on sellised read:

smtp      inet  n       -       -       -       -       smtpd 
  1. Kuula pordil 25
  -o content_filter=clamav:127.0.0.1:10030                    
  1. Saada edasi kohaliku masia pordile 10030
10025     inet  n       -       -       -       -       smtpd 
  1. Kuula pordil 10025
  -o content_filter=spamassassin                              
  1. Saada läbi SpamAssassini UNIX socketi (vt allpool)
smtps     inet  n       -       -       -       -       smtpd 
  1. Kuula TLS'iga krüpteeritud ühendusi pordil 465
  -o smtpd_sasl_auth_enable=yes                              
# Luba autentimine läbi SASL+PAM

Sama faili lõppu tuleks veel lisada filtri definitsioon:

spamassassin unix -     n       n       -       -       pipe
        user=nobody argv=/usr/bin/spamc -f -e
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

clamav      unix  -       -       n       -       16      smtp
        -o smtp_send_xforward_command=yes

Peale seadistuste muutmist tuleks Postfix'i deemon uuesti laadida:

/etc/init.d/postfix reload

SASL seadistamine

Tuleb lisada kasutaja postfix gruppi sasl:

sudo adduser postfix sasl

Ava /etc/postfix/sasl/smtpd.conf:

pwcheck_method: saslauthd
saslauthd_path: /etc/mux
mech_list: login plain

Ava SASL seadistuste fail: /etc/default/saslauthd:

START=yes
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/etc"

Peale seda tuleks SASL teenus taaskäivitada:

sudo /etc/init.d/saslauthd restart

ClamSMTP seadistamine

Ava /etc/clamsmtpd.conf ja muuda selle sisu selliseks

# Port kuhu edasi suunata meilid
OutAddress: 10025

# Kuula SMTP ühendusi kohaliku masina pordil 10030
Listen: 127.0.0.1:10030

# ClamAV deemon laetakse üks kord mällu ning ta kuulab clamd.ctl UNIX socketil
# ClamSMTPD on lihtsalt üks ClamAV deemoni "klientidest" mis ühendub sinna socketisse
# Iga meili jaoks ClavAV andmebaasi laadimine oleks lihtsalt väga aeglane
ClamAddress: /var/run/clamav/clamd.ctl

# Kasutaja kellena ClamSMTPD jookseb
User: clamsmtp

TempDirectory: /var/spool/clamsmtp
PidFile: /var/run/clamsmtp/clamsmtpd.pid

#MaxConnections: 64
#TimeOut: 180
#Header: X-AV-Checked: ClamAV using ClamSMTP
#Bounce: off
#Quarantine: off
#TransparentProxy: off

Peale seadistuste muutmist tuleks ClamSMTP deemon uuesti laadida:

/etc/init.d/clamsmtp reload

SpamAssassin

Kõigepeal veendu, et /etc/default/spamassassin failis oleks, siis saab Postfix käivitada spamc rakenduse!

ENABLED=1

Tasub veel teada et pordil 783 kuulab SpamAssassin'i deemon, mille kaudu saab suvalist teksti filtreerida. Postfix kutsub välja käsurearakendust spamc, mis ühendub nimetatud pordile ning filtreerib kirju. Deemoni kinnipanemiseks või käivitamiseks võib kasutada käsku:

/etc/init.d/spamassassin start|stop

Testimine

Saatmine SMTP'ga

Selleks, et oleks lihtne testida teeme sellise faili, mille sisuks on:

import smtplib
fromaddr = "[saatja@aadress]"
toaddrs  = "[siht@aadress]"
msg = "[Sõnumisisu]?\n"
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

Seejärel käivitame selle Python rakenduse:

python <eelpool loodud faili nimi>

Lugemine IMAP'iga

Järgnev Python programm püüab kohalikku masinasse sisse logida IMAP kaudu ning püüab tõmmata viimast e-kirja. Samas kontrollib, kas e-kirjale tehti viirusetõrjet ning rämpspostikontrolli:

# -*- coding: utf-8 -*-
import getpass, imaplib, sys
def main():
  M = imaplib.IMAP4("localhost", 143)
  print "Username: ",
  username = sys.stdin.readline().strip()
  password =  getpass.getpass()
  M.login(username, password)
  status, value = M.select()
  if status != "OK":
    print "Failed to log in"
    return
  mails = value[0]
  status, data = M.fetch( mails,'(RFC822)')
  if status != "OK":
    print "Failed to fetch mail!"
    return
  content = data[0][1]
  print content
  print "\nConclusion:"
  if "X-Virus-Scanned: ClamAV using ClamSMTP" in content:
    print "* Virus scan performed"
  else:
    print "* NO Virus scan performed!!!"
  if "X-Spam-Checker-Version: SpamAssassin" in content:
    print "* Spam check performed"
  else:
    print "* NO Spam check performed!!!"
  M.close()
  M.logout()
main()

Seejärel käivitame selle Python rakenduse:

python <eelpool loodud faili nimi>

Kontrolli kas kõik sõlmed läbitakse, seda saab kirja päisest-HEADERS'ist

Näide:

Return-Path: <testing@kkarma.localdomain>
X-Original-To: root@localhost
Delivered-To: root@localhost
Received: by kkarma.localdomain (Postfix, from userid 65534)
       id DD69C17E20; Thu, 17 Dec 2009 19:31:18 +0200 (EET)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on kkarma.ee
X-Spam-Level: **
X-Spam-Status: No, score=2.7 required=5.0 tests=ALL_TRUSTED,MISSING_SUBJECT,
       TVD_SPACE_RATIO autolearn=no version=3.2.5
Received: from kkarma.localdomain (localhost [127.0.0.1])
       by kkarma.localdomain (Postfix) with ESMTP id 0F5BC17E1B
       for <root@localhost>; Thu, 17 Dec 2009 19:31:18 +0200 (EET)
Received: from kkarma.ee (localhost [127.0.0.1])
       by kkarma.localdomain (Postfix) with ESMTP id CCCFC17DFD
       for <root@localhost>; Thu, 17 Dec 2009 19:31:17 +0200 (EET)
Message-Id: <20091217173117.CCCFC17DFD@kkarma.localdomain>
Date: Thu, 17 Dec 2009 19:31:17 +0200 (EET)
From: testing@kkarma.localdomain
To: undisclosed-recipients:;
X-Virus-Scanned: ClamAV using ClamSMTP

Tumendatud trükis olev kiri käib Spammiroboti ja viirusetõrje töötamise kohta!

Varundamine

Varundada tuleb kõik seadistusfailid, mida muudeti:

/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/default/spamassassin 
/etc/clamsmtpd.conf

Postfix, SpamAssassini ja ClamSMTP seadistuste varundamine, et oleks hea näha millal varundamine tehti lisame sellele varundamise kuupäeva, selline kuupäevaformaat(AastaKuuPäev)võimaldab kiirelt viimase faili leida:

tar cvf varundamine.`date '+%Y%m%d'`.tar /etc/postfix/* /etc/default/spamassassin /etc/clamsmtpd.conf

Taastamine

Järgneva käsuga saab kõik seaded taastada varemsalvestatud tarballist

cd / && tar xvf varundamine.tar

Kasutatud kirjandus

http://v6sa.itcollege.ee/wiki/?page=email