Vous n'êtes pas identifié(e).
Pages : 1
Hello,
j'me suis fait mon petit serveur mail avec postfix, avec tout ce qui va avec, les filtres dans les headers, et cie... il marche pas mal. J'ai lu des tonnes et des tonnes de tutos ainsi que la doc officielle. Mais il me reste une information que je n'arrive pas à résoudre, c'est à bloquer l'accès smtp aux machines extérieures. Mon serveur fait juste du pop/imap, rien d'autres.
J'avoue que je n'arrive pas à bloquer ça dans postfix (dans iptables, oui ).
Les permit_network ne font rien là-dessus. Enfin, si, ils autorisent l'envoi de mail de n'importe qui du moment que c'est un mail stocké sur mon serveur. Or, ce n'est pas ça que je veux.
Je vous joint mon main.cf :
smtp_banner = $myhostname ESMTP (Debian / GNU)
biff = no
disable_vrfy_command = yes
#smtpd_helo_required = yes
append_dot_mydomain = no
mydestination = xxx.yyyy.net, localhost, localhost.yyyy.net
mydomain = xxx.yyyy.net
myhostname = xxx.yyyy.net
myorigin = $mydomain
relayhost =
header_checks = regexp:/etc/postfix/header_checks.cf
mynetworks = 127.0.0.0/8 91.121.29.185
inet_interfaces = all
smtpd_sender_restrictions =
permit_mynetworks,
reject_unknown_sender_domain,
warn_if_reject reject_unverified_sender,
#smtpd_recipient_restrictions =
# permit_mynetworks,
# reject_unauth_destination,
# reject_unknown_recipient_domain,
# reject_non_fqdn_recipient
# permit
smtpd_client_restrictions =
# reject_unknown_client,
permit_mynetworks
smtpd_etrn_restrictions =
reject
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf, mysql:/etc/postfix/mysql-virtual_aliases_mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/spool/vmail/
virtual_uid_maps = static:2002
virtual_gid_maps = static:2002
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "Sorry, full mailbox !"
virtual_overquota_bounce = yes
j'ai du décommenter pas mal d'options pour éviter certaines règles trop restrictives... Par exemple, les adresses [email protected] qui sont par défaut rejetées, c'est pas terrible
Merci de m'indiquer de bons conseils/tutos pour interdire cette question
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Je ne comprends pas vraiment où se situe ton problème : si tu n'autorises pas l'accès à ton serveur SMTP depuis l'extérieur, comment vas-tu recevoir tes e-mails ?
Julien
Hors ligne
Bonjour,
Même si l'extérieur ne peut pas utiliser un smtp local, on peut utiliser des outils style fetchmail pour aller chercher ses messages sur un serveur externe.
"La grandeur d'un métier est peut-etre, avant tout, d'unir des hommes : il n'est qu'un luxe véritable, et c'est celui des relations humaines." Antoine de Saint-Exupéry
Hors ligne
Oui, c'est vrai ;-) Mais ça limite l'intérêt d'un serveur smtp, d'autant que je vois qu'Elrohir utilise des utilisateurs virtuels...
Julien
Hors ligne
Hello,
je ne pensais pas que ma question était compliquée :-))
En fait, je veux que personne n'utilise l'adresse IP de mon serveur (ou un domaine/sous-domaine pointant dessus) pour envoyer des mails. La seule machine capable d'envoyer des mails sera ma machine locale.
Je veux que les utilisateurs externes ne puissent QUE recevoir leur mail (pop/imap). Mais je veux interdire l'envoie de mail pour tout le monde en passant par cette machine. Pour envoyer des mails, ils n'ont qu'à utiliser le serveur smtp de leur FAI
Est-ce possible de faire ça dans postfix ? Ou je dois faire mon bourrain dans iptables à rejetter tout ce qui rentre par le port 25 et qui n'est pas le loopback ? :-)
Dernière modification par Elrohir (27/05/2007 18:19:11)
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
C'est plus clair ;-)
check_client_access est fait pour cela.
Voir http://www.postfix.org/access.5.html
Julien
Hors ligne
Oui, j'avais vu ça, il me semble. Mais je ne cherche pas une liste de client à accepter, mais je cherche à rejetter tout. On est obligé de passer par une liste ?
Sinon, désolé de ne pas avoir été assez clair au début
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Tu dois pouvoir rejeter tout grâce à une regex :
main.cf
smtpd_recipient_restrictions = permit_mynetworks,
check_client_access pcre:/etc/postfix/access,
permit
access
/./ REJECT
Nécessite l'installation de postfix-pcre
/./ veut dire tout
Attention de bien placer la restriction *après* permit_mynetworks si tu veux pouvoir utiliser ton serveur depuis la machine locale ou le réseau local
Je n'ai pas testé, dis-nous si cela fonctionne...
Dernière modification par braouazou (27/05/2007 18:47:51)
Hors ligne
Voir : http://postfix.traduc.org/index.php/pos … strictions
Par contre, je pense qu'il y a beaucoup plus simple, justement en relisant cette page...
smtpd_recipient_restrictions =
permit_mynetworks,
reject
devrait tout à fait correspondre à ton besoin...
Hors ligne
Ce n'est pas ce que tu veux ?!? J'ai cru comprendre que tu voulais que seule la machine locale soit autorisée à utiliser le serveur SMTP, si elle est bien dans $my_networks, elle doit pouvoir le faire. Les autres machines ne pourront pas, c'est normal.
Hors ligne
Mais non ! Je veux juste bloquer l'ENVOIE de mail pour les autres machines.
Envoie de mail : localhost
Réception (pop/imap) : tout le monde
Or, avec cette règle, plus personne ne peut envoyer de mail à une adresse existant chez moi, quelque soit le smtp par lequel il passe...
Bon, ben j'vais bloquer le port 25 avec iptables... ça semble le plus simple à faire......... j'aurais pas l'impression de parler chinois au moins
Dernière modification par Elrohir (27/05/2007 21:33:02)
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Ça aura bien le même effet... Tu sembles ne pas comprendre le rôle d'un serveur SMTP. Si tu bloques le port 25, personne ne pourra plus non plus contacter ton serveur depuis l'extérieur, tes utilisateurs ne pourront donc pas non plus recevoir de mail (oui, ils pourront toujours accéder à leur boîte via pop/imap, mais cela n'a rien à voir).
Avec permit_mynetworks, tu joues bien avec les restrictions : de l'extérieur, les autres machines ne pourront utiliser ton serveur SMTP UNIQUEMENT pour transmettre un message adressé à un domaine dont ton serveur est MX. Les machines listées dans $mynetworks pourront quant à elles utiliser le SMTP pour envoyer des messages à l'extérieur. Ton serveur n'est alors pas un open relay (et si je comprends bien, c'est ce que tu souhaites éviter). En aucun cas une machine extérieure à ton réseau ne pourrra envoyer un mail vers une autre machine extérieure...
Hors ligne
Hum... je semble comprendre...
Si je bloque le port 25, je pourrais toujours récupérer mes mils via POP/IMAP mais mon serveur ne recevra aucun mail qui lui sera destiné.
J'ai toujours pensé -à tord- que smtp ne servait qu'à envoyer des mails...
Ca commence à devenir un peu plus clair, là !
Si je comprends bien, il n'y a aucun moyen de bloquer l'envoie de mail par mon serveur depuis l'extérieur, sans bloquer les réceptions ?
Dernière modification par Elrohir (27/05/2007 21:45:07)
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
SMTP sert à Transférer les messages d'un serveur à l'autre (acheminer serait sans doute plus adapté, mais on perd le T de Simple Mail Transfer Protocol) : http://fr.wikipedia.org/wiki/Simple_Mai … r_Protocol te permettra de comprendre. POP et IMAP ne sont utiles aux utilisateurs distants que pour relever leur boite à lettres.
Hors ligne
Bonjour,
j'ai bien lu ce que tu m'as envoyé, et ça me fait bien comprendre.
Seulement, je viens de penser à autre chose?
Est-il possible (et efficace) de bloquer le flux sortants de postfix (pour en gros bloquer les autres utilisateurs de se servir de mon smtp pour envoyer des mails, même ds mon réseau).
On autorise tout ce qui sort par le port 25 qui vient de localhost, mais on rejette tout ce qui sort par le port 25 qui n'est pas de localhost.
Est-ce que ça marcherait ? Ou quelque soit l'utilisateur qui envoit un mail, c'est considéré comme venant de localhost puisque c'est mon postfix local qui envoit le mail ?
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Pas convaincu que tu aies tout compris, et j'avoue ne pas comprendre non plus ce que tu veux dire.
Peux-tu expliquer le cas général ? A quoi sert ton serveur, qui sont les utilisateurs etc... Ça aidera sans doute à mieux comprendre ton objectif...
Hors ligne
J'ai lu en diagonale mais je voulais preciser que, ce que Elrohir appelle mail entrant, arrive egalement par SMTP
Un petit schema plutot qu'un long discours :
Icedove --> Serveur SMTP (celui d'un FAI par ex.) --> Serveurs SMTP (ceux par lequel le mail transite) --> [postfix(SMTP) --> courier-pop(POP)] (machine d'Elrohir) ---> IceDove
Donc lorsque tu coupe ton serveur SMTP du monde exterieur, tu ne peux recevoir de mail depuis l'exterieur. Donc pour continuer a les recevoir depuis l'exterieur, tu dois accepter toutes les connexion externe sur postfix mais ne traiter que les mail concernant ton domaine (en gros tout les mails ayant un champ to: [email protected]). Ces restriction ce font dans cette partie : smtpd_recipient_restrictions.
J'espère que j'ai bien compris le sujet du mail.
Dernière modification par Tihz (28/05/2007 14:42:19)
Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.
Hors ligne
Pas convaincu que tu aies tout compris, et j'avoue ne pas comprendre non plus ce que tu veux dire.
Peux-tu expliquer le cas général ? A quoi sert ton serveur, qui sont les utilisateurs etc... Ça aidera sans doute à mieux comprendre ton objectif...
Hum.
Alors, mon serveur fait du mail avec postfix, et principalement du pop/imap.
J'aimerais EMPECHER les utilisateurs (càd tout le monde, je ne met pas de SASL ou autre) de se servir de mon smtp pour ENVOYER des courriers (que ce soit en interne ou en externe).
Je veux que mon serveur smtp ne serve qu'à recevoir les courriers des utilisateurs. Et c'est TOUT.
Je ne sais pas si postfix fait une distinction là-dessus. Plus j'avance, plus il me semble que non.
On a vraiment du mal à se comprendre par des phrases, alors parlons informaticiens :
/sbin/iptables -A OUTPUT -i eth0 -p tcp -i lo --dport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -i eth0 -p tcp --dport 25 -j DROP
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
Sinon, ce n'est pas grave, j'arrête. C'est un peu chiant d'avoir l'impression de parler chinois (alors que j'ai pas l'impression de parler une langue étrangère...), et pour vous d'avoir l'impression de parler à un neuneu.
J'veux juste qu'on ne se serve pas de mon smtp pour relayer ses messages, qui que ce soit, où que ce soit, pour qui que ce soit. MAIS que ce smtp puisse recevoir des messages qu'on lui envoit et les donner aux utilisateurs pour qu'il puisse les récup par POP ou IMAP.
Possible ou pas ? (oui/non)
Dernière modification par Elrohir (28/05/2007 15:39:23)
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
J'ai lu en diagonale mais je voulais preciser que, ce que Elrohir appelle mail entrant, arrive egalement par SMTP
Voilà. Ce qui entre par smtp, on prend. Ce qui sort par smtp, on vire. Possible ? Ou alors ça bloquera carrément tout ?
Dernière modification par Elrohir (28/05/2007 15:41:54)
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Hop hop, et bien voilà : http://broux.developpez.com/articles/pr … nement.png
Sur cette image on voit comment fonctionne le transport d'un mail.
Eh bien je voudrais interdire le contraire. Je veux que mon MTA puisse recevoir des mails, mais pas en envoyer. Possible ?
ArchLinux (desktop), Debian Etch (serveur)
Hors ligne
Oui c'est possible. Je pense qu'il suffit d'une regle comme celle-ci
smtpd_recipient_restrictions = reject_unauth_destination
En gros tout les destinations non autorisé sont rejeté. Celles autorisé sont celles parametré dans les variable $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains ou $virtual_mailbox_domains. Ainsi que dans $relay_domains.
Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.
Hors ligne
Oui sauf ceux qui envoyer à $mydestination (dans ton cas [email protected] ou user_bidule@localhost ou [email protected])
Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.
Hors ligne
Pages : 1