config avancée postfix

config avancée postfix - Logiciels - Linux et OS Alternatifs

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?

Reply

Marsh Posté le 13-03-2007 à 15:49:15   

Reply

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 ?


---------------
Intermittent du GNU
Reply

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.

Reply

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


Message édité par clementcadbury le 13-03-2007 à 16:11:54
Reply

Marsh Posté le 13-03-2007 à 16:07:05    

toniotonio a écrit :

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.


 
subnet uniquement, mynetworks dans postfix

Reply

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 :
  1. check_recipient_access    hash:/etc/postfix/local-ml


     
cree un fichier local-ml
 
/etc/postfix/local-ml:
 

Code :
  1. ton@adresse.mail   permit_mynetworks,reject


Message édité par toniotonio le 13-03-2007 à 17:31:25
Reply

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

Reply

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  
 


Message édité par toniotonio le 13-03-2007 à 16:37:06
Reply

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


Message édité par clementcadbury le 13-03-2007 à 16:38:30
Reply

Marsh Posté le 13-03-2007 à 16:47:04    

ok donc ajoute a la fin du main.cf
 

Code :
  1. smtpd_recipient_restrictions =
  2.     permit_mynetworks,
  3.     reject_unauth_destination,
  4.     reject_unauth_pipelining,
  5.             check_recipient_access hash:/etc/postfix/local-ml,
  6.     permit


 
cela dit cette partie meriterait quelques ameliorations mais ce n'est pas le sujet !


Message édité par toniotonio le 13-03-2007 à 16:48:49
Reply

Marsh Posté le 13-03-2007 à 16:47:04   

Reply

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


Message édité par clementcadbury le 13-03-2007 à 16:58:14
Reply

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 !


Message édité par toniotonio le 13-03-2007 à 17:19:55
Reply

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


Message édité par clementcadbury le 14-03-2007 à 09:35:04
Reply

Marsh Posté le 14-03-2007 à 09:42:37    

oups, un postmap /etc/postfix/local-ml, et postfix démarre bien

Reply

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)

Reply

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


Message édité par clementcadbury le 14-03-2007 à 10:18:28
Reply

Marsh Posté le 14-03-2007 à 11:12:03    

:)  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  
 

Reply

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 ...

Reply

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 :
  1. smtpd_restriction_classes = local_network
  2.     local_network = check_client_access hash:/etc/postfix/local_network, reject


 
dans le fichier local_network
 

Code :
  1. tonreseau   OK


 
 
et tu modifies ce que tu as fait dans le local_ml:
 

Code :
  1. testclem@ville-givors.fr        local_network


 
 
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 !


Message édité par toniotonio le 14-03-2007 à 11:56:18
Reply

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


Message édité par clementcadbury le 14-03-2007 à 13:37:05
Reply

Marsh Posté le 14-03-2007 à 13:41:50    

:pt1cable:  
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.
 
ca ne devrait pas etre risqué puisque la restriction-class finit par un reject et ne concerne que ton reseau


Message édité par toniotonio le 14-03-2007 à 13:45:10
Reply

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

Reply

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 ?

Reply

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

Reply

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

Reply

Marsh Posté le 14-03-2007 à 17:25:48    

indique ton reseau comme ceci:
 

Code :
  1. 200.9.201     OK


Message édité par toniotonio le 14-03-2007 à 17:26:00
Reply

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!

Reply

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 :
  1. smtpd_restriction_classes = local_network_rest_class
  2. local_network_rest_class = check_client_access hash:/etc/postfix/local_network, reject
  3. smtpd_recipient_restrictions =
  4.      check_recipient_access hash:/etc/postfix/local-ml,
  5.      permit_mynetworks,
  6.      reject_unauth_destination,
  7.      reject_unauth_pipelining,
  8.      permit


 
contenu de /etc/postfix/local_network

Code :
  1. 200.9.201       OK


 
contenu de /etc/postfix/local-ml :

Code :
  1. email@domaine.tld        local_network_rest_class


Message édité par clementcadbury le 15-03-2007 à 08:38:54
Reply

Marsh Posté le 15-03-2007 à 09:36:26    

:)  
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed