Fórum Root.cz
Hlavní témata => Server => Téma založeno: tuxmartin 29. 11. 2020, 20:52:37
-
Snazim se zprovoznit blokovani IP adres a domen v postfixu pomoci vlastniho DNSBL. V main.cf mam:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
reject_unlisted_recipient
check_recipient_access hash:/etc/postfix/recipient
reject_unknown_reverse_client_hostname
reject_rbl_client dnsbl.mydomain.tld
reject_rhsbl_helo dnsbl.mydomain.tld
reject_rhsbl_sender dnsbl.mydomain.tld
reject_rhsbl_reverse_client dnsbl.mydomain.tld
check_policy_service inet:127.0.0.1:10040
check_policy_service inet:127.0.0.1:60000
Vychazel jsem z https://www.linuxbabe.com/mail-server/block-email-spam-postfix :
- rhs stands for right hand side, i.e, the domain name.
- reject_rhsbl_helo makes Postfix reject email when the client HELO or EHLO hostname is blacklisted.
- reject_rhsbl_reverse_client: reject the email when the unverified reverse client hostname is blacklisted. Postfix will fetch the client hostname from PTR record. If the hostname is blacklisted, reject the email.
- reject_rhsbl_sender makes Postfix reject email when the MAIL FROM domain is blacklisted.
- reject_rbl_client: This is an IP-based blacklist. When the client IP address is backlisted, reject the email.
Mym cilem je zablokovat emaily z IP 10.20.30.40 a domeny example.net.
Takze chapu-li dobre, mel bych pouzit reject_rbl_client a reject_rhsbl_sender.
Do DNS jsem si pridal:
martin@X1 ~ $ dig +short 40.30.20.10.dnsbl.mydomain.tld A
127.0.0.2
martin@X1 ~ $ dig +short 40.30.20.10.dnsbl.mydomain.tld TXT
"Protoze posilas spam."
martin@X1 ~ $ dig +short example.net.dnsbl.mydomain.tld A
127.0.0.2
martin@X1 ~ $ dig +short example.net.dnsbl.mydomain.tld TXT
"Protoze posilas spam."
martin@X1 ~ $
martin@X1 ~ $ dig +short net.example.dnsbl.mydomain.tld A
127.0.0.2
martin@X1 ~ $ dig +short net.example.dnsbl.mydomain.tld TXT
"Protoze posilas spam."
martin@X1 ~ $
Blokovani podle IP funguje skvele, ale podle domeny ne. Na domene example.net mam google apps, ale v mail from je sparavne @example.net.
Co jsem hledal, IP se zapisuje obracene, ale domena normalne. Zkusil jsem i domenu zapasat obracene, ale nefunguje to.
Tusi nekdo, co delam spatne?
-
Zkus http://www.postfix.org/postconf.5.html#debug_peer_list a podivej se, co to presne dela.
-
Zkus http://www.postfix.org/postconf.5.html#debug_peer_list a podivej se, co to presne dela.
Prave jsem to zkousel a uz jsem aspon prisel na problem
martin@X1 ~ $ dig +short example.net.dnsbl.mydomain.tld A
127.0.0.2
martin@X1 ~ $ dig +short example.net.dnsbl.mydomain.tld TXT
"Protoze posilas spam."
martin@X1 ~ $
martin@X1 ~ $ dig +short net.example.dnsbl.mydomain.tld A
127.0.0.2
martin@X1 ~ $ dig +short net.example.dnsbl.mydomain.tld TXT
"Protoze posilas spam."
martin@X1 ~ $
Kdyz posilam ze serveru, ktery ma DNS A+PTR "example.net", tak to DNSBL odchyti.
Ale kdyz jsem si zkusil takhle zablokovat domenu, pro kterou si platim Google Apps, tak muzu bez problemu posilat a DNSBL to vubec neodchyti. Jak je to mozne? Vzdyt "reject_rhsbl_sender" by mel resit From hlavicku.
-
MAIL FROM a From: hlavička sú dve odlišné a nezávislé veci. Adresa v nich obsiahnutá nemusí byť vždy totožná.
Pre lepšie pochopenie, predstav si to ako klasický list posielaný v obálke poštou - adresa odosielatelia uvedená na obálke a adresa odosielateľa uvedená na vloženom liste tiež nemusia sedieť. Vo väčšine najbežnejších prípadov budú totožné, ale v niektorých scenároch to tak byť nemusí (napríklad advokát posiela list od svojho klienta, na obálke je ako odosielateľ napísaný advokát ale na liste bude uvedený/podpísaný klient).
Čiže v tvojom prípade bude asi v MAIL FROM uvedená adresa google a iba vo From: je adresa tvojej domény.
-
Chapu, ale to je na strane gmailu a neovlivnim to :-(
Je nejaka jina moznost, jak domenu zablokovat?
-
Tak podle https://wiki.centos.org/HowTos/postfix_restrictions patri MAIL FROM do smtp_sender_restrictions tak jsem to pridal. Nyni mam:
127.0.0.1:10040_time_limit = 3600
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
reject_unlisted_recipient
check_recipient_access hash:/etc/postfix/recipient
reject_unknown_reverse_client_hostname
reject_rbl_client zen.spamhaus.org
reject_rbl_client b.barracudacentral.org
reject_rbl_client dnsbl.mydomain.tld
reject_rhsbl_helo dnsbl.mydomain.tld
reject_rhsbl_sender dnsbl.mydomain.tld
reject_rhsbl_reverse_client dnsbl.mydomain.tld
check_policy_service inet:127.0.0.1:10040
check_policy_service inet:127.0.0.1:60000
smtpd_sender_restrictions =
permit_sasl_authenticated
reject_non_fqdn_sender
reject_unknown_sender_domain
reject_unauth_pipelining
reject_unlisted_sender
check_sender_access hash:/etc/postfix/sender_access
reject_rhsbl_sender dnsbl.mydomain.tld
ale porad to nejde :-(
-
To je jedno, kde to dáš, stále platí, že to kontroluje adresu na obálke (MAIL FROM) a nie na liste (From:). Pomocou reject_rhsbl_sender sa to skontrolovať nedá.
Na kontrolu obsahu From: hlavičky by ale malo byť možné napísať vhodný regex pomocou tzv. header_checks, viď.
http://www.postfix.org/header_checks.5.html
To je jedniná cesta čo ma použitím Postfixu napadá. Ale tam je problém, že musíš napísať pravidlá pre jednotlivé blokované domény, nemôžeš na to používať DNS blocklist. Ak by si chcel DNS blocklist, nevyhnutné je asi použiť nejaký externý checker (ak ti niekto neporadí niečo lepšie).
-
Tak jsem na to prisel. Gmail je ok.
Problem je s funkci "Posílání e-mailů z jiné adresy nebo aliasu" https://support.google.com/mail/answer/22370?hl=cs
kdyz si do sve neco@gmail.com schranky pridam pravo posilat z adresy moje@domena.tld - to pak blacklist neodchyti.