GNU/Linux >> Znalost Linux >  >> Ubuntu

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

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 výukový program je založen na serveru Ubuntu 14.04 (Trusty Tahr), takže před pokračováním v tomto výukovém programu byste měli nastavit základní instalaci serveru Ubuntu 14.04. 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, pokud získáváte službu  apparmor:nerozpoznaná, odstraňte ji z update-rc.d

service 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-ssl libsasl2-2s moduls libsasl2-2asl -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ý server
Název systémové pošty:<-- server1.example.com
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

Někdy se může zobrazit následující chyba:-

[email protected]:~# apt-get build-dep postfix
Čtení seznamů balíčků... Hotovo
Vytváření stromu závislostí      
Čtení informací o stavu... Hotovo
E:Vy musí do vašeho sources.list vložit nějaké 'zdrojové' URI
[email protected]:~#

Můžete to opravit následovně přidáním zdrojových úložišť:

vi /etc/apt/sources.list

Proveďte záznam jako v mém případě

deb http://archive.ubuntu.com/ubuntu důvěryhodný hlavní omezený vesmír
deb http://archive.ubuntu.com/ubuntu trusty-updates hlavní omezený vesmír
deb http://security.ubuntu .com/ubuntu trusty-security hlavní omezený vesmír multiverse
deb http://archive.canonical.com/ubuntu trusty partner


deb-src http://archive. ubuntu.com/ubuntu důvěryhodný hlavní omezený vesmír
deb-src http://archive.ubuntu.com/ubuntu trusty-updates hlavní omezený vesmír
deb-src http://security.ubuntu.com/ ubuntu trusty-security hlavní omezený vesmír multiverse
deb-src http://archive.canonical.com/ubuntu trusty partner

Další

apt-get update
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.11.0. 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.11.0
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.11.0
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ý doslovný 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.11. 0/src/virtual'
make[1]:*** [aktualizace] Chyba 1
make[1]:Opuštění adresáře `/usr/src/postfi x-2.11.0'
make:*** [build] Chyba 2
dpkg-buildpackage:error:debian/rules build poskytlo chybu stav ukončení 2
[email protected]:/usr /src/postfix-2.11.0#

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

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 6824
drwxr-xr-x 18 root root    4096 30. dubna 04:28 postfix-2.11.0
-rw-r --r--  1 kořenový kořen   46756 30. dubna 04:28 postfix-cdb_2.11.0-1_amd64.deb
-rw-r--r--  1 kořenový kořen  142842 30. dubna 04:28 postfix-dev_2.1 -1_all.deb
-rw-r--r--  1 kořenový adresář  851842 30. dubna 04:28 postfix-doc_2.11.0-1_all.deb
-rw-r--r--  1 kořen root   53898 30. dubna 04:28 postfix-ldap_2.11.0-1_amd64.deb
-rw-r--r--  1 root root   48500 30. dubna 04:28 postfix-mysql_2.1164-1.>-rw-r--r--  1 kořenový kořen   48610 30. dubna 04:28 postfix-pcre_2.11.0-1_amd64.deb
-rw-r--r--  1 kořenový adresář   48324 30. dubna 04:28 postfix-pgsql_2.11.0-1_amd64.deb
-rw-r--r--  1 kořenový adresář   55701 7. června 2013 postfix-vda-v13-2.10.0.patch
-rw-r-- r--  1 kořenový kořen  267855 30. dubna 04:27 postfix_2.11.0-1.diff.gz
-rw-r--r--  1 kořenový adresář    1522 30. dubna 04:27 postfix_2.11.0-1.dsc
-rw-r--r--  1 kořenový kořen    3885 30. dubna 04:28 postfix_2.11.0-1_amd64.changes
-rw-r --r--  1 kořenový kořen 1329238 30. dubna 04:28 postfix_2.11.0-1_amd64.deb
-rw-r--r--  1 kořenový kořen 4034741 12. února 01:38 postfix_2.11.0.orig .gz
[e-mail chráněný]:/usr/src# 

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

dpkg -i postfix_2.11.0-1_amd64.deb postfix-mysql_2.11.0-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:

GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost. localdomain' IDENTIFIED BY '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;

CREATE TABLE uživatelé (
e-mail varchar(80) NOT NULL,
heslo varchar(20) NOT NULL,
kvóta INT(10) DEFAULT '10485760',
PRIMÁRNÍ KLÍČ (e-mail )
) ENGINE=MyISAM;

CREATE TABLE transport (
doména varchar(128) NOT NULL výchozí '',
transport varchar(128) NOT NULL výchozí '',
UNIQUE KEY doména (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žívejte 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.


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

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

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

  1. Instalace Lighttpd s podporou PHP5 (PHP-FPM) a MySQL na Ubuntu 14.04LTS

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

  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í uživatelé a domény s Postfixem, Courier, MySQL a SquirrelMail (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