Discussion:
Mailit Junkiin: Dovecot/Postfix/Spamassassin
(too old to reply)
Tapio Väättänen
2017-12-03 21:08:56 UTC
Permalink
Kokeilenpa kysyä apua täältä ihan ensiksi.

Olen asentanut AWS Linux AMI:iin mailiserverin otsikonmukaisella
yhdistelmällä.

Kaikki muu toimii, paitsi se, että spammit menisi suoraan Junk-kansioon.

Homman tulisi toimia kun laittaa Dovecotiin Sieve-plugarin, ja kertoo sille,
että jos X-Spam: NO niin ei tee mitään, mutta muutoin siirtää mailin Junk
kansioon.

Tämä ehkä toimisikin, mutta joka kerta kun kerron Postfixilla käyttää
Dovecottia LDA:na, niin homma tyssää siihen.

Postfixin deliver toimii kun /etc/postfix/master.cf:ssa on rivi:
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}

Eli yllä LDA on sendmail.postfix. Sen kun vaihdan Dovecotiksi:

#spamassassin unix - n n - - pipe
user=spamfilter argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -m ${recipient}

Saan /var/log/maillog:iin

Dec 3 14:41:22 manica postfix/pipe[6586]: D6B5228471:
to=<***@example.com>, relay=spamassassin, delay=0.57, delays=0.1/0/0/0.47,
dsn=4.3.0, status=deferred (temporary failure)

Ja /var/log/dovecot-lda-errors.log:iin

Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.

Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.

Onko kenelläkään ajatusta millä tuon saisi toimimaan?

Alustana on tosiaan siis AWS Linux AMI, eli käytännössä CentOS 6.x
--
sip:***@tav.iki.fi http://tav.iki.fi

"Ei me nyt tietenkään niin paljon saada kuin jotkut poikabändit."
-- Timo Kotipelto IS:ssa 11.9.2015
Ari Saastamoinen
2017-12-03 23:58:14 UTC
Permalink
Post by Tapio Väättänen
Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.
Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.
Onko kenelläkään ajatusta millä tuon saisi toimimaan?
Ei toi kuulosta Sieve-ongelmalta lainkaan, vaan siltä että sen
dovecotin autentikaatiopalikka ei saa (virtuaali?)käyttäjien
kotihakemistoja kaivettua. Mistä sun dovecottis hakee käyttäjien
tiedot? Ilmeisesti ei kuitenkaan /etc/passwd:stä, kun siellä toi
tieto olisi olemassa. Tai jos hakeekin, niin se käyttää sitten PAM:ia
salasanan tarkistukseen, ja PAM ei osaa (mun tietääkseni) kertoa
tunnuksesta muuta kuin sen, että onko salasana oikein vai ei. Ja sun
tarttee sitten userdb:ksi laittaa toi /etc/passwd erikseen.

Pääsetkö IMAP:lla (tai POP:lla) kirjautumaan postilaatikkoon, kun
siinäkin se dovecotti tarttee tota kotihakemistotietoa.

Tai sitten missä kohdassa siä sun konfigissa on toi
~/mail:INBOX=/var/mail/spamfilter ? Haluatko/tarvitko siihen edes
tuota ~/mail:ia (jota se siis ei osaa, kun ei tiedä homea, eikä siis
tiedä mikä on ~) kun sun INBOX on kuitenkin määritelty tuolla tavalla
erikseen.
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-04 00:22:58 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.
Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.
Onko kenelläkään ajatusta millä tuon saisi toimimaan?
Ei toi kuulosta Sieve-ongelmalta lainkaan, vaan siltä että sen
dovecotin autentikaatiopalikka ei saa (virtuaali?)käyttäjien
kotihakemistoja kaivettua.
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.

[***@xxx ~]# doveadm user mina
field value
uid 123
gid 123
home /home/mina
mail mbox:~/mail:INBOX=/var/mail/mina
system_groups_user tav
[***@xxx ~]# doveadm user vmail
field value
uid 511
gid 511
home /home/vmail
mail mbox:~/mail:INBOX=/var/mail/vmail
system_groups_user vmail
Post by Ari Saastamoinen
Mistä sun dovecottis hakee käyttäjien
tiedot? Ilmeisesti ei kuitenkaan /etc/passwd:stä, kun siellä toi
tieto olisi olemassa.
Kyllä sen sieltä hakee, kun ei mulla ole mitään virtuaalikäyttäjiäkään.
Post by Ari Saastamoinen
Tai jos hakeekin, niin se käyttää sitten PAM:ia
salasanan tarkistukseen, ja PAM ei osaa (mun tietääkseni) kertoa
tunnuksesta muuta kuin sen, että onko salasana oikein vai ei. Ja sun
tarttee sitten userdb:ksi laittaa toi /etc/passwd erikseen.
Pääsetkö IMAP:lla (tai POP:lla) kirjautumaan postilaatikkoon, kun
siinäkin se dovecotti tarttee tota kotihakemistotietoa.
Pääsen.
Post by Ari Saastamoinen
Tai sitten missä kohdassa siä sun konfigissa on toi
~/mail:INBOX=/var/mail/spamfilter ? Haluatko/tarvitko siihen edes
tuota ~/mail:ia (jota se siis ei osaa, kun ei tiedä homea, eikä siis
tiedä mikä on ~) kun sun INBOX on kuitenkin määritelty tuolla tavalla
erikseen.
doveadm näyttää kuitenkin kaiken ihan oikein. Hakemistotkin dovecot on
luonut ihan itse.

Yksi mitä olen epäillyt syyksi, on virtual user - domain table. Mutta se on
POstfixissä, ja toisaalta toimii. Eli otan mailia vastaan usealle domainille
usealla eri nimelle, ja siksi minulla on tuo tiedosto. Toisaalta vaikka
tyhjennä sen, niin samat virheilmoitukset tulee.
--
sip:***@tav.iki.fi http://tav.iki.fi

"You cannot be too rich, too thin, or commit too often." -- Mark A.
Tapio Väättänen
2017-12-04 00:37:57 UTC
Permalink
Post by Tapio Väättänen
Post by Ari Saastamoinen
Post by Tapio Väättänen
Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.
Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.
Onko kenelläkään ajatusta millä tuon saisi toimimaan?
Ei toi kuulosta Sieve-ongelmalta lainkaan, vaan siltä että sen
dovecotin autentikaatiopalikka ei saa (virtuaali?)käyttäjien
kotihakemistoja kaivettua.
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.
field value
uid 123
gid 123
home /home/mina
mail mbox:~/mail:INBOX=/var/mail/mina
system_groups_user tav
field value
uid 511
gid 511
home /home/vmail
mail mbox:~/mail:INBOX=/var/mail/vmail
system_groups_user vmail
Post by Ari Saastamoinen
Mistä sun dovecottis hakee käyttäjien
tiedot? Ilmeisesti ei kuitenkaan /etc/passwd:stä, kun siellä toi
tieto olisi olemassa.
Kyllä sen sieltä hakee, kun ei mulla ole mitään virtuaalikäyttäjiäkään.
Post by Ari Saastamoinen
Tai jos hakeekin, niin se käyttää sitten PAM:ia
salasanan tarkistukseen, ja PAM ei osaa (mun tietääkseni) kertoa
tunnuksesta muuta kuin sen, että onko salasana oikein vai ei. Ja sun
tarttee sitten userdb:ksi laittaa toi /etc/passwd erikseen.
Pääsetkö IMAP:lla (tai POP:lla) kirjautumaan postilaatikkoon, kun
siinäkin se dovecotti tarttee tota kotihakemistotietoa.
Pääsen.
Post by Ari Saastamoinen
Tai sitten missä kohdassa siä sun konfigissa on toi
~/mail:INBOX=/var/mail/spamfilter ? Haluatko/tarvitko siihen edes
tuota ~/mail:ia (jota se siis ei osaa, kun ei tiedä homea, eikä siis
tiedä mikä on ~) kun sun INBOX on kuitenkin määritelty tuolla tavalla
erikseen.
doveadm näyttää kuitenkin kaiken ihan oikein. Hakemistotkin dovecot on
luonut ihan itse.
Yksi mitä olen epäillyt syyksi, on virtual user - domain table. Mutta se on
POstfixissä, ja toisaalta toimii. Eli otan mailia vastaan usealle domainille
usealla eri nimelle, ja siksi minulla on tuo tiedosto. Toisaalta vaikka
tyhjennä sen, niin samat virheilmoitukset tulee.
Joo, varmistyin nyt, että siinä vika ei ole, enkä sitä olisi edes tarvinnut,
joten tyhjensin sen.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Writing a new OS only for the 386 in 1991 gets you your second 'F' for
this term." -- Prof. Andrew S. Tanenbaum
Ari Saastamoinen
2017-12-04 00:45:44 UTC
Permalink
Post by Tapio Väättänen
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.
Onkos sulla myös tuo tunnus spamfilter, jona tuota dovecotin deliveria
yrität ajaa?
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-04 02:03:21 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.
Onkos sulla myös tuo tunnus spamfilter, jona tuota dovecotin deliveria
yrität ajaa?
Joo on:

