Portál AbcLinuxu, 8. května 2025 02:41
$enable_dkim_verification = 1; $enable_dkim_signing = 1; dkim_key("domena.cz", "dkim", "/var/lib/dkim/domena.cz.pem"); @dkim_signature_options_bysender_maps = ( { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } ); @local_domains_maps = ['.'];Nalezl jsem na internetu řešení a to byla úprava definice lokální sítě na:
@mynetworks = qw( 0/0 );Od té doby to správně podepisuje všechny odchozí maily. Ale později jsem si vyzkoušel jednoduchou věc: Přes telnet jsem z neexistujícího účtu (MAIL FROM, se správnou doménou) poslal spamovou zprávu pro existující účet. Amavis ji správně zarazil, ale protože odesílatel byl z lokální sítě, nezahodil ji (DISCARD), ale pokusil se varovat odesílatele (BOUNCE). Jenže ten neexistuje a tak mi pošta visela ve frontě. To asi není dobré. Otázka tedy zní, jak nakonfigurovat amavis, aby podepisoval DKIM všechny odchozí maily, nejen z lokální sítě.
dkim: not signing mail which is not originating from our siteZřejmě je to normální chování!? Moje představa byla, že odesílající se ověří heslem a odešle poštu, ať už přes port 25, 465 či 587. A pošta se mu podepíše. Spamassasin takové problémy nemá, ten pracuje vždy.
$interface_policy{'10024'} = 'DKIM_ALWAYS'; $policy_bank{'DKIM_ALWAYS'} = { originating => 1 };A hle pracuje to tak jak jsem chtěl, podepisuje se to ze všech sítí. Ale problém trvá, protože neexistující uživatel (viz můj první příspěvek) má poštu nyní podepsanou, je tedy důvěryhodný, tak mu amavis chce poslat varování. A protože neexistuje, tak to varováni je ve frontě. To je z louže pod okap. Ideální řešení by bylo podepisování DKIM pouze pro poštu co prošla autorizaci (SASL).
Odesílat poštu ze serveru může jen autorizovaný uživatel, odkudkoliv. A tuto poštu chci podepisovat DKIM. Server samozřejmě musí přijmout poštu pro emailovou adresu o kterou se stará, od kohokoliv. To je normální chování. A telnetem jsem zkoušel akci nějakého padoucha, který si adresu odesílatele vymyslel a příjemce byla existující adresa.
Překvapilo mě, že většina návodů na podepisování DKIM v amavisu to řeší jen pro lokální uživatele. Naštěstí jsem našel starší návod Postfix+DKIM email signatures in amavisd-new, který by měl dělat, to co chci. Vyzkouším však až v noci.
Překvapilo mě, že většina návodů na podepisování DKIM v amavisu to řeší jen pro lokální uživatele.To je správně. Uživatel, který se přihlásil jménem a heslem, je považován za lokálního uživatele. Respektive určuje to konfigurační volba
smtpd_relay_restrictions
, jejíž výchozí nastavení je permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
.
smtpd_sender_restrictions
(mysql-virtual_sender.cf
). A je tam pozapomenuta část z master.cf
:
amavisfeed unix - - n - 2 lmtp -o lmtp_data_done_timeout=1200 -o lmtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 10025 inet n - n - - smtpd -o smtpd_sender_restrictions=Ta volba
smtpd_sender_restrictions=
je důležitá, bez ní se pošta zacyklí. Jinak tam lze přidávat další volby dle chuti.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.