Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-12-05 17:22:11

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Postfix + spamassassin + whitelist

Witam używam postfixa, do walki ze spamem poza standardowym sitem jak poprawność konfiguracji serwera (HELO itp.), SPF itp. itd. mam własny skrypt w perlu (przed puszczeniem na RBL) gdzie każdy user w panelu klienta może wpisać domeny lub adresy IP które będą odrzucane i tak się dzieje, reguła ta jest przed RBL (praktycznie na początku: blacklist_spam):

Kod:

smtpd_recipient_restrictions =
  reject_non_fqdn_recipient,
  reject_unauth_pipelining,
  blacklist_spam,
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination,
  check_helo_access hash:/etc/postfix/helo_access,
  reject_unknown_helo_hostname,
  reject_non_fqdn_hostname,
  reject_non_fqdn_helo_hostname,
  reject_unverified_recipient,
  check_policy_service unix:private/policy-spf,
  check_policy_service inet:127.0.0.1:10023,
  check_client_access hash:/etc/postfix/rbl_whitelist,
  reject_rbl_client bl.spamcop.net,
  reject_rbl_client dnsbl.sorbs.net,
  permit

I działa to bardzo fajnie, ostatnio doinstalowałem spamassassina i dopisałem do skryptu whiteliste.
Działanie skryptu jest proste, sprawdza czy w bazie danych dla danego usera (konta pocztowego) widnieją wpisy, które zgadzały by się z domeną albo adresem IP i jeśli tak to zwraca kod 550 a jeśli jest czysto to akcja DUNNO (sprawdzając resztę).
Whiteliste dla adresów nadawcy zrobiłem podobnie i tu jeśli adres nadawcy jest na białej liście to zwracam OK czyli powinno zaprzestać sprawdzania kolejnych reguł, ale ... no właśnie idzie to jeszcze na spamassasina, który to markuje i pomimo tego może oznaczyć maila jako SPAM.

Jest jakaś opcja by ominąć spamassassina?

Ostatnio edytowany przez life (2015-12-05 19:31:06)

Offline

 

#2  2015-12-05 17:32:01

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

Zawsze idzie przez całego SA, whitelista oznacza po prostu te -10, -100 czy -1000 punktów, zależy, jak sobie ustawisz.

Chyba, żeby whitelistę robić na poziomie Postfixa, a do SA puszczać tylko to, co nie jest dopasowane do whitelisty.
Ale w tej chwili nie mam pomysłu, jak to zakodzić w oparciu o bazę SQL, chociaż to na 99% wykonalne.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2015-12-05 19:28:01

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Postfix + spamassassin + whitelist

W tej chwili tak mam, że czarna i biała lista jest na "poziomie" postfixa (kolejność reguł w main.cf - kod w pierwszym poście).
Zauważyłem że to i tak potem wszystko idzie przez SA, i moja whitelista nie ma nic wspólnego z SA, tu właśnie jest ten problem.
A punktacji np. -100 nie mogę dać przed trafieniem do SA, no chyba że przeszło by coś takiego (ale teraz teoretyzuje), że ustawił bym jakiś tag np. w nagłówku (nie wiem czy z poziomu postfixa mogę ingerować nagłówki wiadomości. Potem w regułach SA wyłapywać ten tag i przyznawać za niego np. -100 punktów.

Tylko właśnie będę musiał sprawdzić czy jest taka opcja. Chyba, że ktoś ma jakiś inny pomysł.

Offline

 

#4  2015-12-05 19:37:31

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

Moim zdaniem prochu w sztywnej konfiguracji nie wymyślisz.

Jeśli moc za mała, to może mocniejszy sprzęt potrzebny?

Ja zazwyczaj stawiam preferencje SA w Mysql, do tego Roundcube i wtyczka do konfiguracji opcji SA w Mysql (SAuserprefs), i każdy pacjent sam sobie ustala punktacje wtyczek i whitelisty.
Dzięki temu admin ma mniej roboty ;)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2015-12-05 20:38:49

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Postfix + spamassassin + whitelist