# doveadm user spamfilter
field value
uid 510
gid 510
home /usr/local/spamassassin
mail mbox:~/mail:INBOX=/var/mail/spamfilter
system_groups_user spamfilter

Ja kuten sanottu, spamassasin toimii kyllä kun LDA on postfix.sendmail,
mutta ei kun vaihdan LDA:ksi dovecotin.

# finger spamfilter
Login: spamfilter Name:
Directory: /usr/local/spamassassin Shell: /sbin/nologin
--
sip:***@tav.iki.fi http://tav.iki.fi

The Internet is *full* - go away
Ari Saastamoinen
2017-12-04 07:14:29 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.
Onkos sulla myös tuo tunnus spamfilter, jona tuota dovecotin deliveria
yrität ajaa?
#spamassassin unix - n n - - pipe
user=spamfilter argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -m ${recipient}

Tossa kun katson deliverin man-sivua, mutta näin aikaisin ei vielä
jaksa ajatella, niin onkos toi "-m ${recipient}" varmasti oikea
optio. Äkkiä lukien tuolle -m:lle pitäisi sanoa esim. INBOX, mutta ei
käyttäjätunnusta/mailiosoitetta. Halunnet ehkä käyttää -a tai -d,
riippuen mihin tuota luulet tarvitsevasi (Tai ehkä jopa ilman)

Voisiko se sitten vaikuttaa kun ajat spamc:ia tuolla
spamfilter-tunnuksella, joka sitten käynnistää tuon deliverin, mutta
sillä ei enää olekaan oikeuksia vaihtaa tunnusta sellaiseksi, joka saa
kirjoittaa sun mailiboksiin? (Tosin se vikailmoitus ei viitannut
puuttuviin oikeuksiin, vaan puuttuviin home-asetuksiin, mutta joka
tapauksessa ongelma on jollain tavalla tuon spamfilter-tunnuksen
käytössä.)

Ja sitten tähän en usko, mutta mua edelleenkion häiritsee se
virheilmoitus, joka valitti siitä, että spamfilterille ei löydy
kotihakemistoa, niin sekin saattaa sotkea, kun aika monissa distroissa
postfixin aliprosessit ajetaan chroottina jossain muualla kuin /:ssa
ja siellä ei sitten välttämättä löydy spamfilter-tunnusta
/etc/passwd:sta...

Postfixin deliver toimii kun /etc/postfix/master.cf:ssa on rivi:
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}

Tämä sitten taas toimii, koska toi ei yritäkään kirjoittaa viestiä
suoraan sun mailiboksiin, vaan kierrättää sen postfixin jonon kautta,
josta sitten postfixin normaali deliveroija laittaa sen paikoilleen.

Miksi sä ylipäätään teet noin, että spamc käynnistää tuon deliverin.
Mikset laita deliveriä postfixin LDA:ksi.

Eli se toimiva spamassassin-rivi, ja sitten main.cf:ään
mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"

Ite olen laittanut spamassassinin milteriksi, joka ainakin meni ihan
triviaalisti, mutta ehkä toi postqueue-tapa olis fiksumpi, kun ei
tolla ihan oikeasti olisi mitään syytä ajaa spamassassinia jo ennen
jonoon ottamista :)
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-04 19:54:59 UTC
Permalink
Post by Tapio Väättänen
Post by Ari Saastamoinen
Post by Tapio Väättänen
Mulla on siis ihan lokaalikäyttäjiä vaan. Pystyn loggautumaan itsenäni
imapin kautta ja kaikki muukoin toimii postinlähetystä ja vastaanottyoa
myöden, niin pitkään kun yritä vaihtaa LDA:ta dovecotiksi, jotta nämä
spammit menisi sinne Junkiin.
Onkos sulla myös tuo tunnus spamfilter, jona tuota dovecotin deliveria
yrität ajaa?
#spamassassin unix - n n - - pipe
user=spamfilter argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -m ${recipient}
Kiitos!

Ok, tätä aloin sitten setvimään, ja todellakin, optiot olivat väärin.
Alla olevilla homma lähti toimimaan.


spamassassin unix - n n - - pipe flags=DROhu
user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -d ${user}

Kun, nimittäin kun ne korjasin optiot, sain uuden herjan:

Fatal: setgid(511(vmail) from mail_gid setting) failed with
euid=510(spamfilter), gid=510(spamfilter), egid=510(spamfilter): Operation
not permitted (This binary should
probably be called with process group set to 511(vmail) instead of
510(spamfilter))

En ole varma, voisiko jollain ilveellä saada homman toimimaan ilman setuid
bittiä, mutta sillä se toimii.

Jotain sentään meni rikki, eli aliakset lakkasi toimimasta. Dovecot deliver
sen enmpää kuin lda ei kunnioita /etc/alias tiedostoa.

Minulla on myös /etc/postfix/virtual_domains määritetty, mutta
tietty dovecot deliver ei siitä piittaa.

No, jotain puhdetyötä täytyy näemmä aina olla. Tuon kanssa voin oikeastaan
elääkin.

Tietty jos siihen on joku idea, niin olen valmis kuuntelemaan :)
--
sip:***@tav.iki.fi http://tav.iki.fi

"Microsoft innovate! Give me a fucking break." -- Larry Ellison
Ari Saastamoinen
2017-12-04 22:15:24 UTC
Permalink
Post by Tapio Väättänen
spamassassin unix - n n - - pipe flags=DROhu
user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -d ${user}
Fatal: setgid(511(vmail) from mail_gid setting) failed with
euid=510(spamfilter), gid=510(spamfilter), egid=510(spamfilter): Operation
not permitted (This binary should
probably be called with process group set to 511(vmail) instead of
510(spamfilter))
En ole varma, voisiko jollain ilveellä saada homman toimimaan ilman setuid
bittiä, mutta sillä se toimii.
Siis sanot tuossa konfigissa, että vaihda tunnus, ja aja spamc, ja
käsket spamc:n käynnistää deliverin. Tuo deliver taas haluaa vaihtaa
postilaatikon omistajaksi, mutta se ei pysty, koska se on perinyt
huonot oikeudet tuolta spamc:ltä.

Älä yritä yhdistää noita kahta tuolla tavalla. Et VOI ajaa sitä noin,
jos haluat tuon noin geneerisesti kaikille postilaatikoille. Sun
pitää sanoa postfixille, että se käynnistää deliverin itse, etkä voi
pyytää (huono-oikeuksista) spamc:tä käynnistämään sitä. Tuo sun
tapasi toimii ainoastaan, jos ajat spamc:n käyttäjäkohtaisesti,
jolloin tuon spamc voidaan käynnistää jo sillä sinun tunnuksellasi
eikä deliverin tarvi enää sitä vaihtaa. (Ja silloinkaan toi ei ole
hyvä, koska ilmeisesti ajat tuota sun spamassassinia filtterinä etkä
deliverinä, jolloin rewrite jää tekemättä)

Eli aja sitä spamc:tä, kuten siinä aiemmassa "toimivassa"
ratkaisussa. Siis siten, että se syöttää postin takaisin postfixin
jonoon käyttäen sitä postfix.sendmail:ia.

Ja sitten laitat tuon deliverin postfixin localdelivery -ohjelmaksi,
jolloin postfix käynnistää sen itse suoraan oikeilla oikeuksilla.

Eli postfixi käynnistää tuon spamc:n, joka tunkee viestin takaisin
postfixin jonoon. Sitten postfixi ottaa viestin uudestaan jonosta ja
käynnistää deliver:in.
Post by Tapio Väättänen
Jotain sentään meni rikki, eli aliakset lakkasi toimimasta. Dovecot deliver
sen enmpää kuin lda ei kunnioita /etc/alias tiedostoa.
Ei niiden kuulukaan tuota käsitellä, vaan se on sen itse postfixin
tehtävä, joka sitten kutsuu noita delivery-agentteja, rewritejen
jälkeen, oikeilla optioilla ja oikeilla oikeuksilla. Mutta et ikinä
päästä sitä viestin prosessointia noin pitkälle, vaan toi
spamassassin-filtteri "hukkaa" viestin ennen noita aliaksien yms
käsittelyä.
Post by Tapio Väättänen
Minulla on myös /etc/postfix/virtual_domains määritetty, mutta
tietty dovecot deliver ei siitä piittaa.
Ei sen kuulukaan, vaan...
Post by Tapio Väättänen
Tietty jos siihen on joku idea, niin olen valmis kuuntelemaan :)
Aiemminkin jo sanoin, tai ainakin yritin sanoa, tämän saman ratkaisun
(Siis älä yhdistä noita kahta eri asiaa keskenään), mutta... ;)
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-04 23:28:42 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
spamassassin unix - n n - - pipe flags=DROhu
user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -d ${user}
Fatal: setgid(511(vmail) from mail_gid setting) failed with
euid=510(spamfilter), gid=510(spamfilter), egid=510(spamfilter): Operation
not permitted (This binary should
probably be called with process group set to 511(vmail) instead of
510(spamfilter))
En ole varma, voisiko jollain ilveellä saada homman toimimaan ilman setuid
bittiä, mutta sillä se toimii.
Siis sanot tuossa konfigissa, että vaihda tunnus, ja aja spamc, ja
käsket spamc:n käynnistää deliverin. Tuo deliver taas haluaa vaihtaa
postilaatikon omistajaksi, mutta se ei pysty, koska se on perinyt
huonot oikeudet tuolta spamc:ltä.
No ok, tarvitsee katsoa tarkemmin optioita, mutta kyllä tuo toimii ihan
kaikille tunnuksille. Tietty -d:n sijaan voisi olla tarpeen käyttää -a

Täytyy tutkia lisää.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Microsoft innovate! Give me a fucking break." -- Larry Ellison
Tapio Väättänen
2017-12-05 02:32:44 UTC
Permalink
Post by Tapio Väättänen
Post by Ari Saastamoinen
Post by Tapio Väättänen
spamassassin unix - n n - - pipe flags=DROhu
user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -d ${user}
Fatal: setgid(511(vmail) from mail_gid setting) failed with
euid=510(spamfilter), gid=510(spamfilter), egid=510(spamfilter): Operation
not permitted (This binary should
probably be called with process group set to 511(vmail) instead of
510(spamfilter))
En ole varma, voisiko jollain ilveellä saada homman toimimaan ilman setuid
bittiä, mutta sillä se toimii.
Siis sanot tuossa konfigissa, että vaihda tunnus, ja aja spamc, ja
käsket spamc:n käynnistää deliverin. Tuo deliver taas haluaa vaihtaa
postilaatikon omistajaksi, mutta se ei pysty, koska se on perinyt
huonot oikeudet tuolta spamc:ltä.
No ok, tarvitsee katsoa tarkemmin optioita, mutta kyllä tuo toimii ihan
kaikille tunnuksille. Tietty -d:n sijaan voisi olla tarpeen käyttää -a
Täytyy tutkia lisää.
En tiedä tekikö -a ihmeitä, muttei se haitannutkaan. Se mikä sai homman
toimimaan kuten aiemminkin, oli lisätä virtual_alias_domains main.cf
-tiedostoon. Tuo -a ei itseasiassa muuttanut mitään.

Myös ko. setuid on suoraan dovecotin manuaalista, ja ymmärrän kyllä riskit.

https://wiki2.dovecot.org/LDA#multipleuids

Tuolla listataan myös parempi toimintatapa, jota ehkä harkitsen. Eli LMTP.

Minulla boxiin ei kuitenkaan pääse loggaantumaan sisään kukaan muu kuin
minä. Mailien spamfilteröinti silti toimii nyt kaikille käyttäjille.

En nyt tiedä mikä tuossa fundamentaalisesti menee vikaan.

Posti tulee MTA:lla, joka laittaa sen eteenpäin spamassassinille, jonka
jälkeen se siirtyy LDA:lle. Koko ajan käytössä on vmail:vmail käyttäjä,
jota ei missään vaiheessa vaihdeta muuksi.

Aika vaikea tuohon oli mitään loitsua löytää, ja nekin mitkä löysin, eivät
toimineet sellaisenaan.

Tämä on yksi aika samanlainen:

https://stackoverflow.com/questions/24256008/how-to-move-spam-to-spam-folder

Itseasiassa aika identtinen omani kanssa.

Myönnän, että siitä kun viimeksi mailiserverin pistiin pystyyn, niin aika on
vierähtänyt. Silloin homma hoitui sendmailla, forward:lla,
spamassassinilla ja procmaililla.

mutta siinä olit omat puutteensa. Nythän minulla hoituu kaikki käyttäjät
samalla loitsulla, kun aiemmin procmailin kanssa pulatessa piti kaikki tehdä
käyttäjäkohtaisesti.

Totta kai, jos parempi loitsu löytyy, otan heti käyttöön.

Kuitenkin, nyt se toimii kuten halua. Mailit menee Junk-kansioon
globaalisti kaikille käyttäjille. Samalla itse saan useamman käyttäjän
mailit omaan postilokerooni, patsi niiden spammit, jotka kaikki menee
Junkkiin.

Kiitos avusta!

En nykyään todellakaan keksi missä näitä kysyisi, ja s.a.linux todisti taas
olevansa toimiva.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Relational people do it on tables!" -- Timon kommentti tietoviikon
artikkeliin "Miksi tietokanta ei ole enää seksikäs?"
Ari Saastamoinen
2017-12-05 07:52:27 UTC
Permalink
Post by Tapio Väättänen
Posti tulee MTA:lla, joka laittaa sen eteenpäin spamassassinille, jonka
jälkeen se siirtyy LDA:lle. Koko ajan käytössä on vmail:vmail käyttäjä,
jota ei missään vaiheessa vaihdeta muuksi.
Todennäköisesti ajat tuota spamassassinia vintent_filtterinä, joten
sun siltikin kannattaisi palauttaa posti sieltä spamassassinilta
postfixille, joka tekee postille vielä lisää juttuja (esim. sen
/etc/aliases:n käsittelyn).

Tai sitten vaihtaa toi spamc edes LDA:ksi, eikä filtteriksi. Nyt toi
sun juttus hukkaa viestin postipalvelimelta kesken käsittelyn.
Post by Tapio Väättänen
Aika vaikea tuohon oli mitään loitsua löytää, ja nekin mitkä löysin, eivät
toimineet sellaisenaan.
Oon mä kyllä hankalampiakin googlettanut. Liian usein itelle osuu
kohdalle se, että jos yritän googlettaa ohjetta siihen, että "miten
varmistan että asiaa X ei tehdä", mutta löydän kiljoona linkkiä
siihen, että "Uudemmissa versioissa X on oletuksena, ja vanhempiin sen
laitat päälle näin" - eikö kukaan muu muka ikinä halua tehdä noin päin
kuin minä :)

Googleen "spamassassin to postfix". Ekan linkin ohjeessa tehdään oma
skripti tuohon varsinaiseen filtteröintiin, mutta sä halusit tehdä sen
sievellä, joten seuraava. Siinä kerrotaan kuinka spamassasin
asennetaan centos6:seen. Tuon ohjeen perusteella pitäisi onnistua,
mutta toi kolmantena olevan debian8:ia ohjeistava linkki on mielestäni
selkeämpi https://syslint.com/blog/tutorial/how-to-install-and-configure-spamassassin-with-postfix-in-debian-8/

Googleen "dovecot deliver postfix", niin eka linkki
https://wiki.dovecot.org/LDA/Postfix

"Sieve rule for all users", niin ensimmäinen linkki on
https://lists.debian.org/debian-user/2013/07/msg00037.html Toi ei
suoraan ole ohje vaan keskustelua, mutta siitä keksinee tavan lähestyä
sitä miten kaikille käyttäjille saa yhteisiä sieveruleja.
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-05 14:47:13 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Posti tulee MTA:lla, joka laittaa sen eteenpäin spamassassinille, jonka
jälkeen se siirtyy LDA:lle. Koko ajan käytössä on vmail:vmail käyttäjä,
jota ei missään vaiheessa vaihdeta muuksi.
Todennäköisesti ajat tuota spamassassinia vintent_filtterinä, joten
sun siltikin kannattaisi palauttaa posti sieltä spamassassinilta
postfixille, joka tekee postille vielä lisää juttuja (esim. sen
/etc/aliases:n käsittelyn).
Tai sitten vaihtaa toi spamc edes LDA:ksi, eikä filtteriksi. Nyt toi
sun juttus hukkaa viestin postipalvelimelta kesken käsittelyn.
En nyt ihan ymmärrä, koska kaikki ohjeet, jotka olen löytänyt, niin
toteyttavat homman juuki kuten minä sen teen. Myös kaikissa linkessä,
jotka sinä esitit, homma on tehty juuri kuten minäkin sen tein.

Minulla on siis määritelty spamassasin contentfilteriksi Postfixissa
Ennen tuota Junk folderia homma meni näin:

smtp inet n - n - - smtpd -o
content_filter=spamassassin
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}

Eli posti sisään postfixilla jonka jälkeen contentfilteröinti ja
senndmai.postfixille. Joka teki täsmälleen saman, kuin nyt dovecot.lda.

Minkä tahansa manuaalin löydänkin, tuo on se tapa. Miksi sinusta
sendmail.postfix ja dovecot-lda ovat fundamentaalisesti eri tapa toteuttaa
local delivery?

Eli minulla, kuten esimerkeissä, posti sisään smtp:llä, filtteröinti, ja
sen jälkeen LDA:lle.
Post by Ari Saastamoinen
Post by Tapio Väättänen
Aika vaikea tuohon oli mitään loitsua löytää, ja nekin mitkä löysin, eivät
toimineet sellaisenaan.
Oon mä kyllä hankalampiakin googlettanut. Liian usein itelle osuu
kohdalle se, että jos yritän googlettaa ohjetta siihen, että "miten
varmistan että asiaa X ei tehdä", mutta löydän kiljoona linkkiä
siihen, että "Uudemmissa versioissa X on oletuksena, ja vanhempiin sen
laitat päälle näin" - eikö kukaan muu muka ikinä halua tehdä noin päin
kuin minä :)
Googleen "spamassassin to postfix". Ekan linkin ohjeessa tehdään oma
skripti tuohon varsinaiseen filtteröintiin, mutta sä halusit tehdä sen
sievellä, joten seuraava. Siinä kerrotaan kuinka spamassasin
asennetaan centos6:seen. Tuon ohjeen perusteella pitäisi onnistua,
mutta toi kolmantena olevan debian8:ia ohjeistava linkki on mielestäni
selkeämpi https://syslint.com/blog/tutorial/how-to-install-and-configure-spamassassin-with-postfix-in-debian-8/
Ja tuossa se tehdään täsmälleen kuten minulla:
smtp inet n - - - - smtpd -o
content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender}
${recipient}

Tuo oli ihan eka versioni, joka aiheutti massiivisen maili loopin, kunnesa
tajusin siirtyä sendmailin sijaan postfix.sendmailiin. Tähän löytyy
linkki, joka kehoittaa vaihtamaan sendmailin dovecot.sendmailiksi, joka
toimii, mutta ei siirrä mailia automaattisesti Junk kansioon, vaikka se
olisi merkitty spammiksi.
Post by Ari Saastamoinen
Googleen "dovecot deliver postfix", niin eka linkki
https://wiki.dovecot.org/LDA/Postfix
"Sieve rule for all users", niin ensimmäinen linkki on
https://lists.debian.org/debian-user/2013/07/msg00037.html Toi ei
suoraan ole ohje vaan keskustelua, mutta siitä keksinee tavan lähestyä
sitä miten kaikille käyttäjille saa yhteisiä sieveruleja.
Minulla se on tehty juuri noin. Kaikille on yhteiset sieve rulet.

# cat /etc/dovecot/sieve/default.sieve
require "fileinto";
if exists "X-Spam-Flag" {
if header :contains "X-Spam-Flag" "NO" {
} else {
fileinto "Junk";
stop;
}
}

Lopultakin ongelma oli siinä, että dovecota-lda, joka siis on ihan sama kuin
sendmail local delivery, kun ensimmäisessä linkissäsi ei toiminut ilman
setuid bittiä, joka sekin on dokumentoitu dovecot wikissä.

Kaikki siis minulla on kuten linkeissäsi. En edelleenkään näe miten
toetutukseni eroaa siitä mitä ehdotat.

MTA --> Spam filter --> LDA. Noin se on minulla ja noin se on meid'n
molempien linkeissä.

Toteukseni seuraa siis täsmällisesti tätä:

https://stackoverflow.com/questions/24256008/how-to-move-spam-to-spam-folder

Ei siellä mitään tehdä käyttäjänä, vaan yleisellä tasolla. Sieve on lisätty
pluginiksi dovecot-lda:lle, joka on se viimeinen vaihe. Ja nimenomaan
systeemitasolla, ei käyttäjäkohtaisesti. Kaikilla käyttäjillä spam menee
Junkkiin. Lisöäksi Junk folderia ei tarvitse erikseen lkuoda, vaan jos sitä
ei ole, se luodaan automaattisesti LDA:n toimesta.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Jos Microsoftiin ei voisi luottaa, kehen sitten voisi?"
-- Mikko Hyppönen, F-Secure, tivi.fi 6.1.2011
Ari Saastamoinen
2017-12-05 16:42:28 UTC
Permalink
Post by Tapio Väättänen
Eli posti sisään postfixilla jonka jälkeen contentfilteröinti ja
senndmai.postfixille. Joka teki täsmälleen saman, kuin nyt dovecot.lda.
Minkä tahansa manuaalin löydänkin, tuo on se tapa. Miksi sinusta
sendmail.postfix ja dovecot-lda ovat fundamentaalisesti eri tapa toteuttaa
local delivery?
Siksi, koska dovecotin deliver ja sendmail.postfix eivät tee samaa
asiaa. Deliver kirjoittaa postin siihen sinun
postilaatikkotiedostoosi suoraan ihan itse, jolloin se tarvitsee
siihen tarvittavat oikeudet, jotta voi laatikkoosi kirjoittaa.

Toi sendmail.postfix ei ole LDA eikä se edes yritä kirjoittaa
postilaatikkoosi mitään, vaan laittaa viestin (takaisin) postfixin
jonoon jatkokäsiteltäväksi. Josta postfixiin konffattu LDA (Oli se
sitten postfixin sisäänrakennettu härpäke, dovecotin LDA tai joku muu)
sitten parin jatkokäsittelyvaiheen jälkeen tunkee sen laatikkoosi. Ja
sinä haluat konffata tuon deliverin sille postfixille LDA:ksi.
Post by Tapio Väättänen
Eli minulla, kuten esimerkeissä, posti sisään smtp:llä,
filtteröinti, ja sen jälkeen LDA:lle.
Filtteriltä sen pitäisi palata postfixille, jotta se saa tehtyä
haluamansa asiat loppuun saakka, ja siitä sitten vasta LDA:lle.
Post by Tapio Väättänen
Tuo oli ihan eka versioni, joka aiheutti massiivisen maili loopin, kunnesa
tajusin siirtyä sendmailin sijaan postfix.sendmailiin.
Miten tuon käynnistyksen konffasit siä postfixissä?
master.cf:ään smtp-ruleen lisää -o content-filter=.... ?

