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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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):
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
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.
Offline
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
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 ;)
Offline
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]
Offline
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
[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
;-)
Offline
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
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)
Offline
@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)
Offline
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:
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]
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:
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.
PozdroOstatnio 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
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.
Offline
poza tym podaj mi przykładowe domeny (np. w home, nazwie czy innych niebieskich) które mają -all.[/quote]
Kod:
dig -t txt onet.plmoż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.pJak 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
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).
Offline
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)
Offline
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...
Offline
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)
Offline
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)
Offline
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)
Offline
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 |