[Résolu]Comment blocker le port25 en dehors du server mail

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

[Résolu]Comment blocker le port25 en dehors du server mail

Messagepar Mat1905 » 17 Nov 2008 10:44

Bonjour à tous,

Je solicite votre aide car je suis dans une impasse.

Je résume la situation:

J'utilise un routeur ipcop avec pour ip sur l'etho 10.9.8.13
un serveur mail postfix 10.9.8.3
Les postes clients winxp sont en 10.9.8.0/24

Par defaut ipcop block le port 25 (en forwardant ce port ds l'interface admin d'ipcop tt fonctionne mais ce n'est pas la solution).
Pour éviter d'etre un open-relay pour les spams il me faut bloker tout le traffic sur le port 25 en dehors du serveur mail. Chose que l'on ne peut pas ajouter avec l'interface admin, pour y remedier il y a un fichier /etc/rc.d/rc.firewall.local qui nous permet de faire du custom forward. En faisant plusieurs recherches je suis tombé sur ce site Block SMTP traffic not from mail server on ipcop | SubVS.co.uk qui decrit mon probleme y compris le blackinglist auquel je suis soumis et la solution.

Dans le fichier rc.firewall.local j'ajoute ces lignes:

# allow smtp from some allowed ips
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s 10.9.8.0/24 --dport 25 -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s 10.9.8.0/24 --dport 465 -j ACCEPT
# log stuff that is not the mail server
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! 10.9.8.3 --dport 25 -j LOG --log-prefix "SMTP"
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! 10.9.8.3 --dport 465 -j LOG --log-prefix "SMTP-SSL"
# block all other outgoing SMTP traffic
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! 10.9.8.3 --dport 25 -j REJECT
/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! 10.9.8.3 --dport 465 -j REJECT

Le port 465 ne m'interesse pas pour le moment.

Probleme: en faisant ca l'envoi marche bien mais impossible de recevoir un mail de l'exterieur.

Le log ne fonctionne pas car il n'y a pas de /var/log/SMTP apres un envoi et une reception de mail.

Si vraiment je suis dans une impasse je peux toujours blocker le port25 et utiliser un autre port pour les mails.dans ipcop c'est simple à faire je fais un forward ip source all port source 25 ip destination mon.serveur.mail port destination xxxx. Il me reste à faire écouter mon postfix sur ce meme port et je crois que ca se passe dans le /etc/postfix/master.cf l16 #submission inet n - - - - smtpd ????

J'espère avoir été le plus clair possible sinon n'hésite pas à me poser des questions.

Merci d'avance pour votre aide.
Dernière édition par Mat1905 le 26 Nov 2008 09:37, édité 1 fois au total.
Mat1905
Matelot
Matelot
 
Messages: 6
Inscrit le: 17 Nov 2008 10:38
Localisation: Cambodge

Messagepar ccnet » 17 Nov 2008 11:12

Pour éviter d'etre un open-relay pour les spams il me faut bloker tout le traffic sur le port 25 en dehors du serveur mail.


Vous mélanger tout. Empêcher le relayage n'est pas un problème de fermeture de port. Un serveur Postfix correctement configurer, et en configuration de base, n'autorise pas le relayage.

Je vous invite à prendre connaissance de la documentation de Postfix et en particulier des notes contenus dans le fichier main.cf.

Code: Tout sélectionner
# The relay_domains parameter restricts what destinations this system will
# relay mail to.  See the smtpd_recipient_restrictions description in
# postconf(5) for detailed information.
#
# By default, Postfix relays mail
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
# - from "untrusted" clients to destinations that match $relay_domains or
#   subdomains thereof, except addresses with sender-specified routing.
# The default relay_domains value is $mydestination.
#
# In addition to the above, the Postfix SMTP server by default accepts mail
# that Postfix is final destination for:
# - destinations that match $inet_interfaces or $proxy_interfaces,
# - destinations that match $mydestination
# - destinations that match $virtual_alias_domains,
# - destinations that match $virtual_mailbox_domains.
# These destinations do not need to be listed in $relay_domains.


Ce qui est prudent (indispensable en fait) c'est de contrôler le trafic sortant avec précision en utilisant BOT sur Ipcop. Limiter à la seule machine Postfix le trafic vers le port 25 est souhaitable. De même il est souhaitable de placer votre serveur Postfix en Dmz et non dans le lan Green.

Etablir un transfert de port vers le port 25 de Postfix est la bonne méthode pour recevoir vos mail et cela n'a aucun rapport avec le relayage.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris

Messagepar ccnet » 17 Nov 2008 11:22

Pour éviter d'etre un open-relay pour les spams il me faut bloker tout le traffic sur le port 25 en dehors du serveur mail. Chose que l'on ne peut pas ajouter avec l'interface admin,


Là encore vous avez mal compris le fonctionnement d'Ipcop, la nature du relayage et le problème du spam.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris

Re: Comment blocker le port25 en dehors du server mail

Messagepar slyfennec » 17 Nov 2008 17:14

Mat1905 a écrit:J'utilise un routeur ipcop avec pour ip sur l'etho 10.9.8.13
un serveur mail postfix 10.9.8.3


je pense que là aussi il y a un problème...
Avatar de l’utilisateur
slyfennec
Major
Major
 
Messages: 82
Inscrit le: 09 Mars 2004 01:00
Localisation: Lille

Messagepar ccnet » 17 Nov 2008 17:26

Il y a au moins un problème parce que nous ne savons pas si eth0 est Red ou Green. Mais comme j'en ai un peu marre de demander à chaque post la config réseau exacte comme il est conseillé de le faire lors de toutes demandes, je suppose maintenant, sauf lorsque c'est énorme, que la personne sait ce qu'elle écrit. Lorsque je vois aligner toute une série de commandes iptables, j'ai la naiveté de penser que la personne sait de quoi elle parle avec Eth0. J'ai peut être bien tort finalement.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris

Messagepar Mat1905 » 18 Nov 2008 06:30

Merci pour vos réponses :)