Tuon ei pitäisi aiheuttaa looppia, kun toi paikallisesti ajettava
sendmaili ei jonoon tunkemisessa käytä smtp:tä. (Tosin jos sun
sendmail ei olekaan postfixin sendmaili, vaan jonkun muun softan
mukana tuleva, niin sitten se ei osaa kirjoittaa postfixin jonoon
suoraan. Miksi sulla olisi koneella kaksi kahden eri systeemin
sendmail? Mutta jos sulla toi postfixin mukana tullut
sendmail-korvike on nimetty postfix.sendmail:ksi, niin käytä sitä)
Post by Tapio Väättänen
MTA --> Spam filter --> LDA. Noin se on minulla ja noin se on meid'n
molempien linkeissä.
Toi ei ole sama kuin mitä minä ajan takaa...

Sulla siis on (Kun yleistetään, että MTA = Postfix kokonaisuudessaan
jonon käsittelijöineen yms)

MTA -> content_filter -> LDA

Kun tuo pitäisi tehdä niin, että (Huomaa yksi vaihe enemmän)

MTA -> content_filter -> MTA -> LDA

Älä käske sen content_filtterin käynnistämään LDA:ta itse, koska
LDA:lle ei tällöin saada tarvittavia oikeuksia laatikkoosi
kirjoittamiseksi, vaan palauta se postfixille, jolloin siihen
postfixiin konffattu LDA saa sen tallennettua oikeaan paikkaan
tarvittavilla oikeuksilla.

(Toki deliverille saadaan riittävästi oikeuksia sanomalla sille chmod
u+s, tai ajamalla sitä spamc:ia roottina, mutta noin ei tulisi tehdä
yhdellekään ohjelmalle, ellei siihen ihan oikeasti ole joku syy. Se
on potentiaalinen tietoturvariski).
Post by Tapio Väättänen
https://stackoverflow.com/questions/24256008/how-to-move-spam-to-spam-folder
Kyllä toteutuksesi seuraa tuota, mutta tuossa on oletus, että
mailboksit on vmail-käyttäjän omistuksessa, joka on usein tilanne, jos
koneella on virtuaalimailbokseja (Siis bokseja, joilla ei
järjestelmässä ole oikeata käyttäjätunnusta). Ja siltikin toi on
huono ohje, kun tuossakin jää /etc/aliases yms käsittelemättä.

Ja tuolla kysyjälläkin ilmeisesti oli tilanne noin kun tuo viesti oli
merkitty offtopiciksi kommentilla "Questions on professional server-
or networking-related infrastructure administration are off-topic" ja
tuon kysyjän postitkin oli /var/vmail/ -kansiossa.

Ja kun lukee tuon ohjeen kommentteja, niin sielläkin on todettu, että
toi ei ole hyvä, esim:

"...So I just ended up using -e /usr/sbin/sendmail -oi -f ${sender}
${recipient} instead, and it works a charm..."

"...With your setup the mail takes the route Postfix -> Spamassassin ->
Dovecot LDA -> Dovecot ... Where as mine goes Postfix -> Spamassassin
-> Sendmail -> Dovecot..."
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-05 18:04:55 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Eli posti sisään postfixilla jonka jälkeen contentfilteröinti ja
senndmai.postfixille. Joka teki täsmälleen saman, kuin nyt dovecot.lda.
Minkä tahansa manuaalin löydänkin, tuo on se tapa. Miksi sinusta
sendmail.postfix ja dovecot-lda ovat fundamentaalisesti eri tapa toteuttaa
local delivery?
Siksi, koska dovecotin deliver ja sendmail.postfix eivät tee samaa
asiaa. Deliver kirjoittaa postin siihen sinun
postilaatikkotiedostoosi suoraan ihan itse, jolloin se tarvitsee
siihen tarvittavat oikeudet, jotta voi laatikkoosi kirjoittaa.
Toi sendmail.postfix ei ole LDA eikä se edes yritä kirjoittaa
postilaatikkoosi mitään, vaan laittaa viestin (takaisin) postfixin
jonoon jatkokäsiteltäväksi. Josta postfixiin konffattu LDA (Oli se
sitten postfixin sisäänrakennettu härpäke, dovecotin LDA tai joku muu)
sitten parin jatkokäsittelyvaiheen jälkeen tunkee sen laatikkoosi. Ja
sinä haluat konffata tuon deliverin sille postfixille LDA:ksi.
Mutta mikä se oikea loitsu sitten on?
Post by Ari Saastamoinen
Post by Tapio Väättänen
Eli minulla, kuten esimerkeissä, posti sisään smtp:llä,
filtteröinti, ja sen jälkeen LDA:lle.
Filtteriltä sen pitäisi palata postfixille, jotta se saa tehtyä
haluamansa asiat loppuun saakka, ja siitä sitten vasta LDA:lle.
Post by Tapio Väättänen
Tuo oli ihan eka versioni, joka aiheutti massiivisen maili loopin, kunnesa
tajusin siirtyä sendmailin sijaan postfix.sendmailiin.
Miten tuon käynnistyksen konffasit siä postfixissä?
master.cf:ään smtp-ruleen lisää -o content-filter=.... ?
Minulla on:

smtp inet n - n - - smtpd -o
content_filter=spamassassin
spamassassin unix - n n - - pipe flags=DROhu
user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -a ${original_recipient} -d ${user}
Post by Ari Saastamoinen
Tuon ei pitäisi aiheuttaa looppia, kun toi paikallisesti ajettava
sendmaili ei jonoon tunkemisessa käytä smtp:tä.
Sendmailin sendmaililla se aiheutti Linux AMI:ssa loopin. Dovecotin
sendmaililla ei aiheuttanut.
Post by Ari Saastamoinen
(Tosin jos sun
sendmail ei olekaan postfixin sendmaili, vaan jonkun muun softan
mukana tuleva, niin sitten se ei osaa kirjoittaa postfixin jonoon
suoraan. Miksi sulla olisi koneella kaksi kahden eri systeemin
sendmail? Mutta jos sulla toi postfixin mukana tullut
sendmail-korvike on nimetty postfix.sendmail:ksi, niin käytä sitä)
Koska siellä on myös sendmailin sendmail oletuksena. Ja postifixin sedmail
ei ole sendmail, vaan postfix.sendmail.
Post by Ari Saastamoinen
Post by Tapio Väättänen
MTA --> Spam filter --> LDA. Noin se on minulla ja noin se on meid'n
molempien linkeissä.
Toi ei ole sama kuin mitä minä ajan takaa...
Sulla siis on (Kun yleistetään, että MTA = Postfix kokonaisuudessaan
jonon käsittelijöineen yms)
Kyllä.
Post by Ari Saastamoinen
MTA -> content_filter -> LDA
Kun tuo pitäisi tehdä niin, että (Huomaa yksi vaihe enemmän)
MTA -> content_filter -> MTA -> LDA
Älä käske sen content_filtterin käynnistämään LDA:ta itse, koska
LDA:lle ei tällöin saada tarvittavia oikeuksia laatikkoosi
kirjoittamiseksi, vaan palauta se postfixille, jolloin siihen
postfixiin konffattu LDA saa sen tallennettua oikeaan paikkaan
tarvittavilla oikeuksilla.
Ok, alla tuot esille kommentin antamastani linkistä, joka voi olla
kokeilemisen arvoinen.
Post by Ari Saastamoinen
(Toki deliverille saadaan riittävästi oikeuksia sanomalla sille chmod
u+s, tai ajamalla sitä spamc:ia roottina, mutta noin ei tulisi tehdä
yhdellekään ohjelmalle, ellei siihen ihan oikeasti ole joku syy. Se
on potentiaalinen tietoturvariski).
Tottakai se on potentiaalinen tietoturvariski, mutta LDA on lokaali palvelu,
joka ei näy ulospäin. Tietty yhdistämällä sen jonkun postfixin defectin
kanssa niillä voi saada aikaan mielenkiintoisia efektejä.
Post by Ari Saastamoinen
Post by Tapio Väättänen
https://stackoverflow.com/questions/24256008/how-to-move-spam-to-spam-folder
Kyllä toteutuksesi seuraa tuota, mutta tuossa on oletus, että
mailboksit on vmail-käyttäjän omistuksessa, joka on usein tilanne, jos
koneella on virtuaalimailbokseja (Siis bokseja, joilla ei
järjestelmässä ole oikeata käyttäjätunnusta). Ja siltikin toi on
huono ohje, kun tuossakin jää /etc/aliases yms käsittelemättä.
Mulla ei ole eikä toistaiseksi tulekaan virtuaalimailboxeja, koska käyttäjiä
on lähinnä minä ja ehkä lapset. Mutta olisi houkuttava ajatus k'ytt''
nimenomaan virtuaali-mailboxeja. Kaikki aikanaan.
Post by Ari Saastamoinen
Ja tuolla kysyjälläkin ilmeisesti oli tilanne noin kun tuo viesti oli
merkitty offtopiciksi kommentilla "Questions on professional server-
or networking-related infrastructure administration are off-topic" ja
tuon kysyjän postitkin oli /var/vmail/ -kansiossa.
Ja kun lukee tuon ohjeen kommentteja, niin sielläkin on todettu, että
"...So I just ended up using -e /usr/sbin/sendmail -oi -f ${sender}
${recipient} instead, and it works a charm..."
"...With your setup the mail takes the route Postfix -> Spamassassin ->
Dovecot LDA -> Dovecot ... Where as mine goes Postfix -> Spamassassin
-> Sendmail -> Dovecot..."
Ok, täytyy katsoa tuota. Jäi huomaamatta, koska olisi pitänyt klikata view
more comments :)

