Emailové služby

Proces odoslania emailu od jednej osoby k druhej, cez sieť alebo Internet vyžaduje, aby mnoho systémov spolupracovalo. Každý z týchto systémov musí byť sprábne nastavený aby pracoval tak ako má. Odosielateľ použije Používateľského agenta - Mail User Agent (MUA) alebo emailového klienta na odoslanie pošty cez jeden alebo viacero Agentov pre prenos pošty - Mail Transfer Agents (MTA), posledný z nich predá email  Doručovaciemu agentovi - Mail Delivery Agent (MDA), ktorý  email doručí do používateľovej schránky, z ktorej si používateľ email vyberie zvyčajne pomocou serverov POP3 alebo IMAP.

Postfix

Postfix je predvoleným agentom na prenos emailov - Mail Transfer Agent (MTA) v Ubuntu. Pokúša sa byť rýchly, ľahko konfigurovateľný a bezpečný. Je kompatibilný s MTA agentom sendmail. V tejto časti si povieme ako postfix nainštalovať a nakonfigurovať. Vysvetlíme tiež, ako ho nastaviť tak, aby bol SMTP serverom, ktorý používa zabezpečené pripojenie (na bezpečný prenos emailov).

Tento návod neobsahuje nastavenie Virtualnych domén pre Postfix. Zdroje informácií o Virtualnych doménach a ďalšej pokročilej konfigurácii nájdeme v časti Zdroje.

Inštalácia

Systém postfix nainštalujeme pomocou nasledujúceho príkazu:

sudo apt-get install postfix

Všetky otázky, ktoré bude klásť inštalátor, potvrdíme klávesou Enter, pretože konfiguráciu budeme meniť neskôr.

Základná konfigurácia

Ak chceme zmeniť konfiguráciu systému postfix, spustíme nasledujúci príkaz:

sudo dpkg-reconfigure postfix

Zobrazí sa používateľské rozhranie. Na každej z obrazoviek vyberieme nasledujúce hodnoty:

  • Internet Site

  • mail.nieco.sk

  • stefan

  • mail.nieco.sk, localhost.localdomain, localhost

  • Nie

  • 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0/24

  • 0

  • +

  • all

[Note]

Adresu mail.nieco.sk nahraďte názvom stanice, masku siete 192.168.0/24 nahraďte aktuálnym rozsahom adries vašej siete a meno stefan nahraďte príslušným menom používateľa.

Teraz je potrebné rozhodnúť sa, ktorý formát mailových schránok budeme používať. V predvolenom stave bude Postfix používať formát mbox. Miesto priamej úpravy konfiguračného súboru môžeme použiť príkaz postconf, ktorý slúži na nastavovanie všetkých parametrov systému postfix. Konfiguračné parametre sú uložené v súbore /etc/postfix/main.cf. Neskôr ak budeme chcieť zmeniť konkrétny parameter, môžeme buď znova spustiť spomínaný príkaz alebo ho ručne zmeniť v súbore.

Keď chcem zmeniť formát schránok na  Maildir, zadáme:

sudo postconf -e 'home_mailbox = Maildir/'
[Note]

Nové maily sa budú odteraz nachádzať v priečinku /home/meno_pouzivatela/Maildir, preto je tiež potrebné zmeniť nastavenie v Doručovacom agentovi (MDA), aby používal rovnakú cestu.

SMTP autentifikácia

SMTP-AUTH umožňuje klientovi identifikovať seba samého prostredníctvom autentifikačného mechanizmu (SASL). Na zašifrovanie autentifikačného procesu by mal byť použitý protokol Transport Layer Security (TLS). Po autentifikácii SMTP server umožní klientovi odosielať maily.

  1. Nastavíme Postfix tak, aby pre SMTP-AUTH používal SASL (Dovecot SASL):

    sudo postconf -e 'smtpd_sasl_type = dovecot'
    sudo postconf -e 'smtpd_sasl_path = private/auth-client'
    sudo postconf -e 'smtpd_sasl_local_domain ='
    sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
    sudo postconf -e 'broken_sasl_auth_clients = yes'
    sudo postconf -e 'smtpd_sasl_auth_enable = yes'
    sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    sudo postconf -e 'inet_interfaces = all'
    [Note]

    Do nastavenia smtpd_sasl_path je potrebné zadať cestu, ktorá je relatívna od priečinka s radom (queue) systému Postfix.

  2. Teraz získame digitálny certifikát pre TLS. Viac informácii nájdeme v časti "Certifikáty". V tomto príklade je tiež použitá Certifikačná autorita (CA). Viac informácií o generovaní certifikátu CA nájdeme v časti "Certivfikačná autorita".

    [Note]

    Digitálny certifikát môžeme získať od certifikačnej autority. Na rozdiel od webových klientov, sa SMTP klienti len zriedka sťažujú na "sebou podpísané certifikáty", preto môžeme vytvoriť certifikát, ktorý si sami podpíšeme. Viac podrobností nájdeme v časti “Vytvorenie sebou podpísaného certifikátu”.

  3. Keď už máme certifikát, nakonfigurujeme Postfix aby poskytoval TLS šifrovanie pre prichádzajúce aj odchádzajúce správy:

    sudo postconf -e 'smtpd_tls_auth_only = no'
    sudo postconf -e 'smtp_use_tls = yes'
    sudo postconf -e 'smtpd_use_tls = yes'
    sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
    sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
    sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    sudo postconf -e 'smtpd_tls_loglevel = 1'
    sudo postconf -e 'smtpd_tls_received_header = yes'
    sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    sudo postconf -e 'tls_random_source = dev:/dev/urandom'
    sudo postconf -e 'myhostname = mail.example.com'
  4. Ak sme použili vlastnú Certifikačnú autoritu na podpísanie certifikátu, zadáme:

    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'

    Viac informácií sa môžeme opäť dozvedieť v časti Certifikáty.

