GNU/Linux >> Znalost Linux >  >> Ubuntu

Virtuální uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (Ubuntu 13.10)

Tento návod je chráněn autorským právem (c) 2014 od Falko Timme &Srijan Kishore. Je odvozen z tutoriálu od Christopha Haase, který můžete najít na http://workaround.org. Tento výukový program můžete volně používat pod licencí Creative Commons 2.5 nebo jakoukoli novější verzí.

Tento dokument popisuje, jak nainstalovat poštovní server Postfix, který je založen na virtuálních uživatelích a doménách, tj. uživatelích a doménách, které jsou v databázi MySQL. Také předvedu instalaci a konfiguraci Courier (Courier-POP3, Courier-IMAP), aby se Courier mohl autentizovat proti stejné databázi MySQL, kterou používá Postfix.

Výsledný server Postfix je schopen SMTP-AUTH a TLS a kvóta (kvóta není standardně zabudována do Postfixu, ukážu, jak váš Postfix vhodně opravit). Hesla jsou uložena šifrovaně formulář v databázi (většina dokumentů, které jsem našel, se zabývala hesly v prostém textu, což je bezpečnostní riziko). Kromě toho tento návod popisuje instalaci Amavisd , SpamAssassin a ClamAV takže e-maily budou kontrolovány na spam a viry. Také ukážu, jak nainstalovat SquirrelMail jako rozhraní webové pošty, aby uživatelé mohli číst a odesílat e-maily a měnit svá hesla.

Výhodou takového „virtuálního“ nastavení (virtuální uživatelé a domény v databázi MySQL) je, že je mnohem výkonnější než nastavení založené na „skutečných“ uživatelích systému. S tímto virtuálním nastavením může váš poštovní server obsluhovat tisíce domén a uživatelů. Kromě toho je snazší administrovat, protože s databází MySQL se musíte zabývat pouze tehdy, když přidáváte nové uživatele/domény nebo upravujete stávající. Žádné další postmapové příkazy pro vytváření db souborů, žádné další načítání Postfixu atd. Pro správu databáze MySQL můžete použít webové nástroje jako phpMyAdmin, který bude také nainstalován v tomto návodu. Třetí výhodou je, že uživatelé mají jako uživatelské jméno e-mailovou adresu (namísto uživatelského jména + e-mailové adresy), což je snazší pochopit a zapamatovat si.

Tento návod je myšlen jako praktický průvodce; nepokrývá teoretická východiska. Jsou zpracovány v mnoha dalších dokumentech na webu.

Tento dokument je dodáván bez jakékoli záruky! Chci říci, že to není jediný způsob, jak takový systém nastavit. Existuje mnoho způsobů, jak tohoto cíle dosáhnout, ale já volím tento způsob. Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

Tento tutoriál je založen na serveru Ubuntu 13.10 (Saucy Salamander), takže před pokračováním v tomto kurzu byste měli nastavit základní instalaci serveru Ubuntu 13.10. Systém by měl mít statickou IP adresu. V tomto návodu používám jako svou IP adresu 192.168.0.100 a jako název hostitele server1.example.com.

Ujistěte se, že jste přihlášeni jako root (zadejte

sudo su

stát se rootem), protože všechny kroky z tohoto tutoriálu musíme spustit jako uživatel root.

Je velmi důležité, abyste z /bin/sh udělali symbolický odkaz na /bin/bash...

dpkg-reconfigure dash

Použít pomlčku jako výchozí systémové prostředí (/bin/sh)? <-- Ne

... a že deaktivujete AppArmor:

/etc/init.d/apparmor stop 
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

 

2 Instalace Postfix, Courier, Saslauthd, MySQL, phpMyAdmin

Chcete-li nainstalovat Postfix, Courier, Saslauthd, MySQL a phpMyAdmin, jednoduše spustíme

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-modulssl2 libsasl2- libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass

Budete požádáni o několik otázek:

Nové heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
Opakujte heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
Vytvořit adresáře pro webovou administraci? <-- Ne
Obecný typ konfigurace pošty:<-- Internetová stránka
Název systémové pošty:<-- server1.example.com
Je vyžadován certifikát SSL <-- OK
Webový server se překonfiguruje automaticky:<-- apache2
Nakonfigurujte databázi pro phpmyadmin pomocí dbconfig-common? <-- Ne

3 Použití opravy kvót na Postfix

Musíme získat zdrojové kódy Postfixu, opravit jej pomocí opravy kvót, vytvořit nové balíčky Postfix .deb a nainstalovat tyto balíčky .deb:

