GNU/Linux >> Znalost Linux >  >> Linux

Nastavení poštovního serveru Postfix na Ubuntu 20.04

Ověřeno a testováno 27. 2. 2021

Úvod

V tomto článku s návody vás provedeme vytvořením kompletního poštovního serveru na Ubuntu 20.04 s Postfixem. Budování linuxového poštovního serveru od základů může být bolestivý proces, pokud to neděláte den za dnem, ale ukážeme vám, jak to udělat tak bezbolestně, jak jen to půjde.

Poštovní server se obvykle skládá z řady různých balíčků, které zpracovávají SMTP, POP3/IMAP, ukládání pošty a úkoly související se spamem, a všechny musí spolu komunikovat. Zde je přehled balíčků a cílů pro tento článek s návody.

Přehled balíčků a kroky konfigurace

1 – Základní příprava serveru
2 – Sestavení webového serveru LAMP
3 – Konfigurace PHP
4 – Konfigurace Apache2
5 – Instalace a konfigurace Memcached
6 – Instalace balíčky poštovního serveru
7 – Vytvoření databáze MySQL pro poštovní server
8.1 – Instalace Postfix Admin
8.2 – Konfigurace Postfix Admin
9 – Přidání uživatelských účtů (schránek) do Postfixu Správce
10 – Vytvořte systémového uživatele pro správu virtuálních poštovních adresářů
11 – Konfigurace Dovecot
12 – Konfigurace spamových a antivirových filtrů
13 – Konfigurace Postfixu
14 – Reverse DNS Lookup
15 – Instalace RoundCube Webmail

Předpoklady

– Plně aktualizovaný server Ubuntu 20.04, pokud nemáte server Ubuntu spuštěný na serveru, jako jsou ty na hostování Linux VPS společnosti Atlantic.net.

– Přístup k názvu domény, pro kterou si nastavíte poštu (budeme používat „email.linuxbuz.com“ ” v příkladech v tomto článku).
.

1 – Základní příprava serveru

Základní instalace Ubuntu je dodávána s omezenou sadou balíčků, takže první věc, kterou chceme udělat, je nainstalovat nástroje, které budeme používat k dokončení všech úkolů.

Nejprve se ujistěte, že jste přihlášeni jako uživatel root.

sudo su -

Nyní si nainstalujme základní nástroje, abychom mohli snadno stahovat soubory a upravovat konfigurační soubory.

apt-get install wget nano ssl-cert
  • wget :balíček pro načítání souborů pomocí HTTP, HTTPS a FTP, nejrozšířenějších internetových protokolů.
  • nano :textový editor příkazového řádku se snadno použitelnými ovládacími prvky.
  • ssl-cert :balíček, který umožňuje vytvářet certifikáty SSL.

Dále aktualizujeme název hostitele a název domény serveru tak, aby se při odeslání e-mailu shodoval se záznamem DNS zpětného ukazatele, který jsme nastavili u vašeho poskytovatele hostingu. Aktualizujeme také /etc/hostname soubor. Nezapomeňte nahradit příklad svým skutečným názvem hostitele a názvem domény.

hostnamectl set-hostname email.linuxbuz.com

Nyní ručně upravíme /etc/hosts konfigurační soubor tak, aby odpovídal názvu, který jsme právě zadali.

nano /etc/hosts

Upravte první řádek a přidejte svůj FQDN (plně kvalifikovaný název domény) hned za IP adresu 127.0.0.1.

127.0.0.1 email.linuxbuz.com localhost

Nyní se chystáme aktualizovat výchozí certifikát SSL na serveru tak, aby odpovídal našemu novému názvu hostitele. Pokud jste si pro svůj poštovní server zakoupili certifikát SSL, můžete tento krok přeskočit.

make-ssl-cert generation-default-snakeoil --force-overwrite

Tento příkaz říká serveru, aby znovu vygeneroval výchozí systémový certifikát SSL a přinutí jej přepsat původní soubory CRT a KEY.

Nyní jsme dokončili základní přípravu serveru a můžeme přejít k instalaci našich služeb webového serveru.

[Zpět na začátek]

2 – Sestavte webový server LAMP

Během tohoto kroku nainstalujeme balíčky „LAMP“. LAMP je zkratka pro Linux, Apache, MySQL a PHP. Kombinace těchto balíčků umožní vašemu serveru poskytovat dynamické webové služby s připojením MySQL.

Nejprve nainstalujme balíčky. Toto se nazývá instalace balíčku úloh.

apt-get install lamp-server^

Chcete-li zobrazit seznam balíčků, které jsou součástí této skupinové instalace, můžete provést následující:

tasksel --task-packages lamp-server

Po instalaci všech balíčků budeme připraveni nainstalovat některé další moduly PHP. Tyto dodatečné moduly umožní vašemu serveru podporovat APC User Cache pro PHP 5, memcached, cURL, XML parser a zpracování obrazu GD.

apt-get install php-apcu php-memcache php-curl php-mbstring php-gd php-xml php-imap php-xmlrpc libdbi-perl libdbd-mysql-perl -y

Dále budete muset nastavit kořenové heslo MySQL a zabezpečit instalaci MySQL. Můžete to udělat pomocí následujícího příkazu:

mysql_secure_installation

Odpovězte na všechny otázky, jak je uvedeno níže:

Nové heslo:Znovu zadejte nové heslo:Přejete si pokračovat se zadaným heslem? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YOdebrat anonymní uživatele? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YZakázat vzdálené přihlášení root? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YNačíst nyní tabulky oprávnění? (Stiskněte y|Y pro Ano, jakékoli jiné tlačítko pro Ne) :Y

Dále se přihlaste do MySQL a změňte politiku hesel na nízkou:

mysql -u root -pSET GLOBAL validate_password.policy =0;FLUSH PRIVILEGES;EXIT;

[Zpět na začátek]

3 – Konfigurace PHP

Nyní se chystáme aktualizovat konfiguraci PHP. Výchozí konfigurace je obvykle dostatečná pro většinu systémů; chceme se však ujistit, že PHP nevystaví informace potenciálním útočníkům. Chystáme se upravit soubor /etc/php/7.4/apache2/php.ini .

nano /etc/php/7.4/apache2/php.ini

Vyhledejte proměnnou expose_php a aktualizujte hodnotu z On na Off . S nano můžete vyhledávat stisknutím CTRL-W a poté zadejte hledané slovo.

367;;;;;;;;;;;;;;;;;;;;368; Různé;369;;;;;;;;;;;;;;;;;;370 371; Rozhoduje, zda PHP může odhalit skutečnost, že je nainstalováno na server372; (např. přidáním jeho podpisu do hlavičky webového serveru). Není to žádné zabezpečení373; hrozba jakýmkoliv způsobem, ale umožňuje určit, zda používáte PHP374; na vašem serveru nebo ne.375; http://php.net/expose-php376 expose_php =Vypnuto377

[Zpět na začátek]

4 – Konfigurace Apache2

Nyní jsme připraveni přejít k přizpůsobení konfigurace webových služeb Apache. Konečným výsledkem pro Apache je, že bude obsluhovat jeden web s několika běžícími webovými aplikacemi:Webmail (RoundCube) a Postfix Admin. Veškerý provoz bude směrován na webové služby HTTPS (zabezpečené).

Za prvé, budeme minimalizovat informace, které Apache vystavuje veřejnosti. Pomocí nano upravíme konfigurační soubor /etc/apache2/conf-available/security.conf .

nano /etc/apache2/conf-available/security.conf

Vyhledejte konfigurační proměnnou ServerTokens a nastavte hodnotu z OS do Prod .

# ServerTokens# Tato direktiva konfiguruje to, co vrátíte jako hlavičku Server HTTP response#. Výchozí hodnota je 'Full', která odesílá informace o typu OS# a zkompilované v modulech.# Nastavte na jednu z:Full | OS | Minimální | Menší | major | Prod# kde Full poskytuje nejvíce informací a Prod nejméně.#ServerTokens MinimalServerTokens Prod#ServerTokens Full

Nyní vyhledejte konfigurační proměnnou ServerSignature a nastavte hodnotu z On na Off .