W tym swoim skrypcie do sprawdzania (white|black)listy dodaj po prostu nagłówek  A potem do SA dodaj regułkę która doda +-X punktów jeśli nagłówek istnieje
Mail to nic innego jak zwykły tekst - możesz na nim spokojnie operować. Sam postfix też może dodać nagłówki do maila.
[url=http://serverfault.com/questions/302676/postfix-add-custom-header-based-on-mysql-result]sznurek[/url]


LRU: #472938
[b]napisz do mnie:[/b] ola@mojmail.eu
[url=http://valhalla.org.pl]Hołmpejdż[/url] | [url=http://valhalla.org.pl/foto]Galerie[/url] | [url=http://valhalla.org.pl/tech]"Twórczość"[/url] || [url=http://img.munn.in]Free Image Hosting[/url]

Offline

 

#6  2015-12-05 23:15:11

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Postfix + spamassassin + whitelist

Tak też zrobiłem, nie wiedziałem że można w tak prosty sposób dodać nagłówek, w skrypcie perla dodaję swój znacznik (nagłówek) poprzez PREPEND

do SA dodałem regułę, która sprawdza czy w nagłówku jest owy znacznik i jeśli tak to punktacja -100 :)

proste i działa jak trzeba DZIĘKI!

Ostatnio edytowany przez life (2015-12-05 23:15:59)

Offline

 

#7  2015-12-06 04:53:57

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

[quote=life]Tak też zrobiłem, nie wiedziałem że można w tak prosty sposób dodać nagłówek, w skrypcie perla dodaję swój znacznik (nagłówek) poprzez PREPEND

do SA dodałem regułę, która sprawdza czy w nagłówku jest owy znacznik i jeśli tak to punktacja -100 :)

proste i działa jak trzeba DZIĘKI![/quote]
Tylko że wtedy i tak leci przez całego SA, chociaż decyzją Postfixa ma te -100 na dzień dobry.

Technicznie nie ma żadnej różnicy wobec sytuacji, gdyby whitelisty per-pacjent siedziały w bazie Spamassasssina w Mysql.

Sznurki:
https://wiki.apache.org/spamassassin/UsingSQL
http://notes.sagredo.eu/node/77

i klikajło do preferencji:
https://plugins.roundcube.net/packages/johndoh/sauserprefs

Pozdro
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2015-12-06 11:28:31

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Postfix + spamassassin + whitelist

Tak tylko że wówczas jak robię to na poziomie postfixa to omijam kolejne reguły, a na końcu jest sprawdzanie RBL-i, miałem taką sytuację że jeden z dostawców klienta był na RBL-u i wówczas sama whitelista w SA nic nie pomoże bo mail "odbije" się od serwera bo nadawca jest na RBL-u.

W przypadku jak robię to z poziomu postfixa, to serwer może przepuścić nawet największy "szajs" na życzenie klienta. Dlatego też adresy w whitelist mają, krótki termin żywotności (ustawiane z poziomu klienta, 1, 2 lub 3 dni) po tym czasie musi ponownie je ustawić albo do tego czasu admin tamtego serwera zdejmie go z RBL-i.

Whitelista w samym SA by mi tego nie zapewniła.

Ostatnio edytowany przez life (2015-12-06 11:30:35)

Offline

 

#9  2015-12-06 11:34:15

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

RBLi bym nie przeceniał, SPF, DKIM i greylisting dają razem lepsze rezultaty.

Poza tym, jak odpaliłeś już SA, to w nim masz możliwość stosowania wszystkich list RBL na świecie z odpowiednią punktacją (nawet dla każdej listy RBL ustawić punktację z osobna).

Ostatnio edytowany przez Jacekalex (2015-12-06 11:34:51)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2015-12-06 12:33:17

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Postfix + spamassassin + whitelist

@jacekalex: spf za przeproszenie shit ci daje jeśli każda domena na końcu ma ?all albo ~all.
o kwiatkach w stylu home.pl czy yahoo.co.uk to już nie wspomnę...

Ostatnio edytowany przez ethanak (2015-12-06 12:41:29)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#11  2015-12-06 12:50:54

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

Yahoo używa DKIM, i ten ładnie działa (odbijają maile bez podpisów lub z wadliwymi), ale trzeba troszkę zabawy z konfiguracją.
Maile z Yahoo, Gmaila i innych większych serwerów możesz odbijać, jeśli nie mają podpisu DKIM, albo mają wadliwy, jest na to opcja konfiguracyjna w OpenDKIM.
Zobacz, do czego służą opcje:

Kod:

On-BadSignature 
On-NoSignature
On-KeyNotFound
PeerList

i inne:  http://www.opendkim.org/opendkim.conf.5.html

