<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>https://kuutorvaja.eenet.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Toomas</id>
	<title>Kuutõrvaja - Kasutaja kaastöö [et]</title>
	<link rel="self" type="application/atom+xml" href="https://kuutorvaja.eenet.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Toomas"/>
	<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php/Eri:Kaast%C3%B6%C3%B6/Toomas"/>
	<updated>2026-06-04T12:26:10Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Mailiserver&amp;diff=6997</id>
		<title>Mailiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Mailiserver&amp;diff=6997"/>
		<updated>2008-03-29T17:27:32Z</updated>

		<summary type="html">&lt;p&gt;Toomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== Mailserver ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sissejuhatus =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vastukaaluks ühele naljakale artiklile äripäevas ( http://209.85.135.104/search?q=cache:HtdTW-LZ1_IJ:www.aripaev.ee/3693/rubr_artiklid_369301.html&amp;amp;hl=et&amp;amp;strip=1 ) kirjutaks Postfixist.&lt;br /&gt;
&lt;br /&gt;
Jupike tollest artiklist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;quot;Exchange 2000 on teatavasti mahupiirangutega. 16 gigabaiti kõikide kasutajate e-posti jaoks, arvestades büroo kasvu, on liiga vähe. Olen täheldanud ka seda, et kirjavahetuse maht kasvab pidevalt,&amp;quot; selgitas Linros peamist ülemineku põhjust.&lt;br /&gt;
&lt;br /&gt;
Töötajaid on firmas koos notaritega 50, kõik kasutavad Microsofti Exchange&#039;i ja selle klientprogrammi Outlook.&lt;br /&gt;
&lt;br /&gt;
Exchange 2007 mahupiirang on palju kordi suurem ja Linrosi arvates ei ole sellega mingit muret ette näha üsna pikaks ajaks.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Notaribüroo lahenduse teostamisel kasutati Delli server-riistvara, kogumaksumuseks kujunes 250 000 krooni.&lt;br /&gt;
DELL PowerEdge 2950 Serveri võimsuse näitajad &lt;br /&gt;
protsessor: Dual Core IntelV XeonV 5120, 4 MB vahemälu, 1.86 GHz, 1066 MHz FSB &lt;br /&gt;
mälu: 8 GB FB 667 MHz FBD &lt;br /&gt;
muu: &lt;br /&gt;
kõvakettad &lt;br /&gt;
dubleeritud toide &lt;br /&gt;
kaughalduskaart &lt;br /&gt;
Miks valiti just selline riistvara? &lt;br /&gt;
50 kasutaja puhul peab olema Exchange serveris igal juhul 8 GB mälu. &lt;br /&gt;
Riistvara ja Windowsi server peavad olema 64bitised. &lt;br /&gt;
Kaughalduskaart sai lisatud selleks, et serveri kaughaldust oleks võimalik turvaliselt läbi VPNi teostada väljastpoolt. &lt;br /&gt;
Vertase Back-up varundustarkvara sai uuendatud - vanem versioon Exchange 2007t ei toetanud. &lt;br /&gt;
Microsofti tarkvara &lt;br /&gt;
MS Windows Server Std 2003 R2a 64bit ENG - 2 tk &lt;br /&gt;
MS Exchange Server 2007 English OLP NL - 1 tk &lt;br /&gt;
Windows Med Biz Infra CAL English OLP NL Promo User CAL. (Sisaldab nii Windowsi kui ka Exchange serveri CALe, Microsofti Promo kehtis kuni 29.06.07) - 50 tk&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Tarkvara valik =====&lt;br /&gt;
&lt;br /&gt;
  * OS&#039;na läheb kasutusse [[http://www.freebsd.org/|FreeBSD]]&lt;br /&gt;
  * Maili võtab vastu [[http://www.postfix.org/|Postfix]]&lt;br /&gt;
  * Postfixis teeb greylisti [[http://mimo.gn.apc.org/gps/|postfix-gps]]&lt;br /&gt;
  * Spami &amp;amp; Viirusi kontrollib amavis koos [[http://spamassassin.apache.org/|SpamAssassin]] &amp;amp; [[http://www.clamav.net/|ClamAV]] abiga.&lt;br /&gt;
  * Kasutajatele serveerib maili [[http://www.courier-mta.org/imap/|Courier-IMAP]] &lt;br /&gt;
  * Kasutajate andmeid hoiab [[http://www.postgresql.org/|PostgreSQL]]&lt;br /&gt;
  * Veebist saavad kasutajad oma maili lugeda läbi [[http://www.roundcube.net|Roundcube&#039;i]] ja kontosi hallata läbi [[http://postfixadmin.sourceforge.net/|Postfixadmin&#039;i]]&lt;br /&gt;
  * Mailingliste haldab [[http://www.gnu.org/software/mailman/|Mailman]]&lt;br /&gt;
&lt;br /&gt;
==== Installeerimine ====&lt;br /&gt;
&lt;br /&gt;
FreeBSD paigaldust ma siinkohal kirjeldama ei hakka ning eeldan, et portsid on paigas &amp;amp; hilja aegu uudendatud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Postfix ====&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleks paigaldata Postfix &#039;i server, mis maili vastu võtaks - ilma selleta ei ole pikemas perspektiivis mailiserveril erilist mõtet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/postfix&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeerimise ajal valitud optionid ( mida saab copy-pasteda sinna samasse faili ):&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/postfix/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for postfix-2.4.5,1&lt;br /&gt;
_OPTIONS_READ=postfix-2.4.5,1&lt;br /&gt;
WITH_PCRE=true&lt;br /&gt;
WITH_SASL2=true&lt;br /&gt;
WITHOUT_DOVECOT=true&lt;br /&gt;
WITHOUT_SASLKRB=true&lt;br /&gt;
WITHOUT_SASLKRB5=true&lt;br /&gt;
WITHOUT_SASLKMIT=true&lt;br /&gt;
WITH_TLS=true&lt;br /&gt;
WITHOUT_BDB=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITHOUT_OPENLDAP=true&lt;br /&gt;
WITH_CDB=true&lt;br /&gt;
WITHOUT_NIS=true&lt;br /&gt;
WITH_VDA=true&lt;br /&gt;
WITHOUT_TEST=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oluline on siin see, et tagatud oleks SASL2,TLS,PGSQL ja VDA tugi. &lt;br /&gt;
&lt;br /&gt;
  * SASL2 läbi saab teostada SMTP-AUTH&#039;i, millekäigus kontrollitakse saatja logib ennem kirja saatmist sisse - vältimaks suvaliste spämmerite omavolilist kasutamist.&lt;br /&gt;
  * TLS on krüpteerimis protkoll, mis kaitseb kasutaja andmeid SMTP-AUTH protokolliga sisselogimisel.&lt;br /&gt;
  * PGSQL on PostgreSQL serveri tugi, leidmaks domeene ja nende alla kuuluvaid kasutajaid kellele sissetulev mail läheb.&lt;br /&gt;
  * VDA Toimetab mailid ilusti kohale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cyrus-SASL ===&lt;br /&gt;
&lt;br /&gt;
Kui cyrus-sasl2 porti veel peal ei ole, siis paigaldatakse see postfixi installeerimise käigus.&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/cyrus-sasl2/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for cyrus-sasl-2.1.22&lt;br /&gt;
_OPTIONS_READ=cyrus-sasl-2.1.22&lt;br /&gt;
WITH_BDB=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITHOUT_PGSQL=true&lt;br /&gt;
WITHOUT_SQLITE=true&lt;br /&gt;
WITH_DEV_URANDOM=true&lt;br /&gt;
WITHOUT_ALWAYSTRUE=true&lt;br /&gt;
WITH_KEEP_DB_OPEN=true&lt;br /&gt;
WITH_AUTHDAEMOND=true&lt;br /&gt;
WITH_LOGIN=true&lt;br /&gt;
WITH_PLAIN=true&lt;br /&gt;
WITH_CRAM=true&lt;br /&gt;
WITH_DIGEST=true&lt;br /&gt;
WITH_OTP=true&lt;br /&gt;
WITH_NTLM=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Valida tuleks kindlasti AUTHDAEMOND ja sobivad login meetodid SMTP-AUTH/IMAP tarbeks, nagu LOGIN,PLAIN,CRAM..&lt;br /&gt;
&lt;br /&gt;
Et postfix pääseks andmebaasis hoitavatele kasutajatele ligi on vaja ka courier-authlib&#039;i, läbi mille kontrollitakse kasutajate olemasolu SMTP-AUTH protokollis, mis omakorda kasutab cyrus-sasl2&#039;te, mis kasutab selleks courier-authlib&#039;i ..oeh ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== courier-authlib ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/security/courier-authlib&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for courier-authlib-0.59.3&lt;br /&gt;
_OPTIONS_READ=courier-authlib-0.59.3&lt;br /&gt;
WITHOUT_GDBM=true&lt;br /&gt;
WITHOUT_AUTH_LDAP=true&lt;br /&gt;
WITHOUT_AUTH_MYSQL=true&lt;br /&gt;
WITH_AUTH_PGSQL=true&lt;br /&gt;
WITHOUT_AUTH_USERDB=true&lt;br /&gt;
WITHOUT_AUTH_VCHKPW=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== postfix-gps ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/postfix-gps&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== amavis ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/security/amavisd-new&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/amavisd-new/options &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for amavisd-new-2.5.4,1&lt;br /&gt;
_OPTIONS_READ=amavisd-new-2.5.4,1&lt;br /&gt;
WITH_BDB=true&lt;br /&gt;
WITHOUT_SQLITE=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITH_SASL=true&lt;br /&gt;
WITHOUT_MILTER=true&lt;br /&gt;
WITH_SPAMASSASSIN=true&lt;br /&gt;
WITHOUT_P0F=true&lt;br /&gt;
WITH_ALTERMIME=true&lt;br /&gt;
WITH_FILE=true&lt;br /&gt;
WITH_RAR=true&lt;br /&gt;
WITH_UNRAR=true&lt;br /&gt;
WITH_ARJ=true&lt;br /&gt;
WITHOUT_UNARJ=true&lt;br /&gt;
WITH_LHA=true&lt;br /&gt;
WITH_ARC=true&lt;br /&gt;
WITHOUT_NOMARCH=true&lt;br /&gt;
WITH_CAB=true&lt;br /&gt;
WITH_RPM=true&lt;br /&gt;
WITH_ZOO=true&lt;br /&gt;
WITHOUT_UNZOO=true&lt;br /&gt;
WITH_LZOP=true&lt;br /&gt;
WITH_FREEZE=true&lt;br /&gt;
WITH_P7ZIP=true&lt;br /&gt;
WITHOUT_TNEF=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Amavise installeerimise käigus paigaldatakse ka SpamAsassin:&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/p5-Mail-SpamAssassin/options &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for p5-Mail-SpamAssassin-3.2.4_2&lt;br /&gt;
_OPTIONS_READ=p5-Mail-SpamAssassin-3.2.4_2&lt;br /&gt;
WITHOUT_AS_ROOT=true&lt;br /&gt;
WITHOUT_SPAMC=true&lt;br /&gt;
WITH_SACOMPILE=true&lt;br /&gt;
WITHOUT_DKIM=true&lt;br /&gt;
WITH_SSL=true&lt;br /&gt;
WITH_GNUPG=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITH_RAZOR=true&lt;br /&gt;
WITH_SPF_QUERY=true&lt;br /&gt;
WITH_RELAY_COUNTRY=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ClamAV ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/security/clamav&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/clamav/options               &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for clamav-0.92.1_1&lt;br /&gt;
_OPTIONS_READ=clamav-0.92.1_1&lt;br /&gt;
WITH_ARC=true&lt;br /&gt;
WITH_ARJ=true&lt;br /&gt;
WITH_LHA=true&lt;br /&gt;
WITH_UNZOO=true&lt;br /&gt;
WITH_UNRAR=true&lt;br /&gt;
WITHOUT_MILTER=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITHOUT_ICONV=true&lt;br /&gt;
WITHOUT_STDERR=true&lt;br /&gt;
WITH_EXPERIMENTAL=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Courier-IMAP ====&lt;br /&gt;
&lt;br /&gt;
Kui mail on vastu võetud, siis oleks ju tore ka sellele kuidagi ligi pääseda mõne meili kliendiga. Courier-IMAP pakub seda võimalust nii läbi POP3 kui ka IMAP protokollide, lugedes andmeid Maildir formaadis kataloogidest.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/courier-imap&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/courier-imap/option&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for courier-imap-4.1.3,1&lt;br /&gt;
_OPTIONS_READ=courier-imap-4.1.3,1&lt;br /&gt;
WITH_OPENSSL=true&lt;br /&gt;
WITHOUT_FAM=true&lt;br /&gt;
WITHOUT_DRAC=true&lt;br /&gt;
WITH_TRASHQUOTA=true&lt;br /&gt;
WITHOUT_GDBM=true&lt;br /&gt;
WITH_IPV6=true&lt;br /&gt;
WITHOUT_AUTH_LDAP=true&lt;br /&gt;
WITHOUT_AUTH_MYSQL=true&lt;br /&gt;
WITH_AUTH_PGSQL=true&lt;br /&gt;
WITHOUT_AUTH_USERDB=true&lt;br /&gt;
WITHOUT_AUTH_VCHKPW=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PostgreSQL ====&lt;br /&gt;
&lt;br /&gt;
Kasutajate andmeid on andmebaasis tore hoida sellepärast, et see on veel üks tükike selles maili puzzles mis lubab tulevikus mugavamalt skaleeruda.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/database/postgresql83&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/postgresql83/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for postgresql-server-8.3.1&lt;br /&gt;
_OPTIONS_READ=postgresql-server-8.3.1&lt;br /&gt;
WITH_NLS=true&lt;br /&gt;
WITHOUT_PAM=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITHOUT_MIT_KRB5=true&lt;br /&gt;
WITHOUT_HEIMDAL_KRB5=true&lt;br /&gt;
WITH_OPTIMIZED_CFLAGS=true&lt;br /&gt;
WITH_XML=true&lt;br /&gt;
WITH_TZDATA=true&lt;br /&gt;
WITHOUT_DEBUG=true&lt;br /&gt;
WITHOUT_ICU=true&lt;br /&gt;
WITH_INTDATE=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mailman ===&lt;br /&gt;
&lt;br /&gt;
Vähegi suurema asutuse/organisatsiooni korral tekib ka vajadus maililistide järgi, kus saaks mugavalt infot levitada. Selleks on täitsa sobilik kasutada Mailmani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/mailman&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /var/db/ports/mailman/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for mailman-with-htdig-2.1.9_5&lt;br /&gt;
_OPTIONS_READ=mailman-with-htdig-2.1.9_5&lt;br /&gt;
WITHOUT_SENDMAIL=true&lt;br /&gt;
WITHOUT_EXIM3=true&lt;br /&gt;
WITHOUT_EXIM4=true&lt;br /&gt;
WITH_POSTFIX=true&lt;br /&gt;
WITHOUT_COURIER=true&lt;br /&gt;
WITHOUT_CHINESE=true&lt;br /&gt;
WITHOUT_SLOVAK=true&lt;br /&gt;
WITH_HTDIG=true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Veeb ====&lt;br /&gt;
&lt;br /&gt;
Lisaks sellele, et kasutaja pääseb oma mailile ligi läbi tema isiklikus arvutis olema maili kliendi ( Windowsi peal soovitaks The Bat! &#039;i ja *NIX peal Evolutioni ) on vajalik siiski ka veebist ligi pääseda - näiteks reisides ja kohvikutes viibides.&lt;br /&gt;
&lt;br /&gt;
Jätan siinkohal ära apache/php paigaldamise õpetuse, kuna natukene pealehakkamist oleks lisaks eelnevalt tehtud copy-pastele hädasti vaja :-)&lt;br /&gt;
Vajalik tarkvara on juba üleval pool kirjeldatud, portsides olemas ning tuleb koos täiesti ammendava dokumenatsiooniga.&lt;br /&gt;
&lt;br /&gt;
NB! Postfixadminile tuleb paigaldada üks lisa patch: http://troels.arvin.dk/db/postfixadmin/&lt;br /&gt;
&lt;br /&gt;
===== Seadistamine =====&lt;br /&gt;
&lt;br /&gt;
Nüüdseks peaks hulka tarkvara juba peal olema, ning oleks vaja see ka töökorda seada. Teeme seda samas järjekorras.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Postfix ====&lt;br /&gt;
&lt;br /&gt;
Vajalikud failid asuvad /usr/local/etc/postfix all.. seega:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/local/etc/postfix&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kõige olulisem on siin main.cf, mis kontrollib smtpd &amp;amp; sõprade käitumist:&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/postfix/main.cf:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
queue_directory = /var/spool/postfix&lt;br /&gt;
command_directory = /usr/local/sbin&lt;br /&gt;
daemon_directory = /usr/local/libexec/postfix&lt;br /&gt;
mail_owner = postfix&lt;br /&gt;
myhostname = mail.domeen.ee&lt;br /&gt;
local_recipient_maps = $virtual_mailbox_maps&lt;br /&gt;
unknown_local_recipient_reject_code = 550&lt;br /&gt;
mynetworks_style = host&lt;br /&gt;
relay_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/relay_domains.cf, list.domeen.ee&lt;br /&gt;
virtual_alias_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_alias_maps.cf&lt;br /&gt;
virtual_mailbox_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_domains_maps.cf&lt;br /&gt;
virtual_mailbox_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
virtual_mailbox_limit_maps = pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_limits.cf&lt;br /&gt;
virtual_maildir_extended = yes&lt;br /&gt;
virtual_create_maildirsize = yes&lt;br /&gt;
virtual_mailbox_limit_inbox = yes&lt;br /&gt;
virtual_mailbox_limit_override = yes&lt;br /&gt;
virtual_mailbox_base = /var/maildata&lt;br /&gt;
virtual_mailbox_limit = 51200000&lt;br /&gt;
virtual_minimum_uid = 465&lt;br /&gt;
virtual_transport = virtual&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
local_transport = virtual&lt;br /&gt;
transport_maps = hash:/usr/local/etc/postfix/transport&lt;br /&gt;
mailman_destination_recipient_limit = 1&lt;br /&gt;
alias_maps = hash:/usr/local/mailman/data/aliases&lt;br /&gt;
smtpd_banner = MAIL - ESMTP $mail_name&lt;br /&gt;
debug_peer_level = 1&lt;br /&gt;
debugger_command =&lt;br /&gt;
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin&lt;br /&gt;
         xxgdb $daemon_directory/$process_name $process_id &amp;amp; sleep 5&lt;br /&gt;
sendmail_path = /usr/local/sbin/sendmail&lt;br /&gt;
newaliases_path = /usr/local/bin/newaliases&lt;br /&gt;
mailq_path = /usr/local/bin/mailq&lt;br /&gt;
setgid_group = maildrop&lt;br /&gt;
html_directory = no&lt;br /&gt;
manpage_directory = /usr/local/man&lt;br /&gt;
sample_directory = /usr/local/etc/postfix&lt;br /&gt;
readme_directory = no&lt;br /&gt;
&lt;br /&gt;
# anti-spam&lt;br /&gt;
content_filter=amavis:[127.0.0.1]:65024&lt;br /&gt;
disable_vrfy_command = yes&lt;br /&gt;
maximal_queue_lifetime = 7d&lt;br /&gt;
smtp_helo_timeout = 30s&lt;br /&gt;
smtp_mail_timeout = 60s&lt;br /&gt;
smtp_rcpt_timeout = 60s&lt;br /&gt;
smtpd_client_connection_count_limit = 100&lt;br /&gt;
smtpd_client_connection_rate_limit = 3000&lt;br /&gt;
smtpd_client_message_rate_limit = 1000&lt;br /&gt;
smtpd_client_recipient_rate_limit = 120&lt;br /&gt;
smtpd_client_restrictions = permit_inet_interfaces, reject_unknown_client_hostname, sleep 3, reject_rbl_client sbl-xbl.spamhaus.org&lt;br /&gt;
smtpd_error_sleep_time = 3&lt;br /&gt;
smtpd_helo_required = yes&lt;br /&gt;
smtpd_helo_restrictions = warn_if_reject reject_invalid_helo_hostname, sleep 3, warn_if_reject reject_unknown_helo_hostname&lt;br /&gt;
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, sleep 5, reject_non_fqdn_recipient, reject_unauth_destination, reject_unknown_recipient_domain&lt;br /&gt;
smtpd_sender_restrictions = check_policy_service unix:private/policy&lt;br /&gt;
strict_rfc821_envelopes = yes&lt;br /&gt;
strict_7bit_headers = YES&lt;br /&gt;
smtpd_delay_reject = yes&lt;br /&gt;
&lt;br /&gt;
# smtp-auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
smtpd_sasl_local_domain = $myhostname&lt;br /&gt;
broken_sasl_auth_clients = yes&lt;br /&gt;
smtpd_use_tls = yes&lt;br /&gt;
smtpd_tls_auth_only = yes&lt;br /&gt;
smtpd_tls_key_file = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_cert_file = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_CAfile = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_loglevel = 3&lt;br /&gt;
smtpd_tls_received_header = yes&lt;br /&gt;
smtpd_tls_session_cache_timeout = 3600s&lt;br /&gt;
tls_random_source = dev:/dev/urandom&lt;br /&gt;
&lt;br /&gt;
data_directory = /var/db/postfix&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/postfix/master.cf &#039;i l6pus:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
mailman   unix  -       n       n       -       -       pipe&lt;br /&gt;
  flags=FR user=mailman argv=/usr/local/mailman/bin/postfix-to-mailman.py&lt;br /&gt;
  ${nexthop} ${user}&lt;br /&gt;
policy  unix    -       n       n       -       -       spawn&lt;br /&gt;
        user=nobody     argv=/usr/local/libexec/gps /usr/local/etc/gps.conf&lt;br /&gt;
amavis  unix    -       -       n       -       2       smtp&lt;br /&gt;
        -o smtp_data_done_timeout=1200&lt;br /&gt;
        -o smtp_send_xforward_command=yes&lt;br /&gt;
        -o disable_dns_lookups=yes&lt;br /&gt;
        -o max_use=20&lt;br /&gt;
127.0.0.1:65025 inet n    -       n       -       -     smtpd&lt;br /&gt;
     -o content_filter=&lt;br /&gt;
     -o smtpd_delay_reject=no&lt;br /&gt;
     -o smtpd_client_restrictions=permit_mynetworks,reject&lt;br /&gt;
     -o smtpd_helo_restrictions=&lt;br /&gt;
     -o smtpd_sender_restrictions=&lt;br /&gt;
     -o smtpd_recipient_restrictions=permit_mynetworks,reject&lt;br /&gt;
     -o smtpd_data_restrictions=reject_unauth_pipelining&lt;br /&gt;
     -o smtpd_end_of_data_restrictions=&lt;br /&gt;
     -o smtpd_restriction_classes=&lt;br /&gt;
     -o mynetworks=10.0.0.1,127.0.0.1&lt;br /&gt;
     -o smtpd_error_sleep_time=0&lt;br /&gt;
     -o smtpd_soft_error_limit=1001&lt;br /&gt;
     -o smtpd_hard_error_limit=1000&lt;br /&gt;
     -o smtpd_client_connection_count_limit=0&lt;br /&gt;
     -o smtpd_client_connection_rate_limit=0&lt;br /&gt;
     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters&lt;br /&gt;
     -o local_header_rewrite_clients=&lt;br /&gt;
proxywrite unix -       -       n       -       1       proxymap&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ja veel /usr/local/etc/postfix/transport failis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
list.domeen.ee     mailman:&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See file tuleb postmap&#039;ga pärast üle käia, niiviisi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
postmap /usr/local/etc/postfix/transport&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ei ole plaaniski kirjeldama hakata mida kõik need optionid tähendavad, kuna postfixi enda dokumentatsioon on selleks piisav.&lt;br /&gt;
&lt;br /&gt;
Olulisemad seaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
local_recipient_maps = $virtual_mailbox_maps&lt;br /&gt;
relay_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/relay_domains.cf, list.domeen.ee&lt;br /&gt;
virtual_alias_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_alias_maps.cf&lt;br /&gt;
virtual_mailbox_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_domains_maps.cf&lt;br /&gt;
virtual_mailbox_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
virtual_mailbox_base = /var/maildata&lt;br /&gt;
virtual_mailbox_limit = 51200000&lt;br /&gt;
virtual_minimum_uid = 465&lt;br /&gt;
virtual_transport = virtual&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
local_transport = virtual&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ilma nende seadeteta ei tea postfix midagi andmebaasis olevatest kasutajatest ega kuidas mail nendeni jõudma peaks.&lt;br /&gt;
&lt;br /&gt;
local_recipient_maps seatakse samaks mis virtual_mailbox_maps&lt;br /&gt;
&lt;br /&gt;
relay_domains on SQL p2ring domeenidele, millele osutatakse MX backup teenust. Lisaks veel list.domeen.ee - ehk&#039;s listiserver.&lt;br /&gt;
&lt;br /&gt;
virtual_alias_maps on SQL p2ring maili aliastele, millele v6ib maili vastu v6tta&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_domains .. p2ring domeenidele, millele v6ib maili vastu v6tta&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_maps p2ring mailiboxidele ( kus asub, mis 6igused jne.. ) maili kohale toimetamiseks&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_base FS path mille all mailboxid asuvad ( lisatakse virtual_mailbox_maps &#039;st saadud info ette )&lt;br /&gt;
&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
                                 ... nii uid kui ka gid k6ikidel mailboxidel on 465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viidatud failid ( asuvad /usr/local/etc/postfix/pgsql all - kataloog mida freebsd installis by default ei ole, so mkdir v6i vaheta optionites&lt;br /&gt;
pathi kui sa nad mujale paned ) mida postgresql&#039;ga suhtlemisel SQL p2ringute tegemiseks kasutatakse:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat pgsql/relay_domains.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT domain FROM domain WHERE domain=&#039;%s&#039; and backupmx = true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat pgsql/virtual_alias_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT goto FROM alias WHERE address=&#039;%s&#039; AND active = true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat pgsql/virtual_domains_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT domain FROM domain WHERE domain=&#039;%s&#039; and backupmx = false and active = true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat pgsql/virtual_mailbox_limits.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT quota FROM mailbox WHERE username=&#039;%s&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT maildir FROM mailbox WHERE username=&#039;%s&#039; AND active = true&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel peaks tekitama kataloogi /var/maildata ja andma selle courier&#039;i käsutusse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
mkdir -p /var/maildata&lt;br /&gt;
chown -R courier:courier /var/maildata&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seal all hakkab siis mail olema, nii nagu virtual_mailbox_base option seda ütleb.&lt;br /&gt;
&lt;br /&gt;
Anti-Spam osa soovitaks esialgu välja jätta ning lisada alles pärast seda, kui oled tutvunud vastavate optionite sisuga postfixi dokumentatsioonist.&lt;br /&gt;
Kui soovid seda aga kasutada, siis oleks sul veel vaja paigaldada postfix-gps-devel port koos postgresql toega.&lt;br /&gt;
&lt;br /&gt;
SMTP-AUTH tarvis oleks vaja tekitada aga serverile sertifikaat TLS&#039;i jaoks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
openssl req -new -x509 -nodes -out server.pem -keyout server.pem -days 3650&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cyrus-sasl2 ====&lt;br /&gt;
&lt;br /&gt;
Et SMTP protokoll oskaks courier-authlib&#039;ga rääkida, on vajalik vastav fail /usr/local/lib/sasl2 all&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /usr/local/lib/sasl2/smtpd.conf&lt;br /&gt;
pwcheck_method: authdaemond&lt;br /&gt;
log_level: 3&lt;br /&gt;
mech_list: PLAIN LOGIN&lt;br /&gt;
authdaemond_path: /var/run/authdaemond/socket&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== courier-authlib ====&lt;br /&gt;
&lt;br /&gt;
See on see jupp, mis vahendab SMTP-AUTH/IMAP päringuid andmebaasile.&lt;br /&gt;
&lt;br /&gt;
Confid asuvad /usr/local/etc/authlib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /usr/local/etc/authlib/authdaemonrc&lt;br /&gt;
authmodulelist=&amp;quot;authpgsql&amp;quot;&lt;br /&gt;
authmodulelistorig=&amp;quot;authuserdb authvchkpw authpam authldap authmysql authpgsql&amp;quot;&lt;br /&gt;
daemons=3&lt;br /&gt;
authdaemonvar=/var/run/authdaemond&lt;br /&gt;
subsystem=mail&lt;br /&gt;
DEBUG_LOGIN=0&lt;br /&gt;
DEFAULTOPTIONS=&amp;quot;wbnodsn=1&amp;quot;&lt;br /&gt;
LOGGEROPTS=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /usr/local/etc/authlib/authpgsqlrc&lt;br /&gt;
PGSQL_PORT              5432&lt;br /&gt;
PGSQL_USERNAME          postfix&lt;br /&gt;
PGSQL_PASSWORD          pass&lt;br /&gt;
PGSQL_DATABASE          postfix&lt;br /&gt;
PGSQL_USER_TABLE        mailbox&lt;br /&gt;
PGSQL_CRYPT_PWFIELD     password&lt;br /&gt;
PGSQL_UID_FIELD         &#039;465&#039;&lt;br /&gt;
PGSQL_GID_FIELD         &#039;465&#039;&lt;br /&gt;
PGSQL_LOGIN_FIELD       username&lt;br /&gt;
PGSQL_HOME_FIELD        &#039;/var/maildata&#039;&lt;br /&gt;
PGSQL_NAME_FIELD        name&lt;br /&gt;
PGSQL_MAILDIR_FIELD     maildir&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Courier-IMAP ====&lt;br /&gt;
&lt;br /&gt;
Selle confid asuvad /usr/local/etc/courier-imap all&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /usr/local/etc/courier-imap/imapd&lt;br /&gt;
ADDRESS=0&lt;br /&gt;
PORT=143&lt;br /&gt;
MAXDAEMONS=40&lt;br /&gt;
MAXPERIP=4&lt;br /&gt;
PIDFILE=/var/run/imapd.pid&lt;br /&gt;
TCPDOPTS=&amp;quot;-nodnslookup -noidentlookup&amp;quot;&lt;br /&gt;
LOGGEROPTS=&amp;quot;-name=imapd&amp;quot;&lt;br /&gt;
IMAP_CAPABILITY=&amp;quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE&amp;quot;&lt;br /&gt;
IMAP_KEYWORDS=1&lt;br /&gt;
IMAP_ACL=1&lt;br /&gt;
IMAP_CAPABILITY_ORIG=&amp;quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE&amp;quot;&lt;br /&gt;
IMAP_PROXY=0&lt;br /&gt;
IMAP_PROXY_FOREIGN=0&lt;br /&gt;
IMAP_IDLE_TIMEOUT=60&lt;br /&gt;
IMAP_CAPABILITY_TLS=&amp;quot;$IMAP_CAPABILITY AUTH=PLAIN&amp;quot;&lt;br /&gt;
IMAP_CAPABILITY_TLS_ORIG=&amp;quot;$IMAP_CAPABILITY_ORIG AUTH=PLAIN&amp;quot;&lt;br /&gt;
IMAP_DISABLETHREADSORT=0&lt;br /&gt;
IMAP_CHECK_ALL_FOLDERS=0&lt;br /&gt;
IMAP_OBSOLETE_CLIENT=0&lt;br /&gt;
IMAP_UMASK=022&lt;br /&gt;
IMAP_ULIMITD=65536&lt;br /&gt;
IMAP_USELOCKS=1&lt;br /&gt;
IMAP_SHAREDINDEXFILE=/usr/local/etc/courier-imap/shared/index&lt;br /&gt;
IMAP_ENHANCEDIDLE=0&lt;br /&gt;
IMAP_TRASHFOLDERNAME=Trash&lt;br /&gt;
IMAP_EMPTYTRASH=Trash:7&lt;br /&gt;
IMAP_MOVE_EXPUNGE_TO_TRASH=0&lt;br /&gt;
SENDMAIL=/usr/sbin/sendmail&lt;br /&gt;
HEADERFROM=X-IMAP-Sender&lt;br /&gt;
IMAPDSTART=NO&lt;br /&gt;
MAILDIRPATH=Maildir&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cat /usr/local/etc/courier-imap/imapd-ssl&lt;br /&gt;
SSLPORT=993&lt;br /&gt;
SSLADDRESS=0&lt;br /&gt;
SSLPIDFILE=/var/run/imapd-ssl.pid&lt;br /&gt;
SSLLOGGEROPTS=&amp;quot;-name=imapd-ssl&amp;quot;&lt;br /&gt;
IMAPDSSLSTART=YES&lt;br /&gt;
IMAPDSTARTTLS=YES&lt;br /&gt;
IMAP_TLS_REQUIRED=0&lt;br /&gt;
COURIERTLS=/usr/local/bin/couriertls&lt;br /&gt;
TLS_PROTOCOL=SSL3&lt;br /&gt;
TLS_STARTTLS_PROTOCOL=TLS1&lt;br /&gt;
TLS_CERTFILE=/usr/local/share/courier-imap/imapd.pem&lt;br /&gt;
TLS_VERIFYPEER=NONE&lt;br /&gt;
TLS_CACHEFILE=/usr/local/var/couriersslcache&lt;br /&gt;
TLS_CACHESIZE=524288&lt;br /&gt;
MAILDIRPATH=Maildir&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSL&#039;i sertifikaadi saad genereerida muutes kopeerides imapd.cnf-dist faili imapd.cnf&#039;x, kohandades siis selle sisu ning seejärel käivitades mkimapdcert käsu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cd /usr/local/etc/courier-imap&lt;br /&gt;
cp imapd.cnf.dist imapd.cnf&lt;br /&gt;
ee imapd.cnf&lt;br /&gt;
mkimapdcert&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
POP3&#039;e seadistamine on vägagi sarnane IMAP&#039;le ning sellega saad kindlasti ka ise hakkama.&lt;br /&gt;
&lt;br /&gt;
==== PostgreSQL ====&lt;br /&gt;
&lt;br /&gt;
Esmalt on vaja luua uus kasutaja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
CREATE USER postfix WITH PASSWORD &#039;pass&#039;;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning seejärel mõned andmebaasid:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
CREATE DATABASE postfix OWNER postfix;&lt;br /&gt;
CREATE DATABASE postfix_gps OWNER postfix;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esimeses asuvad domeenid ja kasutajad teises aga postgres-gps greylisti andmed.&lt;br /&gt;
&lt;br /&gt;
Baasi postfix schema ( postfixadminile on paigaldatud postgresql&#039;i jaoks patch @ http://troels.arvin.dk/db/postfixadmin/ ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
CREATE TABLE &amp;quot;admin&amp;quot; (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;password&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE &amp;quot;admin&amp;quot; IS &#039;Postfix Admin - Virtual Admins&#039;;&lt;br /&gt;
CREATE TABLE alias (&lt;br /&gt;
    address character varying(255) NOT NULL,&lt;br /&gt;
    goto text NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE alias IS &#039;Postfix Admin - Virtual Aliases&#039;;&lt;br /&gt;
CREATE TABLE &amp;quot;domain&amp;quot; (&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    description character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    aliases integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    mailboxes integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    maxquota integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    transport character varying(255),&lt;br /&gt;
    backupmx boolean DEFAULT false NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE &amp;quot;domain&amp;quot; IS &#039;Postfix Admin - Virtual Domains&#039;;&lt;br /&gt;
CREATE TABLE domain_admins (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE domain_admins IS &#039;Postfix Admin - Domain Admins&#039;;&lt;br /&gt;
CREATE TABLE log (&lt;br /&gt;
    &amp;quot;timestamp&amp;quot; timestamp with time zone DEFAULT now(),&lt;br /&gt;
    username character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;action&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    data text DEFAULT &#039;&#039;::text NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE log IS &#039;Postfix Admin - Log&#039;;&lt;br /&gt;
CREATE TABLE mailbox (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;password&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    name character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    maildir character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    quota integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE mailbox IS &#039;Postfix Admin - Virtual Mailboxes&#039;;&lt;br /&gt;
CREATE TABLE vacation (&lt;br /&gt;
    email character varying(255) NOT NULL,&lt;br /&gt;
    subject character varying(255) NOT NULL,&lt;br /&gt;
    body text NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE vacation_notification (&lt;br /&gt;
    on_vacation character varying(255) NOT NULL,&lt;br /&gt;
    notified character varying(255) NOT NULL,&lt;br /&gt;
    notified_at timestamp with time zone DEFAULT now() NOT NULL&lt;br /&gt;
);&lt;br /&gt;
ALTER TABLE ONLY &amp;quot;admin&amp;quot;&lt;br /&gt;
    ADD CONSTRAINT admin_key PRIMARY KEY (username);&lt;br /&gt;
ALTER TABLE ONLY alias&lt;br /&gt;
    ADD CONSTRAINT alias_key PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY &amp;quot;domain&amp;quot;&lt;br /&gt;
    ADD CONSTRAINT domain_key PRIMARY KEY (&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY mailbox&lt;br /&gt;
    ADD CONSTRAINT mailbox_key PRIMARY KEY (username);&lt;br /&gt;
ALTER TABLE ONLY vacation_notification&lt;br /&gt;
    ADD CONSTRAINT vacation_notification_pkey PRIMARY KEY (on_vacation, notified);&lt;br /&gt;
ALTER TABLE ONLY vacation&lt;br /&gt;
    ADD CONSTRAINT vacation_pkey PRIMARY KEY (email);&lt;br /&gt;
CREATE INDEX alias_address_active ON alias USING btree (address, active);&lt;br /&gt;
CREATE INDEX domain_domain_active ON &amp;quot;domain&amp;quot; USING btree (&amp;quot;domain&amp;quot;, active);&lt;br /&gt;
CREATE INDEX mailbox_username_active ON mailbox USING btree (username, active);&lt;br /&gt;
CREATE INDEX vacation_email_active ON vacation USING btree (email, active);&lt;br /&gt;
ALTER TABLE ONLY alias&lt;br /&gt;
    ADD CONSTRAINT alias_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY domain_admins&lt;br /&gt;
    ADD CONSTRAINT domain_admins_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY mailbox&lt;br /&gt;
    ADD CONSTRAINT mailbox_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY vacation&lt;br /&gt;
    ADD CONSTRAINT vacation_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY vacation_notification&lt;br /&gt;
    ADD CONSTRAINT vacation_notification_on_vacation_fkey FOREIGN KEY (on_vacation) REFERENCES vacation(email) ON DELETE CASCADE;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi postfix_gps schema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
CREATE TABLE network (&lt;br /&gt;
    address character varying(16) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE pattern (&lt;br /&gt;
    expression character varying(200) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE recipient (&lt;br /&gt;
    address character varying(200) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE triplet (&lt;br /&gt;
    client_address character varying(40),&lt;br /&gt;
    sender character varying(160) NOT NULL,&lt;br /&gt;
    recipient character varying(160) NOT NULL,&lt;br /&gt;
    ip64 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip32 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip16 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip8 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    count integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    uts integer NOT NULL&lt;br /&gt;
);&lt;br /&gt;
ALTER TABLE ONLY network&lt;br /&gt;
    ADD CONSTRAINT network_pkey PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY pattern&lt;br /&gt;
    ADD CONSTRAINT pattern_pkey PRIMARY KEY (expression);&lt;br /&gt;
ALTER TABLE ONLY recipient&lt;br /&gt;
    ADD CONSTRAINT recipient_pkey PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY triplet&lt;br /&gt;
    ADD CONSTRAINT triplet_pkey PRIMARY KEY (recipient, sender, ip64, ip32, ip16, ip8);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eeldan, et postgresql&#039;i seadistusega tuled ise toime - dokumenatsioon on selleks täitsa piisav.&lt;br /&gt;
&lt;br /&gt;
==== Spam &amp;amp; Viirused ====&lt;br /&gt;
&lt;br /&gt;
=== Amavis ===&lt;br /&gt;
amavisd-new teostab nii spam&#039;i kui ka viiruse kontrolli. Eelnevalt postfix&#039;i confis sai ta seadistatud nõndaviisi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
content_filter=amavis:[127.0.0.1]:65024&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/amavisd.conf &#039;i olulised read&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$max_servers = 2;            # num of pre-forked children (2..15 is common), -m&lt;br /&gt;
$daemon_user  = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis), -u&lt;br /&gt;
$daemon_group = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis), -g&lt;br /&gt;
$mydomain = &#039;domeen.ee&#039;;   # a convenient default for other settings&lt;br /&gt;
$inet_socket_port = 65024;   # listen on this local TCP port(s)&lt;br /&gt;
$myhostname = &#039;mail.domeen.ee&#039;;  # must be a fully-qualified domain name!&lt;br /&gt;
@av_scanners = (&lt;br /&gt;
&lt;br /&gt;
 [&#039;ClamAV-clamd&#039;,&lt;br /&gt;
   \&amp;amp;ask_daemon, [&amp;quot;CONTSCAN {}\n&amp;quot;, &amp;quot;/var/run/clamav/clamd&amp;quot;],&lt;br /&gt;
   qr/\bOK$/, qr/\bFOUND$/,&lt;br /&gt;
   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siin on siis ära määratud, et amavisd-new kuulab pordil 65024 ja kasutajaks on vscan.&lt;br /&gt;
Antiviiruse kontrolli teeb ta läbi ClamAV&#039;i, millega ta suhtleb üle unix socketi.. /var/run/clamav/clamd.&lt;br /&gt;
&lt;br /&gt;
=== ClamAV ===&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/clamd.conf:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
LogFile /var/log/clamav/clamd.log&lt;br /&gt;
LogFileMaxSize 20M&lt;br /&gt;
LogTime yes&lt;br /&gt;
LogVerbose no&lt;br /&gt;
PidFile /var/run/clamav/clamd.pid&lt;br /&gt;
DatabaseDirectory /var/db/clamav&lt;br /&gt;
LocalSocket /var/run/clamav/clamd&lt;br /&gt;
FixStaleSocket yes&lt;br /&gt;
MaxConnectionQueueLength 30&lt;br /&gt;
StreamMaxLength 50M&lt;br /&gt;
MaxThreads 20&lt;br /&gt;
User vscan&lt;br /&gt;
AllowSupplementaryGroups yes&lt;br /&gt;
ExitOnOOM yes&lt;br /&gt;
Debug yes&lt;br /&gt;
LeaveTemporaryFiles no&lt;br /&gt;
ScanMail yes&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LocalSocket peab olema sama mis amavisd.conf &#039;s, ehk siis /var/run/clamav/clamd&lt;br /&gt;
Samuti peab ka kasutajaks olema määratud vscan, muidu ei saa amavisd clamd&#039;ga suhelda kui tal socketisse kirjutamiseks õigusi pole.&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/freshclamd.conf&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
DatabaseDirectory /var/db/clamav&lt;br /&gt;
UpdateLogFile /var/log/clamav/freshclam.log&lt;br /&gt;
LogVerbose no&lt;br /&gt;
PidFile /var/run/clamav/freshclam.pid&lt;br /&gt;
DatabaseOwner vscan&lt;br /&gt;
AllowSupplementaryGroups yes&lt;br /&gt;
DatabaseMirror database.clamav.net&lt;br /&gt;
ScriptedUpdates yes&lt;br /&gt;
Checks 24&lt;br /&gt;
NotifyClamd /usr/local/etc/clamd.conf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jällegi, user vscan.&lt;br /&gt;
&lt;br /&gt;
Siinkohal tasuks ära märkida, et esialgu kuuluvad /var/db/clamav ja /var/log/clamav clamav userile.. seega tuleks need vscan userile chownida.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Postfix-GPS ehk Greylist ===&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/gps.conf&lt;br /&gt;
&amp;lt;nowiki&amp;gt;mode=normal&lt;br /&gt;
dbtype=pgsql&lt;br /&gt;
db_host=localhost&lt;br /&gt;
db_username=postfix&lt;br /&gt;
db_password=pass&lt;br /&gt;
db_dbname=postfix_gps&lt;br /&gt;
timeout=60&lt;br /&gt;
wl_pattern=dbcached&lt;br /&gt;
wl_network=dbcached&lt;br /&gt;
wl_recipient=db&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mailman ====&lt;br /&gt;
&lt;br /&gt;
Kõik listid hakkavad asuma list.domeen.ee domeeni all ( mis peab ka DNS&#039;s reaalselt eksisteerima ). Kuna mailman kuulutab kõik failid oma kodukataloogis /usr/local/mailman mailman kasutajale kuuluvaks, siis tuleb postfix&#039;i kasutaja ka mailman&#039;i gruppi lisada - muidu ei hakka listi aliased kahjuks tööle. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
pw groupmod mailman -m postfix&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleks chmod&#039;da /usr/local/mailman/data all asuvad alias failid nii, et mailman&#039;i grupp ( kuhu nüüd postfixi kasutaja kuulub.. ) neid kirjutada saaks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod 660 /usr/local/mailman/data/aliases /usr/local/mailman/data/aliases.db&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mailman&#039;i enda config võib välja näha selline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
MTA = &#039;Postfix&#039;&lt;br /&gt;
SMTPHOST = &amp;quot;localhost&amp;quot;&lt;br /&gt;
SMTPPORT = 65025&lt;br /&gt;
ALLOW_SITE_ADMIN_COOKIES = Yes&lt;br /&gt;
DEFAULT_URL_PATTERN = &#039;https://%s/mailman/&#039;&lt;br /&gt;
PUBLIC_ARCHIVE_URL = &#039;https://%(hostname)s/pipermail/%(listname)s&#039;&lt;br /&gt;
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mailman räägib pordiga 65025 sel põhjusel, et selle pordi pealt viirusekontrolli ei tehta. Viirusekontrolli teostatakse siis, kui kirjad listi tulevad - seega pole neid samu kirju välja saates vaja topelt kontrollida.&lt;br /&gt;
&lt;br /&gt;
Kui kirjad tulevad list.domeen.ee aadresile, siis antakse need postfixi poolt üle /usr/local/mailman/bin/postfix-to-mailman.py scriptile ( vt. postfixi master.cf  ja transport faile )&lt;br /&gt;
&lt;br /&gt;
See näeb välja selline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/local/bin/python&lt;br /&gt;
# Configuration variables - Change these for your site if necessary.&lt;br /&gt;
MailmanHome = &amp;quot;/usr/local/mailman&amp;quot;; # Mailman home directory.&lt;br /&gt;
MailmanOwner = &amp;quot;postmaster@domeen.ee&amp;quot;; # Postmaster and abuse mail recipient.&lt;br /&gt;
# End of configuration variables.&lt;br /&gt;
# postfix-to-mailman-2.1.py (to be installed as postfix-to-mailman.py)&lt;br /&gt;
#&lt;br /&gt;
# Interface mailman to a postfix with a mailman transport. Does not require&lt;br /&gt;
# the creation of _any_ aliases to connect lists to your mail system.&lt;br /&gt;
#&lt;br /&gt;
# Dax Kelson, dkelson@gurulabs.com, Sept 2002.&lt;br /&gt;
# coverted from qmail to postfix interface&lt;br /&gt;
# Jan 2003: Fixes for Mailman 2.1&lt;br /&gt;
# Thanks to Simen E. Sandberg &amp;lt;senilix@gallerbyen.net&amp;gt;&lt;br /&gt;
# Feb 2003: Change the suggested postfix transport to support VERP&lt;br /&gt;
# Thanks to Henrique de Moraes Holschuh &amp;lt;henrique.holschuh@ima.sp.gov.br&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# This script was originally qmail-to-mailman.py by:&lt;br /&gt;
# Bruce Perens, bruce@perens.com, March 1999.&lt;br /&gt;
# This is free software under the GNU General Public License.&lt;br /&gt;
#&lt;br /&gt;
# This script is meant to be called from ~mailman/postfix-to-mailman.py. &lt;br /&gt;
# It catches all mail to a virtual domain, eg &amp;quot;lists.example.com&amp;quot;.&lt;br /&gt;
# It looks at the  recipient for each mail message and decides if the mail is&lt;br /&gt;
# addressed to a valid list or not, and bounces the message with a helpful&lt;br /&gt;
# suggestion if it&#039;s not addressed to a list. It decides if it is a posting, &lt;br /&gt;
# a list command, or mail to the list administrator, by checking for the&lt;br /&gt;
#  -admin, -owner, and -request addresses. It will recognize a list as soon&lt;br /&gt;
# as the list is created, there is no need to add _any_ aliases for any list.&lt;br /&gt;
# It recognizes mail to postmaster, mailman-owner, abuse, mailer-daemon, root,&lt;br /&gt;
# and owner, and routes those mails to MailmanOwner as defined in the&lt;br /&gt;
# configuration variables, above.&lt;br /&gt;
#&lt;br /&gt;
# INSTALLATION:&lt;br /&gt;
#&lt;br /&gt;
# Install this file as ~mailman/postfix-to-mailman.py&lt;br /&gt;
#&lt;br /&gt;
# To configure a virtual domain to connect to mailman, edit Postfix thusly:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/main.cf:&lt;br /&gt;
#    relay_domains = ... lists.example.com&lt;br /&gt;
#    transport_maps = hash:/etc/postfix/transport&lt;br /&gt;
#    mailman_destination_recipient_limit = 1&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/transport:&lt;br /&gt;
#   lists.example.com   mailman:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/master.cf&lt;br /&gt;
#    mailman unix  -       n       n       -       -       pipe&lt;br /&gt;
#      flags=FR user=mailman:mailman &lt;br /&gt;
#      argv=/var/mailman/postfix-to-mailman.py ${nexthop} ${user}&lt;br /&gt;
# &lt;br /&gt;
#&lt;br /&gt;
# Replace list.example.com above with the name of the domain to be connected&lt;br /&gt;
# to Mailman. Note that _all_ mail to that domain will go to Mailman, so you&lt;br /&gt;
# don&#039;t want to put the name of your main domain here. Typically a virtual&lt;br /&gt;
# domain lists.domain.com is used for Mailman, and domain.com for regular&lt;br /&gt;
# email.&lt;br /&gt;
#&lt;br /&gt;
import sys, os, re, string&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    os.nice(5)  # Handle mailing lists at non-interactive priority.&lt;br /&gt;
                # delete this if you wish&lt;br /&gt;
&lt;br /&gt;
    os.chdir(MailmanHome + &amp;quot;/lists&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        local = sys.argv[2]&lt;br /&gt;
    except:&lt;br /&gt;
        # This might happen if we&#039;re not using Postfix&lt;br /&gt;
        sys.stderr.write(&amp;quot;LOCAL not set?\n&amp;quot;)&lt;br /&gt;
        sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
    local = string.lower(local)&lt;br /&gt;
    local = re.sub(&amp;quot;^mailman-&amp;quot;,&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    names = (&amp;quot;root&amp;quot;, &amp;quot;postmaster&amp;quot;, &amp;quot;mailer-daemon&amp;quot;, &amp;quot;mailman-owner&amp;quot;, &amp;quot;owner&amp;quot;,&lt;br /&gt;
             &amp;quot;abuse&amp;quot;)&lt;br /&gt;
    for i in names:&lt;br /&gt;
        if i == local:&lt;br /&gt;
            os.execv(&amp;quot;/usr/sbin/sendmail&amp;quot;,&lt;br /&gt;
                     (&amp;quot;/usr/sbin/sendmail&amp;quot;, MailmanOwner))&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
    type = &amp;quot;post&amp;quot;&lt;br /&gt;
    types = ((&amp;quot;-admin$&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
             (&amp;quot;-owner$&amp;quot;, &amp;quot;owner&amp;quot;),&lt;br /&gt;
             (&amp;quot;-request$&amp;quot;, &amp;quot;request&amp;quot;),&lt;br /&gt;
             (&amp;quot;-bounces$&amp;quot;, &amp;quot;bounces&amp;quot;),&lt;br /&gt;
             (&amp;quot;-confirm$&amp;quot;, &amp;quot;confirm&amp;quot;),&lt;br /&gt;
             (&amp;quot;-join$&amp;quot;, &amp;quot;join&amp;quot;),&lt;br /&gt;
             (&amp;quot;-leave$&amp;quot;, &amp;quot;leave&amp;quot;),&lt;br /&gt;
             (&amp;quot;-subscribe$&amp;quot;, &amp;quot;subscribe&amp;quot;),&lt;br /&gt;
             (&amp;quot;-unsubscribe$&amp;quot;, &amp;quot;unsubscribe&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    for i in types:&lt;br /&gt;
        if re.search(i[0],local):&lt;br /&gt;
            type = i[1]&lt;br /&gt;
            local = re.sub(i[0],&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    if os.path.exists(local):&lt;br /&gt;
        os.execv(MailmanHome + &amp;quot;/mail/mailman&amp;quot;,&lt;br /&gt;
                 (MailmanHome + &amp;quot;/mail/mailman&amp;quot;, type, local))&lt;br /&gt;
    else:&lt;br /&gt;
        bounce()&lt;br /&gt;
    sys.exit(75)&lt;br /&gt;
&lt;br /&gt;
def bounce():&lt;br /&gt;
    bounce_message = &amp;quot;&amp;quot;&amp;quot;\&lt;br /&gt;
TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on&lt;br /&gt;
http://%s/&lt;br /&gt;
That web page will help you subscribe or unsubscribe, and will&lt;br /&gt;
give you directions on how to post to each mailing list.\n&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    sys.stderr.write(bounce_message % (sys.argv[1]))&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    sys.exit(main())&lt;br /&gt;
except SystemExit, argument:&lt;br /&gt;
    sys.exit(argument)&lt;br /&gt;
&lt;br /&gt;
except Exception, argument:&lt;br /&gt;
    info = sys.exc_info()&lt;br /&gt;
    trace = info[2]&lt;br /&gt;
    sys.stderr.write(&amp;quot;%s %s\n&amp;quot; % (sys.exc_type, argument))&lt;br /&gt;
    sys.stderr.write(&amp;quot;Line %d\n&amp;quot; % (trace.tb_lineno))&lt;br /&gt;
    sys.exit(75)       # Soft failure, try again later.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Toomas</name></author>
	</entry>
	<entry>
		<id>https://kuutorvaja.eenet.ee/w/index.php?title=Mailiserver&amp;diff=6996</id>
		<title>Mailiserver</title>
		<link rel="alternate" type="text/html" href="https://kuutorvaja.eenet.ee/w/index.php?title=Mailiserver&amp;diff=6996"/>
		<updated>2008-03-29T17:22:41Z</updated>

		<summary type="html">&lt;p&gt;Toomas: New page: ====== Mailserver ======   ===== Sissejuhatus =====   Vastukaaluks ühele naljakale artiklile äripäevas ( http://209.85.135.104/search?q=cache:HtdTW-LZ1_IJ:www.aripaev.ee/3693/rubr_artik...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== Mailserver ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sissejuhatus =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vastukaaluks ühele naljakale artiklile äripäevas ( http://209.85.135.104/search?q=cache:HtdTW-LZ1_IJ:www.aripaev.ee/3693/rubr_artiklid_369301.html&amp;amp;hl=et&amp;amp;strip=1 ) kirjutaks Postfixist.&lt;br /&gt;
&lt;br /&gt;
Jupike tollest artiklist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;Exchange 2000 on teatavasti mahupiirangutega. 16 gigabaiti kõikide kasutajate e-posti jaoks, arvestades büroo kasvu, on liiga vähe. Olen täheldanud ka seda, et kirjavahetuse maht kasvab pidevalt,&amp;quot; selgitas Linros peamist ülemineku põhjust.&lt;br /&gt;
&lt;br /&gt;
Töötajaid on firmas koos notaritega 50, kõik kasutavad Microsofti Exchange&#039;i ja selle klientprogrammi Outlook.&lt;br /&gt;
&lt;br /&gt;
Exchange 2007 mahupiirang on palju kordi suurem ja Linrosi arvates ei ole sellega mingit muret ette näha üsna pikaks ajaks.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Notaribüroo lahenduse teostamisel kasutati Delli server-riistvara, kogumaksumuseks kujunes 250 000 krooni.&lt;br /&gt;
DELL PowerEdge 2950 Serveri võimsuse näitajad &lt;br /&gt;
protsessor: Dual Core IntelV XeonV 5120, 4 MB vahemälu, 1.86 GHz, 1066 MHz FSB &lt;br /&gt;
mälu: 8 GB FB 667 MHz FBD &lt;br /&gt;
muu: &lt;br /&gt;
kõvakettad &lt;br /&gt;
dubleeritud toide &lt;br /&gt;
kaughalduskaart &lt;br /&gt;
Miks valiti just selline riistvara? &lt;br /&gt;
50 kasutaja puhul peab olema Exchange serveris igal juhul 8 GB mälu. &lt;br /&gt;
Riistvara ja Windowsi server peavad olema 64bitised. &lt;br /&gt;
Kaughalduskaart sai lisatud selleks, et serveri kaughaldust oleks võimalik turvaliselt läbi VPNi teostada väljastpoolt. &lt;br /&gt;
Vertase Back-up varundustarkvara sai uuendatud - vanem versioon Exchange 2007t ei toetanud. &lt;br /&gt;
Microsofti tarkvara &lt;br /&gt;
MS Windows Server Std 2003 R2a 64bit ENG - 2 tk &lt;br /&gt;
MS Exchange Server 2007 English OLP NL - 1 tk &lt;br /&gt;
Windows Med Biz Infra CAL English OLP NL Promo User CAL. (Sisaldab nii Windowsi kui ka Exchange serveri CALe, Microsofti Promo kehtis kuni 29.06.07) - 50 tk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Tarkvara valik =====&lt;br /&gt;
&lt;br /&gt;
  * OS&#039;na läheb kasutusse [[http://www.freebsd.org/|FreeBSD]]&lt;br /&gt;
  * Maili võtab vastu [[http://www.postfix.org/|Postfix]]&lt;br /&gt;
  * Postfixis teeb greylisti [[http://mimo.gn.apc.org/gps/|postfix-gps]]&lt;br /&gt;
  * Spami &amp;amp; Viirusi kontrollib amavis koos [[http://spamassassin.apache.org/|SpamAssassin]] &amp;amp; [[http://www.clamav.net/|ClamAV]] abiga.&lt;br /&gt;
  * Kasutajatele serveerib maili [[http://www.courier-mta.org/imap/|Courier-IMAP]] &lt;br /&gt;
  * Kasutajate andmeid hoiab [[http://www.postgresql.org/|PostgreSQL]]&lt;br /&gt;
  * Veebist saavad kasutajad oma maili lugeda läbi [[http://www.roundcube.net|Roundcube&#039;i]] ja kontosi hallata läbi [[http://postfixadmin.sourceforge.net/|Postfixadmin&#039;i]]&lt;br /&gt;
  * Mailingliste haldab [[http://www.gnu.org/software/mailman/|Mailman]]&lt;br /&gt;
&lt;br /&gt;
==== Installeerimine ====&lt;br /&gt;
&lt;br /&gt;
FreeBSD paigaldust ma siinkohal kirjeldama ei hakka ning eeldan, et portsid on paigas &amp;amp; hilja aegu uudendatud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Postfix ====&lt;br /&gt;
&lt;br /&gt;
Esmalt tuleks paigaldata Postfix &#039;i server, mis maili vastu võtaks - ilma selleta ei ole pikemas perspektiivis mailiserveril erilist mõtet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/postfix&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Installeerimise ajal valitud optionid ( mida saab copy-pasteda sinna samasse faili ):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/postfix/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for postfix-2.4.5,1&lt;br /&gt;
_OPTIONS_READ=postfix-2.4.5,1&lt;br /&gt;
WITH_PCRE=true&lt;br /&gt;
WITH_SASL2=true&lt;br /&gt;
WITHOUT_DOVECOT=true&lt;br /&gt;
WITHOUT_SASLKRB=true&lt;br /&gt;
WITHOUT_SASLKRB5=true&lt;br /&gt;
WITHOUT_SASLKMIT=true&lt;br /&gt;
WITH_TLS=true&lt;br /&gt;
WITHOUT_BDB=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITHOUT_OPENLDAP=true&lt;br /&gt;
WITH_CDB=true&lt;br /&gt;
WITHOUT_NIS=true&lt;br /&gt;
WITH_VDA=true&lt;br /&gt;
WITHOUT_TEST=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oluline on siin see, et tagatud oleks SASL2,TLS,PGSQL ja VDA tugi. &lt;br /&gt;
&lt;br /&gt;
  * SASL2 läbi saab teostada SMTP-AUTH&#039;i, millekäigus kontrollitakse saatja logib ennem kirja saatmist sisse - vältimaks suvaliste spämmerite omavolilist kasutamist.&lt;br /&gt;
  * TLS on krüpteerimis protkoll, mis kaitseb kasutaja andmeid SMTP-AUTH protokolliga sisselogimisel.&lt;br /&gt;
  * PGSQL on PostgreSQL serveri tugi, leidmaks domeene ja nende alla kuuluvaid kasutajaid kellele sissetulev mail läheb.&lt;br /&gt;
  * VDA Toimetab mailid ilusti kohale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cyrus-SASL ===&lt;br /&gt;
&lt;br /&gt;
Kui cyrus-sasl2 porti veel peal ei ole, siis paigaldatakse see postfixi installeerimise käigus.&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/cyrus-sasl2/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for cyrus-sasl-2.1.22&lt;br /&gt;
_OPTIONS_READ=cyrus-sasl-2.1.22&lt;br /&gt;
WITH_BDB=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITHOUT_PGSQL=true&lt;br /&gt;
WITHOUT_SQLITE=true&lt;br /&gt;
WITH_DEV_URANDOM=true&lt;br /&gt;
WITHOUT_ALWAYSTRUE=true&lt;br /&gt;
WITH_KEEP_DB_OPEN=true&lt;br /&gt;
WITH_AUTHDAEMOND=true&lt;br /&gt;
WITH_LOGIN=true&lt;br /&gt;
WITH_PLAIN=true&lt;br /&gt;
WITH_CRAM=true&lt;br /&gt;
WITH_DIGEST=true&lt;br /&gt;
WITH_OTP=true&lt;br /&gt;
WITH_NTLM=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Valida tuleks kindlasti AUTHDAEMOND ja sobivad login meetodid SMTP-AUTH/IMAP tarbeks, nagu LOGIN,PLAIN,CRAM..&lt;br /&gt;
&lt;br /&gt;
Et postfix pääseks andmebaasis hoitavatele kasutajatele ligi on vaja ka courier-authlib&#039;i, läbi mille kontrollitakse kasutajate olemasolu SMTP-AUTH protokollis, mis omakorda kasutab cyrus-sasl2&#039;te, mis kasutab selleks courier-authlib&#039;i ..oeh ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== courier-authlib ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/security/courier-authlib&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for courier-authlib-0.59.3&lt;br /&gt;
_OPTIONS_READ=courier-authlib-0.59.3&lt;br /&gt;
WITHOUT_GDBM=true&lt;br /&gt;
WITHOUT_AUTH_LDAP=true&lt;br /&gt;
WITHOUT_AUTH_MYSQL=true&lt;br /&gt;
WITH_AUTH_PGSQL=true&lt;br /&gt;
WITHOUT_AUTH_USERDB=true&lt;br /&gt;
WITHOUT_AUTH_VCHKPW=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== postfix-gps ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/postfix-gps&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== amavis ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/security/amavisd-new&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/amavisd-new/options &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for amavisd-new-2.5.4,1&lt;br /&gt;
_OPTIONS_READ=amavisd-new-2.5.4,1&lt;br /&gt;
WITH_BDB=true&lt;br /&gt;
WITHOUT_SQLITE=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITH_SASL=true&lt;br /&gt;
WITHOUT_MILTER=true&lt;br /&gt;
WITH_SPAMASSASSIN=true&lt;br /&gt;
WITHOUT_P0F=true&lt;br /&gt;
WITH_ALTERMIME=true&lt;br /&gt;
WITH_FILE=true&lt;br /&gt;
WITH_RAR=true&lt;br /&gt;
WITH_UNRAR=true&lt;br /&gt;
WITH_ARJ=true&lt;br /&gt;
WITHOUT_UNARJ=true&lt;br /&gt;
WITH_LHA=true&lt;br /&gt;
WITH_ARC=true&lt;br /&gt;
WITHOUT_NOMARCH=true&lt;br /&gt;
WITH_CAB=true&lt;br /&gt;
WITH_RPM=true&lt;br /&gt;
WITH_ZOO=true&lt;br /&gt;
WITHOUT_UNZOO=true&lt;br /&gt;
WITH_LZOP=true&lt;br /&gt;
WITH_FREEZE=true&lt;br /&gt;
WITH_P7ZIP=true&lt;br /&gt;
WITHOUT_TNEF=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Amavise installeerimise käigus paigaldatakse ka SpamAsassin:&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/p5-Mail-SpamAssassin/options &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for p5-Mail-SpamAssassin-3.2.4_2&lt;br /&gt;
_OPTIONS_READ=p5-Mail-SpamAssassin-3.2.4_2&lt;br /&gt;
WITHOUT_AS_ROOT=true&lt;br /&gt;
WITHOUT_SPAMC=true&lt;br /&gt;
WITH_SACOMPILE=true&lt;br /&gt;
WITHOUT_DKIM=true&lt;br /&gt;
WITH_SSL=true&lt;br /&gt;
WITH_GNUPG=true&lt;br /&gt;
WITHOUT_MYSQL=true&lt;br /&gt;
WITH_PGSQL=true&lt;br /&gt;
WITH_RAZOR=true&lt;br /&gt;
WITH_SPF_QUERY=true&lt;br /&gt;
WITH_RELAY_COUNTRY=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ClamAV ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/security/clamav&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/clamav/options               &lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for clamav-0.92.1_1&lt;br /&gt;
_OPTIONS_READ=clamav-0.92.1_1&lt;br /&gt;
WITH_ARC=true&lt;br /&gt;
WITH_ARJ=true&lt;br /&gt;
WITH_LHA=true&lt;br /&gt;
WITH_UNZOO=true&lt;br /&gt;
WITH_UNRAR=true&lt;br /&gt;
WITHOUT_MILTER=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITHOUT_ICONV=true&lt;br /&gt;
WITHOUT_STDERR=true&lt;br /&gt;
WITH_EXPERIMENTAL=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Courier-IMAP ====&lt;br /&gt;
&lt;br /&gt;
Kui mail on vastu võetud, siis oleks ju tore ka sellele kuidagi ligi pääseda mõne meili kliendiga. Courier-IMAP pakub seda võimalust nii läbi POP3 kui ka IMAP protokollide, lugedes andmeid Maildir formaadis kataloogidest.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/courier-imap&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/courier-imap/option&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for courier-imap-4.1.3,1&lt;br /&gt;
_OPTIONS_READ=courier-imap-4.1.3,1&lt;br /&gt;
WITH_OPENSSL=true&lt;br /&gt;
WITHOUT_FAM=true&lt;br /&gt;
WITHOUT_DRAC=true&lt;br /&gt;
WITH_TRASHQUOTA=true&lt;br /&gt;
WITHOUT_GDBM=true&lt;br /&gt;
WITH_IPV6=true&lt;br /&gt;
WITHOUT_AUTH_LDAP=true&lt;br /&gt;
WITHOUT_AUTH_MYSQL=true&lt;br /&gt;
WITH_AUTH_PGSQL=true&lt;br /&gt;
WITHOUT_AUTH_USERDB=true&lt;br /&gt;
WITHOUT_AUTH_VCHKPW=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PostgreSQL ====&lt;br /&gt;
&lt;br /&gt;
Kasutajate andmeid on andmebaasis tore hoida sellepärast, et see on veel üks tükike selles maili puzzles mis lubab tulevikus mugavamalt skaleeruda.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/database/postgresql83&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/postgresql83/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for postgresql-server-8.3.1&lt;br /&gt;
_OPTIONS_READ=postgresql-server-8.3.1&lt;br /&gt;
WITH_NLS=true&lt;br /&gt;
WITHOUT_PAM=true&lt;br /&gt;
WITHOUT_LDAP=true&lt;br /&gt;
WITHOUT_MIT_KRB5=true&lt;br /&gt;
WITHOUT_HEIMDAL_KRB5=true&lt;br /&gt;
WITH_OPTIMIZED_CFLAGS=true&lt;br /&gt;
WITH_XML=true&lt;br /&gt;
WITH_TZDATA=true&lt;br /&gt;
WITHOUT_DEBUG=true&lt;br /&gt;
WITHOUT_ICU=true&lt;br /&gt;
WITH_INTDATE=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mailman ===&lt;br /&gt;
&lt;br /&gt;
Vähegi suurema asutuse/organisatsiooni korral tekib ka vajadus maililistide järgi, kus saaks mugavalt infot levitada. Selleks on täitsa sobilik kasutada Mailmani.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/ports/mail/mailman&lt;br /&gt;
make install clean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionid:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /var/db/ports/mailman/options&lt;br /&gt;
# This file is auto-generated by &#039;make config&#039;.&lt;br /&gt;
# No user-servicable parts inside!&lt;br /&gt;
# Options for mailman-with-htdig-2.1.9_5&lt;br /&gt;
_OPTIONS_READ=mailman-with-htdig-2.1.9_5&lt;br /&gt;
WITHOUT_SENDMAIL=true&lt;br /&gt;
WITHOUT_EXIM3=true&lt;br /&gt;
WITHOUT_EXIM4=true&lt;br /&gt;
WITH_POSTFIX=true&lt;br /&gt;
WITHOUT_COURIER=true&lt;br /&gt;
WITHOUT_CHINESE=true&lt;br /&gt;
WITHOUT_SLOVAK=true&lt;br /&gt;
WITH_HTDIG=true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Veeb ====&lt;br /&gt;
&lt;br /&gt;
Lisaks sellele, et kasutaja pääseb oma mailile ligi läbi tema isiklikus arvutis olema maili kliendi ( Windowsi peal soovitaks The Bat! &#039;i ja *NIX peal Evolutioni ) on vajalik siiski ka veebist ligi pääseda - näiteks reisides ja kohvikutes viibides.&lt;br /&gt;
&lt;br /&gt;
Jätan siinkohal ära apache/php paigaldamise õpetuse, kuna natukene pealehakkamist oleks lisaks eelnevalt tehtud copy-pastele hädasti vaja :-)&lt;br /&gt;
Vajalik tarkvara on juba üleval pool kirjeldatud, portsides olemas ning tuleb koos täiesti ammendava dokumenatsiooniga.&lt;br /&gt;
&lt;br /&gt;
NB! Postfixadminile tuleb paigaldada üks lisa patch: http://troels.arvin.dk/db/postfixadmin/&lt;br /&gt;
&lt;br /&gt;
===== Seadistamine =====&lt;br /&gt;
&lt;br /&gt;
Nüüdseks peaks hulka tarkvara juba peal olema, ning oleks vaja see ka töökorda seada. Teeme seda samas järjekorras.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Postfix ====&lt;br /&gt;
&lt;br /&gt;
Vajalikud failid asuvad /usr/local/etc/postfix all.. seega:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/local/etc/postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kõige olulisem on siin main.cf, mis kontrollib smtpd &amp;amp; sõprade käitumist:&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/postfix/main.cf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
queue_directory = /var/spool/postfix&lt;br /&gt;
command_directory = /usr/local/sbin&lt;br /&gt;
daemon_directory = /usr/local/libexec/postfix&lt;br /&gt;
mail_owner = postfix&lt;br /&gt;
myhostname = mail.domeen.ee&lt;br /&gt;
local_recipient_maps = $virtual_mailbox_maps&lt;br /&gt;
unknown_local_recipient_reject_code = 550&lt;br /&gt;
mynetworks_style = host&lt;br /&gt;
relay_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/relay_domains.cf, list.domeen.ee&lt;br /&gt;
virtual_alias_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_alias_maps.cf&lt;br /&gt;
virtual_mailbox_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_domains_maps.cf&lt;br /&gt;
virtual_mailbox_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
virtual_mailbox_limit_maps = pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_limits.cf&lt;br /&gt;
virtual_maildir_extended = yes&lt;br /&gt;
virtual_create_maildirsize = yes&lt;br /&gt;
virtual_mailbox_limit_inbox = yes&lt;br /&gt;
virtual_mailbox_limit_override = yes&lt;br /&gt;
virtual_mailbox_base = /var/maildata&lt;br /&gt;
virtual_mailbox_limit = 51200000&lt;br /&gt;
virtual_minimum_uid = 465&lt;br /&gt;
virtual_transport = virtual&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
local_transport = virtual&lt;br /&gt;
transport_maps = hash:/usr/local/etc/postfix/transport&lt;br /&gt;
mailman_destination_recipient_limit = 1&lt;br /&gt;
alias_maps = hash:/usr/local/mailman/data/aliases&lt;br /&gt;
smtpd_banner = MAIL - ESMTP $mail_name&lt;br /&gt;
debug_peer_level = 1&lt;br /&gt;
debugger_command =&lt;br /&gt;
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin&lt;br /&gt;
         xxgdb $daemon_directory/$process_name $process_id &amp;amp; sleep 5&lt;br /&gt;
sendmail_path = /usr/local/sbin/sendmail&lt;br /&gt;
newaliases_path = /usr/local/bin/newaliases&lt;br /&gt;
mailq_path = /usr/local/bin/mailq&lt;br /&gt;
setgid_group = maildrop&lt;br /&gt;
html_directory = no&lt;br /&gt;
manpage_directory = /usr/local/man&lt;br /&gt;
sample_directory = /usr/local/etc/postfix&lt;br /&gt;
readme_directory = no&lt;br /&gt;
&lt;br /&gt;
# anti-spam&lt;br /&gt;
content_filter=amavis:[127.0.0.1]:65024&lt;br /&gt;
disable_vrfy_command = yes&lt;br /&gt;
maximal_queue_lifetime = 7d&lt;br /&gt;
smtp_helo_timeout = 30s&lt;br /&gt;
smtp_mail_timeout = 60s&lt;br /&gt;
smtp_rcpt_timeout = 60s&lt;br /&gt;
smtpd_client_connection_count_limit = 100&lt;br /&gt;
smtpd_client_connection_rate_limit = 3000&lt;br /&gt;
smtpd_client_message_rate_limit = 1000&lt;br /&gt;
smtpd_client_recipient_rate_limit = 120&lt;br /&gt;
smtpd_client_restrictions = permit_inet_interfaces, reject_unknown_client_hostname, sleep 3, reject_rbl_client sbl-xbl.spamhaus.org&lt;br /&gt;
smtpd_error_sleep_time = 3&lt;br /&gt;
smtpd_helo_required = yes&lt;br /&gt;
smtpd_helo_restrictions = warn_if_reject reject_invalid_helo_hostname, sleep 3, warn_if_reject reject_unknown_helo_hostname&lt;br /&gt;
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, sleep 5, reject_non_fqdn_recipient, reject_unauth_destination, reject_unknown_recipient_domain&lt;br /&gt;
smtpd_sender_restrictions = check_policy_service unix:private/policy&lt;br /&gt;
strict_rfc821_envelopes = yes&lt;br /&gt;
strict_7bit_headers = YES&lt;br /&gt;
smtpd_delay_reject = yes&lt;br /&gt;
&lt;br /&gt;
# smtp-auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
smtpd_sasl_local_domain = $myhostname&lt;br /&gt;
broken_sasl_auth_clients = yes&lt;br /&gt;
smtpd_use_tls = yes&lt;br /&gt;
smtpd_tls_auth_only = yes&lt;br /&gt;
smtpd_tls_key_file = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_cert_file = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_CAfile = /usr/local/etc/postfix/server.pem&lt;br /&gt;
smtpd_tls_loglevel = 3&lt;br /&gt;
smtpd_tls_received_header = yes&lt;br /&gt;
smtpd_tls_session_cache_timeout = 3600s&lt;br /&gt;
tls_random_source = dev:/dev/urandom&lt;br /&gt;
&lt;br /&gt;
data_directory = /var/db/postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/postfix/master.cf &#039;i l6pus:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mailman   unix  -       n       n       -       -       pipe&lt;br /&gt;
  flags=FR user=mailman argv=/usr/local/mailman/bin/postfix-to-mailman.py&lt;br /&gt;
  ${nexthop} ${user}&lt;br /&gt;
policy  unix    -       n       n       -       -       spawn&lt;br /&gt;
        user=nobody     argv=/usr/local/libexec/gps /usr/local/etc/gps.conf&lt;br /&gt;
amavis  unix    -       -       n       -       2       smtp&lt;br /&gt;
        -o smtp_data_done_timeout=1200&lt;br /&gt;
        -o smtp_send_xforward_command=yes&lt;br /&gt;
        -o disable_dns_lookups=yes&lt;br /&gt;
        -o max_use=20&lt;br /&gt;
127.0.0.1:65025 inet n    -       n       -       -     smtpd&lt;br /&gt;
     -o content_filter=&lt;br /&gt;
     -o smtpd_delay_reject=no&lt;br /&gt;
     -o smtpd_client_restrictions=permit_mynetworks,reject&lt;br /&gt;
     -o smtpd_helo_restrictions=&lt;br /&gt;
     -o smtpd_sender_restrictions=&lt;br /&gt;
     -o smtpd_recipient_restrictions=permit_mynetworks,reject&lt;br /&gt;
     -o smtpd_data_restrictions=reject_unauth_pipelining&lt;br /&gt;
     -o smtpd_end_of_data_restrictions=&lt;br /&gt;
     -o smtpd_restriction_classes=&lt;br /&gt;
     -o mynetworks=10.0.0.1,127.0.0.1&lt;br /&gt;
     -o smtpd_error_sleep_time=0&lt;br /&gt;
     -o smtpd_soft_error_limit=1001&lt;br /&gt;
     -o smtpd_hard_error_limit=1000&lt;br /&gt;
     -o smtpd_client_connection_count_limit=0&lt;br /&gt;
     -o smtpd_client_connection_rate_limit=0&lt;br /&gt;
     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters&lt;br /&gt;
     -o local_header_rewrite_clients=&lt;br /&gt;
proxywrite unix -       -       n       -       1       proxymap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ja veel /usr/local/etc/postfix/transport failis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
list.domeen.ee     mailman:&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See file tuleb postmap&#039;ga pärast üle käia, niiviisi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
postmap /usr/local/etc/postfix/transport&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ei ole plaaniski kirjeldama hakata mida kõik need optionid tähendavad, kuna postfixi enda dokumentatsioon on selleks piisav.&lt;br /&gt;
&lt;br /&gt;
Olulisemad seaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local_recipient_maps = $virtual_mailbox_maps&lt;br /&gt;
relay_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/relay_domains.cf, list.domeen.ee&lt;br /&gt;
virtual_alias_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_alias_maps.cf&lt;br /&gt;
virtual_mailbox_domains = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_domains_maps.cf&lt;br /&gt;
virtual_mailbox_maps = proxy:pgsql:/usr/local/etc/postfix/pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
virtual_mailbox_base = /var/maildata&lt;br /&gt;
virtual_mailbox_limit = 51200000&lt;br /&gt;
virtual_minimum_uid = 465&lt;br /&gt;
virtual_transport = virtual&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
local_transport = virtual&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ilma nende seadeteta ei tea postfix midagi andmebaasis olevatest kasutajatest ega kuidas mail nendeni jõudma peaks.&lt;br /&gt;
&lt;br /&gt;
local_recipient_maps seatakse samaks mis virtual_mailbox_maps&lt;br /&gt;
&lt;br /&gt;
relay_domains on SQL p2ring domeenidele, millele osutatakse MX backup teenust. Lisaks veel list.domeen.ee - ehk&#039;s listiserver.&lt;br /&gt;
&lt;br /&gt;
virtual_alias_maps on SQL p2ring maili aliastele, millele v6ib maili vastu v6tta&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_domains .. p2ring domeenidele, millele v6ib maili vastu v6tta&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_maps p2ring mailiboxidele ( kus asub, mis 6igused jne.. ) maili kohale toimetamiseks&lt;br /&gt;
&lt;br /&gt;
virtual_mailbox_base FS path mille all mailboxid asuvad ( lisatakse virtual_mailbox_maps &#039;st saadud info ette )&lt;br /&gt;
&lt;br /&gt;
virtual_uid_maps = static:465&lt;br /&gt;
                                 ... nii uid kui ka gid k6ikidel mailboxidel on 465&lt;br /&gt;
virtual_gid_maps = static:465&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Viidatud failid ( asuvad /usr/local/etc/postfix/pgsql all - kataloog mida freebsd installis by default ei ole, so mkdir v6i vaheta optionites&lt;br /&gt;
pathi kui sa nad mujale paned ) mida postgresql&#039;ga suhtlemisel SQL p2ringute tegemiseks kasutatakse:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat pgsql/relay_domains.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT domain FROM domain WHERE domain=&#039;%s&#039; and backupmx = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat pgsql/virtual_alias_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT goto FROM alias WHERE address=&#039;%s&#039; AND active = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat pgsql/virtual_domains_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT domain FROM domain WHERE domain=&#039;%s&#039; and backupmx = false and active = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat pgsql/virtual_mailbox_limits.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT quota FROM mailbox WHERE username=&#039;%s&#039;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat pgsql/virtual_mailbox_maps.cf&lt;br /&gt;
user = postfix&lt;br /&gt;
password = pass&lt;br /&gt;
hosts = localhost&lt;br /&gt;
dbname = postfix&lt;br /&gt;
query = SELECT maildir FROM mailbox WHERE username=&#039;%s&#039; AND active = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel peaks tekitama kataloogi /var/maildata ja andma selle courier&#039;i käsutusse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir -p /var/maildata&lt;br /&gt;
chown -R courier:courier /var/maildata&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seal all hakkab siis mail olema, nii nagu virtual_mailbox_base option seda ütleb.&lt;br /&gt;
&lt;br /&gt;
Anti-Spam osa soovitaks esialgu välja jätta ning lisada alles pärast seda, kui oled tutvunud vastavate optionite sisuga postfixi dokumentatsioonist.&lt;br /&gt;
Kui soovid seda aga kasutada, siis oleks sul veel vaja paigaldada postfix-gps-devel port koos postgresql toega.&lt;br /&gt;
&lt;br /&gt;
SMTP-AUTH tarvis oleks vaja tekitada aga serverile sertifikaat TLS&#039;i jaoks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
openssl req -new -x509 -nodes -out server.pem -keyout server.pem -days 3650&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cyrus-sasl2 ====&lt;br /&gt;
&lt;br /&gt;
Et SMTP protokoll oskaks courier-authlib&#039;ga rääkida, on vajalik vastav fail /usr/local/lib/sasl2 all&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /usr/local/lib/sasl2/smtpd.conf&lt;br /&gt;
pwcheck_method: authdaemond&lt;br /&gt;
log_level: 3&lt;br /&gt;
mech_list: PLAIN LOGIN&lt;br /&gt;
authdaemond_path: /var/run/authdaemond/socket&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== courier-authlib ====&lt;br /&gt;
&lt;br /&gt;
See on see jupp, mis vahendab SMTP-AUTH/IMAP päringuid andmebaasile.&lt;br /&gt;
&lt;br /&gt;
Confid asuvad /usr/local/etc/authlib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /usr/local/etc/authlib/authdaemonrc&lt;br /&gt;
authmodulelist=&amp;quot;authpgsql&amp;quot;&lt;br /&gt;
authmodulelistorig=&amp;quot;authuserdb authvchkpw authpam authldap authmysql authpgsql&amp;quot;&lt;br /&gt;
daemons=3&lt;br /&gt;
authdaemonvar=/var/run/authdaemond&lt;br /&gt;
subsystem=mail&lt;br /&gt;
DEBUG_LOGIN=0&lt;br /&gt;
DEFAULTOPTIONS=&amp;quot;wbnodsn=1&amp;quot;&lt;br /&gt;
LOGGEROPTS=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /usr/local/etc/authlib/authpgsqlrc&lt;br /&gt;
PGSQL_PORT              5432&lt;br /&gt;
PGSQL_USERNAME          postfix&lt;br /&gt;
PGSQL_PASSWORD          pass&lt;br /&gt;
PGSQL_DATABASE          postfix&lt;br /&gt;
PGSQL_USER_TABLE        mailbox&lt;br /&gt;
PGSQL_CRYPT_PWFIELD     password&lt;br /&gt;
PGSQL_UID_FIELD         &#039;465&#039;&lt;br /&gt;
PGSQL_GID_FIELD         &#039;465&#039;&lt;br /&gt;
PGSQL_LOGIN_FIELD       username&lt;br /&gt;
PGSQL_HOME_FIELD        &#039;/var/maildata&#039;&lt;br /&gt;
PGSQL_NAME_FIELD        name&lt;br /&gt;
PGSQL_MAILDIR_FIELD     maildir&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Courier-IMAP ====&lt;br /&gt;
&lt;br /&gt;
Selle confid asuvad /usr/local/etc/courier-imap all&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /usr/local/etc/courier-imap/imapd&lt;br /&gt;
ADDRESS=0&lt;br /&gt;
PORT=143&lt;br /&gt;
MAXDAEMONS=40&lt;br /&gt;
MAXPERIP=4&lt;br /&gt;
PIDFILE=/var/run/imapd.pid&lt;br /&gt;
TCPDOPTS=&amp;quot;-nodnslookup -noidentlookup&amp;quot;&lt;br /&gt;
LOGGEROPTS=&amp;quot;-name=imapd&amp;quot;&lt;br /&gt;
IMAP_CAPABILITY=&amp;quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE&amp;quot;&lt;br /&gt;
IMAP_KEYWORDS=1&lt;br /&gt;
IMAP_ACL=1&lt;br /&gt;
IMAP_CAPABILITY_ORIG=&amp;quot;IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE&amp;quot;&lt;br /&gt;
IMAP_PROXY=0&lt;br /&gt;
IMAP_PROXY_FOREIGN=0&lt;br /&gt;
IMAP_IDLE_TIMEOUT=60&lt;br /&gt;
IMAP_CAPABILITY_TLS=&amp;quot;$IMAP_CAPABILITY AUTH=PLAIN&amp;quot;&lt;br /&gt;
IMAP_CAPABILITY_TLS_ORIG=&amp;quot;$IMAP_CAPABILITY_ORIG AUTH=PLAIN&amp;quot;&lt;br /&gt;
IMAP_DISABLETHREADSORT=0&lt;br /&gt;
IMAP_CHECK_ALL_FOLDERS=0&lt;br /&gt;
IMAP_OBSOLETE_CLIENT=0&lt;br /&gt;
IMAP_UMASK=022&lt;br /&gt;
IMAP_ULIMITD=65536&lt;br /&gt;
IMAP_USELOCKS=1&lt;br /&gt;
IMAP_SHAREDINDEXFILE=/usr/local/etc/courier-imap/shared/index&lt;br /&gt;
IMAP_ENHANCEDIDLE=0&lt;br /&gt;
IMAP_TRASHFOLDERNAME=Trash&lt;br /&gt;
IMAP_EMPTYTRASH=Trash:7&lt;br /&gt;
IMAP_MOVE_EXPUNGE_TO_TRASH=0&lt;br /&gt;
SENDMAIL=/usr/sbin/sendmail&lt;br /&gt;
HEADERFROM=X-IMAP-Sender&lt;br /&gt;
IMAPDSTART=NO&lt;br /&gt;
MAILDIRPATH=Maildir&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cat /usr/local/etc/courier-imap/imapd-ssl&lt;br /&gt;
SSLPORT=993&lt;br /&gt;
SSLADDRESS=0&lt;br /&gt;
SSLPIDFILE=/var/run/imapd-ssl.pid&lt;br /&gt;
SSLLOGGEROPTS=&amp;quot;-name=imapd-ssl&amp;quot;&lt;br /&gt;
IMAPDSSLSTART=YES&lt;br /&gt;
IMAPDSTARTTLS=YES&lt;br /&gt;
IMAP_TLS_REQUIRED=0&lt;br /&gt;
COURIERTLS=/usr/local/bin/couriertls&lt;br /&gt;
TLS_PROTOCOL=SSL3&lt;br /&gt;
TLS_STARTTLS_PROTOCOL=TLS1&lt;br /&gt;
TLS_CERTFILE=/usr/local/share/courier-imap/imapd.pem&lt;br /&gt;
TLS_VERIFYPEER=NONE&lt;br /&gt;
TLS_CACHEFILE=/usr/local/var/couriersslcache&lt;br /&gt;
TLS_CACHESIZE=524288&lt;br /&gt;
MAILDIRPATH=Maildir&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SSL&#039;i sertifikaadi saad genereerida muutes kopeerides imapd.cnf-dist faili imapd.cnf&#039;x, kohandades siis selle sisu ning seejärel käivitades mkimapdcert käsu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd /usr/local/etc/courier-imap&lt;br /&gt;
cp imapd.cnf.dist imapd.cnf&lt;br /&gt;
ee imapd.cnf&lt;br /&gt;
mkimapdcert&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
POP3&#039;e seadistamine on vägagi sarnane IMAP&#039;le ning sellega saad kindlasti ka ise hakkama.&lt;br /&gt;
&lt;br /&gt;
==== PostgreSQL ====&lt;br /&gt;
&lt;br /&gt;
Esmalt on vaja luua uus kasutaja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CREATE USER postfix WITH PASSWORD &#039;pass&#039;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ning seejärel mõned andmebaasid:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CREATE DATABASE postfix OWNER postfix;&lt;br /&gt;
CREATE DATABASE postfix_gps OWNER postfix;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esimeses asuvad domeenid ja kasutajad teises aga postgres-gps greylisti andmed.&lt;br /&gt;
&lt;br /&gt;
Baasi postfix schema ( postfixadminile on paigaldatud postgresql&#039;i jaoks patch @ http://troels.arvin.dk/db/postfixadmin/ ):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CREATE TABLE &amp;quot;admin&amp;quot; (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;password&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE &amp;quot;admin&amp;quot; IS &#039;Postfix Admin - Virtual Admins&#039;;&lt;br /&gt;
CREATE TABLE alias (&lt;br /&gt;
    address character varying(255) NOT NULL,&lt;br /&gt;
    goto text NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE alias IS &#039;Postfix Admin - Virtual Aliases&#039;;&lt;br /&gt;
CREATE TABLE &amp;quot;domain&amp;quot; (&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    description character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    aliases integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    mailboxes integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    maxquota integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    transport character varying(255),&lt;br /&gt;
    backupmx boolean DEFAULT false NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE &amp;quot;domain&amp;quot; IS &#039;Postfix Admin - Virtual Domains&#039;;&lt;br /&gt;
CREATE TABLE domain_admins (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE domain_admins IS &#039;Postfix Admin - Domain Admins&#039;;&lt;br /&gt;
CREATE TABLE log (&lt;br /&gt;
    &amp;quot;timestamp&amp;quot; timestamp with time zone DEFAULT now(),&lt;br /&gt;
    username character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;action&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    data text DEFAULT &#039;&#039;::text NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE log IS &#039;Postfix Admin - Log&#039;;&lt;br /&gt;
CREATE TABLE mailbox (&lt;br /&gt;
    username character varying(255) NOT NULL,&lt;br /&gt;
    &amp;quot;password&amp;quot; character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    name character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    maildir character varying(255) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    quota integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    modified timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
COMMENT ON TABLE mailbox IS &#039;Postfix Admin - Virtual Mailboxes&#039;;&lt;br /&gt;
CREATE TABLE vacation (&lt;br /&gt;
    email character varying(255) NOT NULL,&lt;br /&gt;
    subject character varying(255) NOT NULL,&lt;br /&gt;
    body text NOT NULL,&lt;br /&gt;
    &amp;quot;domain&amp;quot; character varying(255) NOT NULL,&lt;br /&gt;
    created timestamp with time zone DEFAULT now(),&lt;br /&gt;
    active boolean DEFAULT true NOT NULL&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE vacation_notification (&lt;br /&gt;
    on_vacation character varying(255) NOT NULL,&lt;br /&gt;
    notified character varying(255) NOT NULL,&lt;br /&gt;
    notified_at timestamp with time zone DEFAULT now() NOT NULL&lt;br /&gt;
);&lt;br /&gt;
ALTER TABLE ONLY &amp;quot;admin&amp;quot;&lt;br /&gt;
    ADD CONSTRAINT admin_key PRIMARY KEY (username);&lt;br /&gt;
ALTER TABLE ONLY alias&lt;br /&gt;
    ADD CONSTRAINT alias_key PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY &amp;quot;domain&amp;quot;&lt;br /&gt;
    ADD CONSTRAINT domain_key PRIMARY KEY (&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY mailbox&lt;br /&gt;
    ADD CONSTRAINT mailbox_key PRIMARY KEY (username);&lt;br /&gt;
ALTER TABLE ONLY vacation_notification&lt;br /&gt;
    ADD CONSTRAINT vacation_notification_pkey PRIMARY KEY (on_vacation, notified);&lt;br /&gt;
ALTER TABLE ONLY vacation&lt;br /&gt;
    ADD CONSTRAINT vacation_pkey PRIMARY KEY (email);&lt;br /&gt;
CREATE INDEX alias_address_active ON alias USING btree (address, active);&lt;br /&gt;
CREATE INDEX domain_domain_active ON &amp;quot;domain&amp;quot; USING btree (&amp;quot;domain&amp;quot;, active);&lt;br /&gt;
CREATE INDEX mailbox_username_active ON mailbox USING btree (username, active);&lt;br /&gt;
CREATE INDEX vacation_email_active ON vacation USING btree (email, active);&lt;br /&gt;
ALTER TABLE ONLY alias&lt;br /&gt;
    ADD CONSTRAINT alias_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY domain_admins&lt;br /&gt;
    ADD CONSTRAINT domain_admins_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY mailbox&lt;br /&gt;
    ADD CONSTRAINT mailbox_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY vacation&lt;br /&gt;
    ADD CONSTRAINT vacation_domain_fkey FOREIGN KEY (&amp;quot;domain&amp;quot;) REFERENCES &amp;quot;domain&amp;quot;(&amp;quot;domain&amp;quot;);&lt;br /&gt;
ALTER TABLE ONLY vacation_notification&lt;br /&gt;
    ADD CONSTRAINT vacation_notification_on_vacation_fkey FOREIGN KEY (on_vacation) REFERENCES vacation(email) ON DELETE CASCADE;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Baasi postfix_gps schema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CREATE TABLE network (&lt;br /&gt;
    address character varying(16) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE pattern (&lt;br /&gt;
    expression character varying(200) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE recipient (&lt;br /&gt;
    address character varying(200) DEFAULT &#039;&#039;::character varying NOT NULL,&lt;br /&gt;
    &amp;quot;comment&amp;quot; character varying(30) DEFAULT &#039;&#039;::character varying&lt;br /&gt;
);&lt;br /&gt;
CREATE TABLE triplet (&lt;br /&gt;
    client_address character varying(40),&lt;br /&gt;
    sender character varying(160) NOT NULL,&lt;br /&gt;
    recipient character varying(160) NOT NULL,&lt;br /&gt;
    ip64 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip32 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip16 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    ip8 numeric(4,0) DEFAULT 0 NOT NULL,&lt;br /&gt;
    count integer DEFAULT 0 NOT NULL,&lt;br /&gt;
    uts integer NOT NULL&lt;br /&gt;
);&lt;br /&gt;
ALTER TABLE ONLY network&lt;br /&gt;
    ADD CONSTRAINT network_pkey PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY pattern&lt;br /&gt;
    ADD CONSTRAINT pattern_pkey PRIMARY KEY (expression);&lt;br /&gt;
ALTER TABLE ONLY recipient&lt;br /&gt;
    ADD CONSTRAINT recipient_pkey PRIMARY KEY (address);&lt;br /&gt;
ALTER TABLE ONLY triplet&lt;br /&gt;
    ADD CONSTRAINT triplet_pkey PRIMARY KEY (recipient, sender, ip64, ip32, ip16, ip8);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eeldan, et postgresql&#039;i seadistusega tuled ise toime - dokumenatsioon on selleks täitsa piisav.&lt;br /&gt;
&lt;br /&gt;
==== Spam &amp;amp; Viirused ====&lt;br /&gt;
&lt;br /&gt;
=== Amavis ===&lt;br /&gt;
amavisd-new teostab nii spam&#039;i kui ka viiruse kontrolli. Eelnevalt postfix&#039;i confis sai ta seadistatud nõndaviisi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
content_filter=amavis:[127.0.0.1]:65024&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/amavisd.conf &#039;i olulised read&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$max_servers = 2;            # num of pre-forked children (2..15 is common), -m&lt;br /&gt;
$daemon_user  = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis), -u&lt;br /&gt;
$daemon_group = &#039;vscan&#039;;     # (no default;  customary: vscan or amavis), -g&lt;br /&gt;
$mydomain = &#039;domeen.ee&#039;;   # a convenient default for other settings&lt;br /&gt;
$inet_socket_port = 65024;   # listen on this local TCP port(s)&lt;br /&gt;
$myhostname = &#039;mail.domeen.ee&#039;;  # must be a fully-qualified domain name!&lt;br /&gt;
@av_scanners = (&lt;br /&gt;
&lt;br /&gt;
 [&#039;ClamAV-clamd&#039;,&lt;br /&gt;
   \&amp;amp;ask_daemon, [&amp;quot;CONTSCAN {}\n&amp;quot;, &amp;quot;/var/run/clamav/clamd&amp;quot;],&lt;br /&gt;
   qr/\bOK$/, qr/\bFOUND$/,&lt;br /&gt;
   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siin on siis ära määratud, et amavisd-new kuulab pordil 65024 ja kasutajaks on vscan.&lt;br /&gt;
Antiviiruse kontrolli teeb ta läbi ClamAV&#039;i, millega ta suhtleb üle unix socketi.. /var/run/clamav/clamd.&lt;br /&gt;
&lt;br /&gt;
=== ClamAV ===&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/clamd.conf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
LogFile /var/log/clamav/clamd.log&lt;br /&gt;
LogFileMaxSize 20M&lt;br /&gt;
LogTime yes&lt;br /&gt;
LogVerbose no&lt;br /&gt;
PidFile /var/run/clamav/clamd.pid&lt;br /&gt;
DatabaseDirectory /var/db/clamav&lt;br /&gt;
LocalSocket /var/run/clamav/clamd&lt;br /&gt;
FixStaleSocket yes&lt;br /&gt;
MaxConnectionQueueLength 30&lt;br /&gt;
StreamMaxLength 50M&lt;br /&gt;
MaxThreads 20&lt;br /&gt;
User vscan&lt;br /&gt;
AllowSupplementaryGroups yes&lt;br /&gt;
ExitOnOOM yes&lt;br /&gt;
Debug yes&lt;br /&gt;
LeaveTemporaryFiles no&lt;br /&gt;
ScanMail yes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LocalSocket peab olema sama mis amavisd.conf &#039;s, ehk siis /var/run/clamav/clamd&lt;br /&gt;
Samuti peab ka kasutajaks olema määratud vscan, muidu ei saa amavisd clamd&#039;ga suhelda kui tal socketisse kirjutamiseks õigusi pole.&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/freshclamd.conf&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
DatabaseDirectory /var/db/clamav&lt;br /&gt;
UpdateLogFile /var/log/clamav/freshclam.log&lt;br /&gt;
LogVerbose no&lt;br /&gt;
PidFile /var/run/clamav/freshclam.pid&lt;br /&gt;
DatabaseOwner vscan&lt;br /&gt;
AllowSupplementaryGroups yes&lt;br /&gt;
DatabaseMirror database.clamav.net&lt;br /&gt;
ScriptedUpdates yes&lt;br /&gt;
Checks 24&lt;br /&gt;
NotifyClamd /usr/local/etc/clamd.conf&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jällegi, user vscan.&lt;br /&gt;
&lt;br /&gt;
Siinkohal tasuks ära märkida, et esialgu kuuluvad /var/db/clamav ja /var/log/clamav clamav userile.. seega tuleks need vscan userile chownida.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Postfix-GPS ehk Greylist ===&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/gps.conf&lt;br /&gt;
&amp;lt;code&amp;gt;mode=normal&lt;br /&gt;
dbtype=pgsql&lt;br /&gt;
db_host=localhost&lt;br /&gt;
db_username=postfix&lt;br /&gt;
db_password=pass&lt;br /&gt;
db_dbname=postfix_gps&lt;br /&gt;
timeout=60&lt;br /&gt;
wl_pattern=dbcached&lt;br /&gt;
wl_network=dbcached&lt;br /&gt;
wl_recipient=db&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mailman ====&lt;br /&gt;
&lt;br /&gt;
Kõik listid hakkavad asuma list.domeen.ee domeeni all ( mis peab ka DNS&#039;s reaalselt eksisteerima ). Kuna mailman kuulutab kõik failid oma kodukataloogis /usr/local/mailman mailman kasutajale kuuluvaks, siis tuleb postfix&#039;i kasutaja ka mailman&#039;i gruppi lisada - muidu ei hakka listi aliased kahjuks tööle. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
pw groupmod mailman -m postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seejärel tuleks chmod&#039;da /usr/local/mailman/data all asuvad alias failid nii, et mailman&#039;i grupp ( kuhu nüüd postfixi kasutaja kuulub.. ) neid kirjutada saaks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
chmod 660 /usr/local/mailman/data/aliases /usr/local/mailman/data/aliases.db&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mailman&#039;i enda config võib välja näha selline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
MTA = &#039;Postfix&#039;&lt;br /&gt;
SMTPHOST = &amp;quot;localhost&amp;quot;&lt;br /&gt;
SMTPPORT = 65025&lt;br /&gt;
ALLOW_SITE_ADMIN_COOKIES = Yes&lt;br /&gt;
DEFAULT_URL_PATTERN = &#039;https://%s/mailman/&#039;&lt;br /&gt;
PUBLIC_ARCHIVE_URL = &#039;https://%(hostname)s/pipermail/%(listname)s&#039;&lt;br /&gt;
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mailman räägib pordiga 65025 sel põhjusel, et selle pordi pealt viirusekontrolli ei tehta. Viirusekontrolli teostatakse siis, kui kirjad listi tulevad - seega pole neid samu kirju välja saates vaja topelt kontrollida.&lt;br /&gt;
&lt;br /&gt;
Kui kirjad tulevad list.domeen.ee aadresile, siis antakse need postfixi poolt üle /usr/local/mailman/bin/postfix-to-mailman.py scriptile ( vt. postfixi master.cf  ja transport faile )&lt;br /&gt;
&lt;br /&gt;
See näeb välja selline:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#!/usr/local/bin/python&lt;br /&gt;
# Configuration variables - Change these for your site if necessary.&lt;br /&gt;
MailmanHome = &amp;quot;/usr/local/mailman&amp;quot;; # Mailman home directory.&lt;br /&gt;
MailmanOwner = &amp;quot;postmaster@domeen.ee&amp;quot;; # Postmaster and abuse mail recipient.&lt;br /&gt;
# End of configuration variables.&lt;br /&gt;
# postfix-to-mailman-2.1.py (to be installed as postfix-to-mailman.py)&lt;br /&gt;
#&lt;br /&gt;
# Interface mailman to a postfix with a mailman transport. Does not require&lt;br /&gt;
# the creation of _any_ aliases to connect lists to your mail system.&lt;br /&gt;
#&lt;br /&gt;
# Dax Kelson, dkelson@gurulabs.com, Sept 2002.&lt;br /&gt;
# coverted from qmail to postfix interface&lt;br /&gt;
# Jan 2003: Fixes for Mailman 2.1&lt;br /&gt;
# Thanks to Simen E. Sandberg &amp;lt;senilix@gallerbyen.net&amp;gt;&lt;br /&gt;
# Feb 2003: Change the suggested postfix transport to support VERP&lt;br /&gt;
# Thanks to Henrique de Moraes Holschuh &amp;lt;henrique.holschuh@ima.sp.gov.br&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# This script was originally qmail-to-mailman.py by:&lt;br /&gt;
# Bruce Perens, bruce@perens.com, March 1999.&lt;br /&gt;
# This is free software under the GNU General Public License.&lt;br /&gt;
#&lt;br /&gt;
# This script is meant to be called from ~mailman/postfix-to-mailman.py. &lt;br /&gt;
# It catches all mail to a virtual domain, eg &amp;quot;lists.example.com&amp;quot;.&lt;br /&gt;
# It looks at the  recipient for each mail message and decides if the mail is&lt;br /&gt;
# addressed to a valid list or not, and bounces the message with a helpful&lt;br /&gt;
# suggestion if it&#039;s not addressed to a list. It decides if it is a posting, &lt;br /&gt;
# a list command, or mail to the list administrator, by checking for the&lt;br /&gt;
#  -admin, -owner, and -request addresses. It will recognize a list as soon&lt;br /&gt;
# as the list is created, there is no need to add _any_ aliases for any list.&lt;br /&gt;
# It recognizes mail to postmaster, mailman-owner, abuse, mailer-daemon, root,&lt;br /&gt;
# and owner, and routes those mails to MailmanOwner as defined in the&lt;br /&gt;
# configuration variables, above.&lt;br /&gt;
#&lt;br /&gt;
# INSTALLATION:&lt;br /&gt;
#&lt;br /&gt;
# Install this file as ~mailman/postfix-to-mailman.py&lt;br /&gt;
#&lt;br /&gt;
# To configure a virtual domain to connect to mailman, edit Postfix thusly:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/main.cf:&lt;br /&gt;
#    relay_domains = ... lists.example.com&lt;br /&gt;
#    transport_maps = hash:/etc/postfix/transport&lt;br /&gt;
#    mailman_destination_recipient_limit = 1&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/transport:&lt;br /&gt;
#   lists.example.com   mailman:&lt;br /&gt;
#&lt;br /&gt;
# /etc/postfix/master.cf&lt;br /&gt;
#    mailman unix  -       n       n       -       -       pipe&lt;br /&gt;
#      flags=FR user=mailman:mailman &lt;br /&gt;
#      argv=/var/mailman/postfix-to-mailman.py ${nexthop} ${user}&lt;br /&gt;
# &lt;br /&gt;
#&lt;br /&gt;
# Replace list.example.com above with the name of the domain to be connected&lt;br /&gt;
# to Mailman. Note that _all_ mail to that domain will go to Mailman, so you&lt;br /&gt;
# don&#039;t want to put the name of your main domain here. Typically a virtual&lt;br /&gt;
# domain lists.domain.com is used for Mailman, and domain.com for regular&lt;br /&gt;
# email.&lt;br /&gt;
#&lt;br /&gt;
import sys, os, re, string&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    os.nice(5)  # Handle mailing lists at non-interactive priority.&lt;br /&gt;
                # delete this if you wish&lt;br /&gt;
&lt;br /&gt;
    os.chdir(MailmanHome + &amp;quot;/lists&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        local = sys.argv[2]&lt;br /&gt;
    except:&lt;br /&gt;
        # This might happen if we&#039;re not using Postfix&lt;br /&gt;
        sys.stderr.write(&amp;quot;LOCAL not set?\n&amp;quot;)&lt;br /&gt;
        sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
    local = string.lower(local)&lt;br /&gt;
    local = re.sub(&amp;quot;^mailman-&amp;quot;,&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    names = (&amp;quot;root&amp;quot;, &amp;quot;postmaster&amp;quot;, &amp;quot;mailer-daemon&amp;quot;, &amp;quot;mailman-owner&amp;quot;, &amp;quot;owner&amp;quot;,&lt;br /&gt;
             &amp;quot;abuse&amp;quot;)&lt;br /&gt;
    for i in names:&lt;br /&gt;
        if i == local:&lt;br /&gt;
            os.execv(&amp;quot;/usr/sbin/sendmail&amp;quot;,&lt;br /&gt;
                     (&amp;quot;/usr/sbin/sendmail&amp;quot;, MailmanOwner))&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
&lt;br /&gt;
    type = &amp;quot;post&amp;quot;&lt;br /&gt;
    types = ((&amp;quot;-admin$&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
             (&amp;quot;-owner$&amp;quot;, &amp;quot;owner&amp;quot;),&lt;br /&gt;
             (&amp;quot;-request$&amp;quot;, &amp;quot;request&amp;quot;),&lt;br /&gt;
             (&amp;quot;-bounces$&amp;quot;, &amp;quot;bounces&amp;quot;),&lt;br /&gt;
             (&amp;quot;-confirm$&amp;quot;, &amp;quot;confirm&amp;quot;),&lt;br /&gt;
             (&amp;quot;-join$&amp;quot;, &amp;quot;join&amp;quot;),&lt;br /&gt;
             (&amp;quot;-leave$&amp;quot;, &amp;quot;leave&amp;quot;),&lt;br /&gt;
             (&amp;quot;-subscribe$&amp;quot;, &amp;quot;subscribe&amp;quot;),&lt;br /&gt;
             (&amp;quot;-unsubscribe$&amp;quot;, &amp;quot;unsubscribe&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    for i in types:&lt;br /&gt;
        if re.search(i[0],local):&lt;br /&gt;
            type = i[1]&lt;br /&gt;
            local = re.sub(i[0],&amp;quot;&amp;quot;,local)&lt;br /&gt;
&lt;br /&gt;
    if os.path.exists(local):&lt;br /&gt;
        os.execv(MailmanHome + &amp;quot;/mail/mailman&amp;quot;,&lt;br /&gt;
                 (MailmanHome + &amp;quot;/mail/mailman&amp;quot;, type, local))&lt;br /&gt;
    else:&lt;br /&gt;
        bounce()&lt;br /&gt;
    sys.exit(75)&lt;br /&gt;
&lt;br /&gt;
def bounce():&lt;br /&gt;
    bounce_message = &amp;quot;&amp;quot;&amp;quot;\&lt;br /&gt;
TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on&lt;br /&gt;
http://%s/&lt;br /&gt;
That web page will help you subscribe or unsubscribe, and will&lt;br /&gt;
give you directions on how to post to each mailing list.\n&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    sys.stderr.write(bounce_message % (sys.argv[1]))&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    sys.exit(main())&lt;br /&gt;
except SystemExit, argument:&lt;br /&gt;
    sys.exit(argument)&lt;br /&gt;
&lt;br /&gt;
except Exception, argument:&lt;br /&gt;
    info = sys.exc_info()&lt;br /&gt;
    trace = info[2]&lt;br /&gt;
    sys.stderr.write(&amp;quot;%s %s\n&amp;quot; % (sys.exc_type, argument))&lt;br /&gt;
    sys.stderr.write(&amp;quot;Line %d\n&amp;quot; % (trace.tb_lineno))&lt;br /&gt;
    sys.exit(75)       # Soft failure, try again later.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Toomas</name></author>
	</entry>
</feed>