Portál AbcLinuxu, 18. prosinec 2017 00:42

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
p_a_l_o avatar 19.2.2010 07:50 p_a_l_o | skóre: 4
Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
Odpovědět | Sbalit | Link | Blokovat | Admin
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
p_a_l_o avatar 24.2.2010 15:56 p_a_l_o | skóre: 4
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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ů.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
19.2.2010 09:12 Lampa
Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
Odpovědět | Sbalit | Link | Blokovat | Admin
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).
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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).
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
19.2.2010 10:16 ext3fs
Rozbalit Rozbalit vše Re: Stavíme poštovní server – 14 (Sieve)
Odpovědět | Sbalit | Link | Blokovat | Admin
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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á)?
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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).
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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).
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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í.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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é.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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)
Odpovědět | Sbalit | Link | Blokovat | Admin
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

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.