====== Postfix + Dovecot (LDAP) ====== V tomto článku si chci poznamenat, jak nakonfigurovat Postfix s Dovecotem v jednoduché konfiguraci, kdy NSS i PAM budou v LDAP databázi. ===== Postfix ===== Ten je v každé distribuci, stačí jej nainstalovat a poeditovat /etc/postfix/main.cf. Některé distribuce ponechávají ten defaultní z mainstreamu (což je ideální), jiné mají kdovíjak zmršené konfigurace bez komentářů. V tom druhém případě doporučuji stáhnout si example configuration z /usr/share nebo z internetu. Celý soubor je nutno si projít a správně nastavit hostname, doménu, mydestination, mynetworks a zejména tuto hodnotu: home_mailbox = .Maildir/ Dále je vhodné zvýšit několik limitů. # 90 MB na zpravu message_size_limit = 90000000 # velikost schranek neomezena mailbox_size_limit = 0 Ta říká, že schránky budou v domovských adresářích a budou začínat tečkou, což je zvlášť vhodné, pokud používáme [[blog:samba_ldap|Sambu]]. Adresář pak bude skrytý pro uživatele Windows. Implicitní doručování do lokálních schránek s PAMem funguje perfektně, pokud to nezměníte v master.cf, tak Postfix používá program local, což nám vyhovuje. Víc věcí opravdu není třeba nastavovat, proto mám Postfix rád. ===== Dovecot ===== Dovecot je výborný POP3/IMAP démon, jeho nevýhodou je, že je docela nový (verze 1.0 vyšla na jaře roku 2007), takže v mnoha distribucích není. Pokud máte pro svou distribuci balíček, následující odstavec můžete přeskočit. ==== Kompilace ==== Je triviální, musíte mít nainstalován balíček pam-devel (nebo jeho ekvivalent ve vaší distribuci) a poté stačí configure && make && make install. Postfix se nainstaluje do /usr/local, konfigurace pak do /usr/local/etc. Poté stačí vytvořit uživatele adduser -s /bin/false dovecot A můžete dovecot spustit příkazem (jako root) # dovecot Korektní ukončení je také snadné # killall dovecot a znovunačtení konfigurace rovněž # killall -HUP dovecot Dovecot ze zdrojových balíčků nemá init.d skript (na internetu se dají nalézt), takže já ho spouštím z ''rc.local'' skriptu. ==== Konfigurace ==== Před startem je nutné server [[http://wiki.dovecot.org/QuickConfiguration|nakonfigurovat]]. Ve stručnosti stačí vytvořit konfiguraci pro PAM -- soubor ''/etc/pam.d/dovecot'': #%PAM-1.0 auth required pam_stack.so service=system-auth account required pam_stack.so service=system-auth Vidíme, že delegujeme přihlašování na system-auth, tento soubor musí být nakonfigurován jako v [[blog:samba_ldap|tomto návodu]]. Pokud jste tedy již Sambu podle mého návodu instalovali, stačí vám vytvořit jen soubor ''dovecot''. Poté zeditujte /usr/local/etc/dovecot.conf (zkopírujte si example soubor) a najděte a nastavte tyto hodnoty: # používáme jen tyto protokoly protocols = imap pop3 # nevyžadujeme zabezpečený login disable_plaintext_auth = no # SSL/TLS nepoužíváme ssl_disable = yes # tady budou schránky mail_location = maildir:~/.Maildir # a tohle nastavte v sekci pop3 kvůli Outlookům pop3_uidl_format = %08Xu%08Xv Vše ostatní ponechte implicitní (případně modifikujte dle požadavků). Všimněte si, že se jedná o velmi jednoudchou konfiguraci (žádné TLS/SSL -- lepší je zřídit OpenVPN). ===== Amavis-new ===== S tímto nástrojem napsaným v Perlu je možné profiltrovat příchozí poštu, tento postup je napsán podle [[http://www.ijs.si/software/amavisd/README.postfix.html|tohoto návodu]] (ale používám jiné čísla portů). Předpokládám, že v konfiguraci amavisd-new nezměníte defaultní čísla portů. Zkontrolujte tedy, zda souhlasí toto: $inet_socket_port = 10025; $notify_method = 'smtp:[127.0.0.1]:10026'; $forward_method = 'smtp:[127.0.0.1]:10026'; Doporučuji také nastavit $max_servers = 8; Zeditujte **/etc/postfix/master.cf** a přidejte nakonec tyto řádky: amavisfeed unix - - n - 8 lmtp -o lmtp_data_done_timeout=1200 -o lmtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10026 inet n - n - - smtpd -o content_filter= -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 smtpd_restriction_classes= -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,no_milters -o local_header_rewrite_clients= Nyní restartujte postfix # /etc/init.d/postfix reload a můžete se zkusit natelnetit na port 10025 a 10026, oba by měly být funkční. Restartujte amavis, pokud by nebyl port 10025 aktivní. Nyní je třeba ještě dopsat jednu hodnotu do konfigurace postfixu do souboru main.cf: content_filter=amavisfeed:[127.0.0.1]:10025 Nyní si pošlete mail, v logu by měl být záznam o tom, že amavis tento dopis prohlédl. Také zde najdete, které přípony je schopen amavis rozbalit, můžete do systému doinstalovat balíčky jako je unzip, unrar a podobně. ===== SpamAssasin a Razor ===== Jak v krátkosti nainstalovat tyto dva anti-spam nástroje. Nejprve je nutné je oba nainstalovat, což je snadné. Poté je třeba vytvořit uživatele spamd: # useradd -s /bin/bash -d /var/spool/spamd -m spamd Nastavte soubor ''/etc/sysconfig/spamd'' (u distribucí odvozených od Debianu to bude jinak): SPAMDOPTIONS="-d -m10 -u spamd -s /var/log/spamd.log -x" Zeditujte podle dokumentace soubor ''/etc/mail/spamassassin/local.cf'', mohu doporučit například tyto hodnoty: bayes_min_spam_num 100 bayes_min_ham_num 100 skip_rbl_checks 0 use_razor2 1 use_dcc 1 use_pyzor 1 Nyní si nakopírujte nějaké vzorky e-mailů do adresářů uvedených níže a naučte bayes filtr. Můžete také z jiného stroje s již naučeným assassinem nakopírovat soubory bayes_seen a bayes_toks (v tom případě vynecháte příkazy s parametry --spam a --ham). # su spamd # cd # sa-learn --sync # sa-learn --spam adresar_se_spamy_vzorky # sa-learn --ham adresar_s_ham_vzorky # razor-admin -create # razor-admin -discover # spamassassin --lint -D Poslední příkaz vypíše diagnostiku, takže to zkontrolujte. Nyní již pod rootem restartujte službu spamd. A jak to celé otestovat? Pošlete se e-mail s obsahem XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X To by mělo být identifikováno jako SPAM. A nyní to samé pro antivirus X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* Jak viry tak spamy jsou přesunuty do adresáře ''/var/spool/amavis/virusmails'', zavirovaný e-mail nepřijde, některé SPAM zprávy mohou být odmítnuty rovnou při pokusu o odeslání. Jsme hotovi. ~~DISCUSSION~~