Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/04/2014, à 22:52

Tuxophile

[Résolu] [iptables] Utiliser un serveur mail distant

Bonjour à tous,

Je reviens vers vous pour un énième problème avec mes règles iptables.

J'ai un réseau local avec une passerelle qui fait routeur et firewall..
Sur l'un des clients de mon réseau, j'ai installé en localhost le CMS joomla pour développer un site internet.
Dans les configs du CMS j'ai configuré les options mails pour envoyer des Emails depuis le site localhost:

- Serveur de mail : SMTP
- Port SMTP : 465
- Serveur SMTP : mail.gandi.net
- Utilisateur : ********
- password : ******

Depuis mon site en localhost j'ai un message d'erreur "connexion SMTP impossible".
J'ai testé cette config sur un ordinateur en dehors de mon réseau, ça fonctionne sans problème.
C'est donc bien mon firewall qui bloque.

Sur la passerelle j'ai les règles suivantes:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  192.168.0.0/24       anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  192.168.0.0/24       anywhere
ACCEPT     tcp  --  anywhere             192.168.0.2          tcp dpt:ftp
ACCEPT     tcp  --  anywhere             192.168.0.2          tcp dpts:55536:55663
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain logdeny (0 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             LOG level warning prefix "PYX-firewall:"
DROP       all  --  anywhere             anywhere

Mon interprétation du problème:
J'ai un poste client de mon réseau qui cherche à communiquer sur le port 465 de la machine mail.gandi.net.
Il me faut donc lui ouvrir le port 465 sur la table FORWARD de la passerelle :

 $IPTABLES -t filter -A FORWARD -p tcp --dport 465 -j ACCEPT

Maintenant, j'ai bien la règle suivante qui s'est ajouté à ma table FORWARD

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssmtp

Malheureusement l'envoi de mail ne fonctionne toujours pas.
Est ce que mon interprétation du pb est mauvaise? Qu'en pensez vous?

Merci pour votre aide

Dernière modification par Tuxophile (Le 08/04/2014, à 16:53)

Hors ligne

#2 Le 07/04/2014, à 23:26

Zakhar

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Ce que tu cherches à faire n'est pas très clair.

Une fois que tu auras mieux posé le problème... je suis quasi sûr que tu auras trouvé la solution toi même parce que ça va devenir évident !

Par contre, est-ce que je fais une erreur... mais tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 07/04/2014, à 23:49

compte supprimé

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Ce me semble correct à première vu, malgré que j'aurai vu cette règle dans INPUT et non FORWARD. Ceci dit, si ce que je viens de dire est bancal et que tu le sais déjà, il faudrait t'intéresser sur (le) ou les autres pares-feu d'installé(s) entre ton réseau local et l'internet. Aussi le port SMTP 465 est un port sécurisé(SSL), le port SMTP 25(sans ahtentification ou 587 avec authentification)  pourrait prendre le relais en attendant non ? Voir ici ce qu'ils disent sur les ports smtp 25 et 587 et leurs dérivés : https://fr.wikipedia.org/wiki/Simple_Ma … r_Protocol

A ce lien au dessus, voir l'encadré appelé et titré "Principes d'envoi"

Dernière modification par -pascal34- (Le 07/04/2014, à 23:51)

#4 Le 08/04/2014, à 00:02

compte supprimé

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Je vois que tu as aussi ça dans INPUT :

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Tu peux pas y faire une règle qui dirait ça en gros :

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp


Faire ça sans faire ce que j'ai dit dans mon tout premier message de ta discussion au dessus of course !

#5 Le 08/04/2014, à 08:20

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Salut,

Commençons par le commencement...

Si tu tentes une connexion avec telnet sur le port en question, ça passe ou ça ne passe pas ?
À partir du client en question :

telnet mail.gandi.net 465

Ça dit connexion refusée ou autre chose ?
Si ça ne rend pas la main, c'est que ton problème est ailleurs : tu es connecté.
Si ça rend la main avec une erreur de connexion, tu peux ajouter ce qui va bien pour logger les blocages et ensuite tu devrais avoir une trace dans les logs de la passerelle pour voir dans quel contexte c'est bloqué.

-----

Maintenant, pour réagir sur les autres réponses...

Zakhar a écrit :

tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.

Ça dépend, il n'a pas fait ça en mode verbose. Il y a pas mal d'éléments qu'on ne voit pas sur une sortie simple. Pour être sûr que tu es dans le vrai, il faudrait le retour de :

sudo iptables -vnL

Donc à ça je répondrais : ptet ben qu'oui, ptet ben qu'non.

-pascal34- a écrit :

j'aurai vu cette règle dans INPUT et non FORWARD

Bien sûr que non ! Il n'essaie pas de se connecter à sa passerelle, il essaie de se connecter à un serveur tiers, de l'autre côté de la passerelle, c'est donc bien une règle FORWARD.


-----

Par contre, ces règles me dérangent un peu car elles fonctionnent en "anywhere to anywhere". C'est toujours un peu difficile de travailler directement avec iptables.
Je te conseille d'installer Shorewall sur ta passerelle, ce serait plus efficace et plus simple à gérer (une fois le fonctionnement de Shorewall compris).
Si Shorewall t'intéresse et que tu veux une bonne doc, le prochain « Linux Pratique » contiendra un article à ce propos, écrit de ma main (enfin... de mes deux mains... sur mon clavier).

Hors ligne

#6 Le 08/04/2014, à 08:59

compte supprimé

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Mmmmm, ou alors mettre la ligne qui suit dans FORWARD ? (je tatonne hein, je ne suis pas encore un spécialiste, j'apprends wink ).

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp

#7 Le 08/04/2014, à 09:02

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Non, car il ne veut pas se connecter au port SMTP (port 25), il veut accéder au port 465.

Hors ligne

#8 Le 08/04/2014, à 11:34

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Bonjour et merci pour toutes vos réponses

tiramiseb a écrit :

À partir du client en question :

telnet mail.gandi.net 465

Ça dit connexion refusée ou autre chose ?
Si ça ne rend pas la main, c'est que ton problème est ailleurs : tu es connecté.
Si ça rend la main avec une erreur de connexion, tu peux ajouter ce qui va bien pour logger les blocages et ensuite tu devrais avoir une trace dans les logs de la passerelle pour voir dans quel contexte c'est bloqué.

Pour information mon client tourne sous windows 7. Après activation du protocole telnet, j'ai le résultat suivant:

Connecting To 465...Could not open connection to the host, on port mail.gandi.net: Connect failed
tiramiseb a écrit :

Zakhar a écrit :

    tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.

Ça dépend, il n'a pas fait ça en mode verbose. Il y a pas mal d'éléments qu'on ne voit pas sur une sortie simple.

En effet, je n'ai pas tout détaillé...
Voici un extrait de la réponse à un

sudo iptables -vnL

(Désolé pour la mise en forme)

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  128 31773 ACCEPT     all  --  bridge_local *       192.168.0.0/24       0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:465
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.0.2          tcp dpt:21
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.0.2          tcp dpts:55536:55663
  146 11762 ACCEPT     all  --  eth_adsl bridge_local  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  bridge_local eth_adsl  0.0.0.0/0            0.0.0.0/0

En théorie je ne devrai pas avoir besoin d'ouvrir le FORWARD sur le port 465...
Examinez les 2 dernières règles:

  146 11762 ACCEPT     all  --  eth_adsl bridge_local  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  bridge_local eth_adsl  0.0.0.0/0            0.0.0.0/0

La 2ème accepte de "fowarder" toutes les connexions provenant du réseau local (interface:bridge_local) et à destination d'internet (interface:eth_adsl)
La 1ère accepte de "forwarder"  (dans le sens internet vers réseau local) toutes les connexions déjà existante ayant été initialisée par un poste local.

Qu'est ce que vous en pensez?

Dernière modification par Tuxophile (Le 08/04/2014, à 11:37)

Hors ligne

#9 Le 08/04/2014, à 11:42

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Pour information mon client tourne sous windows 7. Après activation du protocole telnet, j'ai le résultat suivant:

Connecting To 465...Could not open connection to the host, on port mail.gandi.net: Connect failed

Tu as utilisé exactement la commande que j'ai donnée ? "telnet mail.gandi.net 465" ? Sous Windows, il faut séparer l'hôte du port avec un ":", donc :

telnet mail.gandi.net:465

En théorie je ne devrai pas avoir besoin d'ouvrir le FORWARD sur le port 465...

Je suis tout à fait d'accord.
C'est pour ça que le test avec telnet est important, pour mettre hors de cause le pare-feu (ou alors pour se creuser la tête longuement car là je ne vois pas pourquoi ça bloquerait).

La 2ème accepte de "fowarder" toutes les connexions provenant du réseau local (interface:bridge_local) et à destination d'internet (interface:eth_adsl)
La 1ère accepte de "forwarder"  (dans le sens internet vers réseau local) toutes les connexions déjà existante ayant été initialisée par un poste local.

Qu'est ce que vous en pensez?

C'est une bonne configuration.

Hors ligne

#10 Le 08/04/2014, à 12:03

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

tiramiseb a écrit :

Tu as utilisé exactement la commande que j'ai donnée ? "telnet mail.gandi.net 465" ? Sous Windows, il faut séparer l'hôte du port avec un ":", donc :

telnet mail.gandi.net:465

En effet le message semble plus logique mais il ya toujours un blocage:

Connecting To 465...Could not open connection to the host, on port 23: Connect failed

Je vais suivre ton conseil et regarder  si c'est pas le firewall de windows 7 sur le poste local qui pose problème.

Edit : Après désactivation du firewall j'ai toujours le message d'erreur :

Connecting To 465...Could not open connection to the host, on port 23: Connect failed

Dernière modification par Tuxophile (Le 08/04/2014, à 12:08)

Hors ligne

#11 Le 08/04/2014, à 12:14

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Connecting To 465...Could not open connection to the host, on port 23: Connect failed

Là ta machine essaie de se connecter à une machine appelée "465", sur le port 23 (port par défaut de telnet).
C'est comme si tu avais simplement tapé :

telnet 465

Hum, ma mémoire me joue-t-elle des tours ? En cherchant sur Google je vois que même sur Windows c'est l'espace qui doit séparer le nom de l'hôte et le numéro de port.
Par exemple sur https://support.terranetwork.net/web/kn … ccess.html

Bon, là il s'agit d'un problème d'utilisation de la commande telnet sous Windows, je ne suis pas vraiment compétent pour t'aider comme ça "de tête"... Il faut trouver comment cette commande s'utilise sous Windows...


-----

Sinon, un truc vient de me passer par la tête, en relisant ton premier message : as-tu bien configuré Joomla pour utiliser le serveur SMTP avec SSL/TLS (SMTPS) ?

Hors ligne

#12 Le 08/04/2014, à 12:18

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

tiramiseb a écrit :

Il faut trouver comment cette commande s'utilise sous Windows...

Ok, je vais creuser le sujet et je reviens vers toi

Edit: Enfait la commande exacte était bien 

telnet mail.gandi.net 465

Après désactivation du firewall de windows, je crois comprendre que la connexion fonctionne.
Je n'ai plus la main et je suis devant un écran avec le caractère "_" clignotant.
Bon du coté de Joomla, j'ai toujours le même message d'erreur : "Impossible de connecter par SMTP"

Mais ça vient peut être d'une config au niveau du CMS. Je continue à creuser.

Dernière modification par Tuxophile (Le 08/04/2014, à 12:31)

Hors ligne

#13 Le 08/04/2014, à 12:38

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Comme expliqué dans mon post précédent, Je n'ai plus de message d'erreur.
Après avoir tapé la commande telnet,  je me retrouve devant un écran avec le caractère "_" clignotant.
Passé un certain temps l'invite de commande réapparaît sans message particulier.

Est ce un comportement normal?

Dernière modification par Tuxophile (Le 08/04/2014, à 12:45)

Hors ligne

#14 Le 08/04/2014, à 12:46

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Après avoir tapé la commande telnet,  je me retrouve devant un écran avec le caractère "_" clignotant.

Donc au niveau du réseau tout fonctionne bien.
telnet s'est connecté au port en question et attend soit que tu tapes des choses (qui seront envoyées au serveur distant) soit de recevoir des choses du serveur.

Je reviens donc à ma question en #11 à laquelle tu n'as pas répondu :
as-tu bien configuré Joomla pour utiliser le serveur SMTP avec SSL/TLS (SMTPS) ?

Hors ligne

#15 Le 08/04/2014, à 13:07

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

tiramiseb a écrit :

as-tu bien configuré Joomla pour utiliser le serveur SMTP avec SSL/TLS (SMTPS) ?

Affirmatif.

Voici la config joomla:
- Serveur de mail : SMTP
- Identification SMTP : Oui
- Sécurité SMTP : SSL
- Port SMTP : 465
- Serveur SMTP : mail.gandi.net
- Utilisateur : ********
- password : ******

Hors ligne

#16 Le 08/04/2014, à 13:15

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Mh... Là j'ai pas d'autre idée. Au niveau du pare-feu c'est ok si le telnet à partir de la machine sur laquelle est installé joomla fonctionne.
Et pour Joomla je n'y connais pas grand chose, le réglage que tu montres semble correct.


PS : Joomla sur Windows, tu aimes souffrir ?

Hors ligne

#17 Le 08/04/2014, à 13:25

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

tiramiseb a écrit :

Mh... Là j'ai pas d'autre idée. Au niveau du pare-feu c'est ok si le telnet à partir de la machine sur laquelle est installé joomla fonctionne.
Et pour Joomla je n'y connais pas grand chose, le réglage que tu montres semble correct.

Oui je continue à investiguer et je te tiens au courant. Mille fois merci pour ton aide smile

tiramiseb a écrit :

PS : Joomla sur Windows, tu aimes souffrir ?

Et si je te dis que j'envisage une migration vers windows 8... ça répond à ta question sur mon coté un peu maso ;-).
Une chose est sure : la passerelle restera sous linux!

Dernière modification par Tuxophile (Le 08/04/2014, à 13:26)

Hors ligne

#18 Le 08/04/2014, à 13:28

Zakhar

Re : [Résolu] [iptables] Utiliser un serveur mail distant

tiramiseb a écrit :
Zakhar a écrit :

tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.

Ça dépend, il n'a pas fait ça en mode verbose. Il y a pas mal d'éléments qu'on ne voit pas sur une sortie simple. Pour être sûr que tu es dans le vrai, il faudrait le retour de :

sudo iptables -vnL

Oops oui ! Comme je mets toujours le -v dans mon listage d'iptables, je présumais qu'il y était. wink


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#19 Le 08/04/2014, à 13:48

tiramiseb

Re : [Résolu] [iptables] Utiliser un serveur mail distant

je présumais qu'il y était

Et tu n'as pas vu qu'il manquait des colonnes tongue

Hors ligne

#20 Le 08/04/2014, à 16:51

Tuxophile

Re : [Résolu] [iptables] Utiliser un serveur mail distant

Ok après désactivation du firewall sur le poste local, le problème venait en fait de mon serveur web WAMP qui tourne en localhost.
Il fallait activer l'extension "php_openssl.dll" dans le fichier php.ini pour gérer la com en SSL.

On est donc bien loin des règles iptables sur ma passerelle.
Merci beaucoup à tiramiseb pour son aide et sa patience wink

Hors ligne