Postfix'i kasutamine Debianiga

Allikas: Kuutõrvaja
Redaktsioon seisuga 8. juuli 2009, kell 16:45 kasutajalt Imre (arutelu | kaastöö) (Cyrus)

Sissejuhatus

Postfix on postiedastusagent (ingl. k. mail transport agent, MTA). Postiedastusagendi ülesanne on võtta epost võrgust või lokaalselt vastu ja anda edasi

  • postijaotusagendile (ingl. k. mail delivery agent, MDA) kirjade kasutajate postkastidesse jaotamiseks
  • järgmisele postiedastusagendile
  • viiruste analüüsi süsteemile
  • spami analüüsi süsteemile

Postiedastusagent on epostisüsteemi keskne komponent, mis ühendab kokku kõik eposti liikumisega toimuvad tegevused

                   internet (teised MTA'd)
 
                            | ^
                            v |
                           _____
 spämmi analüüs   <---->  |     | <---- lokaalne meilisaatja (nn /usr/sbin/sendmail STDIO)
 viiruste analüüs <---->  | MTA | <---- MTA klient, nt Icedove või Thunderbird
                          |_____| ----> postijaotusagent nt Cyrus või lihtsamal juhul kopeeritakse kiri faili /var/mail/kasutajanimilinefail

Eesmärk

Eesmärgiks on seadistada käima selliste omadustega postiedastusagent

  • võtab vastu domeenide loomaaed.tartu.ee ja www.loomaaed.tartu.ee posti
  • saadab mart@loomaaed.tartu.ee aadressile saadetud kirja edasi aadressile
  • salvestab priit@loomaaed.tartu.ee aadressile saadetud kirja faili /var/mail/mart
  • võimaldab saata välja alamvõrkudest 192.168.0.0/24 ja 172.16.0.0/24 posti

Postimasina ettevalmistamine

Vaada üle vastavalt vajadustele

  • ntp
  • lokaat

Tarkvara paigaldamine

Postfix tarkvara saab paigaldada Debiani paketihaldusest öeldes

 bash# apt-get install postfix postfix-doc

Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', valime 'Internet Site'

Postfix-1.gif

Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal

 loomaaed.tartu.ee

Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.

 Setting up postfix (2.3.8-2) ...
 Adding group `postfix' (GID 105) ...
 Done.
 Adding system user `postfix' (UID 104) ...
 Adding new user `postfix' (UID 104) with group `postfix' ...
 Not creating home directory `/var/spool/postfix'.
 Creating /etc/postfix/dynamicmaps.cf
 Adding tcp map entry to /etc/postfix/dynamicmaps.cf
 Adding group `postdrop' (GID 106) ...
 Done.
 setting myhostname: ria-pg1a.test.kit
 setting alias maps
 setting alias database
 changing /etc/mailname
 setting myorigin
 setting destinations: loomaaed.tartu.ee, ria-pg1a.test.kit, localhost.test.kit, localhost
 setting relayhost: 
 setting mynetworks: 127.0.0.0/8
 setting mailbox_command
 setting mailbox_size_limit: 0
 setting recipient_delimiter: +
 setting inet_interfaces: all
  
 Postfix is now set up with a default configuration.  If you need to make 
 changes, edit
 /etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
 values, see postconf(1).
 
 After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
 
 Running newaliases
 Stopping Postfix Mail Transport Agent: postfix.
 Starting Postfix Mail Transport Agent: postfix.

Postfixiga on seotud failisüsteemis sellised kataloogid ning failid

  • /etc/postfix - Postfixi seadistusfailid
  • /etc/mailname
  • /var/spool/postfix - saba (ingl. k. queue)
  • /var/log/mail.log - logi
  • /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb

Seadistamine

Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida

 smtp_generic_maps = hash:/etc/postfix/generic

ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu

 www-data@arvuti.sisedomeen   www-bounce@valisdomeen.ee
 root@arvuti.sisedomee       www-bounce@valisdomeen.ee

Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga

 # postmap /etc/postfix/generic

ning laadida reload'iga Postfix.

Käskuga postconf estitatakse parasjagu kehtetatud Posfixi seadistused

 # postconf

ning lisades võtme -n esitatakse main.cf failis ilmutatult kasutatud parameetrite väärtused

 # postconf -n

Konkreetse parameetri väärtust saab küsida nii, nt

 # postconf mail_version
 mail_version = 2.5.5

Kasutamine

Aliase olemasolu kontrollimiseks sobib öelda

 # postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf

Kirjade sabast ära saatmiseks

 # postqueue -f

Kirjade töötlemine välise programmiga

Ühel või teisel põhjusel võib olla vaja sellist asjakorraldus, et kas postisüsteemi kõiki või vaid teatud tunnustele vastavaid kirju saaks töödelda välise programmiga. Ja selliselt, et väline programm saab andmeid oma stdio'sse ning järele mõned argumendid. Üheks võimaluseks seda korraldada on kostümiseeritud transporti kirjeldamise abil.

  • /etc/postfix/main.cf faili tuleb lisada rida
 transport_maps = hash:/etc/postfix/transport
  • /etc/postfix/transport failis peab sisalduma nt rida
 loomaaed.tartu.ee pf

ning tuleb öelda

 # postmap /etc/postfix/transport
  • /etc/postfix/master.cf failis peab sisaldub sektsioon
 pf    unix  -       n       n       -       -       pipe   
 flags=RDX user=programmikasutaja argv=/bin/pf.pl ${user} ${domain}

ning kui /bin/pf.pl sisaldab nt

 #!/usr/bin/perl
 open (fh, ">>/tmp/pf.log");
 
 print fh "$ARGV[0]\n";
 print fh "$ARGV[1]\n\n\n";
 
 @read=<STDIN>;
 
 foreach $rida (@read) {
   print fh $rida;
 }

Siis selle faili algusse kirjutatakse epostiaadressi @ märgist vasemale ja paremale jääv osa erinevatele ridadele ning kirja sisu kusjuures lisatakse päisele mõned read vastavalt sellele, mida lipud flags järel ütlevad.

Logi ja debugimine

Kui mingil põhjusel on tarvis uurida mõnda parasjagu sabas olevat kirja, siis sobib selleks programm postcat. Tavaliselt saab logist või mailq programmi väljundist teada kirja identifikaatori ning selle abil õnnesub sabast kirjale vastav fail üles leida.

 # mailq
 ....
 C558C4DC80      794 Sat Dec 20 10:18:55  bounce@loomaaed.tartu.ee
           (connect to smtp-gw.loomaaed.tartu.ee[10.0.2.5]: Connection refused)
                                        mart@loomaaed.tartu.ee
 ..
 # find /var/spool/postfix -name C558C4DC80 -ls
 313873    4 -rw-------   1 postfix  postfix       257 Dec 21 23:14 /var/spool/postfix/defer/C/C558C4DC80
 318592    4 -rwx------   1 postfix  postfix      1001 Dec 22 00:20 /var/spool/postfix/deferred/C/C558C4DC80
 
 # postcat /var/spool/postfix/deferred/C/C558C4DC80
 ... 
 nö inimloetaval kujul formateeritud väljund

Kui on vajadus sabas olev kiri kustutada, siis ei tohiks seda teha niisama failisüsteemist vastavate failide kustutamise teel vaid tuleb kasutada nt programmi postsuper, öeldes

 # postsuper -d C558C4DC80

Spämmi tõrjumine Postfixi sisemiste vahenditega

Näiteks sobib kasutada sellist parameetrit selliste väärtustega

 smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access,
  reject_unknown_sender_domain, permit_mynetworks, reject_unauth_destination,
  reject_rbl_client bl.spamcop.net,
  reject_rbl_client cn-kr.blackholes.us,
  reject_rbl_client nigeria.blackholes.us,
  reject_rbl_client argentina.blackholes.us,
  reject_rbl_client proxies.blackholes.easynet.nl 

Andmevahetuse krüptimine

Selleks, et server võimaldaks krüptida smtp klientide sissetulevaid ühendusi peavad olema seadistusfailis main.cf read

 smtpd_tls_key_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.pem
 smtpd_tls_cert_file = /etc/postfix/serdid/smtp.loomaaed.tartu.ee.crt
 smtpd_tls_CAfile = /etc/postfix/serdid/loomaaed-ca.crt
 smtpd_use_tls=yes
 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

kus

  • smtpd_tls_key_file näitab, millises failis asub sertifikaadile vastav salajane võti
  • smtpd_tls_cert_file näitab, millises failis asub sertifikaat
  • smtpd_tls_CAfile näitab, millises failis asuvad sertifikaadi allkirjastanud ahela ülemised sertifikaadid

Selleks, et teha kindlaks, kas postiserver toetab SMTP STARTSSL laiendust sobib öelda

 $ openssl s_client -starttls smtp -showcerts -connect 192.168.1.251:25

Postisüsteemi testimine

TODO

Jõudlus

TODO

Spam

Aadressil http://spamassassin.apache.org/gtube/ on nö standard spammi, mille nt Spamassassin peaks avastama

 XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Katsetamiseks tuleks see järgnevus sisestada kirja eraldi reane reavahetusega lõpus.

Viirus

Aadressil http://www.eicar.org/anti_virus_test_file.htm on nö standardne viirus, mille nt ClamAV peaks avastama

 X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Katsetamiseks tuleks see salvestada tekstifaili reavahetusega lõpus ning lisada kirjale.

Amavis

Amavis http://www.ijs.si/software/amavisd/ tarkvara võimaldab postisüsteemi, nt Postfix, ühendada väliste teenustega ja nende väliste teenuste kasutamist juhtida. Hästi levinud on kasutada Amavisi juhtimisel sellist analüüsi teostavat tarkvara

  • ClamAV - viiruste analüüsi tarkvara
  • Spamassassin - spami analüüsi tarkvara

Amavis tarkvara kasutamist kirjeldab aadressil http://kuutorvaja.eenet.ee/wiki/Amavis_kasutamine_Debian_Lenniga asuv tekst.


IMAP kliendid

IMAP klientprogrammid on tavaliselt need programmid mida postisüsteemi kasutaja kasutab saabunud kirjadede lugemiseks. Reeglina kasutaja kasutab neid ka kirjade saatmiseks kuigi kirja saatmine ja lugemine on kaks suhteliselt sõltumatut tegevust tehnilises mõttes.

Icedove

Üsna levinud graafilise kasutajaliidesega postivahetusprogramm, oskab olla muu hulgas IMAPi klient.

Lisaks on võimalik paigaldada OpenPG kasutamiseks Enigmail laiendus öeldes

 # apt-get install enigmail

Pine

Üsna levinud nn pseudograafiline postivahetusprogramm, oskab olla muu hulgas IMAPi klient.

Sympa

Tundub, et Debian Lenny paketihaldusega Sympa kasutamine ei ole võimalik. Sympa paigaldamine lähtetekstidest võiks toimuda selliselt.

Paigaldamine

 * Seadistada süsteemi sobiv lokaadi tugi, nt et_EE ja en_US, dpkg-reconfugure locales abil.
 * Sympa saadab nö esimese administraator parooli eposti teavitusena, seega on oluline, et süsteem saaks eposti välja saata, st tuleb seadistada töötav smtp osa.

Lihtsam on, kui enne Sympa lähtetekstis paigaldamist on paigaldatud sellised paketid (vt apt-cache show sympa -> Depends)

 # apt-get build-dep sympa
 # apt-get install sympa (mitte paigaldaa, aga vaadata vajalikud sõltuvused)
 # apt-get install ftp wget ncftp unzip libconfig-yaml-perl libsoap-lite-perl \
 libcgi-pm-perl libcgi-simple-perl libwww-perl postfix \
 perl-suid libdbi-perl libdbd-pg-perl libarchive-zip-perl libmailtools-perl libmd5-perl libmsgcat-perl \
 libmime-perl libmime-base64-perl libio-stringy-perl libnet-ldap-perl libcgi-fast-perl libcrypt-ciphersaber-perl \
 libintl-perl libmime-charset-perl libmime-encwords-perl libtemplate-perl libxml-libxml-perl mhonarc sysklogd \
 system-log-daemon lsb-base adduser debconf

Lähtetekstis tuleb paigaldada

HTML::StripScripts HTML::StripScripts::Parser

Seejärel öelda

 # ./configure 
 # make
 # make instakll

Seadistamine

Sympa hoiab oma andmeid andmebaasis, nt sobib kasutada PostgreSQL, baasi ettevalmistamine toimub öeldes

 $ psql -U postgres -h hostname baasinimi < /usr/src/sympa-5.4.3/src/etc/script/create_db.Pg

Sympa tööd saab juhtida veebipõhise haldusliidese abil. Nt sobib selline Apache virtualhost

 <VirtualHost 10.0.6.222:80>
 ServerAdmin mart@loomaaed.tartu.ee
 ServerName sympa.loomaaed.tartu.ee
 DocumentRoot "/home/sympa/www"
 
 ErrorLog "/var/log/apache2/sympa.avalik.kit-error.log"
 TransferLog "/var/log/apache2/sympa.avalik.kit-access.log"
 
 <Directory "/home/sympa/www">
    Options None
    AllowOverride All
    Order Deny,Allow
    Allow from All
 </Directory>
 
 Alias /static-sympa /usr/local/sympa/static_content
 ScriptAlias /sympa /usr/local/sympa/bin/wwsympa.fcgi
 
 </VirtualHost>

Sympa seadistamine toimub peamiselt faili /etc/sympa.conf abil, olulised on järgmised määrangud

 domain  loomaaed.tartu.ee
 listmaster      mart@loomaaed.tartu.ee
 lang    en_US
 supported_lang  en_US,et_EE
 db_type Pg
 db_name sympa
 db_host 10.0.6.221
 db_port 5432
 db_user postgres
 db_passwd sympa

Sympa käivitamine

Sympa käivitamine toimub paigaldamise käigus paigaldatud käivitusskriptiga /etc/rc.d/init.d/sympa (mis ehk ilus kopeerida /etc/init.d/sympa'ks). Lisaks peab töötama Apache veebiserver.

Abiks on jälgida Sympa logi, vaikimini /var/log/syslog. Nt Sympa logib läbi veebiliidese antud korraldusi

 Dec 21 13:38:58 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] 
 Dec 21 13:39:12 sympa wwsympa[25679]: [robot loomaaed.tartu.ee] [client 192.168.2.38] [user mart@loomaaed.tartu.ee] [list test] main::do_admin() do_admin

Mõne seadistusparameetri kehtestumiseks tuleb Sympale ja Apache'le stop ja start öelda.

Mailman

Mailman (ingl. k. postiljon) http://www.list.org/ on postiloendite (ingl. k. list) pidamise tarkvara.

Järgnevas kirjaldame kuidas saavutada sellist eesmärki

  • ühe Mailman eksempari abil peetakse kolme domeeniga seotud postiloendeid, @lists.loomaaed.tartu.ee, @lists.vagunitehas.tartu.ee, @lists.raudteejaam.tartu.ee
  • MTA'na kasutatakse Postfixi kusjuures mainitud domeene kasutatakse ainult eposti jaoks
  • postiloendite haldusliidesed sh arhiivid on ligipääsetavad aadressidelt https://lists.loomaaed.tartu.ee/listinfo, /admin jn

Mailman tarkvara paigaldamine

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install mailman

Seejärel küsitakse, millistes keeltes soovitakse, et Mailman oleks võimeline kasutajaga suhtlema, eriti puudutab see valik, millistes keeltes saab saata kasutajatele automaatselt genereeritud kirju (nt teated listiga liitumise kohta)

 For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving
 them conffile like treatment with the help of ucf.  This means approximately 150kB for each supported
 language on the root file system.
 
 If you need a different set of languages at a later time, just run dpkg-reconfigure mailman.
 
 NOTE: Languages enabled on existing mailing lists are forcibly re-enabled when deselected and mailman
 needs at least one language for displaying its messages.

Lisaks mailman paketile paigaldatakse automaatlselt ka Apache veebiserver, kuna tavaliselt toimub Mailmani haldamine üle veebiliidese. Paigaldamise käigus tuleb valida kasutatavad lokaadid, mis tähendab seda, millistes keeltes on võimalik mailmani kasutajaliidest tööle lülitada.

Seejärel teatab installer, et

 Missing site list

 Mailman needs a so-called "site list", which is the list from which password reminders and such 
 are sent out from.  This list needs to be created before mailman will start. To create the list, run
 "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after
 that, using /etc/init.d/mailman start.

Mailmani seadistamine

Mailmani listihalduse tarkvara esineb arvutis töötava deemoni kujul ning oluliseks seadistusfailiks on /etc/mailman/mm_cfg.py. Selles tuleks teha sellised muudatused

 MAILMAN_SITE_LIST = 'mailman'
 DEFAULT_URL_PATTERN = 'https://%s/'
 PRIVATE_ARCHIVE_URL = '/private'
 IMAGE_LOGOS         = '/images/mailman/'
 DEFAULT_EMAIL_HOST = 'lists.loomaaed.tartu.ee'
 DEFAULT_URL_HOST   = 'lists.loomaaed.tartu.ee'
 add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
 DEFAULT_SERVER_LANGUAGE = 'en'
 USE_ENVELOPE_SENDER    = 0              # Still used?
 DEFAULT_SEND_REMINDERS = 0
 MTA=None
 DEB_LISTMASTER = 'listmaster@lists.loomaaed.tartu.ee'

Kui Mailman on seadistatud, siis tuleb tekitada esimene list

 # newlist mailman mart@loomaaed.tartu.ee parool

Seejärel saab listserveri deemoni käivitada

 # /etc/init.d/mailman start

Apache veebiserveri seadistamine

Ülidselt tuleb veebiserver seadistada käima aadressidel

tavalisel moel. Mailmanile spetsiifilise osa kohta on toodud näide failis

 /etc/mailman/apache.conf

Kokkuvõttes võiks olla lists.loomaaed.tartu.ee virtuaalhosti seadistusfail nt sellise sisuga

 <VirtualHost 10.0.6.221:443>
   ServerName  lists.loomaaed.tartu.ee
   ServerAdmin mart@loomaaed.tartu.ee
   DocumentRoot /srv/www
   ErrorLog     /var/log/apache2/lists.loomaaed.tartu.ee-ssl-error.log
   TransferLog  /var/log/apache2/lists.loomaaed.tartu.ee-ssl-access.log
 
   SSLEngine on
   SSLCertificateFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.crt
   SSLCertificateKeyFile /etc/apache2/serdid/lists.loomaaed.tartu.ee-200706-200906.key
   SSLCACertificateFile /etc/apache2/serdid/ca-sk.crt
   
   <Directory /srv/www>
     Options All
     AllowOverRide None
     Order Allow,Deny
     Allow from All
   </Directory>
   
   RewriteEngine On
   RewriteRule ^/$ https://lists.loomaaed.tartu.ee/listinfo [R]
 
   Alias /pipermail/ /var/lib/mailman/archives/public/
   Alias /images/mailman/ /usr/share/images/mailman/
   ScriptAlias / /usr/lib/cgi-bin/mailman/
  
   <Directory /usr/lib/cgi-bin/mailman/>
     AllowOverride None
     Options ExecCGI
     AddHandler cgi-script .cgi
     Order allow,deny
     Allow from all
   </Directory>
 
   <Directory /var/lib/mailman/archives/public/>
     Options Indexes FollowSymlinks
     AllowOverride None
     Order allow,deny
     Allow from all
   </Directory>
  
   <Directory /usr/share/images/mailman/>
     AllowOverride None
     Order allow,deny
     Allow from all
   </Directory>
 
 </VirtualHost>

Kontrolliks sobib proovida logida sisse veebipõhisesse haldusliidesesse kasutades mailman listi parooli, kasutajanime ei pea sisestama.

Mailman-1.gif

Postfixi seadistamine

Kui kogu domeeni eposti kasutus on seotud postiloendiga ja ainult postiloendiga, siis saab seadistada Postfixi käima lihtsustatud kujul ja otsekohesemalt. Muu hulgas tähendab see seda, et ei pea kasutama aliases'eid.

Sellisel juhul tuleb

  • kasutada /etc/postfix/main.cf failis
 relay_domains = ... lists.loomaaed.tartu.ee, lists.vagunitehas.tartu.ee, lists.raudteejaam.tartu.ee
 transport_maps = hash:/etc/postfix/transport
 mailman_destination_recipient_limit = 1
  • kasutada /etc/postfix/master.cf failis
 mailman unix  -       n       n       -       -       pipe
 flags=FR user=list 
 argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${mailbox}
  • kasutada /etc/postfix/transport failis
 lists.loomaaed.tartu.ee     mailman:
 lists.vagunitehas.tartu.ee  mailman:
 lists.raudteejaam.tartu.ee  mailman:
  • kasutada /etc/mailman/mm_cfg.py failis
 MTA = None # No MTA alias processing required
 DEB_LISTMASTER = 'postmaster@loomaaed.tartu.ee'

ning lisaks olemasolevatele ridadele

 # Default domain for email addresses of newly created MLs
 DEFAULT_EMAIL_HOST = 'lists.loomaaed.tartu.ee'
 #-------------------------------------------------------------
 # Default host for web interface of newly created MLs
 DEFAULT_URL_HOST   = 'lists.loomaaed.tartu.ee'
 #-------------------------------------------------------------
 # Required when setting any of its arguments.
 add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

kaks rida

 add_virtualhost('lists.vagunitehas.tartu.ee','lists.vagunitehas.tartu.ee')
 add_virtualhost('lists.raudteejaam.tartu.ee','lists.raudteejaam.tartu.ee')

Mailmani haldamine

  • Listimootori adminstraatori parooli muutmiseks tuleb öelda
 # mmsitepass uusparool

Olulised failid asuvad kataloogis /var/lib/mailman

 lrwxrwxrwx  1 root root   24 Feb 10 09:53 Mailman -> /usr/lib/mailman/Mailman
 drwxrwsr-x  4 root list 4096 Feb 10 09:53 archives
 lrwxrwxrwx  1 root root   20 Feb 10 09:53 bin -> /usr/lib/mailman/bin
 lrwxrwxrwx  1 root root   24 Feb 10 09:53 cgi-bin -> /usr/lib/cgi-bin/mailman
 lrwxrwxrwx  1 root root   21 Feb 10 09:53 cron -> /usr/lib/mailman/cron
 drwxrwsr-x  2 root list 4096 Feb 10 22:58 data
 lrwxrwxrwx  1 root root   25 Feb 10 09:53 icons -> /usr/share/images/mailman
 drwxrwsr-x  5 root list 4096 Feb 11 01:04 lists
 lrwxrwxrwx  1 root root   17 Feb 10 09:53 locks -> /var/lock/mailman
 lrwxrwxrwx  1 root root   16 Feb 10 09:53 logs -> /var/log/mailman
 lrwxrwxrwx  1 root root   21 Feb 10 09:53 mail -> /usr/lib/mailman/mail
 drwxr-sr-x 37 root list 4096 Feb 10 09:53 messages
 lrwxrwxrwx  1 root root   26 Feb 10 09:53 pythonlib -> /usr/lib/mailman/pythonlib
 drwxrwsr-x 11 list list 4096 Feb 10 10:57 qfiles
 lrwxrwxrwx  1 root root   24 Feb 10 09:53 scripts -> /usr/lib/mailman/scripts
 drwxrwsr-x  2 root list 4096 Jan 26 21:52 spam
 lrwxrwxrwx  1 root root   12 Feb 10 09:53 templates -> /etc/mailman
 drwxrwsr-x  4 root list 4096 Feb 10 09:53 tests
  • /etc/mailman - muu hulgas paigaldatud keeled (milles saadetakse kasutajatele teavitusi jms)
  • lists/test/config.pck - listi test seadistusfail
  • data/adm.pw - listimootori superuseri parool
  • archives - listide arhiivid

Listi moodustamiseks tuleb öelda

 # newlist listinime@domeeninimi halduri@epostiaadress halduriparool

Listi seadistuse saab esitada tekstilisel kujul öeldes

 # config_list -o - listinimi

Uue listi juures võiks pöörata tähelepanu sellistele määratlustele

General Options

  • real_name - listi nimi, kasutatakse listi aadressis, vasakul @ märki ja reeglina näidatakse listi tekitamisel
  • owner - listi halduri aadress, sinna saadab listimootor erinevaid automaatselt genereeritud teateid
  • respond_to_post_request - kas listimootor saadab listi kirja saatnud kasutajale tagasi kirja teatega kui tema kirja modereeritakse, soovitav väärtus on No, et internetti mitte risustada
  • max_message_size - listimootori poolt töödeldava kirja maksimaalne suurus, ehk on tänapäeval 8M sobiv kui rahvas saadab ka kirja lisasid

Passwords

  • listi haldusi ja moderaatori paroolide määramine

Membership management

  • Listi liikmete lisamine, eemaldamine jm haldus

Privacy Options -> Subscription rules

  • advertised - määrab, kas listi nimi esineb listserveri listide nimekirjas aadressil https://lists.loomaaed.tartu.ee/admin/listinimi, võiks valida No, et mitte liigselt tähelepanu tõmmata
  • subscribe_policy - määrab, mis tingimustel saab tekkida listi uus kasutaja, soovitav on Confirm and approve, et vaikselt ei saaks huvilised ennast ise listi lisada

Archival options

  • archive - määrab, kas listi kirjad arhiveeritakse listserveris
  • archive_private - määrab, kas listi arhiiv on avalik või privaatne, kusjuures privaatne tähendab, et arhiivi saavad näha vaid listi kasutajad ja nad peavad enda veebiliideses autentima, soovitav valida private

Nö ühe domeeni listide nimekirja esitamiseks tuleb öelda

 # list_lists -V lists.raudteejaam.tartu.ee

Mailmani logi

Mailmani protsessid logivad oma tegevusi sellistesse failidesse

 /var/log/mailman# ls -l
 total 72
 -rw-rw-r-- 1 list     list    83 Feb 12 12:04 bounce
 -rw-rw-r-- 1 root     list 16860 Feb 12 17:35 error
 -rw-rw-r-- 1 list     list  1972 Feb 12 18:06 post
 -rw-rw-r-- 1 list     list   729 Feb 12 06:25 qrunner
 -rw-rw-r-- 1 list     list  2549 Feb 12 18:17 smtp
 -rw-rw-r-- 1 www-data list   753 Feb 12 01:43 subscribe
 -rw-rw-r-- 1 list     list  1140 Feb 12 18:17 vette

Listserveri MTA + listimootori läbimisel tekivad kirjast Postfixi logisse sellised sissekanded

 Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: connect from moraal.auul[192.168.2.38]
 Feb 10 23:05:58 smtp2a postfix/smtpd[28944]: E57443E4EC: client=moraal.auul[192.168.2.38]
 Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E57443E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul>
 Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: from=<mart@loomaaed.tartu.ee>, size=523, nrcpt=1 (queue active)
 Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from moraal.auul[192.168.2.38]
 Feb 10 23:05:59 smtp2a postfix/pipe[28998]: E57443E4EC: to=<test@lists.loomaaed.tartu.ee>, relay=mailman, delay=0.3, delays=0.1/0/0/0.2, \
   dsn=2.0.0, status=sent (delivered via mailman service)
 Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E57443E4EC: removed
 Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: connect from localhost.localdomain[127.0.0.1]
 Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: E2F1E3E4EC: client=localhost.localdomain[127.0.0.1]
 Feb 10 23:05:59 smtp2a postfix/cleanup[28947]: E2F1E3E4EC: message-id=<alpine.DEB.1.10.0902102305480.2613@moraal.auul>
 Feb 10 23:05:59 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: from=<test-bounces@lists.loomaaed.tartu.ee>, size=1445, nrcpt=1 (queue active)
 Feb 10 23:05:59 smtp2a postfix/smtpd[28944]: disconnect from localhost.localdomain[127.0.0.1]
 Feb 10 23:06:00 smtp2a postfix/smtp[28995]: E2F1E3E4EC: to=<priit@loomaaed.ee>, relay=mail.loomaaed.tartu.ee[192.168.96.138]:25, \
   delay=0.11, delays=0.01/0/0.04/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 906E42CB28)
 Feb 10 23:06:00 smtp2a postfix/qmgr[25982]: E2F1E3E4EC: removed

Logist on ilusti näha süsteemi modulaarsus

  • esmalt võetakse kiri vastu smtpd poolt
  • seejärel antakse kiri edasi pipe abil mailmanile
  • mailman pöördud smtpd poole ja kiri saadetakse süsteemist välja

Mailmanile peale paigaldamist uue keele toe lisamine

Kuigi veebipõhise kasutajaliidese abil on võimalik valida terve hulga keelte seast, millises keeles Mailman kasutajaga suhtleb, toimib ta täieliselt, st nii veebiliides kui automaatselt kasutajatele saadetavad kirjad ainult neis keeltes, mis asuvad /etc/mailman kataloogis. Nt eesti keele puhul peab seal olema kataloog

 /etc/mailman/et

Nende kataloogide tekitamiseks tuleb öelda soovitavalt töötava Mailmani tingimustes

 # dpkg-reconfigure mailman

Seejärel esitatakse kasutajale diagloog

 For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving
 them conffile like treatment with the help of ucf. This means approximately 150kB for each supported
 language on the root file system. If you need a different set of languages at a later time, just run
 dpkg-reconfigure mailman.                                        | 
  
 NOTE: Languages enabled on existing mailing lists are forcibly re-enabled when deselected and mailman needs
 at least one language for displaying its messages.
 
 Languages to support:
 ...

dpkg-reconfigure käivitab automaatselt Mailmani protsessid.

Mailmani uuendamine 2.1.5 -> 2.1.11

Kuigi antud juhul on tegu konkreetse versiooniuuenduse kirjeldusega võib saada siit ideid ka muudeks juhtumiteks. Abiks materjal konkreetseks juhtumiks on www.list.org pealt kopeeritud tar.gz arhiivis UPGRADE failis.

Sammud

  • Vana ja uus listimootor käivad erinevates arvutites ja mõlema töö lõpetada.
  • Kopeerida arhiivid kataloogist /var/lib/mailman/archives ümber uude kohta.
  • Kopeerida listide seadistused kataloogist /var/lib/mailman/lists/listinimi uude kohta.
  • Kopeerida ajutiselt peatatud failid /var/lib/mailman/data/heldmsg-* ümber uude kohta.
  • Käivitada uues kohas listimootor ja veenduda veebipõhises haldusliideses, et seadistused on tulnud ilusti üle, uurida logi.

SPF - Sender Policy Framework

SPF (Sender Policy Framework - ingl. k. epost saatja kontrollimise raamistik) http://www.openspf.org/Project_Overview võimaldab saavutada sellised eesmärke

  • kaitsta eposti vastuvõtjat ümbriku from aadressi võltsijate eest (eeldusel, et võltsitava domeeninime omanikud oma oma domeenidele kirjeldanud spf või sfp sisuga txt kirjed)
  • kaitsta domeeninime omanikku ümbriku from aadressi võltsijate tegevuse eest, tulemusena ei saa võltsijad saata kontrollimatult adressaatidele võltsitud eposti