Ja voihan sen tietysti tehdä myös oikein :) Mulle tämä on opiskelua. Nyt se
kuitenkin toimii 10x paremmin kuin aiemmalla
OpenBSD/sendmail/.forward/procmail/spamassassin-virityksellä, joka
todellakin oli käyttäjäkohtainen eikä edes filtteröinyt ilman alistuista
spamassassinin manuaalista opetusta. Mutta sillä mentiin 10 vuotta.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Writing a new OS only for the 386 in 1991 gets you your second 'F' for
this term." -- Prof. Andrew S. Tanenbaum
Ari Saastamoinen
2017-12-05 22:05:28 UTC
Permalink
Post by Tapio Väättänen
Post by Ari Saastamoinen
sitten parin jatkokäsittelyvaiheen jälkeen tunkee sen laatikkoosi. Ja
sinä haluat konffata tuon deliverin sille postfixille LDA:ksi.
Mutta mikä se oikea loitsu sitten on?
https://wiki.dovecot.org/LDA/Postfix Tuolta ihan alusta löytyy valmis
rivi, joka pitää laittaa main.cf:ään

mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$ RECIPIENT"

(Polku- ja tiedostonimet on erilaiset erilainen sun distrossas. Kyllä
ne aiemmin jossain viestissäsi kerroit, mutta en enää muista)

Ja sitten sen contenttifiltterin käsket tunkemaan viestin takaisin
postfixille sillä sendmail.postfix:llä, etkä kerro sille tuosta
dovecotista mitään.
Post by Tapio Väättänen
Koska siellä on myös sendmailin sendmail oletuksena. Ja postifixin sedmail
ei ole sendmail, vaan postfix.sendmail.
Näyttää Ubuntuissakin tuo /usr/sbin/sendmail olevan linkki
sendmail.postfix:iin.
Post by Tapio Väättänen
Ok, alla tuot esille kommentin antamastani linkistä, joka voi olla
kokeilemisen arvoinen.
Älä kokeile siltä linkkaamaltasi sivulta mitään, siellä oli huono ohje.
Post by Tapio Väättänen
Tottakai se on potentiaalinen tietoturvariski, mutta LDA on lokaali palvelu,
joka ei näy ulospäin. Tietty yhdistämällä sen jonkun postfixin defectin
Toki se on lokaali palvelu, mutta MIKSI lisätä riskiä, kun siihen ei
ole ainakaan tässä tapauksessa mitään tarvetta?
Post by Tapio Väättänen
Ja voihan sen tietysti tehdä myös oikein :) Mulle tämä on opiskelua. Nyt se
kuitenkin toimii 10x paremmin kuin aiemmalla
OpenBSD/sendmail/.forward/procmail/spamassassin-virityksellä, joka
todellakin oli käyttäjäkohtainen eikä edes filtteröinyt ilman alistuista
spamassassinin manuaalista opetusta. Mutta sillä mentiin 10 vuotta.
Saahan sendmailillekin laitettua dovecotin LDA:ksi (samoin kuten
siihen useimmissa distroissa oli laitettu procmail), ja ainakin
miltterirajapinnalla saa spamassasinin ajoon. En muista enää, että
saisiko siihenkin tuollaisen post-queue -filtterin, kun on yli
kymmenen vuotta aikaa siitä kun olen viimeksi sendmail.cf:ää
tunkannut. (Niitä halvatun mc-tiedostoja, joista sitten piti
"kääntää" sendmail.cf oli kamalia, en ikinä oppinut ymmärtämään vaikka
yritin. Ja jos joskus oli joku ohje niitä käyttäen, niin piti sitten
sen tuottamasta sendmail.cf:stä lukea, että mitä se ihan oikeasti
teki, ja sitten konffata se tuotantokone kuntoon)
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-05 23:29:52 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Post by Ari Saastamoinen
sitten parin jatkokäsittelyvaiheen jälkeen tunkee sen laatikkoosi. Ja
sinä haluat konffata tuon deliverin sille postfixille LDA:ksi.
Mutta mikä se oikea loitsu sitten on?
https://wiki.dovecot.org/LDA/Postfix Tuolta ihan alusta löytyy valmis
rivi, joka pitää laittaa main.cf:ään
mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$ RECIPIENT"
Ok, eli se siis vaatii myös tuon.
Post by Ari Saastamoinen
(Polku- ja tiedostonimet on erilaiset erilainen sun distrossas. Kyllä
ne aiemmin jossain viestissäsi kerroit, mutta en enää muista)
Ja sitten sen contenttifiltterin käsket tunkemaan viestin takaisin
postfixille sillä sendmail.postfix:llä, etkä kerro sille tuosta
dovecotista mitään.
Post by Tapio Väättänen
Koska siellä on myös sendmailin sendmail oletuksena. Ja postifixin sedmail
ei ole sendmail, vaan postfix.sendmail.
Näyttää Ubuntuissakin tuo /usr/sbin/sendmail olevan linkki
sendmail.postfix:iin.
Minulla on siis AWS Linux AMI joka on käytännössä CentOS 6.

KLuitenkin, tuo on näemmä kondifuguroitavissa:

$ ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 Nov 25 04:20 /usr/sbin/sendmail ->
/etc/alternatives/mta
[***@manica ~]$ ls -l /etc/alternatives/mta
lrwxrwxrwx 1 root root 27 Nov 25 04:20 /etc/alternatives/mta ->
/usr/sbin/sendmail.sendmail
Post by Ari Saastamoinen
Post by Tapio Väättänen
Ok, alla tuot esille kommentin antamastani linkistä, joka voi olla
kokeilemisen arvoinen.
Älä kokeile siltä linkkaamaltasi sivulta mitään, siellä oli huono ohje.
Ehkä se kommenntti oli kuitenkin hyvä.
Post by Ari Saastamoinen
Post by Tapio Väättänen
Tottakai se on potentiaalinen tietoturvariski, mutta LDA on lokaali palvelu,
joka ei näy ulospäin. Tietty yhdistämällä sen jonkun postfixin defectin
Toki se on lokaali palvelu, mutta MIKSI lisätä riskiä, kun siihen ei
ole ainakaan tässä tapauksessa mitään tarvetta?
Hei, ei mennä asioiden edelle. Mulla on vielä harjoittelu kesken.
Post by Ari Saastamoinen
Post by Tapio Väättänen
Ja voihan sen tietysti tehdä myös oikein :) Mulle tämä on opiskelua. Nyt se
kuitenkin toimii 10x paremmin kuin aiemmalla
OpenBSD/sendmail/.forward/procmail/spamassassin-virityksellä, joka
todellakin oli käyttäjäkohtainen eikä edes filtteröinyt ilman alistuista
spamassassinin manuaalista opetusta. Mutta sillä mentiin 10 vuotta.
Saahan sendmailillekin laitettua dovecotin LDA:ksi (samoin kuten
siihen useimmissa distroissa oli laitettu procmail), ja ainakin
miltterirajapinnalla saa spamassasinin ajoon. En muista enää, että
saisiko siihenkin tuollaisen post-queue -filtterin, kun on yli
kymmenen vuotta aikaa siitä kun olen viimeksi sendmail.cf:ää
tunkannut. (Niitä halvatun mc-tiedostoja, joista sitten piti
"kääntää" sendmail.cf oli kamalia, en ikinä oppinut ymmärtämään vaikka
yritin. Ja jos joskus oli joku ohje niitä käyttäen, niin piti sitten
sen tuottamasta sendmail.cf:stä lukea, että mitä se ihan oikeasti
teki, ja sitten konffata se tuotantokone kuntoon)
Minun mielestä 10 vuotta sitten ainakin sendmailin konffis oli aika selkeä.
Huomattavasti selkeämpi kuin joku postfix on tänä päivänä. Dovecot mulla oli
aikaisemminkin käytössä, mutta senkin konffaus oli huomattavsto seleämpää.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Microsoft innovate! Give me a fucking break." -- Larry Ellison
Tapio Väättänen
2017-12-06 02:34:12 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Post by Ari Saastamoinen
sitten parin jatkokäsittelyvaiheen jälkeen tunkee sen laatikkoosi. Ja
sinä haluat konffata tuon deliverin sille postfixille LDA:ksi.
Mutta mikä se oikea loitsu sitten on?
https://wiki.dovecot.org/LDA/Postfix Tuolta ihan alusta löytyy valmis
rivi, joka pitää laittaa main.cf:ään
mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$ RECIPIENT"
(Polku- ja tiedostonimet on erilaiset erilainen sun distrossas. Kyllä
ne aiemmin jossain viestissäsi kerroit, mutta en enää muista)
Ok, otin setuid bitin pois dovecot-lda:ta, pistin mailbox komennon kuten
ehdotit, ja muutin muuten takaisin kuten minulla alunperin oli. Pois lukien,
että sieve konffauksen tietysti pidin ennallaan. Eli nyt on näin:

smtp inet n - n - - smtpd -o
content_filter=spamassassin
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}

Olisiko nyt oikein?

Eli ole setuid bittiä ja spammi menee Junk kansioon.

Tuntuu myös toimivan juuri kuten edelläkin, mutta jos tämä on se oikea tapa,
niin tällä mennään.

Tietty voisin vaihtaa sen siten, että sendmail osoittaisi postfix
sendmailiin, koska se nyt minulla kuitenkin on syteemissä käytössä.

Hirveää luopua originaali sendmailista, joka kuitenkin oli ensimmäinen oikea
laajalle levinnyt avoimen lähdekoodin sovellus.

Joka tapauksessa, kiitos!

Olettaen että toteutus on nyt mielestäsi oikea.

Jo ei, niin jatketaan harjoittelua.
--
sip:***@tav.iki.fi http://tav.iki.fi

"The whole problem with the world is that fools and fanatics are always so
certain of themselves, but wiser people so full of doubts." -- Bertrand Russell
Ari Saastamoinen
2017-12-06 12:53:43 UTC
Permalink
Post by Tapio Väättänen
Tuntuu myös toimivan juuri kuten edelläkin, mutta jos tämä on se oikea tapa,
niin tällä mennään.
Paitsi, että edellisessä konffauksessasi sulla ei kuulemma toiminut
esim. /etc/aliases, nyt uskoakseni toimii.
Post by Tapio Väättänen
Hirveää luopua originaali sendmailista, joka kuitenkin oli ensimmäinen oikea
laajalle levinnyt avoimen lähdekoodin sovellus.
Se oli se ns. referenssitoteutus. Minä aikoinani vaihdoin postfixiin
sen takia kun (ainakin silloisen version) sendmailin jononkäsittely
imi pahasti. Mitä enemmän jonossa oli posteja, niin sen hitaammin se
posteja jonosta käsitteli, ja kun siinä vaiheessakin alkoi jo
ns. graylistat yleistymään, niin jonoon kertyi kamaa. Ja sitten kävi
niinkin, että vastaanottajan graylista oli jo kerinnyt unohtamaan
viestin ennenkuin sendmaili sai sitä yritettyä uudestaan, joten se
graylistattiin taas. (Ja sitten kun whinetin vastaanottajalle, niin
ne totes, että "mun vastauksessani sanottiin, että yritä 10 min päästä
uudestaan" - paitsi, että SMTP:ssä ei ole mitään keinoa kertoa, että
koska viesti tulisi lähettää uudestaan, ja RFC:ssäkin on vain
suosituksia noista uudelleenlähetysväleistä)

(Ylipäätään graylista on asia josta ei tänä päivänä ole mitään hyötyä,
kun lähes kaikki spammerit lähettävät roskansa muiden tahojen
postipalvelimien kautta, ja ne osaavat ihan oikeaoppisesti jonottaa.
Joten ainoa vaikutus on vain postinkulun hidastuminen)
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-06 16:06:24 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Tuntuu myös toimivan juuri kuten edelläkin, mutta jos tämä on se oikea tapa,
niin tällä mennään.
Paitsi, että edellisessä konffauksessasi sulla ei kuulemma toiminut
esim. /etc/aliases, nyt uskoakseni toimii.
Toimi ne sen jälkeen kun laitoin main.cf:ään virtual_alias_domains.
Toiminnallisuus on sama, mutta uskon kyllä, että totetus on nyt oikea.

Nyt lähinnä odotan että SpamAssassini ei ihan hirveästi täytyisi opettaa.
Tuntuu ettei se ihan kauhean täydellinen ole suomenkielisen spammin
suhteen.

Minulla meni aiemmin iki-maili gmailiin, ja nyt omalle koneelle, ja täytyy
sanoa, että kyllä Googlen spammi-filtteri oli toimivampi ilman mitään
opetteluja.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Jos Microsoftiin ei voisi luottaa, kehen sitten voisi?"
-- Mikko Hyppönen, F-Secure, tivi.fi 6.1.2011
Ari Saastamoinen
2017-12-06 17:24:14 UTC
Permalink
Post by Tapio Väättänen
Minulla meni aiemmin iki-maili gmailiin, ja nyt omalle koneelle, ja täytyy
sanoa, että kyllä Googlen spammi-filtteri oli toimivampi ilman mitään
opetteluja.
Paitsi, että Googlen spammisuodatus tekee niin paljon
false-positiivisia, että monet tahot ovat sitä mieltä, että sitä ei
voi käyttää mihinkään bisneskriittiseen viestintään, kun ei ole mitään
takeita siitä, että viestit tulee perille.

Ja ikistä ei kannata ohjata maileja gmailiin, sillä jos postin
lähettäjän domainissa on SPF, niin posti ei ikinä tule perille.

Toi koko SPF tosin on kyllä rikki jo ihan suunnitteluperusteiltaan,
kun se antaa postin lähettäjän päättää postin reitityksestä, mutta kun
myös vastaanottajan systeemit vaikuttaa reittiin, niin toi ei voi
toimia. Ei tuosta failanneesta SPF:stä ainakaan voi viestiä hylätä,
mutta ehkä oikeasta SPF:stä voi spamassassinille kuitenkin hieman
miinusta antaa (Siis spamassassinille hyvä). Ei kuitenkaan paljoa,
kun suurin osa spammista lähetetään murretuista julkaisujärjestelmistä
yms.

Telialla on just hyvä SPF, näyttää tiukalta kun on -all (Niin sitä ei
ton takia hyljeksitä), mutta kuitenkin sallii kaiken :)