# Volitelně přidejte řádek obsahující verzi serveru a název virtuálního hostitele# na stránky generované serverem (interní chybové dokumenty, výpisy adresářů FTP#, výstup mod_status a mod_info atd., ale ne dokumenty # generované CGI nebo vlastní chybové dokumenty) .# Nastavte na "E-mail", chcete-li také obsahovat odkaz mailto:na ServerAdmin.# Nastavte na jednu z:Zapnuto | Vypnuto | EMailServerSignature Off#ServerSignature On

Nyní můžete uložit a ukončit tento konfigurační soubor.

Nyní povolíme další moduly rewrite a ssl v Apache, abychom mohli přesměrovat výchozí HTTP provoz na HTTPS port a také podporovat SSL certifikáty v Apache.

a2enmod přepište ssla2ensite default-ssl

Nyní přecházíme k přizpůsobení konfigurace webu. Tyto soubory jsou umístěny v adresáři /etc/apache2/sites-available . Chystáme se aktualizovat stávající výchozí konfigurační soubory, aby podporovaly služby SSL.

Nejprve upravte konfigurační soubor 000-default.conf . Stávající konfiguraci můžete nahradit níže uvedenou, stačí nahradit ServerName proměnná s vaším názvem hostitele.

nano /etc/apache2/sites-available/000-default.conf
 # Direktiva ServerName nastavuje schéma požadavku, název hostitele a port, který # server používá k identifikaci. To se používá při vytváření # adres URL přesměrování. V kontextu virtuálních hostitelů určuje ServerName #, jaký název hostitele se musí objevit v hlavičce Host:požadavku, aby # odpovídal tomuto virtuálnímu hostiteli. Pro výchozího virtuálního hostitele (tento soubor) tato hodnota # není rozhodující, protože se bez ohledu na to používá jako hostitel poslední instance. # Pro každého dalšího virtuálního hostitele jej však musíte nastavit explicitně. ServerName email.linuxbuz.com DocumentRoot /var/www/html  Možnosti FollowSymLinks AllowOverride All  # Dostupné úrovně protokolů:trace8, ..., trace1, ladění, info, upozornění, alert, # error, crit, alert, emerg. # Je také možné nakonfigurovat úroveň logování pro jednotlivé # moduly, např. LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # Pro většinu konfiguračních souborů z conf-available/, které jsou # povoleny nebo zakázány na globální úrovni, je možné # zahrnout řádek pouze pro jednoho konkrétního virtuálního hostitele. Například # následující řádek povolí konfiguraci CGI pro tohoto hostitele pouze # poté, co byl globálně zakázán pomocí "a2disconf". #Include conf-available/serve-cgi-bin.conf

Nyní můžete uložit a ukončit tento konfigurační soubor.

Pokud jste si nezakoupili vlastní certifikát SSL, výchozí konfigurační soubor SSL systému default-ssl.conf bude fungovat pro naše potřeby. Pokud jste si však zakoupili vlastní certifikát SSL, budete muset upravit konfigurační soubor a aktualizovat proměnné SSLCertificateFile , SSLCertificateKeyFile a SSLCertificateChainFile přejděte na umístění, kam jste uložili svůj certifikát a soubory klíčů (další pomoc s konfigurací vám poskytne certifikační autorita nebo prodejce).

Nyní vytvoříme .htaccess konfigurační soubor, který přinutí návštěvníky vašeho webového serveru používat protokol HTTPS (SSL).

nano /var/www/html/.htaccess

Zkopírujte a vložte následující proměnné do .htaccess konfigurace.

RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [L]

Tyto konfigurační proměnné říkají Apache, aby povolil modul mod_rewrite a poté přesměroval návštěvníky na HTTP (port 80) na HTTPS (port 443) URL.

[Zpět na začátek]

5 – Instalace a konfigurace Memcached

Memcached je vysoce výkonný systém pro ukládání objektů do mezipaměti s distribuovanou pamětí. Tento balíček pomůže urychlit dynamické webové aplikace, jako je RoundCube a Postfix Webadmin.

Nejprve nainstalujme balíček pomocí apt-get.

apt-get install memcached

U menších systémů obvykle stačí výchozí konfigurace. Uzamyká přístup k localhost a poskytuje dostatečné hodnoty alokace paměti. Pokud však stavíte větší server, který může být hodně zatěžován, budete s největší pravděpodobností chtít změnit hodnoty alokace paměti tak, aby byly vyšší než výchozích 64M.

Konfigurační soubory memcached jsou umístěny na /etc/memcached.conf .

[Zpět na začátek]

6 – Instalace balíčků poštovního serveru

Nyní jsme připraveni nainstalovat balíčky pro poštovní server. Opět jsou umístěny v tasksel skupina balíčků.

apt-get install mail-server^

Chcete-li zobrazit seznam balíčků, které jsou součástí této skupinové instalace, můžete provést následující:

tasksel --task-packages poštovní server

Během instalace balíčku se vás Postfix zeptá na řadu otázek:

  1. Typ konfigurace instalace —
    Budete chtít vybrat „Internet Site ” jako typ konfigurace.
  2. Název hostitele poštovního serveru —
    Ujistěte se, že zadáváte stejný název hostitele (FQDN), jaký jste použili v kroku č. 1
  3. Vytvořte certifikát SSL s vlastním podpisem —
    Vyberte možnost „Ano“
  4. Nastavte společný název certifikátu SSL —
    Zadejte stejný název hostitele (FQDN), jaký jste použili v kroku č. 1

Nyní se chystáme nainstalovat zbytek balíčků, které jsou potřebné pro poštovní server, aby podporoval uživatele založené na MySQL, a také balíčky pro detekci spamu a antiviru. (Poznámka:tyto balíčky lze nainstalovat pomocí jediné instalace apt-get install příkaz, s každým názvem balíčku odděleným mezerou, ale pro usnadnění čtení jsou zde uvedeny jako samostatné příkazy.)

apt-get install postfix-mysql dovecot-mysql dovecot-imapd postgreyapt-get install amavis clamav clamav-daemon spamassassinapt-get install php-imap

Tato další sada volitelných balíčků rozšiřuje možnosti antispamových a antivirových detekčních balíčků tím, že umožňuje lepší kontrolu připojených souborů, které přicházejí na váš poštovní server.

apt-get install libnet-dns-perl pyzor razorapt-get install arj bzip2 cabextract cpio soubor gzip nomarch pax unzip zip

Nyní restartujeme služby Apache2, aby viděly nové moduly, které jsme jim poskytli.

systemctl restartujte apache2

[Zpět na začátek]

7 – Vytvoření databáze MySQL pro e-mailový server

Nyní jsme připraveni vytvořit databázi pro naše uživatelské účty a další funkce poštovního serveru.

Pro začátek se musíme přihlásit do databázové služby MySQL jako uživatel root. Budete potřebovat heslo, které jste poprvé zadali v kroku #2.

mysql -u root -p

Nyní uvidíte jiný příkazový řádek (mysql> ). Toto je konzola MySQL CLI, kde můžete spravovat databáze a tabulky serveru MySQL.

Nejprve vytvoříme novou databázi s názvem „mail“ a poté vytvoříme systémový uživatelský účet s plnými oprávněními k této nové databázi. Ujistěte se, že jste nahradili <secure password> proměnnou s jiným *novým* bezpečným heslem pro tento účet. Nepoužívejte stejné heslo, jaké jste použili pro účet uživatele root .

VYTVOŘIT DATABÁZI mail;VYTVOŘIT UŽIVATELE 'mail'@'localhost' IDENTIFIKOVAT PODLE 'mojehesla';UDĚLIT VŠECHNA PRIVILEGIA NA e-mail.* NA 'mail'@'localhost' S MOŽNOSTÍ UDĚLENÍ;FLUSH PRIVILEGES;EXIT;

Nyní jsme nastavili databázi, kterou budou používat služby vašeho poštovního serveru.

[Zpět na začátek]

8.1 – Instalace Postfix Admin

