Good morning, 

Could perhaps be, that Amavis is not storing the XCLIENT variable LOGIN
(http://www.postfix.org/XCLIENT_README.html) in mail_via_smtp() where
should handle LOGIN XCLIENT attribute?. 

      my(@params) = map
        { my($n,$v) = @$_;
          # Postfix since version 20060610 uses xtext-encoded (RFC 3461)
          # strings in XCLIENT and XFORWARD attribute values, previous
          # versions expected plain text with neutered special
characters;
          # see README_FILES/XFORWARD_README
          if (defined $v && $v ne '') {
            $v =~ s/[^\041-\176]/?/gs;  # isprint
            $v =~ s/[<>()\\";\@]/?/gs;  # other chars that are special
in hdrs
                     # postfix/src/smtpd/smtpd.c NEUTER_CHARACTERS
            $v = xtext_encode($v);
            substr($v,255) = ''  if length($v) > 255;  # chop xtext, not
nice
          }
          !defined $v || $v eq '' || !$xfwd_supp_opt{$n} ? () :
("$n=$v") }
        ( ['ADDR',$cl_ip],               
['NAME',$msginfo->client_name],
          ['PORT',$msginfo->client_port],
['PROTO',$msginfo->client_proto],
          ['HELO',$msginfo->client_helo],
['SOURCE',$msginfo->client_source],
          ['IDENT',$msginfo->queue_id] ); 

Perhaps it needs a : 

['LOGIN',$msginfo->auth_user] and then through XCLIENT or XFORWARD from
Amavis would send back again to Postfix receiving smtpd instance the
LOGIN parameter in order for it (origin sasl_username) to be received in
the Postfix smtpd receiving instance through XCLIENT?. 

What do you think?. Perhaps it has not been considered for some reason?.


Cheers, 

---

EGOITZ AURREKOETXEA 
Dpto. de sistemas 
944 209 470
Parque Tecnológico. Edificio 103
48170 Zamudio (Bizkaia) 
[email protected] 
www.sarenet.es [1] 
Antes de imprimir este correo electrónico piense si es necesario
hacerlo. 

El 2021-05-20 09:38, Egoitz Aurrekoetxea escribió:

> ATENCION: Este correo se ha enviado desde fuera de la organización. No pinche 
> en los enlaces ni abra los adjuntos a no ser que reconozca el remitente y 
> sepa que el contenido es seguro.
> 
> Good morning, 
> 
> I was trying to implement different policy banks in a testing env, in order 
> to get : 
> 
> + Policy bank (FROM-THE-REST-OF-THE-INTERNET) -> Incoming external mail (from 
> the Internet in general) to be always tagged with a modified version of Anomy 
> Sanitizer and scanned for cleaning virus and spam. 
> 
> + Policy bank (COMING-FROM-CUSTOMER-1 OR COMING-FROM-CUSTOMER-2) -> Incoming 
> mail coming from well known ips, to be tagged with Anomy Sanitizer just in 
> case the email goes for a domain that is not one of the domains that go out 
> through that well known ips. For instance, comes from the ips of 
> custoner1.net and goes for customer2.net domain, then tag with Anomy 
> Sanitizer just for that "non customer1.net domain". 
> 
> + Policy bank (OUTGOING-SIGN) -> Outgoing mail generated by a mua that will 
> have previously be authenticated, to be signed with DKIM and to have a 
> disclaimer set with Altermime. Have created a dedicated port for this policy 
> bank. 
> 
> I'm sending mail traffic to Amavis, using XCLIENT extension 
> (http://www.postfix.org/XCLIENT_README.html) and seems that Amavis, is 
> identifying properly (source ip connected to Postfix based and transferred to 
> Amavis with XCLIENT) which policy bank should apply to each mail.It's still 
> not working totally (the maps, the Sanitizer part and so in each policy 
> bank...), because I assume I have entered some config variable incorrectly, 
> perhaps in the hash of the config of the policy bank, but that it's not 
> worrying me at present. 
> 
> BUT, I have a big problem, that am not able to get solved for just outgoing 
> mail (third commented case). In the Postfix smtpd instance where returns mail 
> handled by Amavisd, I needed to get passed the original SASL user with 
> XCLIENT. The reason of this, is because depending on the sasl authenticated 
> user (in Postfix, prior to Amavis, an authenticated MUA), I need to apply 
> it's corresponding FILTER action in Postfix (yes even it has returned from 
> Amavis and we are in the smtpd where we receive the returning traffic to 
> Postfix by Amavis), in the smtpd instance where Amavis is returning 
> scanned/tagged/signed traffic. I'm not able of receiving that sasl_username 
> with XCLIENT back from Amavis in the smtpd returning instance. Is it possible 
> to do that?. I receive other XCLIENT params, like (in this case) the Postfix 
> ip that feeded Amavisd, but I needed the sasl_username the MUA used. 
> 
> I know I could tell Postfix to enter a heder in the message with the 
> authenticated user, once a user authenticates, but I prefer not doing it 
> because it could become faked. 
> 
> I have seen that Amavis has or had the possibility of authenticating to the 
> returning smtpd instance (that could be OK too... in case Amavisd XCLIENT 
> does not pass sasl_username to the returning smtpd instance), but I have seen 
> it commented in the Amavisd code in the mail_via_smtp function. Concretely : 
> 
> _      $auth_capable = 1;_
> _#     my $sasl = Authen::SASL->new(_
> _#       'callback' => { 'user' => $auth_user, 'authname' => $auth_user,_
> _#                       'pass' => $msginfo->auth_pass });_
> _#     $smtp_handle->auth($sasl) or die "sending AUTH, 
> user=$auth_user\n";#flush_
> _      do_log(0,"Sorry, AUTH not supported in this version of amavisd!");_
> _      section_time($which_section);_ 
> 
> So, is it possible, is some manner, to receive in the Postfix instance of 
> smtpd, where you receive the returning back traffic from Amavisd, the 
> sasl_username with which Postfix authenticated the user for allowing to send 
> that email, now coming tagged/signed/whatever from Amavis?. 
> 
> I do paste the commented created config below in case it could help. 
> 
> Very thankful for you time :) 
> 
> Best regards, 
> 
> ============================================================================================================================================
>  
> 
> _$interface_policy{'10025'} = 'OUTGOING-SIGN';_ 
> 
> _@client_ipaddr_policy= (_
> _[qw(192.168.14.10)] => 'COMING-FROM-CUSTOMER-1', [qw(192.168.14.11)] => 
> 'COMING-FROM-CUSTOMER-2', [qw(192.168.14.12)] => 'COMING-FROM-CUSTOMER-3', 
> [qw(0.0.0.0)] => 'FROM-THE-REST-OF-THE-INTERNET'_
> _);_
> 
> _$policy_bank{'FROM-THE-REST-OF-THE-INTERNET'} = {_
> _forward_method => 'smtp:*:10026',_
> _enable_anomy_sanitizer => 1,_
> _anomy_sanitizer_args => [ [qw(/usr/local/etc/sanitizer.cfg)] ],_
> _defang_spam => 1,_
> 
> _defang_maps_by_ccat => [ {'CC_CLEAN' => { '@.' => 'anomy' }, 'CC_SPAM' => { 
> '@.' => 'anomy' }, 'CC_BANNED' => { '@.' => 'anomy' }, 'CC_VIRUS' => { '@.' 
> => 'anomy' } }],_
> _};_
> 
> _$policy_bank{'COMING-FROM-CUSTOMER-1'} = {_
> _forward_method => 'smtp:*:10026',_
> _bypass_spam_checks_maps   => [ { '@.' } ],_
> _bypass_banned_checks_maps => [ { '@.' } ],_
> _enable_anomy_sanitizer => 1,_
> _anomy_sanitizer_args => [ [qw(/usr/local/etc/sanitizer.cfg)] ],_
> _defang_spam => 1,_
> 
> _defang_maps_by_ccat => [ {'CC_CLEAN' => { '@.' => 'anomy', '@ramattack.net' 
> => '' }, 'CC_SPAM' => { '@.' => 'anomy', '@ramattack.net' => '' }, 
> 'CC_BANNED' => { '@.' => 'anomy', '@ramattack.net' => '' }, 'CC_VIRUS' => { 
> '@.' => 'anomy', '@ramattack.net' => ''} }],_
> 
> _dkim_signature_options_bysender_maps => [ { } ],_
> _};_
> 
> _$policy_bank{'COMING-FROM-CUSTOMER-2'} = {_
> _forward_method => 'smtp:*:10026',_
> _bypass_spam_checks_maps   => [ { '@.' } ],_
> _bypass_banned_checks_maps => [ { '@.' } ],_
> 
> _enable_anomy_sanitizer => 1,_
> _anomy_sanitizer_args => [ [qw(/usr/local/etc/sanitizer.cfg)] ],_
> _defang_spam => 1,_
> 
> _defang_maps_by_ccat => [ {'CC_CLEAN' => { '@.' => 'anomy', '@sarenet.es' => 
> '' }, 'CC_SPAM' => { '@.' => 'anomy', '@sarenet.es' => '' }, 'CC_BANNED' => { 
> '@.' => 'anomy', 'sarenet.es' => '' }, 'CC_VIRUS' => { '@.' => 'anomy', 
> '@sarenet.es' => ''} }],_
> 
> _dkim_signature_options_bysender_maps => [ { } ],_
> _};_
> 
> _$policy_bank{'OUTGOING-SIGN'} = {_
> _$forward_method = 'smtp:*:10027',_
> _bypass_spam_checks_maps   => [ { '@.' } ],_
> _bypass_banned_checks_maps => [ { '@.' } ],_
> _enable_anomy_sanitizer => 0,_
> _altermime => '/usr/bin/altermime',_
> _altermime_args_disclaimer => [ [qw(--verbose 
> --disclaimer=/etc/firmas_corporativas/disclaimer-_OPTION_.txt 
> --disclaimer-html=/etc/firmas_corporativas/disclaimer-_OPTION_.html)] ],_
> _defang_maps_by_ccat => [ { 'CC_CATCHALL' => { '@.' => 'disclaimer' } } ],_
> _disclaimer_options_bysender_maps => [ { 'sarenet.es' => 'sarenet.es', 
> 'ramattack.net' => 'ramattack.net' } ],_
> _allow_disclaimers => 1,_
> _dkim_signature_options_bysender_maps => [ { 'sarenet.es' => {ttl => 
> 21*24*3600, c => 'simple/simple'}, 'ramattack.net' => {ttl => 21*24*3600, c 
> => 'simple/simple'}} ],_
> _};_ 
> 
> ============================================================================================================================================
>  
> 
> --
> 
> EGOITZ AURREKOETXEA 
> Dpto. de sistemas 
> 944 209 470
> Parque Tecnológico. Edificio 103
> 48170 Zamudio (Bizkaia) 
> [email protected] 
> www.sarenet.es [1] 
> Antes de imprimir este correo electrónico piense si es necesario hacerlo.
 

Links:
------
[1] http://www.sarenet.es

Reply via email to