apt-get build-dep postfix
cd /usr/src
apt-get source postfix

(Ujistěte se, že v následujících příkazech používáte správnou verzi Postfixu. Mám nainstalovaný Postfix 2.10.2. Verzi Postfixu můžete zjistit spuštěním

postconf -d | grep mail_version

Výstup by měl vypadat takto:

[e-mail chráněný]:/usr/src# postconf -d | grep mail_version
mail_version =2.10.2
milter_macro_v =$mail_name $mail_version
[e-mail chráněný]:/usr/src#

wget http://vda.sourceforge.net/VDA/postfix-vda-v13-2.10.0.patch
cd postfix-2.10.2
patch -p1 <../postfix- vda-v13-2.10.0.patch

Dále otevřete debian/rules a změňte DEB_BUILD_HARDENING z 1 na 0:

vi debian/rules
[...]export DEB_BUILD_HARDENING=0[...]

Pokud to neuděláte, vaše sestavení se nezdaří s následujícími chybovými zprávami:

maildir.c:Ve funkci âdeliver_maildirâ:
maildir.c:974:17:chyba:formát není řetězcový literál a žádné argumenty formátu [-Werror=format-security]
maildir.c:977:17:error:formát není řetězcový literál a žádné argumenty formátu [-Werror=format-security]
maildir.c:983:17:error:formát není řetězcový literál a žádné argumenty formátu [-Werror=format-security]
maildir.c:986:17:chyba:formát není řetězcový literál a žádné argumenty formátu [-Werror=format-security]
maildir.c:Ve funkci âsql2fileâ:
maildir.c:404:25:varování:ignorování návratové hodnoty âreadâ, deklarované pomocí atributu warning_unused_result [-Wunused-result]
maildir.c:417:26:varování:ignorování návratové hodnoty âwriteâ, deklarované s atributem warning_unused_result [-Wunused-result]
cc1:některá varování jsou považována za chyby
make:*** [maildir.o] Chyba 1
make:Opuštění adresáře `/usr/src/postfix -2.10.2/src/virtual'
make[1]:*** [aktualizace] Chyba 1
make[1]:Opuštění adresáře `/usr/src/postfix-2.10.2'
make:*** [build] Chyba 2
dpkg-buildpackage:chyba:sestavení debian/rules dalo chybu stav ukončení 2
[ email protected]:/usr/src/postfix-2.10.2#

Nyní můžeme sestavit nové balíčky Postfix .deb:

dpkg-buildpackage

Nyní přejdeme o jeden adresář výše, tam byly vytvořeny nové balíčky .deb:

cd ..

Příkaz

ls -l

zobrazí dostupné balíčky:

[e-mail chráněný]:/usr/src# ls -l
celkem 7124
drwxr-xr-x 18 kořenový kořen    4096 16. dubna 04:29 postfix-2.10.2
- rw-r--r--  1 kořenový kořen   48594 16. dubna 04:29 postfix-cdb_2.10.2-1_amd64.deb
-rw-r--r--  1 kořenový adresář  161974 16. dubna 04:29 postfix- dev_2.10.2-1_all.deb
-rw-r--r--  1 kořenový kořen 1094344 16. dubna 04:29 postfix-doc_2.10.2-1_all.deb
-rw-r--r- -  1 kořenový kořen   57342 16. dubna 04:29 postfix-ldap_2.10.2-1_amd64.deb
-rw-r--r--  1 kořenový adresář   50554 16. dubna 04:29 postfix-mysql_2.10.
-rw-r--r--  1 kořenový adresář   50804 16. dubna 04:29 postfix-pcre_2.10.2-1_amd64.deb
-rw-r--r--  1 kořenový adresář   50756 16. dubna 04:29 postfix-pgsql_2.10.2-1_amd64.deb
-rw-r--r--  1 kořenový adresář   55701 Jun  7  2013 postfix-vda-v13-2.10.0.patch
-rw- r--r--  1 kořenový kořen  282175 16. dubna 04:28 postfix_2.10.2-1.diff.gz
-rw-r--r--  1 kořenový kořen    1522 16. dubna 04:28 postfix_2.10.2- 1.dsc
-rw-r--r--  1 kořenový kořen    3899 16. dubna 04:29 postfix_2.10.2-1_amd64. změny
-rw-r--r--  1 kořenový adresář 1542368 16. dubna 04:29 postfix_2.10.2-1_amd64.deb
-rw-r--r--  1 kořenový adresář 3828326 12. září 2013 postfix_2.10.2.orig.tar.gz

Vyberte balíčky postfix a postfix-mysql a nainstalujte je takto:

dpkg -i postfix_2.10.2-1_amd64.deb postfix-mysql_2.10.2-1_amd64.deb

4 Vytvoření databáze MySQL pro Postfix/Courier

Nyní vytvoříme databázi s názvem mail:

mysqladmin -u root -p vytvořit poštu

Budete požádáni o tuto otázku:

Zadejte heslo:<-- yourrootsqlpassword

Dále přejdeme do prostředí MySQL:

mysql -u root -p

V prostředí MySQL vytvoříme uživatele mail_admin s heslem mail_admin_password (nahraďte ho vlastním heslem), který má oprávnění SELECT, INSERT, UPDATE, DELETE v poštovní databázi. Tento uživatel bude používán Postfixem a Courierem pro připojení k poštovní databázi:

 UDĚLEJTE VÝBĚR, INSERT, AKTUALIZUJTE, DELETE NA e-mailu.* TOMU 'mail_admin'@'localhost' IDENTIFIKOVANÉ PODLE 'mail_admin_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@ 'localhost.localdomain' IDENTIFIKOVÁNO OD 'mail_admin_password';
FLUSH PRIVILEGES;

Stále v prostředí MySQL vytváříme tabulky potřebné pro Postfix a Courier:

POUŽÍVEJTE poštu;
CREATE TABLE domény (
doména varchar(50) NOT NULL,
PRIMÁRNÍ KLÍČ (doména) )
ENGINE=MyISAM;
CREATE TABLE přesměrování (
zdroj varchar(80) NOT NULL,
cílový TEXT NENÍ NULL,
PRIMÁRNÍ KLÍČ (zdroj) )
ENGINE=MyISAM;
Uživatelé CREATE TABLE (
email varchar(80) NOT NULL,
heslo varchar(20) NOT NULL,
kvóta INT(10) DEFAULT '10485760',
PRIMÁRNÍ KEY (e-mail)
) ENGINE=MyISAM;
CREATE TABLE transport (
doména varchar(128) NOT NULL výchozí '',
transport varchar(128) NOT NULL výchozí '',
doména UNIQUE KEY (doména)
) ENGINE=MyISAM;
ukončit;

Jak jste si možná všimli, s ukončením; příkaz opustili jsme prostředí MySQL a jsme zpět v prostředí Linux.

domény tabulka bude ukládat každou virtuální doménu, pro kterou by měl Postfix přijímat e-maily (např. example.com ).

doména
example.com

přeposílání tabulka je pro alias jedné e-mailové adresy na jinou, např. přeposílat e-maily pro [e-mail chráněný] na [e-mail chráněn] .

zdroj cíl
[e-mail chráněn] [e-mail chráněn]

uživatelé tabulka ukládá všechny virtuální uživatele (tj. e-mailové adresy, protože e-mailová adresa a uživatelské jméno jsou stejné) a hesla (v šifrovaném formulář!) a hodnotu kvóty pro každou poštovní schránku (v tomto příkladu je výchozí hodnota 10485760 bajtů, což znamená 10 MB).

e-mail heslo kvóta
[e-mail chráněn] No9.E4skNvGa. („tajné“ v zašifrované podobě) 10485760

doprava tabulka je volitelná, je pro pokročilé uživatele. Umožňuje přeposílat maily pro jednotlivé uživatele, celé domény nebo všechny maily na jiný server. Například,

doména doprava
example.com smtp:[1.2.3.4]

přeposílá všechny e-maily pro example.com přes protokol smtp na server s IP adresou 1.2.3.4 (hranaté závorky [] znamená "neprovádět vyhledávání MX DNS záznamu" (což má smysl pro IP adresy...). Pokud místo toho použijete plně kvalifikovaný název domény (FQDN), nepoužijete hranaté závorky.

BTW, (předpokládám, že IP adresa vašeho systému poštovního serveru je 192.168.0.100) můžete přistupovat k phpMyAdmin přes http://192.168.0.100/phpmyadmin/ v prohlížeči a přihlásit se jako mail_admin. Pak se můžete podívat do databáze. Později můžete použít phpMyAdmin ke správě vašeho poštovního serveru.

5 Konfigurace Postfixu

Nyní musíme Postfixu sdělit, kde najde všechny informace v databázi. Proto musíme vytvořit šest textových souborů. Všimnete si, že říkám Postfixu, aby se připojil k MySQL na IP adrese 127.0.0.1 namísto localhost. Je to proto, že Postfix běží v chroot jail a nemá přístup k MySQL socketu, ke kterému by se pokusil připojit, kdybych Postfixu řekl, aby používal localhost. Pokud použiji 127.0.0.1 Postfix používá TCP networking pro připojení k MySQL, což není problém ani v chroot jail (alternativou by bylo přesunout MySQL socket do chroot jail, což způsobuje některé další problémy).

Ujistěte se prosím, že /etc/mysql/my.cnf obsahuje následující řádek:

vi /etc/mysql/my.cnf
[...]# Místo přeskočení sítě je nyní výchozím nastavením poslouchat pouze na # localhost, který je více kompatibilní a není méně bezpečný.bind-address =127.0.0.1[...]

Pokud jste museli upravit /etc/mysql/my.cnf, restartujte prosím MySQL nyní:

/etc/init.d/mysql restart

Spustit

netstat -tap | grep mysql

abyste se ujistili, že MySQL naslouchá na 127.0.0.1 (localhost.localdomain):

[e-mail chráněn]:~# netstat -tap | grep mysql
tcp        0      0 localhost.localdo:mysql *:*                      POSLECHNOUT       24970/mysqld   
:~# Nyní vytvoříme našich šest textových souborů.

vi /etc/postfix/mysql-virtual_domains.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =VYBRAT doménu JAKO virtuální Z domén WHERE domain='%s'hosts =127.0.0.1
vi /etc/postfix/mysql-virtual_forwardings.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =SELECT destination FROM forwarding WHERE source='%s'hosts =127.0.0.1
vi /etc/postfix/mysql-virtual_mailboxes.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =SELECT CONCAT(SUBSTRING_INDEX(e-mail,'@',-1),'/',SUBSTRING_INDEX(e-mail,'@', 1),'/') OD uživatelů WHERE email='%s'hosts =127.0.0.1
vi /etc/postfix/mysql-virtual_email2email.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =SELECT email FROM users WHERE email='%s'hosts =127.0.0.1
vi /etc/postfix/mysql-virtual_transports.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =SELECT transport FROM transport WHERE domain='%s'hosts =127.0.0.1
vi /etc/postfix/mysql-virtual_mailbox_limit_maps.cf
user =mail_adminpassword =mail_admin_passworddbname =mailquery =SELECT kvóta FROM users WHERE email='%s'hosts =127.0.0.1

Poté změňte oprávnění a skupinu těchto souborů:

chmod o=/etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf

Nyní vytvoříme uživatele a skupinu s názvem vmail s domovským adresářem /home/vmail. Zde budou uloženy všechny poštovní schránky.

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m

Dále provedeme konfiguraci Postfixu. Ujistěte se, že jste nahradili server1.example.com platným FQDN, jinak váš Postfix nemusí fungovat správně!

postconf -e 'myhostname =server1.example.com'
postconf -e 'mydestination =server1.example.com, localhost, localhost.localdomain'
postconf -e 'mynetworks =127.0.0.0 /8'
postconf -e 'virtual_alias_domains ='
postconf -e 'virtual_alias_maps =proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual. cf'
postconf -e 'virtual_mailbox_domains =proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'
postconf -e 'virtual_mailbox_maps =proxy:mysql:/etc/postfix/mysql-virtu. cf'
postconf -e 'virtual_mailbox_base =/home/vmail'
postconf -e 'virtual_uid_maps =static:5000'
postconf -e 'virtual_gid_maps =static:5000'
postconf -e 'smtpd_sasl_auth_enable =ano'
postconf -e 'broken_sasl_auth_clients =ano'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpdnetrept_my =yes' on'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/smtpd.cert'
postconf -e 'smtpd_tls_key_poste =/etct key'
postconf -e 'transport_maps =proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'
postconf -e 'virtual_maildir_extended =yes'
postconf -e 'virtual_mailbox_limit_maps =:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf'
postconf -e 'virtual_mailbox_limit_override =ano'
postconf -e 'virtual_maildir_limit_message ="Uživatel, kterého se pokoušíte oslovit, překročil kvótu."'
postconf -e 'virtual_overquota_bounce =yes'
postconf -e ‚proxy_read_maps =$ místní_příjemce_mapy $ mydestination $ virtual_alias_maps $ virtual_alias_domains $ virtual_mailbox_maps $ virtual_mailbox_domains $ relay_recipient_maps $ relay_domains $ canonical_maps $ sender_canonical_maps $ recipient_canonical_maps $ relocated_maps $ transport_maps $ mynetworks $virtual_mailbox_limit_maps'

Poté vytvoříme SSL certifikát, který je potřeba pro TLS:

cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

Název země (2 písmenný kód) [AU]:<-- Zadejte název země (např. „DE“).
Název státu nebo provincie (celé jméno) [Některý stát]:<-- Zadejte svůj stát nebo název provincie.
Název lokality (např. město) []:<-- Zadejte své město.
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- Zadejte název organizace (např. název vaší společnosti).
Název organizační jednotky (např. sekce) []:<-- Zadejte název organizační jednotky (např. „IT oddělení“).
Běžný název (např. VAŠE jméno) []:<-- Zadejte plně kvalifikovaný název domény systému (např. "server1.example.com").
E-mailová adresa []:<-- Zadejte svou e-mailovou adresu.

Poté změňte oprávnění souboru smtpd.key:

chmod o=/etc/postfix/smtpd.key

6 Konfigurace Saslauthd

První spuštění

mkdir -p /var/spool/postfix/var/run/saslauthd

Poté upravte /etc/default/saslauthd. Nastavte START na yes a změňte řádek OPTIONS="-c -m /var/run/saslauthd" na OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

vi /etc/default/saslauthd
## Nastavení démona saslauthd# Podrobnosti naleznete v /usr/share/doc/sasl2-bin/README.Debian.## Měl by se saslauthd spouštět automaticky při spuštění? (výchozí:ne)START=ano# Popis této instance saslauthd. Doporučeno.# (návrh:SASL Authentication Daemon)DESC="SASL Authentication Daemon"# Krátký název této instance saslauthd. Důrazně doporučujeme.# (suggestion:saslauthd)NAME="saslauthd"# Jaké autentizační mechanismy by měl saslauthd používat? (výchozí:pam)## Dostupné možnosti v tomto balíčku Debian:# getpwent -- použijte funkci knihovny getpwent() # kerberos5 -- použijte Kerberos 5# pam -- použijte PAM# rimap -- použijte vzdálený IMAP server# shadow - - použijte soubor lokálního stínového hesla# sasldb -- použijte soubor místní databáze sasldb# ldap -- použijte LDAP (konfigurace je v /etc/saslauthd.conf)## V jednu chvíli lze použít pouze jednu možnost. Další informace najdete na manuálové stránce saslauthd#.## Příklad:MECHANISMS="pam"MECHANISMS="pam"# Další možnosti pro tento mechanismus. (výchozí:none)# Informace o možnostech specifických pro mecha najdete na manuálové stránce saslauthd.MECH_OPTIONS=""# Kolik procesů saslauthd máme spustit? (výchozí:5)# Hodnota 0 rozvětví nový proces pro každé připojení.THREADS=5# Další možnosti (výchozí:-c -m /var/run/saslauthd)# Poznámka:MUSÍTE zadat volbu -m nebo saslauthd se nespustí!## VAROVÁNÍ:NEZADÁVEJTE VOLBU -d.# Volba -d způsobí, že saslauthd poběží v popředí místo jako# démona. TAK ZABRÁNÍ VÁŠMU SYSTÉMU V ŘÁDNÉM SPOUŠTĚNÍ. Pokud si přejete# spustit saslauthd v režimu ladění, spusťte jej pro jistotu ručně.## Informace specifické pro Debian najdete v /usr/share/doc/sasl2-bin/README.Debian.# Viz manuálová stránka saslauthd a výstup 'saslauthd -h' pro obecné# informace o těchto volbách.## Příklad pro uživatele Postfixu chroot:"-c -m /var/spool/postfix/var/run/saslauthd"# Příklad pro uživatele Postfixu bez chrootu :"-c -m /var/run/saslauthd"## Chcete-li vědět, zda váš Postfix běží chroot, zkontrolujte /etc/postfix/master.cf.# Pokud má řádek "smtp inet n - y - - smtpd" nebo "smtp inet n - - - - smtpd"# pak váš Postfix běží v chrootu.# Pokud má řádek "smtp inet n - n - - smtpd", váš Postfix NENÍ# spuštěn v chrootu.#OPTIONS ="-c -m /var/run/saslauthd"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Poté vytvořte soubor /etc/pam.d/smtp. Měl by obsahovat pouze následující dva řádky (nezapomeňte vyplnit správné údaje o databázi):

vi /etc/pam.d/smtp
požadováno ověření pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=e-mail passwdcolumn=heslo crypt=1účet dostačující pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=e-mail passwdcolumn=heslo crypt=1

Dále vytvořte soubor /etc/postfix/sasl/smtpd.conf. Mělo by to vypadat takto:

vi /etc/postfix/sasl/smtpd.conf
pwcheck_method:saslauthdmech_list:prostý loginallow_plaintext:trueauxprop_plugin:sqlsql_engine:mysqlsql_hostnames:127.0.0.1sql_user:mail_admins_data:%mail_mail_password vybrat uživatele mail_adminsql_adsl password froml protected]%r'

Dále přidejte uživatele postfixu do skupiny sasl (tím zajistíte, že Postfix má oprávnění pro přístup k saslauthd):

adduser postfix sasl

Poté restartujte Postfix a Saslauthd:

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart

7 Konfigurace kurýra

Nyní musíme Courierovi sdělit, že by se měl autentizovat proti naší databázi MySQL. Nejprve upravte /etc/courier/authdaemonrc a změňte hodnotu authmodulelist tak, aby zněla:

vi /etc/courier/authdaemonrc
[...]authmodulelist="authmysql"[...]

Poté vytvořte zálohu /etc/courier/authmysqlrc a vyprázdněte starý soubor:

cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig
cat /dev/null> /etc/courier/authmysqlrc

Poté otevřete /etc/courier/authmysqlrc a vložte do něj následující řádky:

vi /etc/courier/authmysqlrc
 MYSQL_SERVER localhostMYSQL_USERNAME mail_adminMYSQL_PASSWORD mail_admin_passwordMYSQL_PORT 0MYSQL_DATABASE mailMYSQL_USER_TABLE usersMYSQL_CRYPT_PWFIELD heslo # MYSQL_CLEAR_PWFIELD passwordMYSQL_UID_FIELD 5000MYSQL_GID_FIELD 5000MYSQL_LOGIN_FIELD emailMYSQL_HOME_FIELD "/ home / Vmail" MYSQL_MAILDIR_FIELD CONCAT (SUBSTRING_INDEX (e-mail, '@', - 1), '/',SUBSTRING_INDEX(e-mail,'@',1),'/')#kvóta MYSQL_NAME_FIELDMYSQL_QUOTA_FIELD

Během instalace se vytvoří certifikáty SSL pro IMAP-SSL a POP3-SSL s názvem hostitele localhost. Chcete-li toto změnit na správný název hostitele (server1.example.com v tomto návodu), odstraňte certifikáty...

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem

... a upravit následující dva soubory; nahraďte CN=localhost za CN=server1.example.com (v případě potřeby můžete upravit i ostatní hodnoty):

vi /etc/courier/imapd.cnf
[...]CN=server1.example.com[...]
vi /etc/courier/pop3d.cnf
[...]CN=server1.example.com[...]

Poté znovu vytvořte certifikáty...

mkimapdcert
mkpop3dcert

... a restartujte Courier:

/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart

Spuštěním

telnet localhost pop3

můžete zjistit, zda váš server POP3 funguje správně. Mělo by to vrátit +OK Dobrý den. (Zadáním příkazu quit se vrátíte zpět do prostředí Linuxu.)

[email protected]:/etc/courier# telnet localhost pop3
Zkouším ::1...
Připojeno k localhost.localdomain.
Escape znak je '^]'.
+OK Dobrý den.
<-- quit
+OK Hodně štěstí příště.
Připojení ukončeno cizím hostitelem.
[e-mail chráněn]:/etc/courier#

8 Upravit /etc/aliases

Nyní bychom měli otevřít /etc/aliases. Ujistěte se, že postmaster odkazuje na root a root na vaše vlastní uživatelské jméno nebo vaši e-mailovou adresu, např. takhle:

vi /etc/aliases
[...]postmaster:rootroot:[e-mail chráněn][...]

nebo takto (pokud je správcem vaše vlastní uživatelské jméno):

[...]postmaster:rootroot:administrator[...]

Kdykoli upravíte /etc/aliases, musíte spustit

newaliases

poté a restartujte Postfix:

/etc/init.d/postfix restart

9 Nainstalovat amavisd-new, SpamAssassin a ClamAV

Chcete-li nainstalovat amavisd-new, spamassassin a clamav, spusťte následující příkaz:

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo rozbalte bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax

Poté musíme nakonfigurovat amavisd-new. Konfigurace je rozdělena do různých souborů, které jsou umístěny v adresáři /etc/amavis/conf.d. Podívejte se na každý z nich, abyste se seznámili s konfigurací. Většina nastavení je v pořádku, musíme však upravit tři soubory:

Nejprve musíme povolit ClamAV a SpamAssassin v /etc/amavis/conf.d/15-content_filter_mode zrušením komentáře u řádků @bypass_virus_checks_maps a @bypass_spam_checks_maps:

vi /etc/amavis/conf.d/15-content_filter_mode

Soubor by měl vypadat takto:

use strict;# Tento soubor můžete upravit, abyste znovu povolili kontrolu SPAMu pomocí spamassassin# a znovu povolili antivirovou kontrolu.## Výchozí režim kontroly antiviru# Poznámka , že antivirová kontrola je ve výchozím nastavení# VYPNUTA.# Pokud ji chcete povolit, odkomentujte prosím následující řádky:@bypass_virus_checks_maps =( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);## Výchozí režim kontroly SPAM# Vezměte prosím na vědomí, že antispamová kontrola je ve výchozím nastavení# VYPNUTA.# Pokud ji chcete povolit, odkomentujte prosím následující řádky:@bypass_spam_checks_maps =( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);1; # zajistit definovanou návratnost

A pak byste se měli podívat na nastavení spamu a akce pro spam-/virus-maily v /etc/amavis/conf.d/20-debian_defaults. Pokud vám výchozí nastavení vyhovuje, není třeba nic měnit. Soubor obsahuje mnoho vysvětlení, takže zde není třeba vysvětlovat nastavení:

vi /etc/amavis/conf.d/20-debian_defaults
[...]$QUARANTINEDIR ="$MYHOME/virusmails";$quarantine_subdir_levels =1; # povolit karanténu dir hashing$log_recip_templ =undef; # deaktivovat položky protokolu úrovně 0 podle příjemce$DO_SYSLOG =1; # log přes syslogd (preferováno)$syslog_ident ='amavis'; # Identifikační značka syslog, předřazená všem zprávám$syslog_facility ='mail';$syslog_priority ='ladění'; # přepnout na info pro zrušení výstupu ladění, etc$enable_db =1; # povolit použití BerkeleyDB/libdb (SNMP a chůva)$enable_global_cache =1; # povolit použití mezipaměti založené na libdb if $enable_db=1$inet_socket_port =10024; # výchozí naslouchací socket$sa_spam_subject_tag ='***SPAM*** ';$sa_tag_level_deflt =2.0; # přidat záhlaví s informacemi o spamu, pokud je na této úrovni nebo nad ní $sa_tag2_level_deflt =6,31; # přidat hlavičky „detekován spam“ na této úrovni$sa_kill_level_deflt =6,31; # spouští akce vyhýbající se spamu$sa_dsn_cutoff_level =10; # úroveň spamu, za kterou se DSN neposílá[...]$final_virus_destiny =D_DISCARD; # (data se neztratila, viz virová karanténa)$final_banned_destiny =D_BOUNCE; # D_REJECT when front-end MTA$final_spam_destiny =D_BOUNCE;$final_bad_header_destiny =D_PASS; # Falešně pozitivní (pro spam)[...]

Nakonec upravte /etc/amavis/conf.d/50-user a přidejte řádek $pax='pax'; uprostřed:

vi /etc/amavis/conf.d/50-user
use strict;## Zde umístěte své konfigurační direktivy. Přepíší ty v# dřívějších souborech.## Dokumentaci a příklady# direktiv, které můžete použít v tomto souboru, najdete v /usr/share/doc/amavisd-new/#$pax='pax';#---- -------- Neupravujte nic pod tímto řádkem -------------1; # zajistit definovanou návratnost

Poté spusťte tyto příkazy a přidejte uživatele clamav do skupiny amavis a restartujte amavisd-new a ClamAV:

adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-freshclam restart
/etc/init.d/clamav-daemon restart

Nyní musíme nakonfigurovat Postfix tak, aby zprostředkovával příchozí e-maily přes amavisd-new:

postconf -e 'content_filter =amavis:[127.0.0.1]:10024'
postconf -e 'receive_override_options =no_address_mappings'

Poté do /etc/postfix/master.cf připojte následující řádky:

vi /etc/postfix/master.cf
[...]amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes127.0.0.1:10025 inet n - - - - smtpd -o content_filter =-o místní_příjemce_mapy =-o relay_recipient_maps =-o smtpd_restriction_classes =-o smtpd_client_restrictions =-o smtpd_helo_restrictions =-o smtpd_sender_restrictions =-o smtpd_recipient_restrictions =permit_mynetworks zamítnout -o mynetworks =127.0.0.0 / 8 -o strict_rfc821_envelopes =yes -o accept_override_options=no_unknown_recipient_checks,no_header_body_checks

Poté restartujte Postfix:

/etc/init.d/postfix restart

Nyní spusťte

netstat -tap

a měli byste vidět Postfix (master) naslouchající na portu 25 (smtp) a 10025 a amavisd-new na portu 10024:

[e-mail chráněný]:/etc/courier# netstat -tap
Aktivní internetová připojení (servery a navázané)
Proto Recv-Q Send-Q Místní adresa            Zahraniční Adresa          Sta Program          Sta /> tcp        0      0 *:http                  *:*                     LISTEN      6134/apache2
tcp        0      0 *:ssh                   *:*                     LISTEN      610/sshd
tcp        0      0 *:smtp                  *:*                     LISTEN      23128/master
tcp        0      0 localhost.localdo:10024 *:*                     LISTEN      21937/amavisd-new (
tcp        0      0 localhost.localdo:10025 *:*                     LISTEN      23128/master
tcp        0      0 localhost.localdo :mysql *:*                     LISTEN      4308/mysqld
tcp        0     52 server1.example.com:ssh 192.168.0.206:57597     ESTABLISHED 976/0
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      610/sshd
tcp6       0      0 [::]:smtp               [::]:*                  LISTEN      23128/master
tcp6       0      0 [::]:imaps              [::]:*                  LISTEN      18191/couriertcpd
tcp6       0      0 [::]:pop3s              [::]:*                  LISTEN      18259/couriertcpd
tcp6       0      0 [::]:pop3               [::]:*                  LISTEN      18222/couriertcpd
tcp6       0      0 [::]:imap2              [::]:*                  LISTEN      18154/couriertcpd
[email protected]:/etc/courier#
 

10 Install Razor, Pyzor And DCC And Configure SpamAssassin

Razor, Pyzor and DCC are spamfilters that use a collaborative filtering network. To install Razor and Pyzor, run

apt-get install razor pyzor

DCC isn't available in the Ubuntu 13.10 repositories, so we install it as follows:

cd /tmp
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.1.154
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd

Now we have to tell SpamAssassin to use these three programs. Edit /etc/spamassassin/local.cf and add the following lines to it:

vi /etc/spamassassin/local.cf
[...]#dccuse_dcc 1dcc_path /usr/local/bin/dccproc#pyzoruse_pyzor 1pyzor_path /usr/bin/pyzor#razoruse_razor2 1razor_config /etc/razor/razor-agent.conf#bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1

Then we must enable the DCC plugin in SpamAssassin. Open /etc/spamassassin/v310.pre and uncomment the loadplugin Mail::SpamAssassin::Plugin::DCC line:

vi /etc/spamassassin/v310.pre
[...]# DCC - perform DCC message checks.## DCC is disabled here because it is not open source. See the DCC# license for more details.#loadplugin Mail::SpamAssassin::Plugin::DCC[...]

You can check your SpamAssassin configuration by executing:

spamassassin --lint

It shouldn't show any errors.

Restart amavisd-new afterwards:

/etc/init.d/amavis restart

Now we update our SpamAssassin rulesets as follows:

sa-update --no-gpg

We create a cron job so that the rulesets will be updated regularly. Spustit

crontab -e

to open the cron job editor. Create the following cron job:

23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null

This will update the rulesets every second day at 4.23h.


Ubuntu
  1. Virtuální uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (Ubuntu 14.04LTS)

  2. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 14.04LTS

  3. Virtuální uživatelé a domény se Sendmailem

  1. Virtuální uživatelé a domény s Postfixem, Courier a MySQL (Ubuntu 6.10 Edgy Eft)

  2. Virtuální uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (Ubuntu 8.04 LTS)

  3. Poštovní server s virtuálními uživateli a doménami využívajícími Postfix a Dovecot na CentOS 6 VPS

  1. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 8.04 LTS

  2. Virtuální uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (Ubuntu 8.10)

  3. Virtuální hosting s Proftpd a MySQL (včetně kvóty) na Ubuntu 8.10