Effectivement je ne pensais pas a devoir préciser que eth0 et le green vu l'ip privée que je spécifie.

J'ai déjà installé ipcopfilter + BOT je vais mis plonger plus sérieusement pour controler le traffic smtp pour le moment quand je les actives soit je n'ai plus l'envoi soit plus la reception de mail.

Je ne suis pas un As en postfix mais il est clair au vu de ce que vous me dites qu'il y a des choses à faire de ce coté.

Seulement je ne sais pas encore comment limiter le traffic smtp à postfix dans BOT ni d'ailleurs dans le main.conf

Faire un green+orange+red est idéal mais j'ai repris un réseau d'entreprise dans la config green+red et ils sont blacklisté chez Spamhaus (cbl) donc le temps ne joue pas en ma faveur car sa rale derriere :roll:

Autres questions, Puis-je faire confiance a ce type de site qui me permet de savoir si je suis un open relay? http://www.spamhelp.org/shopenrelay/shopenrelaytest.php (pour le moment il me dis que je n'en suis pas un).
Il m'a été indiqué par cbl.
Mat1905
Matelot
Matelot
 
Messages: 6
Inscrit le: 17 Nov 2008 10:38
Localisation: Cambodge

Messagepar ccnet » 18 Nov 2008 11:57

Effectivement je ne pensais pas a devoir préciser que eth0 et le green vu l'ip privée que je spécifie.

De nombreux utilisateurs ont par exemple des livebox Orange. Cette box ne peut pas fonctionner en pont mais uniquement en routeur avec nat. Pour eux, l'ip sur Red est aussi dans une plage privée. Voilà pourquoi.
J'ai déjà installé ipcopfilter + BOT

Je ne suis pas certain de bien comprendre. Sur ipcop vous avez installé Copfilter ?

Seulement je ne sais pas encore comment limiter le traffic smtp à postfix dans BOT ni d'ailleurs dans le main.conf

Le fichier de configuration est main.cf.
En fait les choses sont assez simples. Je suppose que la machine Postfix est celle qui reçoit les mails directement dans votre cas.
1. L'installation basique de Postfix vous donne une configuration qui n'accepte pas le relayage, qui ne reçoit les mails que pour votre domaine, et qui n'envoie les mails pour d'autres domaines qu'à partir des expéditeurs du réseau de confiance ("trusted" clients (IP address matches $mynetworks). Postfix de base n'est donc pas un relais ouvert.
2. Au niveau d'Ipcop vous paramétrez un transfert de port depuis RED pour le port 25 vers 10.9.8.3.
3. Dans BOT vous autorisez 10.9.8.3 vers 25:any uniquement.
Cette configuration, incorrecte à mon avis en terme d'architecture, vous protège des problèmes de relayage. En d'autres termes votre serveur, dans cette configuration, ne peut pas être utilisée pour diffuser du spam. Vous n'êtes pas un "open relay".
Il n'est donc pas nécessaire de modifier rc.firewall.local.

Ensuite il y a le problème de l'architecture, de la protection des utilisateurs de la messagerie contre le spam et les virus. La solution consiste à utiliser une dmz avec pour règle de base : toutes les machines recevant du trafic externe (connexion SYN venant d'internet) seront placées en dmz. On place un relais smtp en dmz qui assurera le traitement antispam et antivirus. Puis les mails reçu sont transférés au serveur de messagerie interne. Je ne rentre pas dans le détail du traitement antispam. C'est l'architecture de base si l'on décide se disposer de son propre serveur de mails en face d'internet plutôt que de recourir aux services d'un hébergeur.

