Newsgroup: it.comp.os.linux.sys
Titolo: un aiuto su postfix per reject_nulisted_sender.

Salve.
Il parametro di cui all'oggetto sembra non funzionare ma sicuramente 
sono io che sbaglio qualcosa.
Ho un server smtp che gestisce il dominio aziendale 
mydomain.it
.
Gli account sono in un database ldap.
La configurazione e':
smtpd_banner = $myhostname NO UCE ESMTP
biff = no
append_dot_mydomain = no
myhostname = 
mail.mydomain.it
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = 
mail.mydomain.it
, 
localhost.mydomain.it
, , localhost
relayhost =
mynetworks = 
127.0.0.0/8
 
192.168.0.0/16
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
content_filter = smtp-amavis:[127.0.0.1]:10024
max_use = 10
local_recipient_maps = $virtual_mailbox_maps
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
virtual_mailbox_domains = 
mydomain.it
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps = ldap:/etc/postfix/
ldap-vmail.cf
virtual_alias_maps = hash:/etc/postfix/virtual-aliases
virtual_minimum_uid = 1004
virtual_uid_maps = static:1004
virtual_gid_maps = static:1004
smtpd_reject_unlisted_sender = yes
smtpd_recipient_restrictions =
     reject_non_fqdn_sender,
     reject_non_fqdn_recipient,
     permit_mynetworks,
     reject_unknown_sender_domain,
     reject_unknown_recipient_domain,
     reject_invalid_hostname,
     reject_non_fqdn_hostname,
     reject_unauth_destination,
     check_policy_service inet:
127.0.0.1:60000
     check_sender_access hash:/etc/postfix/sender_checks,
     check_helo_access hash:/etc/postfix/helo_checks,
     reject_rbl_client 
sbl-xbl.spamhaus.org
,
     reject_rbl_client 
dul.dnsbl.sorbs.net
,
     reject_rbl_client 
list.dsbl.org
,
     permit
smtpd_data_restrictions =
     reject_unauth_pipelining,
     permit
header_checks = regexp:/etc/postfix/header_checks
Il problema e' che dai client della mia lan a quanto pare e' permesso 
spedire anche se il sender non fa parte del mio dominio.
Io vorrei che fosse permesso l'invio di mail solo se il sender e' nel 
database ldap.
Es: se il sender e' 
ute...@mydomain.it
 puo' spedire se invece il sender 
e' 
ute...@anotherdomain.it
 non dovrebbe poter spedire cosa che invece 
avviene attualmente.
Cosa ho sbagliato nella configurazione?
Uso postfix 2.1 con debian sarge.
Grazie.

 Cosa ho sbagliato nella configurazione?
Mai usato quel parametro, ma da quanto capisco della documentazione di
postfix, è equivalente a mettere un
reject_unlisted_sender
immediatamente prima di permit_mynetworks, che dal punto di vista del
ruleset sarebbe la cosa formalmente più corretta...
-- 
Skull & Bones (ER6n Silver)
Neo:  I know Sendmail!
Morpheus:  Show me.


Fatto, avevo gia' provato ma non cambia nulla.
Se nel mio client di posta configuro un account che non esiste nel 
database ldap, usando anche un dominio che non dovrebbe essere gestito 
dal mio smtp, questo riesce a spedire comunque.

 dal mio smtp, questo riesce a spedire comunque.
No, 'spe.
La documentazione dice chiaro e tondo (quoto solo la parte inerente la
tua configurazione) che la restriction interviene quando:
- The recipient domain matches $virtual_mailbox_domains but the
recipient is not listed in $virtual_mailbox_maps, and
$virtual_mailbox_maps is not null.
Ergo è chiaro che se usi a mittente un *dominio* non gestito in virtual,
quella restriction non interviene, e dovrai applicare restriction di
altro tipo se vuoi ottenere *anche* questo...
Poi magari nella versione che viene con sarge effettivamente quella
restriction non funge proprio (può anche essere), ma in tal caso ci son
altri modi di scrivere restriction analoghe...



In sarge funziona, hai ragione e mi scuso per non averlo precisato, 
smtp_reject_unlisted_sender=yes funziona se il sender e' del dominio 
gestito.
Resta il fatto pero' che se come sender metto 
ute...@dominioacaso.it
 
questo riesce a spediree la cosa la vorrei evitare sopratutto per 
evitare di mandare spam su internet nel caso qualche client fosse infetto.
Quale potrebbe essere una soluzione?

 Quale potrebbe essere una soluzione?
Applicare una restriction che impedisca l'uso di mittenti non-locali
qualora l'IP di connessione sia in mynetworks.
Probabilmente c'è un modo più elegante di farlo, ma così su due piedi
puoi fare una cosa tipo:
in 
main.cf
:
smtpd_restriction_classes = reject_non-local_sender_domains
reject-non_local_sender_domains = check_sender_access
hash:accept_local_domains, reject
(questa sopra è tutta una riga, qualora la visualizzassi su due)
[...]
smtpd_recipient_restrictions =
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unlisted_sender,
    check_client_access cidr:$config_directory/local_subnet,
    permit_mynetworks,
    reject_unknown_sender_domain,
in local_subnet:
192.168.0.0/16
	reject-non_local_sender_domains
in accept_local_domains (ovviamente da "postmappare"):
mydomain.it
	OK
In questo modo a chi scrive da 
192.168.0.0/16
 viene applicata la
restriction denominata reject-non_local_sender_domains, la quale
risponde con OK se il mittente appartiene ad uno dei domini elencati in
accept_local_domains (in questo caso solo 
mydomain.it
), mentre tutto il
resto ottiene un reject.
Ho esplicitato reject_unlisted_sender prima di questa nuova restrizione
per esser sicuro che l'OK dato in quest'ultima non bypassi l'enforcing
sull'esistenza dell'utente virtual applicato da postfix stesso.
Non l'ho provata, ma a spanne dovrebbe andare bene...


 Non l'ho provata, ma a spanne dovrebbe andare bene...
Ma quando viene applicata una recipient restriction personalizzata, se
il risultato
dei check e' DUNNO, cosa succede? Si prosegue con i normali check posti in
smtpd_recipient_restrictions?
-- 
Posted via a free Usenet account from 
http://www.teranews.com

 smtpd_recipient_restrictions?
Sì. Viene semplicemente saltato il resto della restrizione in cui il
DUNNO viene applicato.
Ad esempio, se nella configurazione di prima volessi escludere il solo
PC dell'amministratore delegato (diciamo 192.168.120.121) dalla
restrizione che impedisce l'invio con domini non locali, potresti, in
local_subnet, scrivere:
192.168.120.121	DUNNO
192.168.0.0/16
	reject-non_local_sender_domains
Bài.



Chiarissimo ottimo :-) ho trovato anche un esempio simile su 
http://www.arschkrebs.de/postfix/postfix_restriction_classes3_en.shtml