Tato stránka vysvětluje, jak používat Procmail program a Webmin pro filtrování a doručování e-mailů přicházejících do vašeho systému.
Úvod do Procmailu
Procmail je výkonný program pro filtrování a přesměrování e-mailů, které by normálně byly odesílány do poštovních schránek uživatelů. Lze jej použít na úrovni systému k filtrování zpráv pro všechny uživatele ve vašem systému, na základě jednotlivých uživatelů nebo obojí. Na rozdíl od běžných aliasů Sendmail lze Procmail použít k doručování zpráv odlišně v závislosti na jejich záhlaví a obsahu. Díky tomu je vynikajícím nástrojem pro blokování nežádoucích e-mailů, jako je spam.
Při instalaci do systému Procmail efektivně nahrazuje normální příkaz mail.local pro doručování e-mailů, který spouští Sendmail Mail Server a další MTA pro připojení zprávy k poštovnímu souboru uživatele. I když se nejčastěji používá se Sendmailem, další MTA, jako je QMail Mail Server a Postfix Mail Server, lze nakonfigurovat tak, aby pro doručování také používal Procmail. Pokud jde o program, na skutečném používaném poštovním serveru nezáleží, pokud je na něj správně předáván e-mail.
Primárním konfiguračním souborem Procmailu je /etc/procmailrc, který je obvykle spravován správcem systému. Jednotliví uživatelé mohou také vytvářet své vlastní soubory .procmailrc ve stejném formátu ve svých domovských adresářích. Celosystémový soubor je vždy načten a zpracován jako první, takže žádná pravidla, která obsahuje pro přesměrování zpráv na základě jejich obsahu, nemohou jednotliví uživatelé přepsat.
Konfigurační soubor Procmailu je rozdělen na akce, z nichž každá má řadu podmínek a režim doručení. Podmínky určují, kterým zprávám akce odpovídá, zatímco režim doručení řídí, co se stane s těmi, které se shodují. Procmail bude zpracovávat akce v pořadí, dokud nenajde nějakou, která se shoduje, doručí zprávu, jak je specifikováno, a poté zpracování nezastaví.
Konfigurační soubor může také obsahovat přiřazení proměnných, které mohou být použity pro pozdější akce nebo dokonce jiné proměnné. Může také obsahovat speciální podmíněné sekce, což jsou seznamy akcí, které se mají spustit, pouze pokud se některé podmínky shodují. Svým způsobem jsou to příkazy if-then v programovacím jazyce.
Procmail se chová téměř stejně na všech unixových operačních systémech. Jediným rozdílem je výchozí umístění pro doručování – všechny distribuce Linuxu používají /var/spool/mail jako adresář souborů uživatelské pošty, zatímco ostatní varianty Unixu, jako je Solaris, používají /var/mail. Tento rozdíl však nemá žádný vliv na formát konfiguračního souboru programu nebo uživatelské rozhraní modulu Procmail Mail Filter.
Procmail je nejužitečnější, když je nakonfigurován jednotlivými uživateli k provádění úkolů, jako je třídění e-mailů od různých lidí do různých poštovních schránek, zapisování do dvou různých souborů pošty nebo odstraňování e-mailů z konkrétních adres. Modul Procmail Webmin a tato kapitola se však zabývají pouze celosystémovou konfigurací – pokud chcete nástroj, který umožňuje jednotlivým uživatelům konfigurovat program prostřednictvím webového rozhraní, použijte Usermin. Má modul s identickým rozhraním, který spravuje soubory .procmailrc místo /etc/procmailrc, a další s ještě jednodušším rozhraním.
Globální konfiguraci Procmailu lze použít k doručování pošty do jiného adresáře nebo v jiném formátu, než jaký běžně používá váš poštovní server. Například místo toho, aby se pošta uživatelů připojovala k souborům ve /var/spool/mail, mohla by být zapsána do souboru mbox v jejich domovských adresářích. Ještě lepší je, že Procmail lze nastavit tak, aby zapisoval do poštovního adresáře ve stylu Qmail, který se obvykle nazývá Maildir a nachází se v domovských adresářích uživatelů.
Protože se zabývá pouze e-maily doručovanými lokálně ve vašem systému, nelze Procmail použít k filtrování pošty, pokud používáte klientský program, jako je Mozilla nebo Evolution, ke stažení e-mailů ze serveru vašeho ISP nebo společnosti. Pokud neprovozujete svůj vlastní poštovní server, ale přesto chcete využívat funkce Procmailu, budete muset nastavit Fetchmail Mail Retrieval pro stahování zpráv a jejich předávání MTA ve vašem systému.
Modul Procmail Mail Filter
Modul Webmin pro správu konfiguračního souboru pro celý systém se nazývá Procmail Mail Filter a lze jej nalézt v kategorii Servery. Kliknutím na jeho ikonu se dostanete na hlavní stránku, jako je ta na obrázku níže. Jsou uvedeny všechny existující akce a pod nimi odkazy pro přidání nových akcí různých typů.
Hlavní stránka modulu Procmail
Na rozdíl od jiných modulů si tento nebude stěžovat, pokud ve vašem systému není nainstalován Procmail. Modul Software Packages byste měli použít ke kontrole a instalaci balíčku, který je dodáván s vaší distribucí Linuxu nebo operačním systémem. Pokud žádný balíček neexistuje, budete si muset stáhnout zdrojový kód z www.procmail.org, zkompilovat a nainstalovat.
Pouhá instalace Procmailu však k jeho skutečnému použití ve vašem systému nestačí. Ve výchozím nastavení poštovní servery jako Sendmail, Qmail a Postfix používají své vlastní standardní programy pro doručování pošty, nikoli Procmail. Jednotliví uživatelé to mohou změnit vytvořením souboru .forward nebo .qmail obsahujícího řádek /usr/bin/procmail, který předává všechny příchozí e-maily programu Procmail. Je však lepší globálně překonfigurovat váš MTA tak, aby používal Procmail, aby jej nemuseli nastavovat jednotliví uživatelé. Část *Nastavení Sendmailu* níže vysvětluje, jak nakonfigurovat Sendmail - ostatní poštovní servery bude nutné nastavit jinak.
Nastavení Sendmail
Pokud máte soubory M4, ze kterých byl vytvořen váš primární konfigurační soubor Sendmail, je nastavení Sendmailu pro použití Procmailu snadné. Bohužel konfigurace poštovního serveru přímou úpravou souboru sendmail.cf není tak snadná, a proto se jí tato kapitola nezabývá. Všechny moderní distribuce Linuxu však obsahují soubory M4, které budete potřebovat, buď v balíčku sendmail, nebo v samostatném balíčku, jako je sendmail-cf.
Chcete-li nakonfigurovat Sendmail MTA pro použití Procmail, postupujte takto:
- Přejděte do modulu Konfigurace Sendmail, který lze nalézt ve Webminu v kategorii Servery.
- Klikněte na ikonu *Sendmail M4 Configuration *na její hlavní stránce. Měl by se objevit seznam existujících direktiv M4 – pokud ne, soubory M4 potřebné k překonfigurování Sendmailu pravděpodobně nejsou na vašem systému nainstalovány.
- Zkontrolujte, zda řádek FEATURE(local_procmail) již existuje. Pokud ano, doručování pomocí Procmailu je již povoleno a není třeba provádět zbytek těchto kroků.
- Z nabídky vedle položky Přidat nový záznam typu vyberte Funkce a poté stisknutím tlačítka zobrazte formulář pro vytvoření funkce.
- Z Funkce v nabídce vyberte local_procmail . Ponechte Parametry pole prázdné.
- Klepněte na Vytvořit tlačítko pro přidání nové funkce do souboru M4. Váš prohlížeč se vrátí na seznam existujících direktiv, v dolní části bude nový řádek FEATURE(local_procmail).
- Klepněte na šipku nahoru vedle nového řádku tolikrát, kolikrát je potřeba, abyste jej přesunuli nad řádek MAILER (místní). To je nutné, protože soubor je zpracováván v pořádku a nová směrnice mění chování řádku MAILER.
- Když je nový řádek FEATURE na svém místě, stiskněte tlačítko *Rebuild Sendmail Configuration* v dolní části stránky. Zobrazí se potvrzovací stránka se změnami, které budou provedeny v primárním konfiguračním souboru Sendmail - a pokud jste přímo neupravovali sendmail.cf, budou se týkat pouze nové podpory Procmailu.
- Klikněte na Ano, nahradit nyní pro uložení a aktivaci nové konfigurace. Od této chvíle bude veškerá pošta doručená místním uživatelům Sendmailem zpracována Procmailem. Chcete-li zkontrolovat, zda vše fungovalo, zkuste odeslat několik testovacích zpráv a ujistěte se, že jsou doručeny jako obvykle.
Pro více informací o tom, jak fungují funkce M4 modulu Sendmail a kde najít konfigurační soubory, si přečtěte část *Přidání funkcí Sendmail s M4* v Konfigurace Sendmailu.
Vytváření a úpravy akcí
Jak je vysvětleno v úvodu této kapitoly, konfigurační soubor Procmail se skládá z řady akcí. Když e-mail dorazí, každý je zkontrolován v pořadí, dokud se jeden neshoduje a neprovede se jeho režim doručení. Pokud se žádná akce neshoduje (nebo žádná neexistuje), e-mail je doručen do výchozího cíle, kterým je obvykle soubor pošty uživatele pod /var/spool/mail.
Chcete-li vytvořit novou akci, postupujte takto :
- Klikněte na Akci Přidat nový filtr odkaz pod seznamem existujících akcí na hlavní stránce modulu. Pro zadání místa určení a podmínek se zobrazí formulář zobrazený na obrázku níže.
- V režimu doručování vyberte typ cíle pro zprávy, které odpovídají této akci Jídelní lístek. Dostupné možnosti jsou :*Připojit k souboru *E-mail bude připojen ve standardním formátu poštovní schránky k souboru zadanému do sousedního textového pole, jako je /var/spool/mail/fred . Chcete-li zprávu zahodit, zadejte jako soubor /dev/null. *Napište do maildir *Odpovídající e-mail bude přidán do poštovního adresáře ve stylu Qmail, jehož cestu zadáte do textového pole. Pokud tento adresář ještě neexistuje, Procmail jej (a potřebné podadresáře) pro uživatele vytvoří. *Zapsat do složky MH *E-mail bude přidán do zadaného poštovního adresáře ve stylu MH. Tento formát pošty také používá jeden soubor na zprávu, ale všechny je umisťuje do jednoho adresáře a dává souborům zpráv zvyšující se číselné názvy souborů, například 1, 2, 3 a tak dále. *Přeposlat na adresu *E-mail bude zaslán na adresu nebo uživatele zadaného do sousedního textového pole, jako je [email protected] . *Podávání do programu *Odpovídající e-mailové zprávy budou odeslány jako vstup do programu, jehož cesta a argumenty se zadají do textového pole vedle nabídky. Pokud neabsolutní název souboru pošty nebo adresář (jako Mailbox nebo Maildir ), bude Procmail předpokládat, že je relativní k domovskému adresáři uživatele, kterému je e-mail doručován.
- Chcete-li, aby Procmail kontroloval těla přijatých zpráv, nikoli pouze záhlaví, zaškrtněte políčko Použít podmínky na tělo krabice. To je nutné, pokud některá z podmínek, které zadáte později, musí odpovídat textu v samotném e-mailu.
- Normálně bude Procmail při kontrole podmínek ignorovat malá a velká písmena v záhlaví. Chcete-li to změnit, zaškrtněte políčko Rozlišovat malá a velká písmena krabice.
- Pokud chcete, aby Procmail pokračoval v konfiguračním souboru, i když se tato akce shoduje, zaškrtněte políčko *Pokračovat ve zpracování, i když se podmínky shodují*. Toho lze využít k doručování e-mailů do několika různých souborů nebo složek zapnutím této možnosti pro všechna pravidla doručování kromě posledního.
- Procmail bude normálně ignorovat stav ukončení programu, do kterého je e-mail zasílán. Chcete-li, aby v případě selhání programu selhal (a tedy vrácena zpráva), zapněte volbu *Počkejte na dokončení akčního programu a zkontrolujte výsledek*.
- Pokud doručovací program, který jste zadali, načte a poté vypíše e-mail s určitými úpravami, zaškrtněte políčko *Akční program je filtr*. Měla by být také povolena možnost *Pokračovat ve zpracování, i když se podmínky shodují*, aby zpracování pokračovalo s upravenou verzí zprávy. Tato funkce může být užitečná, pokud jste napsali program, který kontroluje a označuje zprávy přidáním nebo změnou záhlaví, které pak lze zkontrolovat pozdějšími akcemi.
- Podmínky akce část formuláře je pro zadání podmínek, které určují, které zprávy budou touto akcí doručeny. Pokud nejsou zadány žádné, zprávy, které dosáhnou akce, budou vždy doručeny, a pokud je zadáno více než jedna, musí se všechny shodovat, aby se doručení uskutečnilo. Tato část je ve skutečnosti tabulka, která začíná dvěma prázdnými řádky. Nabídka v každém řádku určuje typ podmínky a způsob interpretace textu v poli vedle ní. Dostupné možnosti jsou:
- Odpovídá regulárnímu výrazu
Aby se tato podmínka shodovala se záhlavími zprávy (a možná i s tělem), musí odpovídat regulárnímu výrazu ve stylu Perl zadanému do textového pole. Pamatujte, že tento výraz se vztahuje na všechna záhlaví, jako by to byl jeden blok textu, takže před každým názvem záhlaví byste měli uvést ^, abyste označili začátek řádku. Chcete-li například zachytit zprávy, jejichž předmět obsahuje slovo foo můžete zadat ^Předmět:.*foo.* . - Neodpovídá regulárnímu výrazu
Tento typ podmínky funguje stejně jako předchozí, kromě toho, že odpovídá zprávám, které neodpovídají regulárnímu výrazu. - Vyhodnoťte výstup příkazu
Spustí se příkaz shellu zadaný do textového pole, jeho výstup přečte Procmail a poté jej znovu interpretuje jako akční řádek z konfiguračního souboru. Tento typ podmínek je extrémně výkonný, protože vám umožňuje vytvářet dynamicky generované podmínky – nicméně pro každodenní filtrování pošty jej pravděpodobně nebudete muset používat. - Zkontrolujte stav ukončení příkazu
Tento typ podmínky odpovídá, pokud má zadaný příkaz shell stav ukončení nula, což znamená úspěch. Lze jej použít k doručování pošty na různá místa v závislosti na názvu hostitele systému, denní době nebo existenci nějakého souboru. - Pošta je menší než
Podmínka bude odpovídat, pokud je celková velikost zprávy menší než počet bajtů zadaných do sousedního textového pole. - Pošta je větší než
Jak jeho název napovídá, tento typ stavu je opakem předchozího.
- Odpovídá regulárnímu výrazu
- Po zadání podmínek klepněte na Uložit knoflík. Nová akce bude přidána do seznamu na hlavní stránce a začne se používat u příchozích e-mailů. Chcete-li přidat více než dvě podmínky, budete muset akci znovu upravit tak, aby se v Podmínkách akce objevily další dva prázdné řádky. sekce.
Formulář pro vytvoření akce Procmail
Existující akci lze upravit kliknutím na její záznam v Akci, kterou je třeba provést na hlavní stránce modulu, který vyvolá editační formulář stejný jako ten výše. Zde můžete provést změny a poté kliknout na Uložit aktivujte je, nebo stačí kliknout na Smazat k úplnému odstranění akce.
Protože na pořadí akcí záleží, modul umožňuje měnit jejich pozice v konfiguraci Procmailu pomocí šipek nahoru a dolů vedle každé z nich na hlavní stránce. Stejným způsobem lze také přesouvat přiřazení proměnných, podmíněné bloky a soubory začlenění.
Podle výše uvedených pokynů můžete snadno vytvořit akci, která doručí všechny e-maily do Maildir ve stylu Qmail adresář v domovských adresářích uživatele. I když je tento formát pošty výhodnější kvůli své vynikající spolehlivosti ve srovnání s tradičními soubory ve /var/spool/mail, není příliš užitečný, pokud poštovní klienti nebo server POP3 ve vašem systému neví, jak jej číst. Server POP3, který je součástí většiny operačních systémů, očekává, že bude zpracovávat e-maily pod /var/spool/mail, a proto bude muset být nahrazen nebo překonfigurován, aby podporoval jakýkoli nový formát pošty nebo umístění. Ostatní poštovní klienti, kteří čtou soubory uživatelské pošty přímo (jako je Pine, Elm a Usermin), mohou být nakonfigurováni tak, aby používali jakékoli nové umístění, které si vyberete.
Vytváření a úpravy přiřazení proměnných
Akce Procmailu mohou využívat proměnné ve stylu shellu ve svých podmínkách a cílech doručení. Můžete například vytvořit akci, která doručí do souboru /mail/$LOGNAME , ve kterém $LOGNAME je uživatelské jméno uživatele, kterému je e-mail doručován. Několik proměnných (jako .LOGNAME a DEFAULT) nastavuje Procmail automaticky, zatímco jiné lze nastavit v konfiguračním souboru pro pozdější použití. Můžete dokonce přepsat automatické proměnné a změnit chování programu, jako je výchozí cíl doručení nebo shell, který se má použít pro provádění příkazů.
Chcete-li vytvořit nové přiřazení proměnné, postupujte takto :
- Na hlavní stránce modulu klikněte na odkaz *Přidat nastavení nové proměnné* pod seznamem existujících akcí. Zobrazí se formulář pro vytvoření proměnné.
- V části Název proměnné zadejte název proměnné, kterou chcete nastavit, například DEFAULT . Všechny automatické proměnné mají názvy velkými písmeny a ty, které si sami vytvoříte, by také měly. Nejsou povoleny žádné mezery ani jiné než alfanumerické znaky.
- V části Hodnota zadejte hodnotu, která má být přiřazena této proměnné, například Maildir/ . Hodnota může obsahovat odkazy na jiné proměnné.
- Klepněte na Vytvořit tlačítko pro přidání proměnné do seznamu na hlavní stránce.
- Pomocí šipky nahoru vedle nové proměnné v seznamu ji přesuňte na správné místo, které bude obvykle v horní části souboru. Proměnná přiřazení působí pouze, takže jedna přidaná dole nemusí mít žádný účinek.
Stejně jako u akcí lze proměnnou upravit nebo smazat kliknutím na její název v seznamu. Proměnnými lze také pohybovat pomocí šipek nahoru a dolů vedle nich. Protože ovlivňují pouze akce a další přiřazení pod nimi v souboru, určitě budete chtít přesunout jakoukoli novou proměnnou na začátek seznamu. Jeden přidaný a ponechaný dole nebude mít žádný vliv (kromě výchozího cíle doručení).
Procmail definuje a umožňuje měnit několik speciálních proměnných. Názvy a významy těch nejzajímavějších jsou uvedeny v tabulce níže:
Podmíněné blokování a začlenění souborů
Podmíněný blok je skupina akcí a přiřazení proměnných v konfiguračním souboru Procmail, která je zpracována pouze v případě, že se některé podmínky shodují. Lze je použít k vytvoření poměrně složitých sad akcí, téměř jako programovací jazyk. Tento modul umožňuje vytvářet a upravovat podmíněné bloky, ale zobrazuje jejich obsah pouze jako text konfiguračního souboru, nikoli analýzu akcí, které obsahují. To znamená, že musíte znát formát souboru Procmail, abyste je mohli používat.
Chcete-li vytvořit podmíněný blok, postupujte takto:
- Klikněte na Přidat nový podmíněný blok pod seznamem akcí na hlavní stránce modulu.
- V Kódu Procmail ke spuštění do textového pole zadejte řádky konfiguračního souboru pro akce nebo přiřazení proměnných, které mají být zpracovány, pokud podmínky odpovídají. Jakmile se jakákoli akce v bloku shoduje, zpracování celého konfiguračního souboru se zastaví. Pokud však žádná neodpovídá, zpracování bude pokračovat jako obvykle s další akcí po bloku. Podrobnosti o formátu najdete na manuálové stránce procmailrc v modulu systémové dokumentace.
- Vyplňte Podmínky akce stejně jako u normální akce, jak je vysvětleno v Vytváření a úpravy akcí dříve v kapitole.
- Klepněte na Vytvořit pro vytvoření nového bloku.
Stejně jako u akcí můžete podmíněný blok upravit nebo odstranit kliknutím na něj v seznamu na hlavní stránce modulu. Celým blokem lze také pohybovat pomocí šipek nahoru a dolů vedle něj.
Zahrnutý soubor je speciální direktiva, která říká Procmailu, aby načetl a zpracoval samostatný konfigurační soubor ve stejném formátu jako /etc/procmailrc. Některé programy pro filtrování spamu jsou ve skutečnosti pouze soubory Procmailu, které lze zahrnout do vaší primární konfigurace. Chcete-li vytvořit direktivu začlenění, postupujte takto :
- Klikněte na Přidat nový soubor začlenění odkaz na hlavní stránce modulu.
- V Zahrnutém souboru pole ve formuláři, který se objeví, zadejte úplnou cestu k jinému konfiguračnímu souboru. Můžete také zadat relativní cestu, v takovém případě Procmail vyhledá tento soubor v domovském adresáři uživatele Unixu, kterému je pošta doručována. Při manipulaci se začleněním Procmail úplně zastaví zpracování, jakmile v souboru najde odpovídající akci. Pokud nejsou žádné nalezeny, bude pokračovat ve zpracování akcí, které následují po zahrnutí do primárního konfiguračního souboru.
- Klepněte na Vytvořit tlačítko pro dokončení procesu.
Zahrnutí jsou obvykle uvedena na hlavní stránce modulu stejně jako akce a přiřazení proměnných a lze je upravovat, mazat nebo přesouvat. Pokud však Zobrazit obsah zahrnutých souborů? nastavení je povoleno v Konfiguraci modulu modul zobrazí skutečné akce uvnitř začleněného souboru, které můžete upravit nebo odstranit. Lze je dokonce posouvat nahoru a dolů, i když pouze v rámci souboru. Povolení této možnosti není dobrý nápad, pokud máte velký soubor začlenění (například soubor pro filtrování spamu), protože hlavní stránka modulu bude nepoužitelně velká.
Obsah
Viz také
- Filtrování spamu pomocí SpamAssassin