"v=spf1 ip4:0.0.0.0/1 ip4:128.0.0.0/2 ip4:192.0.0.0/3 ip6:2000::0/3 -all"
--
Arzka oh3mqu+***@hyper.fi - En halua follareita mailina
1. Valitse sopiva paikka, ei ihmisten tai rakennusten lahella, jossa
paukku voi aiheuttaa hairiota. - Iso-Kiinalaisen kayttoohje
Tapio Väättänen
2017-12-09 01:02:43 UTC
Permalink
Post by Ari Saastamoinen
Post by Tapio Väättänen
Minulla meni aiemmin iki-maili gmailiin, ja nyt omalle koneelle, ja täytyy
sanoa, että kyllä Googlen spammi-filtteri oli toimivampi ilman mitään
opetteluja.
Paitsi, että Googlen spammisuodatus tekee niin paljon
false-positiivisia, että monet tahot ovat sitä mieltä, että sitä ei
voi käyttää mihinkään bisneskriittiseen viestintään, kun ei ole mitään
takeita siitä, että viestit tulee perille.
Pakko tunnustaa, että ei ole kyllä minulle yksityishenkilönä tullut
ainuttakaan false-positiivia. Jotkut markkinointikirjeet on kyllä mennyt
spammiin, vaikka ei tavallaan olisi spammia ollutkaan.
Post by Ari Saastamoinen
Ja ikistä ei kannata ohjata maileja gmailiin, sillä jos postin
lähettäjän domainissa on SPF, niin posti ei ikinä tule perille.
Eikä sekään ole oikein haitannut. Silloin kun pidin omaa mailiserveriä
kellarissa, niin veikkaan että maileja jäi saapumatta paljon useammin, ihan
vaan sähkökatkosten vuoksi tai mistä lie nyt milloinkakin.

No nythän se on tietty Amazonilla, että jos ne siellöä sössii jotain, ja
mulla kestää viikon saada homma kuntoon, niin sama homma. Toki mä voin
laittaa sekundääriserverin sinne kotiin, mikä onkin ajatus.

MUlle tämä on tällaista harjoittelua. Mailiserveri ei nyt sinällään liity,
eikä ole koskaan liittynytkään minun työhän. AWS kyllä liittyy, ja se onkin
yksi syy miksi hommaan lähdin. Kyllähän sitä eri tavalla oppii, kun itse
tekee, sen sijaan että vaan lukisi tai kuuntelisi luentoa.

Mä olen kyllä töissä vääntänyt jotain S3-puketteja ja EMR-klustereita
kylästymiseen asti. Samoin ECC:tä on saanut vääntää loputtomiin. Mutta toi
simpplei EC2-instanssi avaa silmiä ihan eri tavalla kuin joku hyvin rajattu
softa-projekti.
--
sip:***@tav.iki.fi http://tav.iki.fi

The Internet is *full* - go away! -- Gert Doering
Nospam
2017-12-09 09:28:02 UTC
Permalink
Post by Tapio Väättänen
Kokeilenpa kysyä apua täältä ihan ensiksi.
Olen asentanut AWS Linux AMI:iin mailiserverin otsikonmukaisella
yhdistelmällä.
Kaikki muu toimii, paitsi se, että spammit menisi suoraan Junk-kansioon.
Homman tulisi toimia kun laittaa Dovecotiin Sieve-plugarin, ja kertoo sille,
että jos X-Spam: NO niin ei tee mitään, mutta muutoin siirtää mailin Junk
kansioon.
Tämä ehkä toimisikin, mutta joka kerta kun kerron Postfixilla käyttää
Dovecottia LDA:na, niin homma tyssää siihen.
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}
#spamassassin unix - n n - - pipe
user=spamfilter argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -m ${recipient}
Saan /var/log/maillog:iin
dsn=4.3.0, status=deferred (temporary failure)
Ja /var/log/dovecot-lda-errors.log:iin
Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.
Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.
Onko kenelläkään ajatusta millä tuon saisi toimimaan?
Alustana on tosiaan siis AWS Linux AMI, eli käytännössä CentOS 6.x
Jotenkin sain tuon toimimaan (postfix-spamassassin-dovecot-sieve).
Dovecotin faileja sai aika lailla puukottaa. Jotenkin tutui, että sen
käyttämä lmtp protokolla ei riittänyt sievelle, vaan piti enabloida lda
protokola myös jotta sain sen toimimaan.

BR, Nospam
Nospam
2017-12-09 09:47:17 UTC
Permalink
Post by Nospam
Jotenkin sain tuon toimimaan (postfix-spamassassin-dovecot-sieve).
Dovecotin faileja sai aika lailla puukottaa. Jotenkin tutui, että sen
käyttämä lmtp protokolla ei riittänyt sievelle, vaan piti enabloida lda
protokola myös jotta sain sen toimimaan.
Eipäs ollutkaan noin vaan lda conffissa piti enabloida se sieve plugin
vain sen takia, että sain sieven toimimaan myös getmail:in kanssa.

15-lda.conf

protocol lda {
mail_plugins = $mail_plugins sieve
}

BR, Nospam
Tapio Väättänen
2017-12-14 16:23:22 UTC
Permalink
Post by Nospam
Post by Tapio Väättänen
Kokeilenpa kysyä apua täältä ihan ensiksi.
Olen asentanut AWS Linux AMI:iin mailiserverin otsikonmukaisella
yhdistelmällä.
Kaikki muu toimii, paitsi se, että spammit menisi suoraan Junk-kansioon.
Homman tulisi toimia kun laittaa Dovecotiin Sieve-plugarin, ja kertoo sille,
että jos X-Spam: NO niin ei tee mitään, mutta muutoin siirtää mailin Junk
kansioon.
Tämä ehkä toimisikin, mutta joka kerta kun kerron Postfixilla käyttää
Dovecottia LDA:na, niin homma tyssää siihen.
spamassassin unix - n n - - pipe user=spamfilter
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail.postfix -oi -f ${sender}
${recipient}
#spamassassin unix - n n - - pipe
user=spamfilter argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f
${sender} -m ${recipient}
Saan /var/log/maillog:iin
dsn=4.3.0, status=deferred (temporary failure)
Ja /var/log/dovecot-lda-errors.log:iin
Dec 03 14:41:22 lda(spamfilter): Error: user spamfilter: Initialization
failed: Namespace '': Home directory not set for user. Can't expand ~/ for
mail root dir in: ~/mail:INBOX=/var/mail/spamfilter
Dec 03 14:41:22 lda(spamfilter): Fatal: Invalid user settings. Refer to
server log for more information.
Viikon päivät olen tätä nyt googlaillut, ja kuitenkin mailit ja SpamAssassin
toimii, mutta ilmeisesti en van osaa konffata tuota Sieveä.
Onko kenelläkään ajatusta millä tuon saisi toimimaan?
Alustana on tosiaan siis AWS Linux AMI, eli käytännössä CentOS 6.x
Jotenkin sain tuon toimimaan (postfix-spamassassin-dovecot-sieve).
Dovecotin faileja sai aika lailla puukottaa. Jotenkin tutui, että sen
käyttämä lmtp protokolla ei riittänyt sievelle, vaan piti enabloida lda
protokola myös jotta sain sen toimimaan.
mailbox_command oli avainsana. Yllättävän vaikea minusta tuo oli saada
toimimaan. Kuitenkin nykypäivänä aika oleellinen toiminto, joten luulisi
löytyvän ihan suoraan postfixista, ilman dovecotia.

Mutta onhan se nyt aika kiva, kun tuota SpamAssassinia on hetken
kouluttanut, niin ei ihan hirveästi tule huteja enää parin viikon jälkeen.

Pistin tuon palvelimen AWS:iin aluksi ihan vaan www-palvelimeksi. Sehän
kilahti muistinpuutteeseen jo parin päivän päästä. Kun jaksoin hieman
viritellä Apachen parametreja, niin nyt jo toimii.

Slrn:ää en saa kyllä käännettyä AWS Linux AMI:lle. Ehkä se on pieni puute.
--
sip:***@tav.iki.fi http://tav.iki.fi

"Jos Microsoftiin ei voisi luottaa, kehen sitten voisi?"
-- Mikko Hyppönen, F-Secure, tivi.fi 6.1.2011
Loading...