SPF tööpõhimõtte kirjeldus

 # apt-get instal spfqtool

Eposti vastuvõtja ettevalmistamine

Postfix sisaldab 'Postfix SMTP access policy delegation' http://www.postfix.org/SMTPD_POLICY_README.html süsteemi, mille abil saab ühendada MTA välise lahendusega, antud juhul SPF'iga, selleks, et teostada täiendavat kontrolli, milliste omadustega kirju saab läbi kõnealuse postisüsteemi saata.

Üheks SPF kasutamise võimaluseks on sama MTA sees pidada Postfixi master deemoni poolt käivitatavat Perli skripti, mida jagatakse postfix-policyd-spf-perl paketina, paigaldamiseks tuleb öelda

 # apt-get install postfix-policyd-spf-perl

Nimesüsteemi ettevalmistamine

TODO

Kahetasemeliste Postfixi lahenduse kasutamine

Turvalisuse, jõudluse või lihtsalt süsteemi modulaarsuse asjaoludest lähtudes seadistakse vahel Postfix süsteemi käima mitmetasemeliselt, nö kahel perimeetril, kusuures kõige ees võib veel pidada greylistingut

  • relee - internetist smtp ühenduste vastuvõtmine, viirustõrje ning spämmianalüüs
  • delivery - kirjade postkastidesse jagamine ja aliaste alusel edasisaatmine, listimootorid
             internet
 
                 |
               __|__  
              |     |
              | TM  | spamd (greylisting)
              |_____|
                 |
                 |
             ----|--------|-----------------------------------|------
                          |                                   |
                        __|__                               __|__
                       |     |                             |     |
                       |_____|                             |_____|
 
                     RELEE-MTA1                          DELIVERY-MTA2
                       clamav                              listid
               kasperski antispam (või mingi vaba)        @loomaaed.tartu.ee postkastid
                 2nd mx, relee klientidele                relee kohalikele infosüsteemidele

Relee seadistamine

Relee arvuti võtab kirjad internetist vastu, aga ei teosta nendega local deliverit, vaid peale viiruse ja spämmi kontrolle saadab edasi delivery arvutile.

main.cf failis tuleb kasutada direktiive

 relay_domains = loomaaed.tartu.ee
 transport_maps = hash:/etc/postfix/transport

ja transport map failis rida

 loomaaed.tartu.ee :[localdelivery.loomaaed.tartu.ee]

map'i moodustamiseks öelda

 # postmap /etc/postfix/transport

tulemusena tekib faili

 # file /etc/postfix/transport.db
 /etc/postfix/transport.db: Berkeley DB (Hash, version 9, native byte-order)

Delivery seadistamine

Delivery arvuti võtab kirju vastu ainult relee arvutilt ning teostab local delivery või saadab kirjad edasi vastavalt aliaste lahendumisele.

main.cf failis sisaldub mydestination real domeeninimi

 mydestination = localhost, loomaaed.tartu.ee

Milter

TODO

Märkused

  • abiks pisike programm mail, paketist mailx (mis tegelikult paigaldab sõltuvusena paketi bsd-mailx)

Kasulikud lisamaterjalid