SPF też można ustawić, żeby odbijał softfaile, i liczba problematycznych domen maleje znacząco, chociaż nie jest zerowa.
Na home zrobiłem małą zmianę w [s]skrypcie do sprawdzania SPF[/s],
i też odbija co trzeba.
Dokładnie:
w pliku: [b]/usr/lib64/perl5/vendor_perl/5.20.2/Mail/SPF/Result.pm[/b]

Kod:

package Mail::SPF::Result::NeutralByDefault;
our @ISA = 'Mail::SPF::Result::Fail';
use constant name => 'neutral-by-default';
    # This is a special-case of the Neutral result that is thrown as a default
    # when "falling off" the end of the record.  See Mail::SPF::Record::eval().

Reklamacji na razie nie było.

Rezultat:

Kod:

swaks -f test@home.pl -t pacjent@domena.tld -s box -p 25 
=== Trying box:25...
=== Connected to box.
<-  220 domena.tld ESMTP Exim4
 -> EHLO localhost
<-  250-mail.domena.tld
<-  250-PIPELINING
<-  250-SIZE 10240000
<-  250-VRFY
<-  250-ETRN
<-  250-STARTTLS
<-  250-ENHANCEDSTATUSCODES
<-  250-8BITMIME
<-  250-DSN
<-  250 SMTPUTF8
 -> MAIL FROM:<test@home.pl>
<-  250 2.1.0 Ok
 -> RCPT TO:<pacjent@domena.tld>
<** 450 4.7.1 <pacjent@domena.tld>: Recipient address rejected: Please see http://www.openspf.net/Why?s=mfrom;id=test%40home.pl;ip=127.0.0.1;r=localhost
 -> QUIT
<-  221 2.0.0 Bye
=== Connection closed with remote host.

Greylisting też jest dosyć skuteczny.

I nie każda domena ma ~all albo ?all.

Dlatego napisałem:

SPF, DKIM i greylisting [b]dają razem lepsze rezultaty[/b][/quote]
Reasumując, SPF sam ma spore wady, ale razem z DKIM już jest nie najgorszy, a z greylistingiem to już całkiem ładna i dosyć skuteczna furtka.

W SA też można dopisać regułę, która będzie sprawdzała nagłówki dodane przez DKIM i SPF, i podejmowała dowolne akcje, z resztą sam SA też obrabia i SPF i DKIM z praktycznie dowolną punktacją dla każdego typu rezultatu testu.

Pozdro

Ostatnio edytowany przez Jacekalex (2015-12-06 13:35:39)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#12  2015-12-06 13:37:30

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Postfix + spamassassin + whitelist

wszystko fajnie... do home też zrobiłem swój skrypt, oprócz tego ? i ~ traktuję jako fail.
niestety - używam exima i tam sprawdzanie dkim jest nieco porypane. chciałbym zrobić tak, aby jeśli dkim się zgadza nie robić sprawdzania spf - ale nie mam pomysłu na realizację.
poza tym podaj mi przykładowe domeny (np. w home, nazwie czy innych niebieskich) które mają -all.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#13  2015-12-06 13:48:49

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

poza tym podaj mi przykładowe domeny (np. w home, nazwie czy innych niebieskich) które mają -all.[/quote]

Kod:

dig -t txt onet.pl

może być?

Kod:

dig -t txt 02.pl
dig -t txt interia.pl
dig -t txt mbank.pl
dig -t txt pko.pl
dig -t txt pap.pl
dig -t txt prezydent.pl
dig -t txt wp.p

Jak na kilka minut, to całkiem nieźle, ale fakt, ingbank miał ~all.
na wszystkie sprawdzone ani jedna nie była tak zjebana, jak home.pl.

A poza tym Exim, o już Twoja małpa i Twój cyrk, w Postfixie śmiga prawidłowo.
Na najcięższe przypadki i tak jest punktacja SA.

Jak z resztą w jakiejś niedużej firmie jest zjebany SPF, to można im posłać maila do postmastera.
W home.pl nie dość że durnie, to jeszcze mają muchy w nosie.

Ostatnio edytowany przez Jacekalex (2015-12-06 13:53:42)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2015-12-06 13:59:58

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Postfix + spamassassin + whitelist

