Labor2 E-post: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 45: Line 45:
MDA ehk Mail Delivery Agent on Courier:
MDA ehk Mail Delivery Agent on Courier:
   apt-get install courier-imap
   apt-get install courier-imap
SASL autentimiseks:
  apt-get install libsasl2-2 sasl2-bin
  adduser postfix sasl


=Kirjade vastuvõtmine=
=Kirjade vastuvõtmine=

Revision as of 15:46, 14 December 2009

Legend

Ver. 0.00, 03.11.2009
Ver. 0.01, 14.12.2009

Tegijad

Sander Surva
Ken Karma
Lauri Võsandi

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

Installeerimine

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
 adduser postfix sasl

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/


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

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'

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

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

SpamAssassin'it eraldi seadistada ei ole vaja. Tasub vaid 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:
Pythoni rakendus e-posti saatmiseks:

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 meili saatmse:

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()

Varundamine ja taastamine

Varundada tuleb kõik seadistusfailid, mida muudeti:

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

Kasutatud kirjandus

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