[Note]

Po spustení všetkých príkazov je Postfix nastavený tak aby používal SMTP-AUTH a kvôli TLS šifrovaniu bol vytvorený sebou podpísaný certifikát.

Teraz by mal súbor /etc/postfix/main.cf vyzerať takto.

Počiatočná konfigurácia systému postfix je hotový. Nasledujúcim príkazom reštartujeme démon:

sudo /etc/init.d/postfix restart

Postfix podporuje SMTP-AUTH tak, ako je definovaná v RFC2554. Je založená na SASL. Pred tým ako SMTP-AUTH použijeme, je potrebné atentifikáciu SASL nastaviť.

Konfigurácia SASL

Postfix podporuje dve implementácie SASL - Cyrus SASL a Dovecot SASL. Keď chceme zapnúť Dovecot SASL, je potrebné nainštalovať balík dovecot-common. V príkazovom riadku zadáme:

sudo apt-get install dovecot-common

Teraz je potrebné upraviť súbor /etc/dovecot/dovecot.conf. V časti auth default odpoznámkujeme voľbu socket listen a urobíme nasledujúce zmeny:

  socket listen {
#master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/spool/postfix/private/auth-client
mode = 0660
user = postfix
group = postfix
}
}

Aby sme umožnili Outlook klientom použiť SMTPAUTH, v časti auth default súboru /etc/dovecot/dovecot.conf pridáme "login":

  mechanisms = plain login

Po dokončení konfigurácie reštartujeme systém Dovecot:

sudo /etc/init.d/dovecot restart

Postfix-Dovecot

Ďalšia možnosť nastavenia systému Postfix tak, aby používal SMTP-AUTH sa robí pomocou balíka dovecot-postfix. Tento balík nainštaluje Dovecot a nastaví Postfix tak, aby používal SASL autentifikáciu a aby fungoval ako agent na doručovanie správ - Mail Delivery Agent (MDA). Balík nainštaluje a nakonfiguruje aj systém Dovecot, aby bolo možné použiť IMAP, IMAPS, POP3 a POP3S.

[Note]

Na vašom poštovom serveri služby IMAP, IMAPS, POP3 a POP3S môžete ale nemusíte využívať. Ak napríklad chcete nastaviť server tak aby bol mailovou bránou, filtrom spamu a vírusov atď. Ak je to tak, je jednoduchšie použiť  predchádzajúci príkaz na nastavenie SMTPAUTH v systéme Postfix.

Ak chceme tento balík nainštalovať, zadáme:

sudo apt-get install dovecot-postfix

Teraz by sme mali mať funkčný server, ale ešte môžeme niekoľko nastavení prispôsobiť. Napríklad balík používa certifikát a kľúč vytvorený balíkom ssl-cert a my by sme v ostrej prevádzke mali používať certifikát a kľúč vygenerovaný pre náš server. Viac informácii sa nachádza v časti "Certifikáty".

Ak už máme náš vlastný certifikát a kľúč, zmeníme nasledujúce nastavenia v súbore /etc/postfix/main.cf:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Potom reštartujeme Postfix:

sudo /etc/init.d/postfix restart

Testovanie

Konfigurácia SMTP-AUTH je hotová. Teraz je čas nastavenie otestovať.

Ak chceme vidieť či SMTP-AUTH a TLS pracujú správne, spustíme nasledujúci príkaz:

telnet mail.nieco.sk 25

Po nadviazaní spojenia s mailovým serverom postfix, zadáme:

ehlo mail.nieco.sk

Ak medzi vypísanými riadkami uvidíme aj nasledujúce, všetko pracuje správne. Spojenie ukončíme príkazom quit.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Riešenie problémov

Táto časť hovorí o niekoľkých spôsoboch, ktorými sa dajú odhaliť príčiny vzniknutých problémov.

Opustenie chroot

Balík postfix systému Ubuntu je kvôli bezpečnosti nainštalovaný do prostredia chroot. Kvôli tomu sa problém ťažšie hľadá.

Ak chceme vypnúť prevádzku chroot, v súbore /etc/postfix/master.cf nájdeme nasledujúci riadok:

smtp      inet  n       -       -       -       -       smtpd

a takto ho zmeníme:

smtp      inet  n       -       n       -       -       smtpd

Aby sa nová konfigurácia prejavila, je potrebné reštartovať Postfix. Do príkazového riadka zadáme:

sudo /etc/init.d/postfix restart

Súbory záznamov

Postfix odosiela všetky hlásenia do súboru so záznamom /var/log/mail.log. Chybové hlásenia a varovania však môžeme medzi ostatnými hláseniami prehliadnuť, preto sú odosielané do samostatných súborov /var/log/mail.err a /var/log/mail.warn.

Ak chceme v reálnom čase čítať prichádzajúce chybové hlásenia, môžeme použiť príkaz tail -f:

tail -f /var/log/mail.err

Podrobnosť zaznamenávaných záznamov sa dá zvýšiť. Nižšie je niekoľko konfiguračných možností na zvýšenie podrobnosti záznamov pre rôzne vyššie popísané oblasti.

  • Podrobnosť záznamov o TLS aktivitách nastavíme pomocou nastavenia smtpd_tls_loglevel, ktoré môže byť v rozsahu 1 až 4.

    sudo postconf -e 'smtpd_tls_loglevel = 4'
    
  • Ak máme problém s prijímaním alebo odosielaním mailov na konkrétnu doménu, môžeme meno domény pridať ako parameter do nastavenia debug_peer_list.

    sudo postconf -e 'debug_peer_list = problemova.domena'
    
  • Výrečnosť ktoréhokoľvek démona systému Postfix zvýšime pridaním -v za riadok v súbore /etc/postfix/master.cf. Napríklad pre smtp to urobíme takto:

    smtp      unix  -       -       -       -       -       smtp -v
    
[Note]

Po vykonaní zmien v nastavení zaznamenávania procesov systému Postfix je potrebné ho znova načítať, aby sa nová konfigurácia prejavila: sudo /etc/init.d/postfix reload

  • Ak chceme zvýšiť počet záznamov pri problémoch so SASL, môžeme nastaviť nasledujúce nastavenia v súbore /etc/dovecot/dovecot.conf

    auth_debug=yes
    auth_debug_passwords=yes
[Note]

Rovnako, ako pri systéme Postfix, ak zmeníte konfiguráciu, ktorá sa týka aj procesov systému Dovecot, je potrebné ho znova načítať: sudo /etc/init.d/dovecot reload.

[Note]

Niektoré možnosti výrazne zvýšia počet informácií, ktoré sa odosielajú do súborov so záznamami. Po vyriešení problému preto nezabudnite vrátiť pôvodné nastavenie a znova načítať príslušný démon,  aby sa nová konfigurácia prejavila.

Zdroje

Administrácia servera Postfix je veľmi zložitá úloha. V niektorých prípadoch bude potrebné sa kvôli pomoci obrátiť na komunitu Ubuntu.

Skvelým miestom, kde môžete požiadať o pomoc so systémom Postfix a spojiť sa s komunitou Ubuntu Servera , je IRC kanál #ubuntu-server na freenode. Je tiež možné poslať otázku do jedného z webových fór.

Detailné informácie o systéme Postfix pre vývojárov Ubuntu sa nachádzajú v knihe: The Book of Postfix.

Dokumentácia k rôznym spôsobom konfigurácie sa nachádza na domovskej stránke systému Postfix.

Viac informácií sa dá nájsť aj na stránke Ubuntu Wiki Postifx.

Po spustení všetkých príkazov je <application>Postfix</application> nastavený tak aby používal SMTP-AUTH a kvôli TLS šifrovaniu bol vytvorený sebou podpísaný certifikát.

Exim4

Exim4 je ďalší agent na prenos pošty (MTA) vyvinutý na University of Cambridge pre použitie v systémoch Unix pripojených k Internetu. Exim sa dá nainštalovať miesto systému sendmail, aj keď konfigurácia exim je od systému sendmail mierne odlišná.

Inštalácia

Ak chceme nainštalovať exim4, spustíme nasledujúci príkaz:

sudo apt-get install exim4

Konfigurácia

Konfiguráciu Exim4 spustíme pomocou nasledujúceho príkazu:

sudo dpkg-reconfigure exim4-config

Zobrazí sa používateľské rozhranie, ktoré nám umožní nastaviť mnoho parametrov. Napríklad môžeme zmeniť spôsob rozdelenia konfiguračných možností Exim4 do viacerých súborov. Ak chceme všetky konfiguračné možnosti mať v jednom súbore, nastavíme to v používateľskom rozhraní.

Všetky parametre, ktoré nastavíte cez používateľské rozhranie, sú uložené v súbore /etc/exim4/update-exim4.conf.conf. Ak chceme znova zmeniť konfiguráciu, môžeme opäť spustiť predchádzajúci príkaz, alebo ručne upraviť spomínaný súbor pomocou obľúbeného editora. Po dokončení konfigurácie spustíme nasledujúci príkaz, ktorým vygenerujeme hlavný konfiguračný súbor:

sudo update-exim4.conf

