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
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 hashetc/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?