Pokud potřebujeme poslat pouze jednou za čas pár logů, nemusíme nastavovat Postfix, ale stačí využít sendEmail.
sendemail/var/mail/virtual/<doména>/<jméno_uživatele>Postfix - SMTP
Dovecot - POP3 / IMAP
/etc/postfix/main.cf/etc/postfix/vmailbox/etc/postfix/virtual/etc/dovecot/dovecot.conf/etc/dovecot/passwdSoubor s nastavením programu Postfix najdeme v /etc/postfix/main.cf. Pro základní použití jej upravíme následovně.
# Úplné jméno našeho serverumyhostname = mail.mydomain.com# Doména, ze které bude přicházet lokální pošta, pokud nebyla specifikována adresa odesílatele. Generujese se automaticky z myhostnamemyorigin = $mydomainbiff = nodelay_warning_time = 4h# Definice síťových zařízení (nemusí být)inet_interfaces = all# Specifikace naší sítěmynetworks = 127.0.0.0/8, 192.168.1.0/24, [::1]/128# mynetworks_style = class# mynetworks_style = subnet# mynetworks = $config_directory/mynetworks# mynetworks = hash:/etc/postfix/mynetworkssmtpd_client_restrictions = permit_mynetworks,# check_sender_access hash:/etc/postfix/access, permitsmtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain,# check_sender_access hash:/etc/postfix/access, permitsmtpd_recipient_restrictions = permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain,# check_recipient_access hash:/etc/postfix/access, reject_unauth_destination, permitsmtpd_error_sleep_time = 30smtpd_soft_error_limit = 10smtpd_hard_error_limit = 20smtpd_helo_required = yesdisable_vrfy_command = yes# Domeny pro ktere bude Postfix dorucovat (dalsi jsou oddeleny mezerou)virtual_mailbox_domains = mydomain.com# Umisteni uloziste schranek virtualnich uzivateluvirtual_mailbox_base = /var/mail/virtual# Umisteni tabulky schranek a aliasuvirtual_mailbox_maps = hash:/etc/postfix/vmailboxvirtual_alias_maps = hash:/etc/postfix/virtual# Definice uživatele# minimum_uid nemusí být, když je definováno uid a gidvirtual_minimum_uid = 132virtual_uid_maps = static:132virtual_gid_maps = static:140poznámka:
V posledních třech řádkách musí být správně nastavený uživatel. Nesmí být totožný s uživatelem, pod kterým běží Postfix (typicky postfix).
Po každé změně konfiguračních souborů je potřeba vynutit nové načtení těchto souborů. Záleží na konkrétní distribuci, obvykle se to provádí přes /etc/init.d/postfix reload, případně obecně postfix reload. U některých změn (jmenovitě třeba nastavení síťových rozhraní, kde má Postfix naslouchat) to ale nestačí a celý Postfix se musí restartovat (např. /etc/init.d/postfix restart nebo postfix stop && postfix start).
Zakomentované řádky s hash:/etc/postfix/access jsou BLACK/WHITE listy. Více se o nich dozvíte v článku Lukáše Jelínka.
Po změně /etc/postfix/access (a aktualizace jeho hash souboru postmap /etc/postfix/access) není třeba Postfix restartovat, ani reloadovat!
V souboru /etc/postfix/main.cf jsme uvedli, že přístup ke sbírání emailů bude mít uživatel s definovaným UID a GID. Tato čísla získáme z výpisu programu adduser při jeho vytváření. Uživatele nazveme například vmail a vytvoříme jej příkazem:
$ sudo adduser --system --group --no-create-home vmailPřidávám systémového uživatele 'vmail' (UID 132) ...Přidávám novou skupinu 'vmail' (GID 140) ...Přidávám nového uživatele 'vmail' (UID 132) se skupinou 'vmail' ...Nevytvářím domovský adresář '/home/vmail'.vysvětlení:
--system vytvoří systémového uživatele
--group vytvoří k uživateli stejnojmennou skupinu a přiřadí jej do ní
--no-create-home nebude vytvářet domovský adresář, jelikož jej nepotřebujeme
vmail je název vytvářeného uživatele
V souboru /etc/postfix/main.cf jsme zadali složku pro poštu virtuálních uživatelů. Té (kromě toho, že ji vytvoříme) musíme nastavit i správná práva a vlastnictví. Vlastnit ji bude nově vytvořený uživatel vmail a skupina vmail a práva k ní bude mít také jen on.
$ sudo mkdir /var/mail/virtual$ sudo chown vmail:vmail virtual/$ sudo chmod 700 virtual/Virtuální uživatelé nemají účet přímo na serveru v systému.
Soubor emailových schránek s jejich umístěním na disku serveru je v souboru /etc/postfix/vmailbox.
meridius@mydomain.commydomain.com/meridius/
vbox-winxp-u1@mydomain.commydomain.com/vbox-winxp-u1/
vbox-winxp-u2@mydomain.commydomain.com/vbox-winxp-u2/
vbox-ubuntu@mydomain.commydomain.com/vbox-ubuntu/
poznámka:
Důležité je, aby cesta končila lomítkem, protože to signalizuje, že jde o schránku typu Maildir. Pokud by se nepoužilo, Postfix by to chápal jako mbox.
Cesty jsou relativní vzhledem k proměnné virtual_mailbox_base ze souboru /etc/dovecot/dovecot.conf, tedy pod umístěním /var/mail/virtual.
Dalším souborem bude /etc/postfix/virtual, tedy tabulka aliasů. Vypadá podobně jako tabulka schránek, jen místo cesty je cílová adresa.
Tvar souboru je tedy:
alias skutečná adresaA náš obsah:
postmaster@mydomain.commeridius@mydomain.com
root@mydomain.commeridius@mydomain.com
abuse@mydomain.commeridius@mydomain.com
vwu1@mydomain.comvbox-winxp-u1@mydomain.com
vwu2@mydomain.comvbox-winxp-u2@mydomain.com
vlu1@mydomain.comvbox-ubuntu@mydomain.com
poznámka:
Jeden alias může směřovat na jiný alias a takhle až 1000x, nebo podle hodnoty v proměnné virtual_alias_recursion_limit.
Dále musí být, podle RFC 2821 a draftu RFC 5321, definována adresa uživatele postmaster, jako standardní způsob jak kontaktovat správce serveru.
RFC 2142 definuje také adresu abuse, určenou k oznamování zneužití služby – měla by být definována pro nejvyšší doménu využívanou určitým subjektem (v praxi typicky doména 2. úrovně), ale v praxi se adresa skutečně využívá zřídka. V různých RFC najdete i další speciální adresy spjaté s jinými službami.
Oba textové soubory je nyní nutné převést na hash tabulky příkazem postmap <soubor>.
Do souboru /etc/inetd.conf přidat řádek ?????
pop3 stream top nowait root /usr/sbin/tcpd /usr/sbin/popa3dHesla budeme ukládat do souboru /etc/dovecot/passwd v otevřeném formátu, takže musíme dbát na správná přístupová práva k souboru s nimi!
K souboru s hesly smí mít přístup jen uživatel, pod nímž poběží program provádějící autentizaci. Tímto uživatelem nesmí být root, uživatel dovecot ani uživatel určený pro přístup ke zprávám (např. vmail). Vhodným řešením je založit speciálního uživatele, například dovecot-auth, a toho oprávnit k přístupu k datům. Tento uživatel se pak nastaví v konfiguračním souboru.
Postup k vytvoření uživatele dovecot-auth je obdobný jako uživatele vmail. Jen jej již nepotřebujeme přidávat do skupiny.
$ sudo adduser --system --no-create-home dovecot-authCesta ke schránce se bude tvořit automaticky z uživatelského jména včetně domény (uživatelé se budou přihlašovat celou emailovou adresou), ta se rozloží na své složky a použije v cestě.
Nyní už zbývá jen vytvořit soubor s uživatelskými jmény a hesly. Detailní popis formátu souboru najdeme například na wiki programu Dovecot.
meridius@mydomain.com:{plain}heslo:132:140:::
vbox-winxp-u1@mydomain.com:{plain}heslo:132:140:::
vbox-winxp-u2@mydomain.com:{plain}heslo:132:140:::
vbox-ubuntu@mydomain.com:{plain}heslo:132:140:::
Přístup k tomuto souboru povolíme jen uživateli dovecot-auth.
$ sudo chown dovecot-auth /etc/dovecot/passwd$ sudo chmod 700 /etc/dovecot/passwdNachází se v /etc/dovecot/dovecot.conf a obsahuje
protocols = imap pop3ssl = nodisable_plaintext_auth = no#typ a umisteni uloziste zprav uzivatelemail_location = maildir:/var/mail/virtual/%d/%n# Nastaveni uzivatele a skupiny s opravnenim pracovat s ...first_valid_uid = 132last_valid_uid = 132first_valid_gid = 140last_valid_gid = 140# Nastaveni obchazeni chyb implementaci protokolu na strane klinetu# IMAP v MS Outlookprotocol imap { imap_client_workarounds = outlook-idle}protocol pop3 { # Format unikatnich identifikatoru zprav pop3_uidl_format = %08Xu%08Xv # Dalsi obchazeni chyb nekterych klientu pop3_client_workarounds = outlook-no-nuls oe-ns-eoh}auth default { mechanisms = plain login passdb passwd-file { args = scheme=plain username_format=%u /etc/dovecot/passwd } userdb passwd-file { args = username_format=%u /etc/dovecot/passwd } user = dovecot-auth}http://www.abclinuxu.cz/clanky/site/soukroma-sit-v