Hlavný konfiguračný súbor sa vygeneruje a uloží sa do /var/lib/exim4/config.autogenerated.

[Warning]

Nikdy by sme nemali upravovať hlavný konfiguračný súbor /var/lib/exim4/config.autogenerated ručne. Aktualizuje sa automaticky, stačí, ak spustíte príkaz update-exim4.conf

Nasledujúcim príkazom spustíme démona Exim4.

sudo /etc/init.d/exim4 start

SMTP autentifikácia

Táto časť hovorí o tom, ako nastaviť systém Exim4 tak, aby používal SMTP-AUTH s TLS a SASL.

Najskôr vytvoríme certifikát pre použitie s TLS. Zadáme nasledujúci príkaz do príkazového riadka:

sudo /usr/share/doc/exim4-base/examples/exim-gencert

Teraz systém Exim4 nastavíme tak, aby používal  TLS úpravou nasledujúceho riadku v súbore /etc/exim4/conf.d/main/03_exim4-config_tlsoptions:

MAIN_TLS_ENABLE = yes

Teraz je potrebné, nastaviť systém Exim4 tak, aby používal na autentifikáciu saslauthd. Otvoríme súbor /etc/exim4/conf.d/auth/30_exim4-config_examples a odpoznámkujeme časti plain_saslauthd_server a login_saslauthd_server:

 plain_saslauthd_server:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
server_prompts = :
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
#
login_saslauthd_server:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif

Naoniec aktualizujeme konfiguráciu Exim4 a reštartujeme službu:

sudo update-exim4.conf
sudo /etc/init.d/exim4 restart

Konfigurácia SASL

Táto časť hovorí o konfigurácii saslauthd, ktorá slúži na autentifikáciu v systéme Exim4.

Prvým krokom je nainštalovanie balíka sasl2-bin. Do príkazového riadka zadáme:

sudo apt-get install sasl2-bin

Ak chceme nastaviť saslauthd, otvoríme súbor /etc/default/saslauthd a prestavíme START=no na:

START=yes

Potom je potrebné vytvoriť používateľa Debian-exim, ktorý bude patriť do skupiny sasl, a pod ktorým bude spustená služba Exim4:

sudo adduser Debian-exim sasl

Teraz spustíme službu saslauthd:

sudo /etc/init.d/saslauthd start

Exim4 je teraz nastavený tak, aby používal SMTP-AUTH pomocou TLS a SASL.

Zdroje

Dovecot

Dovecot je doručovací agent (Mail Delivery Agent), primárne zameraný na bezpečnosť. Podporuje väčšinu formátov poštových schránok: mbox alebo Maildir. V tejto časti si povieme, ako ho nastaviť do pozície imap alebo pop3 servera.

Inštalácia

Ak chceme nainštalovať dovecot, spustíme nasledujúci príkaz:

sudo apt-get install dovecot-imapd dovecot-pop3d

Konfigurácia

Nastavenia systému dovecot sa dajú upravovať v súbore /etc/dovecot/dovecot.conf. Môžeme si zvoliť protokol, ktorý budeme používať. Mal by to byť jeden z týchto: pop3, pop3s (pop3 secure), imap a imaps (imap secure). Popis týchto protokolov nie je predmetom tejto príručky. Viac informácií o nich môžete nájsť vo Wikipédií v článkoch POP3 a IMAP.

IMAPS a POP3S sú zabezpečenými verziami jednoduchých protokolov IMAP a POP3, pretože používajú na pripojenie SSL šifrovanie. Vybrané protokoly môžeme nastaviť v nasledujúcom riadku v súbore /etc/dovecot/dovecot.conf:

protocols = pop3 pop3s imap imaps

Potom si zvolíme formát poštovej schránky, ktorý budeme používať. Dovecot podporuje formáty maildir a mbox. Toto sú najčastejšie používané formáty poštových schránok. Každá z nich má iné výhody, o ktorých sa môžeme viac dozvedieť na stránke Dovecot web site.

Typ mailovej schránky nastavíme v súbore /etc/dovecot/dovecot.conf pomocou nasledujúceho riadku:

mail_location = maildir:~/Maildir # (pre formát maildir)

alebo

mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u # (pre formát mbox)
[Note]

Tiež by ste mali nastaviť agenta pre prenos pošty - Mail Transport Agent (MTA), ak prichádzajúcu poštu doručuje do iného typu schránky ako ste nastavili.

Po ukončení konfigurácie systému dovecot, reštartujeme démon dovecot, aby sa nastavenia prejavili:

sudo /etc/init.d/dovecot restart

Ak je povolený protokol imap alebo pop3, môžeme ho otestovať pomocou príkazu telnet localhost pop3 alebo telnet localhost imap2. Ak uvidíte niečo podobné, ako je v nasledujúcom výpise, inštalácia prebehla úspešne:

bhuvan@rainbow:~$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready.

SSL nastavenia systému Dovecot

Ak chceme dovecot nastaviť tak, aby používal SSL, otvoríme súbor /etc/dovecot/dovecot.conf a pozmeníme nasledujúce riadky:

ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
ssl_disable = no
disable_plaintext_auth = no

SSL certifikát môžeme získať od Certifikačnej autority alebo môžeme vytvoriť sebou podpísaný SSL certifikát. Ten však nie je vhodný pre email, pretože SMTP klienti neakceptujú "sebou podpísané certifikáty". Viac informácií o tom, ako sa dá získať alebo vytvoriť certifikát, sa nachádza v časti "Certifikáty". Po získaní certifikátu, budeme mať súbor s kľúčom a súbor s certifikátom. Nakopírujeme ich do priečinkov, na ktoré sa odkazujeme v súbore /etc/dovecot/dovecot.conf.

Nastavenie Firewallu pre emailový server

Aby sa dalo pristupovať k mailovému serveru z iného počítača, musíme nastaviť firewall tak , aby umožnil spojenie na server cez nasledujúce porty.

  • IMAP - 143

  • IMAPS - 993

  • POP3 - 110

  • POP3S - 995

Zdroje

Mailman - mailové diskusie

Mailman program s otvoreným zdrojovým kódom na správu elektronických poštových diskusií. Mnoho diskusií o otvorenom softvéri (vrátane mailových diskusií Ubuntu mailing lists) používa systém Mailman. Je to mocný systém, ktorý sa dá jednoducho nainštalovať a udržiavať.

Inštalácia

Mailman poskytuje webové rozhranie pre administrátorov a používateľov, používajúce externý mailový server na odosielanie a prijímanie pošty. Pracuje bezchybne s nasledujúcimi servermi:

  • Postfix
  • Exim
  • Sendmail
  • Qmail

Ukážeme si, ako Mailman nainštalovať a ako ho nastaviť aby spolupracoval s webovým serverom Apache a mailovým serverom Postfix alebo Exim. Ak chceme nainštalovať Mailman s iným mailovým serverom, návod nájdeme v zdrojoch na konci tejto časti.

[Note]

Je potrebné nainštalovať iba jeden poštový server a Postfix je predvoleným agentom na prenos pošty v Ubuntu.

Apache2

Návod na inštaláciu systému apache2 sa nachádza v časti HTTPD - Inštalácia.

Postfix

Postup ako nainštalovať a nastaviť Postfix sa nachádza v časti "Postfix"

Exim4

Návod na inštaláciu systému Exim4 sa nachádza v časti "Exim4".

Po nainštalovaní exim4 sa konfiguračné súbory nachádzajú v priečinku /etc/exim4. V Ubuntu je v predvolenom stave konfigurácia exim4 rozdelená do viacerých súborov. Túto vlastnosť môžete zmeniť úpravou nasledujúceho nastavenia v súbore /etc/exim4/update-exim4.conf:

  • dc_use_split_config='true'

Mailman

Ak chceme nainštalovať Mailman, spustíme nasledujúci príkaz v príkazovom riadku:

sudo apt-get install mailman

Tento príkaz skopíruje inštalačné súbory do priečinka /var/lib/mailman, nainštaluje CGI skripty do priečinka /usr/lib/cgi-bin/mailman a vytvorí používateľa list a skupinu list, pod ktorým bude spustený proces mailman.

Konfigurácia

V tejto časti budeme predpokladať, že máme nainštalované systémy mailman, apache2 a postfix alebo exim4. Teraz je potrebné ich nakonfigurovať.

Apache2

Príklad konfiguračného súboru Apache je súčasťou inštalácie systému Mailman a je umiestnený v súbore /etc/mailman/apache.conf. Ak chceme aby Apache použil tento konfiguračný súbor, je potrebné ho nakopírovať do priečinka /etc/apache2/sites-available:

sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

Týmto sme nastavili v systéme Aoache novú virtuálnu stanicu - VirtualHost pre administračný web systému Mailman. Teraz novú konfiguráciu zapneme a reštartujeme Apache:

sudo a2ensite mailman.conf
sudo /etc/init.d/apache2 restart

Mailman použije systém apache2 na spracovanie a zobrazenie svojich CGI skriptov. CGI skripty systému mailman sú nainštalované v priečinku /usr/lib/cgi-bin/mailman. Preto URL adresa bude http://menostanice/cgi-bin/mailman/. Ak by sme chceli túto skutočnosť zmeniť, môžeme to urobiť zmenou konfigurácie v súbore /etc/apache2/sites-available/mailman.conf.

Postfix

Integráciu so systémom Postfix dosiahneme tak, že priradíme doménu diskusia.nieco.sk. Doménu diskusia.nieco.sk môžeme nahradiť takou, ktorú si zvolíme.

Pomocou príkazu postconf pridáme potrebné konfiguračné nastavenia do súboru /etc/postfix/main.cf:

sudo postconf -e 'relay_domains = diskusia.nieco.sk'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'

V súbore /etc/postfix/master.cf pre istotu dvakrát skontrolujeme, či máme definovaný nasledujúci transport:

mailman   unix  -       n       n       -       -       pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}

Tento transport volá skript postfix-to-mailman.py vždy, keď je mail doručený do diskusie.