Autres questions, Puis-je faire confiance a ce type de site qui me permet de savoir si je suis un open relay? http://www.spamhelp.org/shopenrelay/shopenrelaytest.php (pour le moment il me dis que je n'en suis pas un).

Les sites de blacklist ne s'autorisent que d'eux mêmes. A un moment donné ils font un test ou pire acceptent les "dénonciations" fondées ou non. Vous ne devez faire confiance qu'à vos tests, puis contacter tout ceux qui vous placé en blacklist pour en sortir une fois que vous avez validé votre configuration. Certaines blacklist ne sont pas pertinentes du tout. Si le site réalise un test en ligne sur votre configuration a priori vous pouvez lui faire confiance. La première référence c'est d'abord votre travail d'administrateur.
Consultez ce fil où JDH fourni de nombreux éclairages judicieux sur ces questions. http://forums.ixus.fr/viewtopic.php?t=41475&postdays=0&postorder=asc&start=15
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris

Messagepar Mat1905 » 18 Nov 2008 18:13

J'ai bien lu tes reponses qui sont somme toutes tres claire :wink:

Tout d'abord je m'excuse pour ces erreurs d'etourderies style main.conf au lieu de main.cf ou ipcopfilter a la place de Copfilter a chaque fois que je post ici il est 23h-00h :oops:
Je travaille au Cambodge et je ne connaissais pas ces histoires de config pour les box.

1 effectivement c'est ce que j'ai lu pour la config de base postfix cependant il etait deja installé quand je suis arrivé donc je reprends ligne par ligne et j'y ai fais pas mal de modif pour ces histoires de relayages et y ajouté beaucoup de regle anti-spam.

J'ai lu qu'il ne fallait pas mettre (dans main.cf) inet_interfaces = all
mais inet_interfaces = $myhostname, localhost ce que j'ai fait :?:

2 transfert de port25 vers 10.9.8.3 c'etait fait

3 BOT me pose toujours des soucis de config pour authoriser de 10.9.8.3 vers 25 :any uniquement
Comment editer cette regle correctement car meme sans cette regle tout passe :?:

J'ai tellement editer le fichier rc.firewall.local que je ne me rappel plus la config qu'il doit avoir apres l'installation de BOT je vous le copie:

# Used for private firewall rules

# See how we were called.
case "$1" in
start)
## add your 'start' rules here

#Added for BlockOutTraffic start - BEGIN
# /sbin/iptables -N BOT_INPUT
# /sbin/iptables -N BOT_FORWARD
# /sbin/iptables -A CUSTOMINPUT -j BOT_INPUT
# /sbin/iptables -A CUSTOMFORWARD -j BOT_FORWARD
# /usr/local/bin/setfwrules
#Added for BlockOutTraffic start - END

# COPFILTER START - do not modify
/etc/rc.d/init.d/copfilter_proxsmtpd config_fwrules
# COPFILTER END - do not modify

;;
stop)
## add your 'stop' rules here
#Added for BlockOutTraffic stop - BEGIN
# /sbin/iptables -D CUSTOMINPUT -j BOT_INPUT
# /sbin/iptables -D CUSTOMFORWARD -j BOT_FORWARD
# /sbin/iptables -F BOT_INPUT
# /sbin/iptables -F BOT_FORWARD
# /sbin/iptables -X BOT_INPUT
# /sbin/iptables -X BOT_FORWARD
#Added for BlockOutTraffic stop - END

;;
reload)
$0 stop
$0 start
## add your 'reload' rules here
;;
*)


Pour le dmz j'ai bien compris son interet je m'y plongerais dessus plus tard.

Bonne nuit à vous et encore merci.
Mat1905
Matelot
Matelot
 
Messages: 6
Inscrit le: 17 Nov 2008 10:38
Localisation: Cambodge

Messagepar ccnet » 18 Nov 2008 20:37

Si je comprend bien vous avez installé Copfilter. Je ne suis pas pour cette solution. J'ai dit pourquoi (JDH aussi ) à plusieurs reprises sur ce forum. Sur ce fil par exemple : http://forums.ixus.fr/viewtopic.php?t=4 ... =copfilter

J'ai tellement editer le fichier rc.firewall.local que je ne me rappel plus la config qu'il doit avoir apres l'installation de BOT je vous le copie:

C'est exactement pour cette raison que je déconseille systématiquement de faire avec ipcop autre chose que ce pour quoi il est prévue avec son interface d'administration. Vous n'avez pas fait de backup avant les modifications ? Ne pas modifier ce fichier (rc.firewall.local) n'est pas un dogme intouchable, mais cela exige une documentation bien suivie.
J'espère que quelqu'un pourra vous donner rapidement l'état de ce fichier. Je ne pourrai pas le faire avant 2 ou 3 jours. C'est un peu le même problème pour Postfix, néanmoins main.cf reste très lisible même modifié.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité