config avancée postfix - Logiciels - Linux et OS Alternatifs
Marsh Posté le 13-03-2007 à 15:53:12
tu désires que les mails acceptés sur la mailing list ne soient que ceux des utilisateurs de cette même mailing list c'est cela ?
Marsh Posté le 13-03-2007 à 16:01:02
comment on identifie tes utilisateurs ?  
 
subnet? adresse email ? SASL ? 
 
si tu te bases sur le mail from uniquement il suffira de spoofer l'adresse email d'expedition pour envoyer un mail malgre la restriction a ton alias. 
 
mais c'est possible si c'est ce que tu veux. 
Marsh Posté le 13-03-2007 à 16:04:59
| Citation : tu désires que les mails acceptés sur la mailing list ne soient que ceux des utilisateurs de cette même mailing list c'est cela ?  | 
 
dans ce cas particulier oui, mais plus généralement, je ne veux pas que quelqu'un de l'exterieur puisse faire 
un mail sur une liste de mon serveur. 
les listes ne contiennent que des utilisateurs internes, pas d'adresses mails exterieures. 
 
je ne sais pas si je suis bien clair lol
Marsh Posté le 13-03-2007 à 16:07:05
| toniotonio a écrit : comment on identifie tes utilisateurs ?   | 
 
 
subnet uniquement, mynetworks dans postfix
Marsh Posté le 13-03-2007 à 16:11:27
ok alors ca devrait etre assez fiable: 
 
dans le main.cf  (met le APRES reject_unauth_destination) 
/etc/postfix/main.cf : 
  
| Code : 
 | 
 
     
cree un fichier local-ml 
 
/etc/postfix/local-ml: 
 
| Code : 
 | 
Marsh Posté le 13-03-2007 à 16:33:39
comment ca apres reject_unauth_destination? 
dans mon main.cf je n'ai pas de smtpd_recipient_restrictions pour l'instant, 
donc pas de reject_unauth_destination
Marsh Posté le 13-03-2007 à 16:35:53
par defaut il y est, si tu ne le precises pas.  (postconf -d pour voir la conf par defaut) 
 
fais un postconf -n  pour qu'on voit ta config  
 
Marsh Posté le 13-03-2007 à 16:38:20
voila le resultat de postconf -n : 
 
alias_database = hash:/etc/mail/aliases,hash:/etc/mail/aliases_systeme 
alias_maps = hash:/etc/mail/aliases,hash:/etc/mail/aliases_systeme 
command_directory = /usr/sbin 
config_directory = /etc/postfix 
content_filter = smtp-amavis:[127.0.0.1]:10024 
daemon_directory = /usr/lib/postfix 
debug_peer_level = 2 
default_destination_concurrency_limit = 2 
default_destination_recipient_limit = 150 
home_mailbox = 
html_directory = no 
local_destination_concurrency_limit = 2 
local_recipient_maps = 
mail_owner = postfix 
mail_spool_directory = /var/spool/mail 
mailbox_size_limit = 1024000000 
mailq_path = /usr/bin/mailq 
manpage_directory = /usr/share/man 
message_size_limit = 50000000 
mydestination = $myhostname, localhost.$mydomain, $mydomain, gimail.sitiv.lan, givors.sitiv.fr 
mydomain = ville-givors.fr 
myhostname = gimail.sitiv.lan 
mynetworks = 200.9.0.0/16, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 
myorigin = $mydomain 
newaliases_path = /usr/bin/newaliases 
queue_directory = /var/spool/postfix 
readme_directory = /usr/share/doc/postfix-2.1.5-r2/readme 
relay_domains = $mydestination 
relayhost = [smtp-out.sitiv.lan] 
sample_directory = /etc/postfix 
sendmail_path = /usr/sbin/sendmail 
setgid_group = postdrop 
smtpd_banner = $myhostname ESMTP $mail_name 
soft_bounce = no 
unknown_local_recipient_reject_code = 550 
virtual_mailbox_limit = 1024000000
Marsh Posté le 13-03-2007 à 16:47:04
ok donc ajoute a la fin du main.cf 
 
| Code : 
 | 
 
 
cela dit cette partie meriterait quelques ameliorations mais ce n'est pas le sujet !
Marsh Posté le 13-03-2007 à 16:51:27
apres avoir ajouté les lignes et redemarré le serveur, 
impossible d'envoyer quoi que ce soit, 
thunderbird reste bloqué sur la connexion
Marsh Posté le 13-03-2007 à 17:18:50
que disent les logs de postfix ? 
 
 
edit: as tu crée le fichier en question comme je te disais plus haut ? 
 
c'est surement ca le pb !
Marsh Posté le 14-03-2007 à 09:32:32
dans le main.cf :  
smtpd_recipient_restrictions = 
     permit_mynetworks, 
     reject_unauth_destination, 
     reject_unauth_pipelining, 
     check_recipient_access hash:/etc/postfix/local-ml, 
     permit 
 
et /etc/postfix/local-ml : 
testclem@ville-givors.fr        permit_mynetworks,reject 
 
dans les logs, j'ai : 
 
Mar 14 09:29:01 mail postfix/postfix-script: starting the Postfix mail system 
Mar 14 09:29:01 mail postfix/master[31601]: daemon started -- version 2.1.5 
Mar 14 09:29:24 mail postfix/smtpd[31791]: fatal: open database /etc/postfix/local-ml.db: No such file or directory 
Mar 14 09:29:25 mail postfix/master[31601]: warning: process /usr/lib/postfix/smtpd pid 31791 exit status 1 
Mar 14 09:29:25 mail postfix/master[31601]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling 
Mar 14 09:29:42 mail postfix/postfix-script: stopping the Postfix mail system 
Mar 14 09:29:42 mail postfix/master[31601]: terminating on signal 15 
Mar 14 08:29:42 mail postfix/postqueue[31914]: fatal: Queue report unavailable - mail system is down
Marsh Posté le 14-03-2007 à 09:42:37
oups, un postmap /etc/postfix/local-ml, et postfix démarre bien
Marsh Posté le 14-03-2007 à 09:45:10
par contre on peut envoyer un mail à testclem@ville-givors.fr depuis l'exterieur (webmail yahoo)
Marsh Posté le 14-03-2007 à 09:56:42
ah mais en fait, tous les messages passent par une passerelle qui a l'adresse 10.64.0.6, donc ils sont considérés comme venant de mynetworks 
enfin je pense 
on ne peut pas spécifier le réseau directement dans local-ml? 
avec l'instruction check_client_access, mais je n'arrive pas a trouver comment l'utiliser
Marsh Posté le 14-03-2007 à 11:12:03
  effectivement il faut faire un postmap sur le fichier
  effectivement il faut faire un postmap sur le fichier 
 
bon et bien tu es dans le cas de figure bien precis ou cette solution est inefficace  ! 
 
 
 
 
 
postfix ne voit pas beaucoup de chose en fait : 
il voit l'ip du client qui se connecte (donc en l'occurence ta passerelle donc c'est pas bon pour toi) 
il voit le mail from et le rcpt to 
 
tu peux operer sur le mail from mais c'a ne serait pas vraiment fiable puisque l'adresse de l'expediteur peut etre aisement spoofée. 
si cette solution te convient malgre tout tu peux l'utiliser. 
 
peut etre en jouant sur les headers checks de postfix tu pourrais peut etre faire quelque chose mais je n'ai jamais essayé (et cela induirait certainement un cout sur les performances) 
 
l'ideal aurait été une verif de l'authentification SASL mais tu ne sembles pas l'utiliser  
 
Marsh Posté le 14-03-2007 à 11:38:51
non je n'utilise pas d'authentification 
 
par contre la passerelle mail est en 10.64.0.6, et mon réseau local en 200.9.201.0 
il faudrait accepter les mails à destination de la liste  pour le réseau 200.9.201.0 uniquement, 
et les deux réseaux pour tout le reste 
 
pas moyen de différencier ces deux réseaux sans modifier mynetworks? 
 
j'ai peur qu'en enlevant 10.0.0.0/8 de mynetworks, le serveur n'accepte plus aucun mails de la passerelle 
et comme c'est un serveur en production et que ce n'est pas moi qui ait installé postfix ...
Marsh Posté le 14-03-2007 à 11:51:54
ne touches surtout pas a mynetworks 
 
oui tu peux faire une selection plus fine: 
 
cree une restriction classes 
dans le main.cf 
 
| Code : 
 | 
 
 
dans le fichier local_network 
 
| Code : 
 | 
 
 
 
et tu modifies ce que tu as fait dans le local_ml: 
 
| Code : 
 | 
 
 
 
je le fais de tete donc autant je me plante un peu, teste le, mais en gros c'est la logique a appliquer 
 
 
edit: pense a faire un postmap sur les 2 fichiers !
Marsh Posté le 14-03-2007 à 13:36:37
je recois toujours le mail en provenance de l'exterieur :( 
 
est ce que ce ne serais pas a cause du  
smtpd_recipient_restrictions = 
     permit_mynetworks, 
     reject_unauth_destination, 
     reject_unauth_pipelining, 
     check_recipient_access hash:/etc/postfix/local-ml, 
     permit  
 
puisque permit_mynetworks renvois ok, il ne regarde pas plus loin? 
d'ailleurs si on l'enleve ca change quelque chose? 
vu qu'il y a permit en dernier
Marsh Posté le 14-03-2007 à 13:41:50
 
  
autant pour moi ! 
effectivement le permit_mynetwork prend le pas sur le reste  (c'est dans l'ordre pour les restrictions, donc il ne faut surtout pas que tu l'enleves) 
 
c'est la que le sasl prend tout son interet...    
 
si tu  mets  check_recipient_access hash etc/postfix/local-ml avant permit_mynetwork ca devrait marcher.
etc/postfix/local-ml avant permit_mynetwork ca devrait marcher. 
 
ca ne devrait pas etre risqué puisque la restriction-class finit par un reject et ne concerne que ton reseau
Marsh Posté le 14-03-2007 à 13:52:38
lol maintenant, il rejete tous les mails vers la liste, y compris de l'interieur 
 
dans le fichier /etc/postfix/local_network, j'ai essayé : 
200.9.201.0/24   OK 
et : 
200.9.201.0     OK
Marsh Posté le 14-03-2007 à 13:54:39
  
  
 
dans les logs c'a dit quoi ? 
 
et les mails vers une autre adresse ? ils passent ?
Marsh Posté le 14-03-2007 à 13:55:24
pour résumer, voici le contenu des différents fichiers : 
 
mail postfix # tail  -n 12 main.cf 
 
smtpd_restriction_classes = local_network_rest_class 
 
local_network_rest_class = check_client_access hash:/etc/postfix/local_network, reject 
 
smtpd_recipient_restrictions = 
     check_recipient_access hash:/etc/postfix/local-ml, 
     permit_mynetworks, 
     reject_unauth_destination, 
     reject_unauth_pipelining, 
     permit 
 
mail postfix # cat local-ml 
testclem@ville-givors.fr        local_network_rest_class 
mail postfix # cat local_network 
200.9.201.0     OK
Marsh Posté le 14-03-2007 à 13:56:55
dans les logs, pour le message rejeté : 
 
Mar 14 13:56:08 mail postfix/smtpd[8519]: connect from unknown[200.9.201.253] 
Mar 14 13:56:08 mail postfix/smtpd[8519]: NOQUEUE: reject: RCPT from unknown[200.9.201.253]: 554 <testclem@ville-givors.fr>: Recipient address rejected: Access denied; from=<clement.delorme@ville-givors.fr> to=<testclem@ville-givors.fr> proto=ESMTP helo=<[200.9.201.253]> 
Mar 14 13:56:09 mail postfix/smtpd[8519]: lost connection after RCPT from unknown[200.9.201.253] 
Mar 14 13:56:09 mail postfix/smtpd[8519]: disconnect from unknown[200.9.201.253] 
 
 
tous les autres mails passent bien
Marsh Posté le 14-03-2007 à 17:25:48
indique ton reseau comme ceci: 
 
| Code : 
 | 
Marsh Posté le 15-03-2007 à 08:28:50
ca marche !!! 
 
enfin ca a l'air de marcher correctement, exactement comme je le voulait au depart. 
pfiou je commencait a perdre espoir  
 
 
merci beaucoup en tout cas!
Marsh Posté le 15-03-2007 à 08:38:45
donc petit récap pour ceux que ca pourrait aider : 
 
pour interdire l'envois de mails a partir de l'exterieur sur un alias de votre serveur postfix (liste de diffusion ou pas), 
basé sur une plage d'ip différente de mynetworks : 
 
dans /etc/postfix/main.cf, rajouter ou modifier : 
| Code : 
 | 
 
 
contenu de /etc/postfix/local_network 
| Code : 
 | 
 
 
contenu de /etc/postfix/local-ml : 
| Code : 
 | 
Marsh Posté le 13-03-2007 à 15:49:15
Bonjour à tous,
je viens d'installer postfix tout marche tout va bien.
sauf!
que je voudrais maintenant interdire la réception de mails
sur l'alias d'une liste de diffusion en provenance de l'exterieur.
En clair, je voudrais que seuls mes utilisateurs puissent envoyer
un mail sur cet alias.
ou alors!
si on peut bloquer dans la queue les mails envoyés à cet alias,
afin que je puisse les débloquer au coup par coup.
une idée quelqu'un?