to wcale nie muszą być małe firmy - ostatnio mi się zdarzył przypadek z linuxpl i byłem mile zaskoczony reakcją admina.
co do exima - nie mam wyboru (directadmin ma swoje fochy), poza tym tego czorta jako tako znam i potrafię coś tam w konfigu dopisać. dkim działa ładnie - problem mam tylko z dkim or spf (na razie mam dkim and spf i za dużo mi odrzuca).


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#15  2015-12-06 14:07:08

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

DKIM or SPF da się wyrzeźbić tylko w punktacji SA.

Czyli po prostu tak zaplanować serwerek, żeby starczyło mocy dla SA do sprawdzenia każdego maila.

Chyba, żeby np w Qmailu pobawić się kodem i naskrobać łatkę... :P

Ostatnio edytowany przez Jacekalex (2015-12-06 14:07:29)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#16  2015-12-06 14:13:29

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Postfix + spamassassin + whitelist

tyle że ja już większego serwerka nie uruchomię (i tak mam powyżej tego co w standardzie daje atman).
gdybym chciał wszystko co lezie przepuszczać przez sa to bym z loada 60 chyba nie zszedł... i chciałbym, aby większość odrzucania była na poziomie ip i nagłówków...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#17  2015-12-06 14:48:25

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

No to źródełka Qmaila, edytor, klawiatura, i jedziesz...... :D
Podobnie, jak hakerzy w Gmailu, którzy już Qmaila w Oauth2 dozbroili,
i mocno ograniczyli spam z podwójnym nagłówkiem MAILFROM,
czyli chyba najgorszą wadę protokołu SMTP.

Qmail jest lekki jak piórko, łatka SPF daje największe możliwości konfiguracyjne przez 6 trybów filtrowania, do akceptowania wyłącznie GOOD, i odwalania domen, które nie mają rekordu SPF.
Tylko jak ją ostatnio widziałem, to nie wiedziała, co to takiego ten IPv6.
Ale to było ze dwa latka temu, więc być może już jakaś dobra duszyczka ją do IPv6 przekonała, podobnie jak całego Netqmaila.

EDIT:
Już wie,co to IPv6:
http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/qmail-spf_ipv6-mapped-ipv4-fix.patch

Ostatnio edytowany przez Jacekalex (2015-12-06 14:59:23)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#18  2015-12-06 14:58:32

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Postfix + spamassassin + whitelist

kurde... ja już mam swoje lata, łażenie po źródłach i robienie łatek zostawiam takim axelojackom i innym żwawym czterdziestolatkom:)

btw. po pierwsze nie nam szans zamienienia exima na cokolwiek innego, a jeśli chodzi o qmaila to wybacz, ale wolę programy które nie są jednym wielkim bugiem z założenia (exim może i nie jest najlepszy ale do qmaila ma się jak LaTeX do Worda)

a p drugie to sam wiesz;)

Ostatnio edytowany przez ethanak (2015-12-06 15:02:05)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#19  2015-12-06 15:04:55

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Postfix + spamassassin + whitelist

Dziwne, niby jeden wielki BUG, a ja miałem przez 5 latek serwerek na Qmailu, i przeżył tylko 2 awarie dysków, z Qmailem nigdy nic się nie działo złego.


Qmail ma tą zaletę nad Postfixem czy Eximem, że pomimo łatek ma dosyć krótki,prosty i logiczny kod, nad którym nawet taki lama jak ja, potrafi zapanować.
Przy okazji w Qmailu konstrukcja powoduje, ze DKIM sprawdza tylko to,
co przelazło przez SPF, czyli niedaleko od Twojego dążenia  DKIM or SPF.
Do SA może tam trafiać tylko to, co przelazło przez Greylisting,  RBL, SPF i DKIM, dlatego jest wyjątkowo lekki.

I przy okazji w ogóle nie potrzebuje praw roota, jeśli go sensownie skonfigurujesz.
To miła różnica w porównaniu z Postfixem.

Ostatnio edytowany przez Jacekalex (2015-12-06 15:09:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.010 seconds, 10 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00121 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.16.203.27' WHERE u.id=1
0.00069 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.16.203.27', 1732427210)
0.00053 SELECT * FROM punbb_online WHERE logged<1732426910
0.00058 DELETE FROM punbb_online WHERE ident='3.136.22.184'
0.00033 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27969 AND t.moved_to IS NULL
0.00028 SELECT search_for, replace_with FROM punbb_censoring
0.00193 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27969 ORDER BY p.id LIMIT 0,25
0.00081 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27969
Total query time: 0.00649 s