Doménu diskusia.nieco.sk priradíme k transportu systému Mailman spolu s transportnou mapou. Otvoríme súbor /etc/postfix/transport a upravíme ho:

diskusia.nieco.sk      mailman:

Teraz v systéme Postfix vytvoríme transportnú mapu zadaním nasledujúceho príkazu do príkazového riadka:

sudo postmap -v /etc/postfix/transport

Potom Postfix reštartujeme, aby sa nová konfigurácia prejavila:

sudo /etc/init.d/postfix restart

Exim4

Po nainštalovaní systému Exim4 ho môžeme spustiť pomocou nasledujúceho príkazu:

sudo /etc/init.d/exim4 start

Aby mailman spolupracoval so systémom Exim4, je potrebné nakonfigurovať Exim4. Ako sme už spomínali, v predvolenom stave Exim4 používa viacero konfiguračných súborov rozdielnych typov. Viac informácií sa nachádza na stránke Exim. Aby sme mohli mailman spustiť, je potrebné pridať nové konfiguračný súbor do nasledujúcich typov:

  • Main
  • Transport
  • Router

Exim vytvára hlavý konfiguračný súbor usporiadaním všetkých týchto mini konfiguračných súborov, preto je poradie týchto konfiguračných súborov veľmi dôležité.

Main

Všetky konfiguračné súbory typu main (hlavné) sú uložené v priečinku /etc/exim4/conf.d/main/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 04_exim4-config_mailman:

# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script. Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end

Transport

Všetky konfiguračné súbory typu transport (prenos) sú uložené v priečinku /etc/exim4/conf.d/transport/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 40_exim4-config_mailman:

  mailman_transport:
driver = pipe
command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID

Router

Všetky konfiguračné súbory typu router (smerovač) sú uložené v priečinku /etc/exim4/conf.d/router/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 101_exim4-config_mailman:

  mailman_router:
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
[Warning]

Poradie konfiguračných súborov main a transport môže mať ľubovoľné poradie, ale poradie konfiguračných súborov typu router musí byť rovnaké. Tento čiastkový súbor musí byť skôr ako súbor 200_exim4-config_primary. Tieto dva konfiguračné súbory obsahujú rovnaké typy informácií. Prvý aplikovaný súbor má prednosť. Viac informácií nájdete v zdrojoch na konci tejto časti.

Mailman

Po nainštalovaní systému mailman ho môžeme spustiť nasledujúcim príkazom:

sudo /etc/init.d/mailman start

Keď je systém mailman nainštalovaný, môžeme vytvoriť predvolenú mailovú diskusiu. Spustíme nasledujúci príkaz, ktorý diskusiu vytvorí:

sudo /usr/sbin/newlist mailman
  Enter the email address of the person running the list: bhuvan at ubuntu.com
  Initial mailman password:
  To finish creating your mailing list, you must edit your /etc/aliases (or
  equivalent) file by adding the following lines, and possibly running the
  `newaliases' program:

  ## mailman mailing list
  mailman:              "|/var/lib/mailman/mail/mailman post mailman"
  mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
  mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
  mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
  mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
  mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
  mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
  mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
  mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
  mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

  Hit enter to notify mailman owner...

  # 

Ak sme nastavili Postfix alebo Exim4 tak, aby rozpoznávali emaily z diskusie, nie je potrebné vytvárať nové záznamy v súbore /etc/aliases. Ak sme v konfiguračných súboroch vykonali akékoľvek zmeny, nesmieme zabudnúť reštartovať príslušné služby.

[Note]

Exim4 nepoužíva predchádzajúce aliasy na preposielanie mailov do systému Mailman, pretože používa na nadviazanie kontaktu discover. Keď chcete počas vytvárania diskusie aliasy potlačiť, môžete pridať riadok MTA=None do konfiguračného súboru /etc/mailman/mm_cfg.py.

Administrácia

Budeme predpokladať, že máme predvolenú inštaláciu. Cgi skripty systému mailman sú stále v priečinku /usr/lib/cgi-bin/mailman/. Mailman poskytuje webové administračné rozhranie, ku ktorému sa dostaneme tak, že do prehliadača zadáme nasledujúcu URL adresu:

http://nazovstanice/cgi-bin/mailman/admin

Na obrazovke sa zjaví predovlená mailová diskusia - mailman. Ak klikneme na názov diskusie, bude potrebné zadať atentifikačné heslo. Ak zadáme správne heslo (to ktoré sme zadali ako Initial mailman password), budeme môcť meniť administračné nastavenia tejto mailovej diskusie. Novú mailovú diskusiu môžeme vytvoriť pomocou nástroja príkazového riadka (/usr/sbin/newlist). Novú mailovú diskusiu j možné vytvoriť aj pomocou webového rozhrania.

Používatelia

Mailman poskytuje webové rozhranie aj pre používateľov. Toto rozhranie otvoríme zadaním nasledujúcej URL adresy do prehliadačal:

http://nazovstanice/cgi-bin/mailman/listinfo

Na obrazovke sa zjaví predvolená mailová diskusia - mailman. Ak klikneme na názov diskusie, zobrazí sa registračný formulár. Môžeme do neho zadať svoju emailovú adresu, meno (nepovinne) a heslo. Po zaregistrovaní, nám príde uvítací email a ďalej sa budeme riadiť podľa jeho inštrukcií.

Zdroje

GNU Mailman - Installation Manual

HOWTO - Using Exim 4 and Mailman 2.1 together

Za pozretie stojí aj stránka Mailman Ubuntu Wiki.

Filtrovanie pošty

Jedným z najväčších problémov elektronickej pošty sú nevyžiadané reklamné emaily Unsolicited Bulk Email (UBE), ktoré tiež poznáme pod názvom SPAM. Niektoré emaily tiež môžu obsahovať vírusy alebo inú formu škodlivého kódu. Podľa štatistík práve tieto správy predstavujú väčšinu emailových správ posielaných cez Internet.

Táto časť hovorí o integrovaní programov Amavisd-new, Spamassassin a ClamAV do agenta na transport pošty - programu Postfix. Postfix tiež dokáže filtrovať emaily použitím externých filtrov obsahu. Tieto filtre môžu určiť, či správa je spam bez toho aby ju bolo nutné kontrolovať náročnými aplikáciami. Dva najčastejšie používané filtre sú dkim-filter a python-policyd-spf.

  • Amavisd-new je prepojovací program, ktorý môže spustiť ľubovoľné množstvo programov na filtrovanie obsahu, napríklad kvôli detekcii spamu, vírusov, atď.

  • Spamassassin používa rôzne mechanizmy na filtrovanie emailov podľa toho, čo obsahujú.

  • ClamAV je otvorený antivírový program.

  • dkim-filter implementuje Sendmail Mail Filter (Milter) pre štandard DomainKeys Identified Mail (DKIM).

  • python-policyd-spf zapne kontrolu pomocou Sender Policy Framework (SPF) v programe Postfix.

Takto jednotlivé časti spolupracujú:

  • Postfix príme Emailovú správu.

  • Správa prejde cez externé filtre dkim-filter a python-policyd-spf.

  • Potom novú správu spracuje Amavisd-new.

  • Na kontrolu proti vírusom sa použije ClamAV. Ak správa obsahuje vírus, Postfix ju odmietne.

  • Správu bez vírusu analyzuje Spamassassin, ktorý zistí, či správa nie je spam. Spamassassin potom pridá do správy riadky hlavičky X-Header, ktoré umožnia programu Amavisd-new rozhodnúť čo má urobiť ďalej so správou.

Napríklad, ak je správa dostane 50 zlých bodov, správa môže byť automaticky vyradená z fronty bez upozornenia príjemcu. V opačnom prípade bude postúpená agentovi, ktorý doručí správu používateľovi.

Inštalácia

Návod na inštaláciu systému Postfix sa nachádza v časti Postfix.

Ostatné aplikácie nainštalujete zadaním nasledujúcich príkazov do príkazového riadka:

sudo apt-get install amavisd-new spamassassin clamav-daemon
sudo apt-get install dkim-filter python-policyd-spf

Existuje niekoľko voliteľných balíkov, ktoré sa dajú integrovať do programu Spamassassin, aby lepšie odhaľoval spam:

sudo apt-get install pyzor razor

Okrem hlavných filtrovacích aplikácií, sú potrebné aj nástroje na rozbaľovanie, ktoré umožnia kontrolu skomprimovaných príloh:

sudo apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip zoo
[Note]

Ak systém niektorý z balíkov nenájde, skontrolujte, či je povolené úložisko multiverse v súbore /etc/apt/sources.list.

Ak urobíte v súbore zmeny, je potrebné pred spustením inštalačného príkazu spustiť ešte príkaz sudo apt-get update.

Konfigurácia

Teraz všetky systémy nastavíme tak, aby spolu fungovali a filtrovali poštu.

ClamAV

Predvolené správanie antivírového programu ClamAV je vyhovujúce. Viac o konfigurácii systému ClamAV sa dozvieme priamo v konfiguračných súboroch v priečinku /etc/clamav.

Používateľa s názvom clamav pridáme do skupiny amavis aby mal systém Amavisd-new prístup ku skenovaným súborom:

sudo adduser clamav amavis

Spamassassin

Spamassassin automaticky zistí voliteľné komponenty a použije ich ak sú dostupné. To znamená, že nie je potrebné nastavovať systémy pyzor a razor.

Otvoríme súbor /etc/default/spamassassin a aktivujeme démon Spamassassin. Zmeníme ENABLED=0 na:

ENABLED=1

Teraz reštartujeme démon:

sudo /etc/init.d/spamassassin start

Amavisd-new

Najskôr aktivujeme detekciu spamu a vírusov v Amavisd-new úpravou súboru /etc/amavis/conf.d/15-content_filter_mode:

use strict;

# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.

#
# Default antivirus checking mode
# Uncomment the two lines below to enable it
#

@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);


#
# Default SPAM checking mode
# Uncomment the two lines below to enable it
#

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

1; # insure a defined return

Vracanie spamu je zlý nápad pretože spiatočná adresa je väčšinou falošná. Preto otvoríme súbor /etc/amavis/conf.d/20-debian_defaults a nastavíme $final_spam_destiny na D_DISCARD miesto D_BOUNCE, takto:

$final_spam_destiny       = D_DISCARD;

Ďalej môžeme zmeniť nasledujúce voľby aby sme viac správ označili ako spam:

$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.0; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 21.0; # triggers spam evasive actions
$sa_dsn_cutoff_level = 4; # spam level beyond which a DSN is not sent

Ak je menná adresa servera iná ako MX záznam, bude potrebné nastaviť $myhostname. Ak server prijíma maily z viacerých domén, prispôsobíme aj nastavenie @local_domains_acl. Upravíme súbor /etc/amavis/conf.d/50-user:

$myhostname = 'mail.nieco.sk';
@local_domains_acl = ( "nieco.sk", "nieco.org" );

Po dokončení nastavovania Amavisd-new systém reštartujeme:

sudo /etc/init.d/amavis restart
DKIM Whitelist

Amavisd-new môžeme nastaviť aj tak, aby automaticky dal na bielu listinu - Whitelist adresy z doménou podľa platných doménových kľúčov. V súbore /etc/amavis/conf.d/40-policy_banks sa nachádza niekoľko predkonfigurovaných domén.

Existuje niekoľko spôsobov ako pridať ďalšiu doménu na Whitelist:

  • 'nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z domény "nieco.sk".

  • '.nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z ľubovoľnej poddomény domény "nieco.sk", ktoré majú platný podpis.

  • '.nieco.sk/@nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z poddomén domény "nieco.sk", ktoré používajú podpis rodičovskej domény nieco.sk.

  • './@nieco.sk' => 'WHITELIST',: pridá adresy ktoré majú platný podpis od "nieco.sk". Toto sa zvyčajne používa pri vytváraní diskusných skupín ktoré podpisujú svoje správy.

Doména môže mať viacero Whitelist nastavení. Po dokončení úprav je potrebné reštartovať amaisd-new:

sudo /etc/init.d/amavis restart
[Note]

Ak je doména pridaná na bielu listinu, správy z tejto domény nebudú kontrolované antivírovým programom ani spamovým filtrom.

Postfix

 Programy integrujeme do systému Postfix zadaním nasledujúceho príkazu do príkazového riadka:

sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'

Potom otvoríme súbor /etc/postfix/master.cf a pridáme nasledujúce riadky na koniec súboru:

smtp-amavis     unix    -       -       -       -       2       smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.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,reject
-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

Tiež pridáme nasledujúce dva riadky hneď pod transportnú službu "pickup":

         -o content_filter=
-o receive_override_options=no_header_body_checks

Toto ochráni správy, ktoré sú vygenerované ako hlásenie o spame aby neboli zatriedené medzi spam.

Teraz reštartujemet Postfix:

sudo /etc/init.d/postfix restart

Filtrovanie obsahu s detekciou spamu a vírusov je teraz zapnuté.

Testovanie

Najskôr otestujeme, či Amavisd-new SMTP načúva:

telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
^]

V hlavičke správ, ktoré prešli cez filter by sme mali vidieť:

X-Spam-Level: 
X-Virus-Scanned: Debian amavisd-new at nieco.sk
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00
X-Spam-Level:
[Note]

Výstup môže byť rôzny ale dôležité je aby v hlavičke boli záznamy X-Virus-Scanned a X-Spam-Status.

Riešenie problémov

Najlepší spôsob ako zistiť prečo niečo nefunguje správne, je skontrolovať súbory so záznamami.

  • Postup ako nastaviť zaznamenávanie v systéme Postfix sa nachádza v časti “Riešenie problémov”.

  • Amavisd-new používa Syslog na posielanie správ do /var/log/mail.log. Detailnosť správ sa dá nastaviť pomocou nastavenia $log_level v súbore /etc/amavis/conf.d/50-user, ktoré môže mať hodnotu 1 až 5.

    $log_level = 2;
    
    [Note]

    Keď zvýšite detailnosť výstupu systému Amavisd-new, zvýši sa aj detailnosť výstupu systému Spamassassin.

  • Detailnosť výstupov systému ClamAV sa dá zvýšiť nastavením v súbore /etc/clamav/clamd.conf pomocou nasledujúceho nastavenia:

    LogVerbose true
    

    V predvolenom stave bude ClamAV odosielať správy do súboru /var/log/clamav/clamav.log.

[Note]

Po zmene nastavení záznamov reštartujte služby, aby sa nové nastavenia prejavili. Keď problém vyriešite, vráťte nastavenia späť na pôvodné hodnoty.

Zdroje

Viac informácií o filtrovaní mailov sa dozvieme na týchto stránkach:

Môžeme tiež požiadať niekoho o pomoc v #ubuntu-server IRC kanále na freenode.