Postfix Admin je webový nástroj pro správu vytvořený pro Postfix. Je to aplikace založená na PHP, která zpracovává virtuální domény ve stylu Postfixu a uživatele, kteří jsou uloženi v MySQL nebo PostgreSQL.

Nejprve si musíme stáhnout nejnovější verzi aplikace. Tento příklad stáhne verzi 2.92 –vždy zkontrolujte verzi na webu poskytovatele, abyste se ujistili, že získáváte nejnovější verzi .

wget https://excellmedia.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.1/PostfixAdmin%203.3.1.tar.gz

Nyní rozbalíme aplikaci a zkopírujeme ji do HTML adresáře /var/www/html/postfixadmin na našem serveru.

tar -xvf PostfixAdmin%203.3.1.tar.gzmv postfixadmin-postfixadmin-cc23eba /var/www/html/postfixadmin

Nyní musíme vytvořit adresář šablony a aktualizovat oprávnění této nové složky tak, aby www-data uživatelský účet k němu má přístup.

mkdir /var/www/html/postfixadmin/templates_cchown -R www-data:www-data /var/www/html/postfixadmin

[Zpět na začátek]

8.2 – Konfigurace Postfix Admin

Nyní máme několik konfigurací k aktualizaci v souborech správce Postfixu. Nejprve upravíme config.inc.php aby věděl, jak komunikovat s databází, kterou jsme právě vytvořili v kroku #7.

nano /var/www/html/postfixadmin/config.inc.php

Vyhledejte proměnnou 'configured' a resetujte hodnotu z false true .

$CONF['configured'] =true;

Nyní vyhledejte proměnnou 'database_' a nahraďte hodnoty pro konfiguraci serveru MySQL. Nezapomeňte nahradit proměnnou mypassword s heslem pro uživatele databáze „mail“, které jste zadali v kroku #7.

$CONF['database_type'] ='mysqli';$CONF['database_host'] ='localhost';$CONF['database_user'] ='mail';$CONF['database_password'] ='mojeheslo';$CONF['database_name'] ='mail';

Nyní vyhledejte proměnnou 'admin_email' a nahraďte hodnotu e-mailovou adresou, kterou nastavíte pro svůj e-mailový účet správce.

$CONF['admin_email'] ='[email protected]';

Nyní vyhledejte proměnnou 'domain_path' a nahraďte hodnotu z ‘YES ‘ až ‘NO ‘.

$CONF['domain_path'] ='NE';

Nyní vyhledejte proměnnou 'domain_in_mailbox' a nahraďte hodnotu z ‘NO ‘ až ‘YES ‘.

$CONF['domain_in_mailbox'] ='ANO';

Tyto poslední konfigurační proměnné nedefinují cestu, kam budou na serveru uložena skutečná data poštovní schránky uživatele. Ty budou definovány později během konfiguračních kroků Dovecot.

Nyní jste připraveni uložit konfigurační soubor, ale ještě neukončujte!

Nyní otevřeme webový prohlížeč, zadejte adresu URL vašeho poštovního serveru a ukažte přímo na setup.php konfigurační stránku. Nezapomeňte nahradit mail.example.tld s vaším skutečným názvem hostitele serveru.

https://email.linuxbuz.com/postfixadmin/public/setup.php

Když přistoupíte na adresu URL, skript automaticky zkontroluje server a potvrdí, že všechny nezbytné moduly jsou nainstalovány a fungují.

Výstup kontroly nastavení správce Postfix

Po dokončení kontrol budete vyzváni k zadání hesla pro nastavení. Toto heslo se používá k vytvoření hlavních administrátorských účtů pro webové rozhraní Postfix Admin.

Zadejte bezpečné heslo a stiskněte tlačítko „Generate Password Hash“.

Postfix Admin generuje hash hesla

Příklad hash hesla správce Postfixu

Ještě NEZAVÍREJTE webový prohlížeč! Za pár minut se sem vracíme.

Po vygenerování hash hesla budeme muset aktualizovat config.inc.php soubor znovu s tímto heslem. Vyhledejte proměnnou 'setup_password' a nahraďte hodnotu hodnotou vygenerovanou ze skriptu.

// Abyste mohli nastavit Postfixadmin, MUSÍTE zde zadat hashované heslo.// Chcete-li vytvořit hash, navštivte setup.php v prohlížeči a zadejte heslo do pole,// při odeslání se ozve vám jako hašovaná hodnota.$CONF['setup_password'] ='';

Nyní můžete uložit a ukončit konfigurační soubor.

Nyní jsme připraveni vrátit se do webového prohlížeče a vygenerovat účet „super admin“ pro portál Postfix Admin.
Když jste klikli na tlačítko ‚Generate Password Hash‘, pole formuláře se změnila tak, aby vypadala jako příklad níže. Nyní můžete vyplnit formulář a vytvořit účet superadministrátora.

Vytvoření účtu superadmin pomocí Postfix Admin

Uživatele admin můžete také vytvořit pomocí následujícího příkazu:

bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add [email protected] --superadmin 1 --active 1 --password [email protected] --password2 [email protected] 

Měli byste získat následující výstup:

Vítejte v Postfixadmin-CLI v0.3--------------------------------------- ------------------------Byl přidán admin [email protected]!---------------- ------------------------------------------------ 

[Zpět na začátek]

9 – Přidání uživatelských účtů (e-mailových schránek) do Postfix Admin

Nyní jsme připraveni vytvořit virtuální uživatelský účet na našem poštovním serveru. Za tímto účelem se vrátíme na adresu URL správce Postfixu v našem webovém prohlížeči a zadáme adresu URL vašeho poštovního serveru. Nezapomeňte nahradit mail.example.tld s vaším skutečným názvem hostitele serveru.

https://email.linuxbuz.com/postfixadmin/public

Nyní se budete moci přihlásit k portálu Postfix Admin, kde můžete spravovat virtuální domény a virtuální uživatelské účty. Zadejte uživatelské jméno a heslo superadministrátora, které jste vytvořili výše během konfigurace Postfix Admin, a poté stiskněte tlačítko „Přihlásit se“.

Přihlášení správce pro Postfix Admin

Jakmile se přihlásíte do portálu Postfix Admin, uvidíte nabídku v horní části stránky.
Možnosti nabídky poskytují možnost spravovat virtuální domény a uživatele poštovního serveru Postfix a prohlížet soubory protokolu.

Postfix Admin menu

Postfix Admin možnost Přidat poštovní schránku

Chcete-li vytvořit uživatelskou poštovní schránku, klikněte na rychlý odkaz „Přidat poštovní schránku“. Nyní budete přesměrováni na obrazovku „Průvodce přidáním poštovní schránky“. Vyplňte údaje ve formuláři a po vyplnění stiskněte tlačítko „Přidat schránku“. Průvodce vytvoří váš první virtuální uživatelský (e-mailový) účet.

Vytvoření nové poštovní schránky v Postfix Admin

[Zpět na začátek]

10 – Vytvořte systémového uživatele pro práci s adresáři virtuální pošty

Virtuální uživatelé jsou ti, kteří na vašem linuxovém serveru technicky neexistují a nepoužívají standardní linuxové metody pro ověřování nebo doručování a ukládání pošty. Vaše virtuální uživatelské účty poštovního serveru jsou definovány v databázi vytvořené Postfix Adminem, nikoli existujícími jako systémové uživatelské účty, takže musíme vytvořit jeden systémový uživatelský účet, který bude obsluhovat služby, jako je úložiště pošty a ověřování Dovecot.

Nejprve si vytvořte systémový uživatelský účet s názvem vmail a udělte mu oprávnění k požadovaným adresářům. Tento systémový účet bude zodpovědný za backendové operace pro úložiště poštovních schránek a služby.

useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Obsluha virtuálního adresáře pošty" vmailmkdir -p /var/vmailchown vmail:mail /var/vmailchmod 770 /var/vmail 

Vysvětlení výše uvedených příkazů:

  1. Vytvořili jsme systémový uživatelský účet vmail , přiřadil domovský adresář jako /var/vmail a omezil možnost přihlášení tohoto účtu přes shell nebo konzoli.
  2. Potom jsme ručně vytvořili domovský adresář /var/vmail pro nový systémový uživatelský účet.
  3. Poté nastavíme vlastníka a skupinu pro /var/vmail adresář.
  4. Potom jsme systémovému uživateli vmail udělili plná oprávnění a bezpečnostní skupina mail přiřazena k adresáři /var/vmail .

[Zpět na začátek]

11 – Konfigurace Dovecot

Dovecot je open-source e-mailový server IMAP a POP3 napsaný s ohledem na bezpečnost. Dovecot má mnoho vestavěných funkcí, které si můžete prohlédnout na jejich veřejné webové stránce http://www.dovecot.org.

Dovecot bude odpovědný za správu připojení IMAP a POP3, správu místních adresářů pošty a přijímání příchozí pošty předávané z procesu poštovního serveru Postfix SMTP. Dovecot bude také spravovat ověřování pro připojení SMTP. Mnoho různých souborů v /etc/dovecot konfigurace adresáře Dovecot.

Nejprve nakonfigurujme Dovecot tak, aby používal databázi nastavenou správcem Postfixu. Nejprve upravíme konfigurační soubor /etc/dovecot/conf.d/auth-sql.conf.ext

nano /etc/dovecot/conf.d/auth-sql.conf.ext

Upravte nebo aktualizujte obsah tak, aby měl následující konfiguraci.

# Vyhledejte uživatelská hesla z databáze SQL, jak je # definováno v /etc/dovecot/dovecot-sql.conf.extpassdb { driver =sql args =/etc/dovecot/dovecot-sql.conf.ext}# Vyhledat uživatelské informace z databáze SQL, jak jsou definovány v /etc/dovecot/dovecot-sql.conf.extuserdb { driver =sql args =/etc/dovecot/dovecot-sql.conf.ext}

Po dokončení uložte a ukončete konfigurační soubor.

Konfigurační soubor SQL

Nyní budeme zálohovat původní konfigurační soubor SQL /etc/dovecot/dovecot-sql.conf.ext a vytvořte nový konfigurační soubor, který bude Dovecot používat.

mv /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.originalnano /etc/dovecot/dovecot-sql.conf.ext

Nyní zkopírujte níže uvedený obsah do konfiguračního souboru a aktualizujte hodnoty pro poštovní databázi, kterou jste nastavili v kroku 7.

# Ovladač databáze:mysql, pgsql, sqlitedriver =mysql# Připojení k databázi:# connect =host=192.168.1.1 dbname=users# connect =host=sql.example.com dbname=virtual user=virtual password=blarg# connect =/etc/dovecot/authdb.sqlite#connect =host=localhost dbname=mail uživatel=mail heslo=mojeheslo# Výchozí schéma hesla.## Seznam podporovaných schémat je v# http://wiki2.dovecot.org/Authentication/ PasswordSchemes## Slabé, ale běžné schéma šifrování:default_pass_scheme =MD5-CRYPT# # Zakomentujte výše uvedené a níže odkomentujte # pro silnější šifrování:#default_pass_scheme - SHA256-CRYPT# Definujte dotaz pro získání uživatelského hesla.password_query =\ VYBERTE uživatelské jméno jako uživatel, heslo, '/var/vmail/%d/%n' jako userdb_home, \ 'maildir:/var/vmail/%d/%n' jako userdb_mail, 150 jako userdb_uid, 8 jako userdb_gid \ FROM mailbox WHERE username ='%u' AND active ='1'# Definujte dotaz pro získání informací o uživateli.user_query =\ VYBERTE '/var/vmail/%d/%n' jako domov, 'maildir:/var/vmail/%d/% n' jako mail , \ 150 AS uid, 8 AS gid, concat('dirsize:storage=', kvóta) AS kvóta \ FROM mailbox WHERE username ='%u' AND active ='1'

Po dokončení uložte a ukončete tento konfigurační soubor.

Soubor definice autentizace

Nyní se chystáme zálohovat soubor definice autentizace /etc/dovecot/conf.d/10-auth.conf a vytvořte nový.

mv /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.originalnano /etc/dovecot/conf.d/10-auth.conf 

Nyní zkopírujte níže uvedený obsah do definičního souboru.

# Zakažte příkaz LOGIN a všechna ostatní autentizace v prostém textu, pokud není použito# SSL/TLS (funkce LOGINDISABLED). Všimněte si, že pokud se vzdálená IP# shoduje s lokální IP (tj. připojujete se ze stejného počítače), je připojení# považováno za bezpečné a autentizace pomocí prostého textu je povolena.disable_plaintext_auth =yes# Mezerou oddělený seznam požadovaných autentizačních mechanismů:# plain login digest-md5 cram-md5 ntlm rpa apop anonymní gssapi otp skey# gss-spnego# POZNÁMKA:Viz také disable_plaintext_auth setting.auth_mechanisms =plain login#### Databáze hesel a uživatelů## ## Databáze hesel se používá k ověření hesla uživatele (a nic víc).# Můžete mít více passdbs a userdbs. To je užitečné, pokud chcete# povolit uživatelům systému (/etc/passwd) i virtuálním uživatelům přihlášení bez# duplikování systémových uživatelů do virtuální databáze.## ## Databáze uživatelů určuje, kde e-maily jsou umístěny a jaká ID uživatelů/skupin # je vlastní. Pro konfiguraci s jedním UID použijte "statickou" userdb.## # Použijte konfiguraci databáze SQL raději než jakoukoli jinou.!include auth-sql.conf.ext

Po dokončení uložte a ukončete soubor.

Soubor definice pošty

Dále řekneme Dovecotu, kde má ukládat poštu virtuálních uživatelů. Budeme zálohovat soubor definice pošty /etc/dovecot/conf.d/10-mail.conf a vytvoření nového.

mv /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.originalnano /etc/dovecot/conf.d/10-mail.conf 

Nyní zkopírujte níže uvedený obsah do definičního souboru.

# Umístění poštovních schránek uživatelů. Výchozí hodnota je prázdná, což znamená, že se Dovecot# pokusí najít poštovní schránky automaticky. Toto nebude fungovat, pokud uživatel# ještě nemá žádnou poštu, takže byste měli výslovně sdělit Dovecotu úplné umístění #.## Pokud používáte mbox, zadejte cestu k souboru INBOX (např. /var/ mail/%u)# nestačí. Také budete muset společnosti Dovecot sdělit, kde jsou uloženy ostatní poštovní schránky. Toto se nazývá "kořenový poštovní adresář" a musí to být první # cesta uvedená v nastavení mail_location.## Můžete použít několik speciálních proměnných, např.:## %u - uživatelské jméno# %n - uživatel část v [email protected], stejná jako %u, pokud neexistuje doména# %d - část domény v [email protected], prázdná, pokud neexistuje žádná doména# %h - domovský adresář## Viz doc/wiki/Variables.txt pro úplný seznam. Některé příklady:## mail_location =maildir:~/Maildir# mail_location =mbox:~/mail:INBOX=/var/mail/%u# mail_location =mbox:/var/mail/%d/%1n/%n:INDEX =/var/indexes/%d/%1n/%n## #mail_location =maildir:/var/vmail/%d/%n# Systémový uživatel a skupina používaná pro přístup k e-mailům. Pokud použijete více, userdb# je může přepsat vrácením polí uid nebo gid. Můžete použít čísla# nebo jména. mail_uid =vmailmail_gid =mail# Platný rozsah UID pro uživatele, výchozí hodnota je 500 a vyšší. Toto je většinou# proto, aby se zajistilo, že se uživatelé nemohou přihlásit jako démoni nebo jiní uživatelé systému.# Všimněte si, že odepření přihlášení root je pevně zakódováno pro binární kód dovecot a nelze jej # provést, i když je first_valid_uid nastaveno na 0.## Použít uid uživatele vmail here.first_valid_uid =150last_valid_uid =150# Pokud potřebujete nastavit více umístění poštovních schránek nebo chcete změnit výchozí# nastavení jmenného prostoru, můžete to udělat definováním sekcí jmenného prostoru.## Můžete mít soukromé, sdílené a veřejné jmenné prostory. Soukromé jmenné prostory# jsou pro osobní e-maily uživatele. Sdílené jmenné prostory jsou pro přístup k poštovním schránkám jiných # uživatelů, které byly sdíleny. Veřejné jmenné prostory jsou pro sdílené # poštovní schránky, které spravuje sysadmin. Pokud vytvoříte jakékoli sdílené nebo veřejné# jmenné prostory, obvykle budete chtít povolit také plugin ACL, jinak budou mít všichni # uživatelé přístup ke všem sdíleným poštovním schránkám, za předpokladu, že k tomu mají oprávnění# na úrovni souborového systému.namespace inbox { # Typ jmenného prostoru:private, shared or public #type =private # Hierarchy separator to use. Měli byste použít stejný oddělovač pro všechny # jmenné prostory, jinak se někteří klienti zmýlí. '/' je obvykle dobré. # Výchozí nastavení však závisí na základním formátu úložiště pošty. #separator =# Pro přístup k tomuto jmennému prostoru je vyžadována předpona. Toto se musí lišit pro # všechny jmenné prostory. Například "Veřejné/". #prefix =# Fyzické umístění poštovní schránky. Toto je ve stejném formátu jako # mail_location, což je také výchozí. #location =# Může existovat pouze jeden INBOX a toto nastavení definuje, který jmenný prostor # jej má. inbox =yes # Pokud je jmenný prostor skrytý, není klientům propagován prostřednictvím rozšíření NAMESPACE #. Pravděpodobně budete také chtít nastavit list=no. To je většinou užitečné # při převodu z jiného serveru s různými jmennými prostory, které # chcete zavrhnout, ale stále fungují. Můžete například vytvořit # skryté jmenné prostory s předponami "~/mail/", "~%u/mail/" a "mail/". #hidden =no # Zobrazit poštovní schránky pod tímto jmenným prostorem pomocí příkazu LIST. Díky tomu bude jmenný prostor # viditelný pro klienty, kteří nepodporují rozšíření NAMESPACE. Hodnota # "children" uvádí podřízené poštovní schránky, ale skrývá předponu jmenného prostoru. #list =yes # Namespace zpracovává své vlastní odběry. Pokud je nastaveno na "no", nadřazený # jmenný prostor je zpracovává (prázdná předpona by měla mít vždy hodnotu "yes") #subscriptions =yes}

Po dokončení uložte a ukončete soubor.

Soubor definice SSL

Pokud máte certifikát SSL, který byste chtěli nainstalovat, budete muset upravit definiční soubor Dovecot SSL /etc/dovecot/conf.d/10-ssl.conf s vaším platným certifikátem. Nezapomeňte, že budete muset zahrnout také svůj balíček certifikátů CA, pokud jej vydavatel certifikátu poskytl.

Dovecot Master Definition File

Nyní se chystáme aktualizovat hlavní definiční soubor Dovecot /etc/dovecot/10-master.conf zahrnout systémový uživatelský účet a nastavení postfixu.

nano /etc/dovecot/conf.d/10-master.conf

Vyhledejte definici konfigurace service auth a nahraďte definiční blok následujícím.

