Administrace Unixu (Mailování) 1. Instalace postfixu Úkol: Na VPC M nainstalujte postfix z balíčku a proveďte kroky vedoucí k úplnému nahrazení sendmailu, které vám radí instalační proces. Dále je potřeba provést základní konfiguraci postfixu v souboru /usr/local/etc/postfix/main.cf. Důležité volby: myhostname, mydomain, myorigin, mydestination. (čtěte komentáře, které jsou v main.cf) Podívejte se do souboru /etc/mail/aliases a nastavte aby pošta na adresu roota byla posílána na nějakého běžného uživatele. Nezapomeňte na newaliases. Úkol: Spusťte postfix a pomocí příkazu telnet si zkuste poslat mail uživateli root. $ telnet localhost smtp Connected to localhost Escape character is '^]'. 220 mail.myzone.swi ESMTP Postfix > HELO localhost 250 mail.myzone.swi > MAIL FROM: odesilatel@domena.tld > RCPT TO: prijemce@domena.tld > DATA 354 End data with <CR><LF>.<CR><LF> > Hlavička (Subject:...) > Hlavička (From:...) > > Tělo > Tělo >. quit Ověřte že byl mail správně doručen: Pohledem do logu ve /var/log/maillog. Příkazem mail se podívejte do schránky uživatele, kterému měl mail přijít. Úkol: Zaneste si do své domény příslušný MX záznam a pomocí příkazu mail zkuste poslat mail do jiné domény.
2. Zabezpečení mail serveru Je třeba dát pozor nato, komu dovolíme odesílat maily přes náš mail server aby nedošlo k zneužití našeho mail serveru ze strany SPAMerů. Postfix implicitně přijímá maily: Pro které je cílová destinace ty jsou doručeny lokálně. Které byly odeslány z adresy v mynetworks jsou přeposlány na jiný mail server. Pokud není hodnota mynetworks specifikována je generována podle parametru mynetworks_style. Úkol: Zjistěte jakou hodnotu mynetworks váš postfix aktuálně používá a upravte jí tak aby odpovídala pouze vaši sítím. Použijte utilitu postconf. Implicitní chování lze změnit nebo nastavit další omezení. Podívejte se na volby: smtpd_helo_restrictions, smtpd_recipient_restrictions, smtpd_sender_restrictions a smtpd_client_restrictions. Viz 'man 5 postconf' nebo http://www.postfix.org/. Úkol: Zpřísněte pravidla doručování tak, aby server vyžadoval korektní jméno počítače (má A nebo MX záznam v DNS) v příkazu HELO, korektní jméno odesilatelovi domény (A nebo MX záznam) a existenci reverzní záznamu pro SMTP klienta. Ujistěte se, že váš vlastní server všechna tyto pravidla splňuje a může tedy odesílat maily do domén vašich kolegů, kteří mají podobně restriktivně nastavený svůj mailserver.
3. Konfigurace backup MX Převezme maily určené pro vaši doménu a přepošle je na váš primární mail server. Domény, pro které je server backup MX se nastavují v relay_domains. Úkol: Na VPC B nainstalujte postfix a nastavte ho jako backup MX pro vaši mailovou doménu. Přidejte další MX záznam do vaší domény s nižší prioritou (vyšším číslem). Tento server by neměl přeposílat jiné maily než maily určené do backupované domény. vypněte postfix na hlavním mail serveru odešlete z nějakého počítače ve vaši síti mail do vaší domény ověřte na backup MX, že mail je ve frontě (příkaz postqueue) zapněte postfix na hlavním mail serveru počkejte až pozdržený mail dojde adresátovi (případně to postrčte příkazem postqueue). Problém: Pokud se pokusíte poslat mail s chybným jménem příjemce tak vás hlavní MX ihned odmítne, ale záložní MX mail akceptuje a k chybě dojde až při pokusu mail předat na hlavní MX. Řešení: Použít relay_recipient_maps. Úkol: Nastavte backup MX tak aby akceptoval pouze uživatele, které mají skutečný účet v doméně. vytvořte soubor /etc/postfix/relay_recipients řádek v souboru má tvar: user@domain OK vytvořte hash databázi: makemap hash file.db < file nastavte parametr relay_recipient_maps = hash:/etc/postfix/relay_recipients Zatím je nutné udržovat soubor ručně což není příliš efektivní. Postfix ale umožňuje spoustu dalších typů databází: mysql, ldap, pqsql, unix,. Pomocí utility postmap lze pokládat do postfixové databáze dotazy.
4. Relay host Postfix se dá nakonfigurovat i tak aby veškerou poštu přeposílal na konkrétní server. relayhost = <address> Vhodné pro koncové systémy. Úkol: Na VPC D nainstalujte postfix a nastavte ho jako relay na váš hlavní mailserver. 5. Filtrování pošty Postfix má několik možností jak filtrovat poštu: před vložením do fronty zabudované (header_checks, mime_header_checks, nested_header_checks, body_checks) externí po vložení do fronty externí Úkol: Pomocí zabudovaných filtrů zařiďte, aby váš mail server odmítal maily s přílohou typu exe nebo vbs. Podívejte se do 'man header_checks' obsahuje jako příklad přesně to co potřebujeme. Nainstalujte si mailového klienta mutt a zkuste poslat mail s příponou exe. Úkol: Pomocí zabudovaných filtrů zařiďte, aby váš mail server odmítal maily, které obsahují zakázaná slova a to buď v předmětu nebo v textu mailu. Externí filtry jsou samostatné procesy nebo příkazy a všechny procesy související s postfixem se konfigurují v souborů master.cf. Je možné specifikovat parametry jednotlivých procesů a způsob jak mezi sebou komunikují.
# Nastavení transportu ke kontent filtru amavis. 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 # Vlastní smtp proces s parametrem specifikující daný transport. smtp inet - - - - - smtpd. -o content_filter=smtp-amavis:[127.0.0.1]:10024. # Speciální smtp proces, který využívá amavis. 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 mynetworks_style=host -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes