abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 4
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    24.4. 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (17%)
    Celkem 763 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Stavíme poštovní server: ManageSieve

    19. 2. 2010 | Lukáš Jelínek | Sítě | 22705×

    ManageSieve

    link

    Zbývá vyřešit ještě poslední část celého systému Sieve. Uživatel si chce nastavovat pravidla z klienta. Aby tak mohl činit, musí na serveru běžet již zmíněná služba ManageSieve. Následující popis je určen pro řešení pomocí pysieved, nicméně úprava pro nativní Dovecot ManageSieve (samozřejmě po vlastní instalaci) není těžká a potřebné informace jsou k dispozici v dokumentaci programu Dovecot.

    Zprovoznění opět začíná instalací, ať už z distribučního balíčku nebo od autora. Pak je potřeba pysieved nakonfigurovat. Ještě dříve je ovšem nutno si ujasnit, zda má běžet jako standardní démon (tedy naslouchat na portu a přímo obsluhovat připojené klienty), anebo zda se bude spouštět pomocí superserveru, typicky inetd nebo xinetd. Toto rozhodnutí bude vycházet z toho, jak často budou uživatelé měnit svá pravidla. Většinou bude k takovým změnám docházet zřídka, proto je obvykle lepší šetřit paměť a využít superserver.

    Konfigurace superserveru

    link

    Následující konfigurační soubor je určen pro xinetd a může být uložen například jako /etc/xinetd.d/sieve (za předpokladu, že se soubory jednotlivých služeb načítají z adresáře /etc/xinetd.d). Zde je pysieved nainstalován pod /opt, jde o balík získaný z webu autora.

    service sieve
    {
        id = sieve
        type = UNLISTED
        port = 2000
        flags = KEEPALIVE
        socket_type = stream
        wait = no
        server = /usr/bin/python
        server_args = /opt/pysieved/pysieved.py --inetd --config=/etc/pysieved.ini
        user = root
    }
    

    Typ služby je UNLISTED (nejedná se o žádnou ze specifických služeb), služba ManageSieve běží na portu 2000. KEEPALIVE říká, že se mají periodicky posílat pakety pro udržování spojení (vhodné hlavně proto, aby nezůstávaly zbytečně viset spuštěné instance pro klienty, se kterými už nelze komunikovat). Komunikace je streamová (tj. TCP), wait = no zakáže čekání na ukončení spuštěného programu (takže lze obsluhovat další klienty). Jako „server“ je zde uveden interpret jazyka Python, argumenty udávají cestu k implementaci démona a ke konfiguračnímu souboru; nezbytný je také parametr zapínající spolupráci se superserverem. Uživatel bude root, protože konkrétního uživatele pro práci si nastaví až pysieved.

    Pro starší superserver inetd bude konfigurace vypadat podobně, jen bude mít jiný formát. Do konfiguračního souboru inetd (typicky /etc/inetd.conf) se přidá takovýto řádek:

    sieve  stream  tcp  nowait  root  /usr/bin/python python /opt/pysieved/pysieved.py --inetd --config=/etc/pysieved.ini
    

    Konfigurace pysieved

    link

    Nyní to tedy bude fungovat tak, že pokud se klient připojí na port 2000, superserver spustí instanci pysieved a předá jí komunikační kanál s klientem. Tím se to dostává do podobné situace, jako kdyby se klient připojil k trvale běžícímu démonu pysieved. Dále tedy už záleží na jeho konfiguraci. Ve výše uvedené konfiguraci xinetd je definováno, že se konfigurace pysieved bude načítat ze souboru /etc/pysieved.ini – ten může vypadat například takto:

    [main]
    auth = Dovecot
    userdb  = Dovecot
    storage = Dovecot
    pidfile = /var/run/pysieved.pid
    
    [Dovecot]
    mux = /var/spool/postfix/private/auth
    master = /var/run/dovecot/auth-master
    sievec = /usr/libexec/dovecot/sievec
    scripts = .pysieved
    active = script.sieve
    uid = 100
    gid = 100
    

    Konfigurační soubor má různé sekce. Zde jsou použity dvě – hlavní sekce main a sekce Dovecot pro konfiguraci programu Dovecot, jakožto služby využívané pro zajišťování různých činností. pysieved podporuje celou řadu jiných služeb (backendů), např. dokáže přímo pracovat s PAM nebo s databází MySQL, není závislý na jediném programu.

    V tomto případě se pro autentizaci (auth, databázi uživatelů (userdb) a úložiště (storage) využívá Dovecot, proto je u všech služeb uveden. pidfile je obvyklý soubor s PID sloužící ke zjištění, zda je již program spuštěn a jaký má identifikátor.

    Sekce Dovecot obsahuje cesty ke speciálním souborům pro autentizaci (mux) a přístup k databázi uživatelů (master). Nastaví se samozřejmě podle toho, jak je to nastaveno v konfiguračním souboru /etc/dovecot.conf. Parametr sievec je cesta ke kompilátoru pravidel Sieve – pravidla se totiž nepoužívají v původní textové podobě, nýbrž se kompilují do mezijazyka (bytecode). Plugin Sieve do Dovecot LDA si kompilaci po změně zdrojového souboru zavolá sám, nicméně využití kompilátoru v ManageSieve je výhodné pro dálkové ověření, zda jsou pravidla syntakticky správná (viz dále).

    Další parametr je scripts. To je adresář (v rámci domovského adresáře uživatele pošty), do kterého se ukládají jednotlivé soubory s pravidly. Aktivní je však vždy nejvýše jeden soubor – na něj se v domovském adresáři vytvoří symbolický odkaz s názvem podle parametru active (je to přesně ta cesta, která vzniká zpracováním šablony uvedené v parametru sieve sekce plugin v konfiguračním souboru dovecot.conf). Parametry uidgid jsou identifikátor uživatele, resp. skupiny, pro běh démona (bude stejný jako uživatel pro úložiště pošty).

    Takto nakonfigurovaný pysieved bude dělat přesně to, co se od něj čeká. Podle požadavků připojeného klienta bude spravovat soubory s pravidly a aktivovat/deaktivovat je. Klient se samozřejmě musí autentizovat, a to úplně stejně jako pro práci s poštou. Jak bylo řečeno výše, o toto se postará Dovecot.

    Správa z klientů

    link

    K využití správy pravidel Sieve je potřeba mít klienta, který podporuje protokol ManageSieve. Takovými klienty jsou například Mulberry, Mozilla Thunderbird (s doplňkem Sieve) nebo webmail RoundCube. Mulberry nabízí relativně jednoduchou správu (bohužel však jeho vývoj skomírá), Thunderbird má podporu pouze pro přímou editaci kódu pravidel (ovšem s možností okamžité kontroly pomocí již zmíněného kompilátoru sievec a se zabudovanou referenční příručkou), RoundCube obsahuje snadno ovladatelnou „klikací“ správu pravidel (která však využívá jen malou část možností Sieve). Lze očekávat, že se v blízké budoucnosti dočkáme většího počtu klientských implementací (ovšem již dnes jich není zase až tak málo).

    Kdo využije Thunderbird s doplňkem Sieve, bude normálně psát pravidla v té podobě, jak se objevila v příkladech v tomto článku. Která všechna rozšíření Sieve jsou k dispozici, lze najít například v tabulce na webu programu Dovecot.

    Zmínku si zaslouží také globální soubor s pravidly. Ten je typicky normální soubor, který upravuje správce serveru. Nic však nebrání tomu, aby si správce vytvořil speciální poštovní účet, v uživatelsky přívětivém klientském programu si běžným způsobem připravoval pravidla pro globální použití a pak příslušný soubor použil jako globální (buď nastavením přímé cesty nebo přes symbolický odkaz, což je asi vhodnější).

    Další zajímavý plugin

    link

    Příští díl seriálu se bude zabývat dalším zajímavým zásuvným modulem do Dovecot LDA. Bude to modul implementující přístupové seznamy. K čemu je to dobré? Uživatelé mohou různě sdílet některé své složky a nastavovat k nim přístupová práva jiným uživatelům. Zejména ve firmách je to možnost, jak si při týmové práci udržet pořádek v poště a jak zajistit, aby měli všichni k dispozici ty funkce, které potřebují.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    p_a_l_o avatar 19.2.2010 07:50 p_a_l_o | skóre: 5
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Dekuji za dalsi dil zajimaveho clanku.

    Sieve na serveru vyuzivam, konfiguraci si uzivatele zajistuji pomoci webmailu Roundcube. Mam nastaveno podobne default pravidlo pro presun spamu do slozky Junk, jako je uvedeno v clanku. Avsak pripade, ze si uzivatel nastavi sve vlastni, prestava se default pouzivat. Napada Vas jednoduche reseni, jak nejake pravidlo defaultne uplatnovat pro vsechny schranky tak, aby jej uzivatel nemohl ovlivnit? Dekuji.
    19.2.2010 19:23 obrazkovy spam
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Tak odpoved na tuto otazku by zaujimala aj mna.
    Luk avatar 19.2.2010 20:59 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Takové řešení existuje - resp. hned dvojí, podle toho, co je cílem. Existují totiž konfigurační parametry sieve_before a sieve_after, které umožňují definovat další Sieve skripty (nebo celé adresáře se skripty). Pravidla v sieve_before se zpracují před uživatelskými pravidly, sieve_after po nich (ale jen v případě, že zpráva zůstává ve zpracování). Takže pokud už se má nějaké zpracování vynucovat všem uživatelům (i když to obecně nevidím jako přínosné), lze to využít. Všechny tyto skripty (stejně jako skript s globálními pravidly) se musí předem kompilovat pomocí sievec.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    p_a_l_o avatar 24.2.2010 15:56 p_a_l_o | skóre: 5
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Toto jsem uz neuspesne zkousel drive. Projdu si to znovu a v pripade, ze bych neobjevil chybu, to zkusim popsat detailni konfiguraci.

    Vy sieve_before a sieve_after pouzivate uspesne?
    Luk avatar 24.2.2010 18:39 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Vy sieve_before a sieve_after pouzivate uspesne?
    Nepoužívám vůbec. Zatím jsem neměl takovou potřebu a obecně mě nenapadá příliš případů, kdy to má smysl (proto jsem to ani neuvedl v článku). Nicméně to mohu příležitostně vyzkoušet.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Luk avatar 24.2.2010 18:52 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Tak jsem teď čistě pro zajímavost vyzkoušel sieve_before a funguje bez problémů.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    19.2.2010 09:12 Lampa
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Je nejaky duvod proc nepouzit nativní Dovecot ManageSieve ?

    19.2.2010 09:40 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    V mém případě dřív důvod byl - prostě neexistoval :-) Shodou okolností jsem asi před měsícem instaloval další mailserver a tam jsem ho už nahodil, funguje dobře, akorát jsem musel kompilovat balíček, protože v distribuci se s ním zatím nepočítá :-(
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    rudiik avatar 20.2.2010 18:02 rudiik | skóre: 16 | blog: rudiikuv miniblog
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Ja sem pri migraci z Cyrusu na Dovecot s radosti shledal, ze v Debianu se se Sieve pocita na 100% a je tam podpora pro Sieve i managesieve primo v Dovecotim balicku.
    KDE 2.0 .. KDE 3.5.10 -> KDE 4.1 .. KDE 4.4.5 -> E17 Alpha/Beta -> Trinity 3.5.12 -> GNOME 2.30 -> KDE 4.6.5
    Luk avatar 20.2.2010 20:18 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    U které verze Debianu? Totiž že pro poslední stabilní verzi, tj. 5.0 čili Lenny, toto rozhodně neplatí (tam je dokonce pořád ještě Dovecot 1.0).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    21.2.2010 12:51 PM
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    lenny-backports - dovecot 1.2.10
    Luk avatar 21.2.2010 13:19 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    V Backports ano, v distribuci jako takové (ve standardních repozitářích) ne. Navíc toto platí jen v poslední době, ještě relativně nedávno (před pár týdny, již během vzniku seriálu) byly Dovecot balíčky v Backports o několik verzí za zdrojáky (lze to dohledat v diskusích, tam už jsme to jednou řešili).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    19.2.2010 10:16 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Lze nejak pomoci Sieve nahradir nasledujici pravidla maildropu?
    ...
    xfilter "/usr/sbin/spamc"
    
    ... 
    
    if (/^X-Spam-Status: *Yes/)
    {
      exception {
       to ...
      }
    }
    ...
    
    19.2.2010 13:00 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Uz jsem prisel na jedno z reseni. V master.cf dat pred radek kde se posta dorucuje jednoduchy skript, kterym se zprava prozene pres spamc a sendmailem vrati zpet do fronty.
    19.2.2010 23:49 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Není lepší používat Amavis na kontrolu spamu (spamassassin, dspam co je libo) a virů (lze použít prakticky libovolný antivir), který navíc umožňujě integraci třeba s LDAPem nebo nějakou vhodnou SQL DB a uživatel si pak může nastavit co a jak chce kontrolovat?
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    Luk avatar 20.2.2010 00:33 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Já rozumím tomu, co chce tazatel realizovat - ostatně to mám v Sieve nastaveno také. Prostě když se něco při kontrole označí jako spam, spadne to do složky Junk. Tím je zajištěno, že to nestraší v Inboxu, ale současně si to uživatel může přečíst. Jediné, co na tom nechápu, je potřeba nutit takové chování všem uživatelům, bez možnosti ho změnit. Ať si to každý nastaví, jak chce. To už považuji za vhodnější generovat nově vytvářeným uživatelům jejich vlastní skript, kde takové pravidlo bude - pak si ho tam mohou ponechat nebo ho odstranit, jak budou chtít.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Luk avatar 19.2.2010 20:47 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Co by to mělo dělat (maildrop po této stránce vůbec neznám, nic mi to neříká)?
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    20.2.2010 14:32 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Ten priklad pro maildrop hleda v dobe trideni zpravy do slozek zda je v hlavicce mail oznacen jako spam a dle toho se zprava kopiruje do prichozi posty nebo do slozky Spam.

    Uz jsem pro Sieve naspal neco takoveho:
    require ["fileinfo", "copy"];
    
    if header :contains "X-Spam-Status" "Yes"
    {
           setflag "$Junk";
           fileinto ".Spam";
           stop;
    }
    else
    {
            "fileinto" :copy folder: "/home/backup/%d/%n";
    
    Nicmene mi to nefunguje. Domnival jsem se, ze misto %d se doplni domena.tld a misto %n username. Existuje nejaky elegantni a funkcni zpusob, jak dostat z hlavicky uzivatele a domenu (treba i nejak parsovat To:)...?
    20.2.2010 15:39 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Řešit To: není dobrý nápad, protože obecně nemá vůbec žádnou souvislost s adresou příjemce.
    Luk avatar 20.2.2010 17:06 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Nepochopil jsem, proč se má zpráva kopírovat do příchozí pošty. Vložení do příchozí pošty je přece výchozí akce, kterou není třeba explicitně definovat - stačí udělat explicitní přesun v případě spamu, čili stačí úvodní if, to else už je zbytečné. Mimochodem zbytečný je i příkaz stop, protože akce fileinto ruší implicitní keep (viz RFC 5228, bod 2.10.2) a žádný jiný důvod k uvedení zde není.

    Není to myšleno jako zálohování (když tam vidím to backup)? Pokud ano, tak mi to nepřijde jako příliš smysluplné řešení, spíš jako takové "velkobratrské" (ukládá se všechno, nezálohuje se stav ke konkrétnímu okamžiku).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    20.2.2010 18:55 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Ano, /home/backup/... je opravdu zalohovani nebo spis kopirovani veskere prichozi posty (coz je prani zamestnavatele), takze mne jde jen o to, jak to do te zalozni slozky dostat.
    20.2.2010 19:35 jozefmak
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Ak je SMTP server Postfix, asi by som taketo nieco riesil skor direktivou always_bcc - a je to riesene pre vsetkych prijimatelov na serveri.
    Luk avatar 20.2.2010 20:53 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Kdyby Dovecot Sieve podporoval rozšíření editheader podle RFC 5293, bylo by to velmi jednoduché - stačilo by podle obálkového příjemce vytvořit novou hlavičku (např. X-Original-Recipient), pak to přeposlat na speciálního uživatele (třeba velkybratr@moje.domena), u něj pak tuto hlavičku rozežírat a zprávy správně třídit. Jenže protože zatím toto rozšíření podporováno není, nelze takové řešení použít.

    Možná by se ale dala rozežírat hlavička Delivered-To, protože je možné (ale to právě nevím), že se přidává do zprávy až na konci zpracování LDA. Chtělo by to prověřit, zda tam po přeposlání kopie nejsou ty hlavičky dvě. Pokud je tam opravdu jen ta první, je vyhráno - stačí hlavičku pomocí :domain a :localpart rozežrat do proměnných a podle nich pak uložit zprávu do správné složky.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    21.2.2010 13:26 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    V postfixu resim pres externi content filtr (v master.cf) vyhodnoceni zda je prijemce v hlavicce a obalce stejny a pokud je z nasi domeny, vyhodnuciji take zda sla zprava z povolenych siti (cimz samozrejme nervyresim pokud nekdo posila pres T-Mobile, atp) coz je dostatecna kontrola proti falsovani adresy odesilatele. Do hlavicky pridam X-Muj-Filtr: {OK,BAD} a dle toho si SpamAssasin prideli odpovidajici skore. Takze zpravy kde je falsovana adresa odesilatele stejne skonci ve spamu a co ma jit do meho /home/backup/DOMAIN/USERNAME mi klidne staci urcit z hlavicky To:. Ted se divam, ze by to melo jit pomoci pluginu "envelope" tedy urcit :domain a :localpart.

    Staci pak tedy neco takoveho?
    require ["fileinfo", "copy", "envelope"];
    
    if header :contains "X-Spam-Status" "Yes"
    {
           setflag "$Junk";
           fileinto ".Spam";
           stop;
    }
    else
    {
            "fileinto" :copy folder: "/home/backup/:domain/:localpart";
    }
    
    Luk avatar 21.2.2010 14:40 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Tohle je bohužel chybná syntaxe. Jsou tam dva problémy - jednak nevím o tom, že by šlo místo názvů složek (resp. schránek) uvádět absolutní cesty. Navíc takto to definovat nejde. Muselo by se udělat něco tohoto typu:
    require ["fileinto", "copy", "envelope", "variables"];
    
    ...
    
    if allof(envelope :domain :matches "to" "*", envelope :localpart :matches "to" "*") {
      fileinto :copy "/home/backup/${1}/${2}";
    }
    
    Je to jen hrubý nástřel. Dělá to to, že se vyhodnocují obě části adresy obálkového příjemce, dají se do proměnných a tyto proměnné se pak použijí. Jenže zásadní problém bude v tom, že asi nebude možné použít absolutní cestu k poštovní složce (nezkoušel jsem, v dokumentaci o tom nic není, nicméně velmi pochybuji).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    21.2.2010 15:41 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    To je docela skoda, ze to nijak jednoduse nepujde. Vytvarim zalozni mail server ktery by byl migrovan po odladeni i na hlavni mailserver (na kterem ted bezi prave Courier IMAP + Courier maildrop). Dovecot se mi v posledni dobe velmi zamlouva, nicmene mame reseno pres maildrop dost specialnich veci a bude asi tezke preklopeni na Dovecot LDA.
    Luk avatar 21.2.2010 16:03 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Ono by to šlo řešit "jednoduše", tedy přeposláním kopie na nějakého speciálního uživatele. Jenže problém je v tom, že jediná hlavička, ze které by se dala získat adresa původního uživatele, je To:, která nemusí odpovídat skutečnosti. Hlavičku Delivered-To: jsem teď zkusil, ale tu použít nelze, protože se tam vloží ve druhém exempláři při doručování po přeposlání.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    21.2.2010 17:03 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    To ale stale neresi situaci, kdy potrebuji mit kopie ne v Maildiru urciteho uzivatele, ale v uplne jine ceste, ktera by mela vypadat nejlepe takto:

    /home/backup/DOMENA/UZIVATEL/new

    kde platne virtualni ucty jsou v /home/virtual/DOMENA/UZIVATEL

    Jeste mne teda napada vlozit pred frontu (v master.cf) skript, ktery by udelal kopii, respektive nakopiroval email do zaloh a zpravu poslal zpet do fronty postfixu kde ji prevezme deliver. Tohle asi neni uplne nejsistci reseni.

    Luk avatar 21.2.2010 18:00 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    To ale stale neresi situaci, kdy potrebuji mit kopie ne v Maildiru urciteho uzivatele, ale v uplne jine ceste
    To je velmi snadno řešitelné tím, že se ten Maildir umístí na tu správnou cestu.
    Jeste mne teda napada vlozit pred frontu (v master.cf) skript, ktery by udelal kopii, respektive nakopiroval email do zaloh a zpravu poslal zpet do fronty postfixu kde ji prevezme deliver. Tohle asi neni uplne nejsistci reseni.
    Pak existují ještě jiná řešení. Tak například využít incron, pokud by už uměl rekurzivně sledovat celé podstromy filesystému (ššššššššš - to se snáší popel na moji hlavu ;-)). Nebo použít jiné programy, které už to umějí, např. inotify-tools. Pak stačí jen chytat událost IN_MOVED_TO, testovat, zda šlo o přesun z adresáře tmp do new v rámci inboxu (protože to je operace, kterou je završeno doručení zprávy) a pak už jen kopírovat příslušné zprávy.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Luk avatar 21.2.2010 18:02 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    zda šlo o přesun z adresáře tmp do new v rámci inboxu
    Resp. spíš nejen v rámci inboxu, ale ve všech poštovních složkách kromě spamové.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    21.2.2010 19:25 ext3fs
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Reseni to pochopitelne je, ale pak se vkrada myslenka, zda neni pro mou situaci lepsi zustat u maildropu...coz je dost neprijemna myslenka. Snazim se jak to jde po letech maildrop opustit (minimalne proto, ze overovani proti MySql je u maildropu v kombinaci Cyrus SASL (authlib) problematicky provozuschopne a overovani pomoci Dovecotu vyzaduje patch maildropu,...).
    Luk avatar 21.2.2010 20:05 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Osobně pro podobné případy využívám právě incron (ostatně právě proto jsem ho vytvořil, přestože prvotní impuls vyšel od někoho v diskusi), i když je samozřejmě žádoucí řešit věci co nejjednodušeji, nejčistěji a s použitím co nejméně komponent.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    rudiik avatar 20.2.2010 17:58 rudiik | skóre: 16 | blog: rudiikuv miniblog
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    To jsou v zasade 2 odlisne problemy. Dive jsem sice take volal spamc z procmailu, ale postupem casu jsem presel na zminovany Amavis, ktery se pro Postfix chova jako content_filter, dostane zpravu od postfixu pres SMTP, provede testy dle definic (0-x antiviru), dspam, spamassassin a zase pres SMTP vrati zpet postfixu se Spam a AV hlavickami. Obavam se, ze volat externi program ze sieve scriptu nejde, ale mohu se mylit. Samotne filtrovani X-Spam-Status neni se Sieve zadny problem, mam to tusim dokonce definovane jako global rule pro vsechny usery.
    KDE 2.0 .. KDE 3.5.10 -> KDE 4.1 .. KDE 4.4.5 -> E17 Alpha/Beta -> Trinity 3.5.12 -> GNOME 2.30 -> KDE 4.6.5
    20.2.2010 19:37 jozefmak
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
    Mna by skor zaujimalo, ci existuje sposob, ako skompilovany sieve skript dekompilovat naspat na povodny skript - sieved dekompiluje len na uroven akehosi metajazyka...

    Napriklad, ked si pouzivatel zmaze svoj 'vymazleny' sieve skript a zostane len v binarnej podobe...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.