service auth { # auth_socket_path ve výchozím nastavení ukazuje na tento soket userdb. Obvykle to # používá dovecot-lda, doveadm, případně proces imap atd. Uživatelé, kteří mají # plná oprávnění k tomuto soketu, mohou získat seznam všech uživatelských jmen a # získat výsledky vyhledávání v uživatelské databázi všech uživatelů. # # Výchozí režim 0666 umožňuje komukoli připojit se k soketu, ale # vyhledávání v userdb bude úspěšné pouze v případě, že userdb vrátí pole "uid", které # odpovídá UID procesu volajícího. Pokud se uid nebo gid volajícího shoduje s uid nebo gid zásuvky #, vyhledávání bude úspěšné. Cokoli jiného způsobuje selhání. # # Chcete-li dát volajícímu plná oprávnění k vyhledání všech uživatelů, nastavte režim na # něco jiného než 0666 a Dovecot umožní jádru vynutit # oprávnění (např. 0777 umožňuje všem plná oprávnění). unix_listener auth-userdb { mode =0600 user =vmail group =mail } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode =0660 # Za předpokladu výchozího Postfix userid a groupid user =postfix group =postfix } }

Po dokončení uložte a ukončete soubor.

Soubor definice LDA

V některých případech možná budete muset explicitně definovat e-mailovou adresu správce pošty pro váš server. Chcete-li to provést, budete muset upravit definiční soubor LDA /etc/dovecot/conf.d/15-lda.conf . Pokud se zobrazí chybové zprávy jako Invalid settings: postmaster_address setting not given zobrazí se v protokolech poštovního serveru, pak je tato změna konfigurace pravděpodobnou opravou této chyby.

nano /etc/dovecot/conf.d/15-lda.conf

Vyhledejte definici postmaster_address a aktualizujte hodnotu tak, aby zahrnovala účet správce pošty vaší domény.

# Adresa, která se má použít při odesílání emailů o odmítnutí.# Výchozí je [email protected]. %d se rozšíří na doménu příjemce.#postmaster_address =postmaster_address [email protected]

Po dokončení uložte a ukončete soubor.

Nyní potřebujeme aktualizovat konfigurační adresář Dovecot, aby byl přístupný pro servisní účet Dovecot i pro systémový účet vmail.

chown -R vmail:dovecot /etc/dovecotchmod -R o-rwx /etc/dovecot

Nyní jste dokončili konfiguraci služby Dovecot a nyní můžeme přejít k antivirovým a antispamovým službám.
[Zpět na začátek]

12 – Konfigurace Amavis, ClamAV a SpamAssassin

Co jsou tyto balíčky?

– Amavis je rozhraní mezi Postfixem a balíčky pro filtrování obsahu, jako jsou SpamAssassin a ClamAV.

– ClamAV je vysoce výkonný antivirový modul pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb.

– SpamAssassin je vysoce výkonná antispamová platforma známá svými bayesovskými možnostmi filtrování spamu. Poskytuje správcům systému filtr pro klasifikaci zpráv a blokování nevyžádaných hromadných e-mailů.

Nyní vás provedeme procesem instalace určité ochrany pro váš poštovní server. Z velké části jsou výchozí konfigurace dostatečné pro dobrou linii obrany proti spamu a virům pronikajícím přes váš poštovní server. Pokud máte speciální požadavky, můžete samozřejmě strávit spoustu času vytvářením složitých pravidel zpracování.

Nejprve vytvořte dva systémové uživatelské účty, amavis a clamav, a umožněte jim spolupracovat.

adduser clamav amavisadduser amavis clamav

Nyní povolíme démona Amavis úpravou /etc/amavis/conf.d/15-content_filter_mode konfigurační soubor.

nano /etc/amavis/conf.d/15-content_filter_mode
použij přísné; # Tento soubor můžete upravit, abyste znovu povolili kontrolu SPAMu prostřednictvím spamassassin# a znovu povolili antivirovou kontrolu. ## Výchozí režim antivirové kontroly# Upozorňujeme, ž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 SPAMu# Upozorňujeme, ž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

Po dokončení můžete soubor uložit a ukončit.

Nyní povolíme software SpamAssassin úpravou souboru /etc/default/spamassassin konfigurační soubor.

nano /etc/default/spamassassin

Nyní vyhledejte proměnnou CRON=0 v konfiguračním souboru a změňte hodnotu na 1.

# Cronjob# Nastavte na cokoli kromě 0, abyste umožnili úloze cron automaticky aktualizovat# pravidla spamassassina každou nocCRON=1

Dále povolte software SpamAssassin pomocí následujícího příkazu:

update-rc.d povolit spamassassin

Nyní se chystáme nastavit Amavis tak, aby používal databázi z Postfix Admin k identifikaci pošty, která přichází k místnímu doručení. Ve výchozím nastavení budou SpamAssassin a Amavis kontrolovat pouze poštu, která je určena pro místní doručení. Protože jsme nastaveni tak, abychom používali virtuální poštovní schránky uživatelů, musíme službám sdělit, kde mají uživatelské účty najít.

K tomu potřebujeme aktualizovat konfigurační soubor /etc/amavis/conf.d/50-user .

nano /etc/amavis/conf.d/50-user

Nahraďte obsah tohoto konfiguračního souboru níže uvedeným. Nezapomeňte aktualizovat heslo databáze MySQL tak, aby používala heslo pro uživatele databáze „mail“, které jste zadali v kroku #7.

použij přísné; ## Zde umístěte své konfigurační direktivy. Nahradí 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/# # Tři souběžné procesy. To by se mělo vejít do paměti RAM dostupné na # instanci AWS micro. To musí odpovídat počtu procesů specifikovaných# pro Amavis v /etc/postfix/master.cf.$max_servers =3; # Přidejte hlavičky s informacemi o spamu, pokud jsou na této úrovni nebo nad ní – tím zajistíte, že # budou vždy přidány.$sa_tag_level_deflt =-9999; # Zkontrolujte databázi, zda je pošta určena k místnímu doručování, a proto # by měla být zkontrolována jako spam.@lookup_sql_dsn =( ['DBI:mysql:database=mail;host=127.0.0.1;port=3306', 'mail', 'mypassword']);$sql_select_policy ='VYBRAT doménu z domény WHERE CONCAT("@",doména) IN (%k)'; # Odkomentujte pro zvýšení úrovně logu při testování.# $log_level =2; #------------ Neupravujte nic pod tímto řádkem -------------1; # zajistit definovanou návratnost

Po dokončení uložte a ukončete konfigurační soubor.

Nyní budeme muset restartovat služby Amavis a SpamAssassin, aby viděli nová nastavení konfigurace.

service amavis restartservices spamassassin restart

[Zpět na začátek]

13 – Konfigurace Postfixu

Nyní jsme připraveni nakonfigurovat poštovní server Postfix. Postfix zpracovává veškerou příchozí a odchozí poštu prostřednictvím protokolu SMTP a my ho nakonfigurujeme tak, aby integroval všechny ostatní softwarové balíčky, které jsme právě nakonfigurovali.

Z pohledu vysoké úrovně potřebujeme Postfix, aby předal příchozí poštu skenerům SpamAssassin a ClamAV k filtrování a poté předal neblokované poštovní zprávy službám Dovecot pro konečné doručení do poštovní schránky. Postfix také ověří virtuální uživatele, kteří se připojují přes SMTP za účelem odesílání e-mailových zpráv.

Chystáme se vytvořit definiční soubor pro Postfix k identifikaci uživatelů a poštovních schránek. Upozorňujeme, že direktiva „hosts“ v těchto konfiguračních souborech musí být přesně stejná jako direktiva „bind-address“ v /etc/mysql/my.cnf konfigurační soubory.

Nejprve se podívejme na hodnotu bind-address v konfiguračních souborech MySQL.

cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind-address
<
>bind-address =127.0.0.1

Nyní, když máme konfigurační hodnotu, vytvoříme požadované definiční soubory Postfixu.

Zkopírujte a vložte obsah každého souboru. Nezapomeňte aktualizovat hodnotu hesla heslem pro uživatele databáze „mail“, které jste zadali v kroku #7.

/etc/postfix/mysql_virtual_alias_domainaliases_maps.cf

nano /etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
user =mail password =mypassword hosts =127.0.0.1 dbname =mail query =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' AND alias.address=concat('%u', '@', alias_domain.target_domain) AND alias.active =1

Po dokončení uložte a ukončete konfigurační soubor.

/etc/postfix/mysql_virtual_alias_maps.cf

nano /etc/postfix/mysql_virtual_alias_maps.cf
user =mailpassword =mypasswordhosts =127.0.0.1dbname =mailtable =aliasselect_field =gotowhere_field =addressadditional_conditions =and active ='1'

Po dokončení uložte a ukončete konfigurační soubor.

/etc/postfix/mysql_virtual_domains_maps.cf

nano /etc/postfix/mysql_virtual_domains_maps.cf
user =mailpassword =mypasswordhosts =127.0.0.1dbname =mailtable =domainselect_field =domainwhere_field =domainadditional_conditions =and backupmx ='0' a active ='1'

Po dokončení uložte a ukončete konfigurační soubor.

/etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf

nano /etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
user =mailpassword =mypasswordhosts =127.0.0.1dbname =mailquery =SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain ='%d' AND mailbox.username=concat('%u', '@'. alias_domain ) A mailbox.active =1

Po dokončení uložte a ukončete konfigurační soubor.

/etc/postfix/mysql_virtual_mailbox_maps.cf

nano /etc/postfix/mysql_virtual_mailbox_maps.cf
user =mailpassword =mypasswordhosts =127.0.0.1dbname =mailtable =mailboxselect_field =CONCAT(doména, '/', místní_část)where_field =uživatelské jménodalší_podmínky =a aktivní ='1'

Po dokončení uložte a ukončete konfigurační soubor.

Nyní vytvoříme direktivy pro kontrolu záhlaví Postfixu. Tyto direktivy odstraňují určitá záhlaví při předávání pošty systémem. To pomáhá zlepšit soukromí pro odesílající uživatele odstraněním konkrétních záhlaví, jako je původní IP adresa a identifikátory poštovního softwaru. Zkopírujte a vložte níže uvedený obsah do souboru.

nano /etc/postfix/header_checks
/^Received:/ IGNORE/^User-Agent:/ IGNORE/^X-Mailer:/ IGNORE/^X-Originating-IP:/ IGNORE/^x-cr-[a-z]*:/ IGNORE/^ Thread-Index:/ IGNORE

Po dokončení uložte a ukončete.

Nyní jsme připraveni provést některé změny ve výchozím systému Postfix /etc/postfix/main.cf konfigurační soubor.

Tento soubor obsahuje velké množství komplexních voleb a voleb pro instalaci serveru Postfix. Vysvětlení všech dostupných možností nebo osvědčených postupů je daleko nad rámec tohoto článku, takže důrazně doporučujeme, abyste si přečetli možnosti konfigurace Postfixu /usr/share/postfix/main.cf.dist nebo online manuál dodavatele softwaru. O’Reilly také vydal velmi dobrou knihu s názvem Postfix:The Definitive Guide .

Nejprve vytvoříme zálohu původního main.cf konfiguračního souboru a poté vytvořte novou kopii souboru.

mv /etc/postfix/main.cf /etc/postfix/main.cf.originalnano /etc/postfix/main.cf

Nyní zkopírujte níže uvedený obsah do /etc/postfix/main.cf konfigurační soubor.

# Komentovanou a úplnější verzi viz /usr/share/postfix/main.cf.dist # První text odeslaný do připojovacího procesu.smtpd_banner =$myhostname ESMTP $mail_namebiff =no# připojující doménu .doména je MUA job.append_dot_mydomain =noreadme_directory =ne # parametry SASL# ----------------------------------# K ověření použijte Dovecot. smtpd_sasl_type =dovecot# Referring to /var/spool/postfix/private/authsmtpd_sasl_path =private/authsmtpd_sasl_auth_enable =yesbroken_sasl_auth_clients =yessmtpd_sasl_security_options =noanonymoussmtpd_sasl_local_domain =smtpd_sasl_authenticated_header =yes # TLS parameters# ---------------- ----------------- # Toto nahraďte svou cestou k certifikátu SSL, pokud používáte one.smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemsmtpd_tls_key_file=/etc /ssl/private/ssl-cert-snakeoil.key# Certifikát snakeoil s vlastním podpisem nepotřebuje soubor CA. Ale# pokud používáte svůj vlastní certifikát SSL, pak pravděpodobně máte# balíček certifikátů CA od svého poskytovatele. The path to that goes# here.#smtpd_tls_CAfile=/path/to/ca/file smtp_tls_note_starttls_offer =yessmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_random_source =dev:/dev/urandom#smtpd_tls_session_cache_database =btree:${data_directory}/smtpd_scache#smtp_tls_session_cache_database =btree :${data_directory}/smtp_scache # Všimněte si, že vynucení použití TLS způsobí poškození - většina poštovních serverů# to nenabízí, a tak doručení selže, jak příchozí, tak odchozí. To je # nešťastné vzhledem k tomu, co různé vládní agentury v dnešní době dělají. # Toto jsou pouze Postfix 2.2.## Povolit (ale nevynutit) použití TLS na příchozích smtp spojeních.smtpd_use_tls =yessmtpd_enforce_tls =ne# Povolit (ale nevynutit) použití TLS na odchozích smtp spojeních.smtp_use_tptls_forces =ne # Toto jsou Postfix 2.3 a novější.## Povolit (ale nevynucovat) všechna příchozí připojení SMTP k použití TLS.smtpd_tls_security_level =may# Povolit (ale nevynucovat) všechna odchozí připojení SMTP k použití TLS.smtp_tls_security_level =květen # Informace o povolení SSL v klientovi smtp najdete v souboru /usr/share/doc/postfix/TLS_README.gz v balíčku postfix-doc. # Parametry SMTPD# --------------------------------- # Odkomentujte další řádek, abyste vygenerovali varování o „zpožděné poště“# delay_warning_time =4h# bude to trvalá chyba nebo dočasná unknown_local_recipient_reject_code =450# jak dlouho ponechat zprávu ve frontě, než se vrátí jako neúspěšné.# někteří mají 3 dny, já mám 16 dní, protože jsem záložní server pro některé lidi#, kteří jedou na dovolenou s vypnutým serverem.maximal_queue_lifetime =7d# maximální a minimální doba v sekundách mezi opakováními, pokud se spojení nezdařilominimal_backoff_time =1000smaximal_backoff_time =8000s# jak dlouho čekat, když se servery připojí, než obdrží zbytek datasmtp_helo_timeout =60s# na kolika adresách lze zprávu použít .# účinná zátka pro hromadné spammery, náhodné zkopírování v celém seznamu adres# ale může omezit záměrné e-mailové výstřely.smtpd_recipient_limit =16# kolik chyb před odstoupením.smtpd_soft_error_limit =3# maximální počet chyb před zablokováním.smtpd_hard_error_limit =12 # Toto další sada je důležitá pro d určení, kdo může odesílat poštu a předávat poštu# na jiné servery. Je velmi důležité, aby to bylo správně - náhodné vytvoření# otevřeného relé, které umožňuje neověřené odesílání pošty, je velmi špatná věc.## Doporučujeme vám přečíst si, co přesně každá z těchto možností umožňuje. # Requirements for the HELO statementsmtpd_helo_restrictions =permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit# Requirements for the sender detailssmtpd_sender_restrictions =permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit# Requirements for the connecting server# This is primarily the RBL (Realtime Blacklist) Filteringsmtpd_client_restrictions =odmítnout_rbl_client b.barracudacentral.org, odmítnout_rbl_client zen.spamhaus.org, odmítnout_rbl_client spam.dnsbl.sorbs.net# Požadavek na adresu příjemce. Note that the entry for# "check_policy_service inet:127.0.0.1:10023" enables Postgrey.smtpd_recipient_restrictions =reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permitsmtpd_data_restrictions =reject_unauth_pipelining# This is a new volba od Postfixu 2.10+ a je vyžadována navíc k# smtpd_recipient_restrictions, aby věci v tomto setupu správně fungovaly.smtpd_relay_restrictions =cancel_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, odmítnout_non_fqdn_known_service,1cipient_unrecipientth,1cipient_unrecipient. správné helo při připojenísmtpd_helo_required =yes# plýtvejte spammery časem před jejich odmítnutím -------- myhostname =email .linuxbuz.commyorigin =/etc/hostname# Někteří lidé vidí problémy při explicitním nastavení mydestination na subdoménu server#, zatímco ponechání prázdného obecně neškodí. Zde tedy zůstane prázdné.# mydestination =mail.example.com, localhostmydestination =# Pokud máte samostatný webový server, který odesílá odchozí poštu přes tento # poštovní server, možná budete chtít přidat jeho IP adresu do seznamu odděleného mezerami v # mynetworks, např. as 111.222.333.444/32.mynetworks =127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_size_limit =0recipient_delimiter =+adresa_virtualniho mailboxu =+specifikuje slozku virtualni_pošta =+inet_interfaces =host_interfaces allmynetwork být lokalizován.virtual_mailbox_base =/var/vmail# Toto je umístění poštovní schránky každého uživatele. Mapa domainaliases# nám umožňuje používat funkci alias domény Postfix Admin.virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/mysql_virtual_mailbox_domainaliases_map =tu.static:150 virtual_mailbox_domainaliases_map a jejich uživatelské mapy =tu.static:uid50 group idvirtual_gid_maps =static:8# Toto je pro aliasy. Mapa doménových aliasů nám umožňuje používat# alias domény Postfix Admin feature.virtual_alias_maps =mysql:/etc/postfix/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_domainaliases#myslqvirtual_alias_domainaliases_mail =lqvirtual_alias_domainaliases_maps. /etc/postfix/mysql_virtual_domains_maps.cf # Integrace s jinými balíčky# ------------------------------------ --- # Řekněte postfixu, aby předal poštu podle definice pro holubník v master.cfvirtual_transport =dovecotdovecot_destination_recipient_limit =1 # Použít amavis pro skenování virů a spamucontent_filter =amavis:[127.0.0.1]:10024 # Manipulace s hlavičkou# ---- ---------------------------------- # Zbavte se nechtěných hlaviček. Viz:https://posluns.com/guides/header-removal/header_checks =regexp:/etc/postfix/header_checks# zbavit se x-original-toenable_original_recipient =no

Po dokončení uložte a ukončete.

Nyní jsme připraveni přejít k Postfixu /etc/postfix/master.cf konfigurační soubor. Tento konfigurační soubor také obsahuje velké množství komplexních voleb a voleb pro instalaci serveru Postfix, které jsou daleko za rozsahem tohoto článku.

Vytvoříme zálohu původního master.cf konfigurační soubor a poté vytvořte nový soubor.

mv /etc/postfix/master.cf /etc/postfix/master.cf.originalnano /etc/postfix/master.cf

Nyní zkopírujte níže uvedený obsah do /etc/postfix/master.cf konfigurační soubor.

## Konfigurační soubor hlavního procesu Postfixu. Podrobnosti o formátu# souboru viz manuálová stránka master(5) (příkaz:"man 5 master").## Po úpravě tohoto souboru nezapomeňte spustit "postfix reload".## ============================================================================# typ služby private unpriv chroot probuzení příkaz maxproc + args# (ano) (ano) (ano) (nikdy) (100)# ============================================================================# SMTP na portu 25, unencrypted.smtp inet n - - - - smtpd#smtp inet n - - - 1 postscreen#smtpd pass - - - - - smtpd#dnsblog unix - - - - 0 dnsblog#tlsproxy unix - - - - 0 tlsproxy # SMTP s TLS na portu 587.submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_tls =šifrovat -o smtpd_sasl_auth_enable=ano -o smtpd_enfo rce_tls=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject -o smtpd_sasl_tls_security_options=noanonymous # SMTP over SSL on port 465.smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject -o smtpd_sasl_security_options=noanonymous,noplaintext -o smtpd_sasl_tls_security_options=noanonymous #628 inet n - - - - qmqpdpickup fifo n - - 60 1 pickup -o content_filter=-o receive_override_options=no_header_body_checkscleanup unix n - - - 0 cleanupqmgr fifo n - n 300 1 qmgr#qmgr fifo n - n 300 1 oqmgrtlsmgr unix - - - 1000? 1 tlsmgrrewrite unix - - - - - trivial-rewritebounce unix - - - - 0 bouncedefer unix - - - - 0 bouncetrace unix - - - - 0 bounceverify unix - - - - 1 ověřitflush unix n - - 1000? 0 flushproxymap unix - - n - - proxymapproxywrite unix - - n - 1 proxymapsmtp unix - - - - - smtprelay unix - - - - - smtp# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5showq - showq error n - - - - - - - errorretry unix - - - - - errordiscard unix - - - - - discardlocal unix - n n - - localvirtual unix - n n - - virtuallmtp unix - - - - - lmtpanvil unix - - - - 1 anvilscache unix - - - - 1 scache## =====================================================================# Rozhraní k softwaru jiného typu než Postfix. Ujistěte se, že si prohlédnete manuálové# stránky softwaru jiného než Postfixu, abyste zjistili, jaké možnosti požaduje.## Mnoho z následujících služeb používá agenta Postfix pipe(8) delivery#. Informace o ${recipient}# a dalších možnostech obálek zpráv najdete na manuálové stránce pipe(8).# =====================================================================## maildrop. See the Postfix MAILDROP_README file for details.# Also specify in main.cf:maildrop_destination_recipient_limit=1#maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}## ====================================================================## Recent Cyrus versions can use the existing "lmtp" master.cf entry.## Specify in cyrus.conf:# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4## Specify in main.cf one or more of the following:# mailbox_transport =lmtp:inet:localhost# virtual_transport =lmtp:inet:localhost## ====================================================================## Cyrus 2.1.5 (Amos Gouaux)# Also specify in main.cf:cyrus_destination_recipient_limit=1##cyrus unix - n n - - pipe# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}## ====================================================================# Old example of delivery via C yrus.##old-cyrus unix - n n - - pipe# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}## ====================================================================## See the Postfix UUCP_README file for configuration details.#uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)## Other external delivery methods.#ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} # The next two entries integrate with Amavis for anti-virus/spam checks.amavis unix - - - - 3 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20127.0.0.1:10025 inet n - - - - smtpd -o content_filter=-o local_recipient_maps=-o relay_recipient_maps=-o smtpd_restriction_classes=-o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions=-o smtpd_sender_restrictions=-o smtpd_recipient_restrictions=permit_mynetworks,reje ct -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions=-o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks # Integration with Dovecot - hand mail over to it for local delivery, and# run the process under the vmail user and mail group.dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/dovecot-lda -d $(recipient)

Once done, save and exit.

We are now ready to restart all of the mail services and test the server.

service postfix restartservice spamassassin restartservice clamav-daemon restartservice amavis restartservice dovecot restart

While testing your new mail server, make sure to watch the log files closely for any errors or unusual responses.
The mail server log files are located here:

  • General Logging:/var/log/mail.log
  • Error Logging:/var/log/mail.err

[Zpět na začátek]

14 – Reverse DNS Lookup

You will now need to set up reverse DNS lookup for your mail server.
Reverse DNS is IP-address-to-domain-name mapping – the opposite of forward (normal) DNS which maps domain names to IP addresses. Reverse DNS is mostly used by people for such things as tracking where a website visitor came from or where an email message originated, for example. Reverse DNS is also important for mail server applications. Many email servers on the Internet are configured to reject incoming emails from any IP address which does not have reverse DNS record configured.

Unless you also administer your own DNS server, you can update reverse DNS with your ISP (Internet Service Provider) or via the hosting provider of your server.

[Zpět na začátek]

15 – Install RoundCube Webmail

Now we are going to install the RoundCube Webmail application. This application will allow your remote users to connect to their mailbox through a web browser.

apt-get install roundcube roundcube-mysql roundcube-plugins roundcube-plugins-extra

During the installation process, the system will ask you the prerequisite install questions. Note:you will need the password for the MySQL root user you set up in Step 2.

Configure database for roundcube with dbconfig-common?>> Select 'YES'Database type to be used by roundcube:>> Select 'mysql'Password of the database's administrative user:>> Enter the 'root' MySQL password that you created.MySQL application password for roundcube:>> Enter a new secure password for the RoundCube application to use.

Once you are finished with the pre-installation questions, you should see the following output. Double check the output to make sure there are not errors posted during the installation process.

dbconfig-common:writing config to /etc/dbconfig-common/roundcube.conf Creating config file /etc/dbconfig-common/roundcube.conf with new versionCreating config file /etc/roundcube/debian-db.php with new versiongranting access to database roundcube for [email protected]:success.verifying access for [email protected]:success.creating database roundcube:success.verifying database roundcube exists:success.populating database via sql... done.dbconfig-common:flushing administrative passwordCreating config file /etc/roundcube/config.inc.php with new versionapache2_invoke:Enable configuration roundcube.conf * Reloading web server apache2 * * Reloading web server apache2 * Setting up roundcube (1.4.3) ...Setting up roundcube-plugins (1.4.3) ...Setting up roundcube-plugins-extra (0.9.2-20130819) ...Processing triggers for dictionaries-common (1.20.5) ...aspell-autobuildhash:processing:en [en-common]aspell-autobuildhash:processing:en [en-variant_0]aspell-autobuildhash:processing:en [en-variant_1]aspell-autobuildhash:processing:en [en-variant_2]aspell-autobuildhash:processing:en [en-w_accents-only]aspell-autobuildhash:processing:en [en-wo_accents-only]aspell-autobuildhash:processing:en [en_CA-variant_0]aspell-autobuildhash:processing:en [en_CA-variant_1]aspell-autobuildhash:processing:en [en_CA-w_accents-only]aspell-autobuildhash:processing:en [en_CA-wo_accents-only]aspell-autobuildhash:processing:en [en_GB-ise-w_accents-only]aspell-autobuildhash:processing:en [en_GB-ise-wo_accents-only]aspell-autobuildhash:processing:en [en_GB-ize-w_accents-only]aspell-autobuildhash:processing:en [en_GB-ize-wo_accents-only]aspell-autobuildhash:processing:en [en_GB-variant_0]aspell-autobuildhash:processing:en [en_GB-variant_1]aspell-autobuildhash:processing:en [en_US-w_accents-only]aspell-autobuildhash:processing:en [en_US-wo_accents-only]Setting up aspell (0.60.7~20110707-1ubuntu1) ...Processing triggers for dictionaries-common (1.20.5) ...Setting up aspell-en (7.1-0-1) ...Processing triggers for libc-bin (2.19-0ubuntu6.6) ...Processing triggers for dictionaries-common (1.20.5) [email protected]#

Next, we need to customize some of the RoundCube configuration files. First, we are going to add the RoundCube application into our current Apache configuration files using path alias directives. The default configuration file is installed at /etc/apache2/conf-available/roundcube.conf

nano /etc/apache2/conf-available/roundcube.conf

We now need to remove the two comment flags in front of the alias directives. If you would like to use a different alias name, you can change that here as well. The default alias will use the URL http://<your-server-url>/roundcube/

 Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/ Alias /roundcube /var/lib/roundcube

Po dokončení uložte a ukončete soubor.

Now we are going to modify the /etc/roundcube/config.inc.php konfigurační soubor. This file is where you can customize the RoundCube advanced settings.

nano /etc/roundcube/config.inc.php

Locate the following directives and update the values to match the following.

$config['default_host'] ='';$config['smtp_server'] ='localhost';$config['smtp_port'] =25;$config['smtp_user'] ='%u';$config['smtp_pass'] ='%p';$config['support_url'] ='';

Po dokončení uložte a ukončete konfigurační soubor.

Finally, restart the apache service to apply the changes:

systemctl restartujte apache2

You should now be able to use your new RoundCube webmail application for sending and receiving message.

[Back to top]

Blahopřejeme!

You have now set up a fully functional and secure mail server on your VPS hosting account from Atlantic.Net.

Zjistěte více o našich hostingových službách VPS a virtuálních privátních serverech.


Linux
  1. Jak nastavit Zimbra Mail Server na Ubuntu 16

  2. Nastavte server Urbackup na Ubuntu 20.04

  3. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  1. Nastavení serveru Ubuntu 20.04 Minecraft

  2. Nainstalujte poštovní server Postfix a Dovecot na Ubuntu nebo Debian

  3. Nastavte přeposílání pošty v postfixu na Ubuntu nebo Debianu

  1. Nastavení serveru Ubuntu 22.04 Minecraft

  2. Jak nastavit poštovní server Postfix na Ubuntu 16.04 (Dovecot - MySQL)

  3. Jak nastavit OpenVPN na serveru Ubuntu