Page 1 sur 2

[iptables] imap smtp? (résolu)

Publié : ven. 26 avr. 2019, 00:46
par IHOXOHI
Yep,
Je ne trouve pas de doc pour mettre en place les règles iptables pour autoriser les connexions imap et smtp, dans le but simple de pouvoir lire mes mails.Tout le reste mis en place selon le wiki.fr fonctionne correctement et même mieux que celui sur le .org... Mais rien de serieux sur l'autorisation des connexions pour lire ses mails...
Merci pour votre aide.

Re: iptables imap smtp?

Publié : ven. 26 avr. 2019, 22:11
par IHOXOHI
Yip yop,

Pour info, la meilleure chose à tenter que j'ai trouvé pour des ports starttls:
iptables -t filter -A INPUT -p tcp --sport 587 -j ACCEPT
idem avec OUTPOUT-dport.
Ne fonctionne pas...
Autre probleme qui s'ajoute aujourd'hui pour autoriser une connexion en sFTP, qui ne fonctionne pas... Si quelq'un a une piste???...
Merci.

Re: iptables imap smtp?

Publié : ven. 26 avr. 2019, 23:15
par IHOXOHI
Bon,
Pas beaucoup de sujets là dessus... et personne pour me répondre.
Après une étude plus profonde, à priori, les protocole sFTP et StartTLS en question ne peuvent pas "tourner" avec iptables...
Je laisse le sujet ouvert si quelqu'un a une solution.
En attendant, je désactiverai iptables le temps de lire mes mails.
Mais je vais aussi me renseigner sur le "crackage" de mot de pass pour savoir si je ne fais pas un peu de parano, et qu'in fine iptables, c'est surtout pour les serveurs.

Re: iptables imap smtp?

Publié : ven. 26 avr. 2019, 23:57
par laurent85
Bonjour,
Tu as la correspondance protocole n° de port dans /etc/services, imap c'est 143, sftp c'est 115. StartTLS c'est le chiffrement de la liaison c'est indépendant du port utilisé. Laisse ton pare-feu ouvert en sortie réseau ça suffit comme protection.

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 15:28
par IHOXOHI
Bonjour Laurent,
Merci pour ton intérêt sur ce sujet qui semble peu populaire.
Si j'ai bien compris ta réponse, je ne peux en effet pas faire tourner iptables avec une adresse mail qui tourne avec starttls.
Mais ce n'est pas vraiment un problème de sécurité car la présence du pare-feu seul, même ouvert en sortie suffit.

Mais si iptables est fermé en entrée, je ne peux toujours pas lire mes mails qui ne peuvent arrivés. Non?

Merci.
PS: si tu as une bonne référence pour éclaircir ce problème de sécurité...

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 16:13
par IHOXOHI
Pour info, mon hébergeur m'indique le port 587 à utiliser pour lire mes mails et me connecter en sFTP...
Il précise que l'usage du ssl ou tls n'est pas recommandée sur ses serveurs...En gros ça ne fonctionne qu'avec starttls.

Dans ces conditions, est-ce pire de tourner avec iptables "ouvert au 4 vents", sans iptables, avec iptables configuré pour le web tout en le désactivant au besoin pour le ssh (et oui, le ssh ne passe pas non plus sur le port 22...?), le sFTP et pour lire mes mails?

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 16:55
par benjarobin
Bonjour,
Je crains que tu mélanges un peu tout...
sFTP n'est pas un protocole pour récupérer tes émail, mais un protocole de transfert de fichier (Cela passe techniquement sur une session ssh)
starttls est le moyen de promouvoir une connexion initiée en clair vers une connexion en TLS.

Maintenant la question que tu dois te poser c'est comment veux tu configurer ton par-feu, et est-ce que tu as des services qui doivent être accessible depuis l'extérieur (Par exemple un serveur Web sur le PC, ou un serveur ssh pour pouvoir contrôler à distance ton PC, ...)

Ce que je recommande personnellement :
- On bloque tout en entrée
- On ouvre juste pour les services qui doivent être accessible de l'extérieur, pour une utilisation classique / bureautique du PC, cela ne devrait pas te concerner
- Et on ouvre tout en sortie : Certes ce n'est pas très paranoïaque, mais il faut se poser la question de l’intérêt réel de fermer en sortie, car tu devra à minima ouvrir le port 80 et 443 pour la navigation Web...

Bref, peux tu donner ta configuration actuelle de iptables et ce que tu veux réellement faire ?

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 17:37
par laurent85
Mais si iptables est fermé en entrée, je ne peux toujours pas lire mes mails qui ne peuvent arrivés. Non?
Ce n'est pas le serveur de messagerie qui dépose le courrier dans ta boîte comme le ferait le facteur. C'est ton logiciel de messagerie (client) qui interroge le serveur de messagerie en utilisant le protocole imap (port 143), c'est une connexion sortante, une fois la connexion établie entre client et serveur le pare-feu ne filtre plus les entrées liées à cette connexion.

Le port 587 (submission) est celui utilisé par ton FAI pour l'envoi des mails.

Perso je trouve la manipulation des règles iptables trop compliquées pour les gérer en manuel, avec les risques que ça comporte en cas de règles mal rédigées. Je préfère confier cette tâche à un logiciel. Il y a gufw qui est simple en utilisation pare-feu sur pc.

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 17:43
par IHOXOHI
Bonjour Benjarobin,
Merci pour ton intérêt et ta clarté.
Voici le résultat de la commande iptables -L:

Code : Tout sélectionner

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  192.168.0.0/24       anywhere            
ACCEPT     tcp  --  192.168.0.14         anywhere             tcp spt:ssh ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport sports http,https,irdmi ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:submission
ACCEPT     all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain ctstate NEW,RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             192.168.0.0/24      
ACCEPT     tcp  --  anywhere             192.168.0.14         tcp dpt:ssh ctstate NEW,RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https,irdmi ctstate NEW,RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
Réalisé à partir de wiki.archlinux.fr/iptables sauf ce qui concerne la tentative de fonctionnement du port 587 pour pouvoir lire mes mails.

Pour le moment seulement internet fonctionne. Pas de ssh fonctionnel entre mes ordi. Pas de mails via serveur gandi qui veut du starttls, et pas de sFTP toujours avec le même serveur.
Ce que je souhaite:
- si possible lire mes mails, ..., sans problème.
- sinon savoir quelle est la meilleur chose à faire. Selon moi, désactiver iptables le temps de... mais je ne suis pas sûr...
Encore merci.

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 17:49
par IHOXOHI
Re-Laurent,
Merci pour ta diligence, ...
OK. Bien reçu. J'essaie de mettre en place ces régles (tout ouvert en sortie) ce soir pour voir si je peux lire mes mails, et sûrment pouvoir me connecter en sFTP et ssh.
Merci beaucoup pour ton aide.

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 17:57
par laurent85
Supprime les règles OUTPUT et laisse la politique par défaut de OUTPUT à :

Code : Tout sélectionner

Chain OUTPUT (policy ACCEPT)
target     prot opt source

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 17:58
par benjarobin
@laurent85 Non surtout pas ! C'est une faille de sécurité de faire ainsi (Je ne me rappel plus trop des détails / raisons ).

Tu as une configuration relativement paranoïaque, je préfère quelque chose de plus simple :

Code : Tout sélectionner

#!/bin/sh

# Configuration
PLAGE_LOCAL="192.168.1.0/24"

# Suppression de toutes les chaines pré-definies de la table FILTER
iptables -t filter -F

# Suppression de toutes les chaines utilisateur de la table FILTER
iptables -t filter -X

# Par défaut, toute les paquets sont détruits
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

# Autorise l'interface loopback a dialoguer avec elle-même
iptables -t filter -A OUTPUT -o lo -j ACCEPT
iptables -t filter -A INPUT  -i lo -j ACCEPT

# Autorise les connexions entrantes avec le réseau locale depuis "PLAGE_LOCAL" 
# Optionnel, voir dangereux sur un Wifi public, uniquement à utiliser pour que tous les PC de ton réseaux
# locale aient accès à l'intégralité des ports
iptables -t filter -A OUTPUT -o  -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT
iptables -t filter -A INPUT  -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT

# SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

# Autorise les connexions avec l’extérieur uniquement si elles sont initialisées par les processus locaux
iptables -A OUTPUT -p all -m conntrack ! --ctstate INVALID -j ACCEPT
iptables -A INPUT  -p all -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Suppression de toutes les chaines pré-definies de la table FILTER
ip6tables -t filter -F

# Suppression de toutes les chaines utilisateur de la table FILTER
ip6tables -t filter -X

# Par défaut, toute les paquets sont détruits
ip6tables -t filter -P INPUT DROP
ip6tables -t filter -P OUTPUT DROP
ip6tables -t filter -P FORWARD DROP

# Autorise l'interface loopback a dialoguer avec elle-même
ip6tables -t filter -A OUTPUT -o lo -j ACCEPT
ip6tables -t filter -A INPUT  -i lo -j ACCEPT

# Autorise les connexions avec l’extérieur uniquement si elles sont initialisées par les processus locaux 
ip6tables -A OUTPUT -p all -m conntrack ! --ctstate INVALID -j ACCEPT
ip6tables -A INPUT -p all -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Ping6...
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited
ip6tables -A OUTPUT -p icmpv6 -j ACCEPT
Puis il faut sauvegarder la configuration

Code : Tout sélectionner

iptables-save > /etc/iptables/iptables.rules
ip6tables-save  > /etc/iptables/ip6tables.rules 
Et enfin redémarrer et activer les services associés

Code : Tout sélectionner

systemctl restart iptables.service ip6tables.service
systemctl enable iptables.service ip6tables.service

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 18:20
par laurent85
IHOXOHI a écrit : sam. 27 avr. 2019, 17:43

Code : Tout sélectionner

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  192.168.0.0/24       anywhere            
ACCEPT     tcp  --  192.168.0.14         anywhere             tcp spt:ssh ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport sports http,https,irdmi ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:submission
ACCEPT     all  --  anywhere             anywhere            
Attention ta règle 6 ouvre ton pare-feu à tout vent :o
benjarobin a écrit : sam. 27 avr. 2019, 17:58 @laurent85 Non surtout pas ! C'est une faille de sécurité de faire ainsi (Je ne me rappel plus trop des détails / raisons ).
D'où ma remarque qu'iptables en manuel c'est pas pour moi :mrgreen:

Re: [iptables] imap smtp?

Publié : sam. 27 avr. 2019, 18:29
par benjarobin
Euh, en effet je n'avais pas fait attention, je n'aime pas trop ce format d'affichage, mais c'est la règle 6, la dernière ?
Edit: Tu as corrigé juste à temps :-)

Re: [iptables] imap smtp?

Publié : dim. 28 avr. 2019, 01:02
par IHOXOHI
Yip,
Super cooooolll!!!!
Les règles de Benjarobin fonctionnent, sauf pour le sFTP ; cela doit sûrement venir du port starttls; lol.
La configuration d'iptables me semble pleine de subtiles nuances, qui peuvent être déterminantes. Et je n'ai pas trouvé de doc claire sur le sujet... cela rends vos conseils précieux.
Merci pour votre aide.

Re: [iptables] imap smtp? (résolu)

Publié : dim. 28 avr. 2019, 10:05
par benjarobin
C'est quoi qui ne fonctionne pas ? Car je crains que ta phrase n'ait pas trop de sens...

Si la connexion ssh distante fonctionne alors la connexion SFTP devrait aussi.
Le problème c'est que tu ne donnes aucun contexte, aucun exemple de commande non fonctionnel...

Re: [iptables] imap smtp? (résolu)

Publié : dim. 28 avr. 2019, 10:32
par IHOXOHI
Bonjour Benj,
Encore merci pour ton intérêt et ta générosité. Le plus important est que je peux lire mes mails et dialoguer avec "mes ordi" en ssh sans avoir a désactiver iptables. Pour le sFTP, c'est moins important, mais cela reste très intéressant.
Donc, pour être plus précis concernant le sFTP. Cela ne fonctionne pas avec iptables, et fonctionne sans iptables. Une fois la première connexion établlie sans iptables avec echange de clés entre ordi et serveur, retentative de nouvelle connexion avec iptables, mais ne fonctionne toujours pas, avec toujours le simple message : ERREUR inactivité > 20 sec...deconnexion.
J'ai lu "quelque part" que starttls ne fait pas bon ménage avec iptables, peut être est ce la cause, mais très peu de doc la dessus.
Comment fais-tu pour approfondir tes connaissances sur ce sujet?
Merci Benj.

Re: [iptables] imap smtp? (résolu)

Publié : dim. 28 avr. 2019, 11:08
par benjarobin
Qu'est ce que tu appels sFTP ? Pour toi à quoi sert sFTP ? Pourquoi parles tu de starttls ? Comment réalises tu ta connexion sFTP , avec quel logiciel, quelle configuration (port, ...) ? Quel est le service systemd associé que tu as activé pour le "sFTP" ?
Car une connexion sFTP cela passe par ssh normalement (sur le port 22), donc si ssh fonctionne alors sFTP aussi...

Edit: Tu ne voudrais pas parler de smtp ???? Tu as un serveur de mail chez toi ? Si oui il suffit d'ouvrir le port associé de la même manière que pour ssh...

Re: [iptables] imap smtp? (résolu)

Publié : dim. 28 avr. 2019, 12:31
par IHOXOHI
Yop,
Je n'ai pas de serveur de mail chez moi. Les infos données par mon hébergeur : "Simple Hosting ne prend en charge que le protocole sFTP, qui est plus sûr que le FTP classique. Lors de la configuration de votre client, notez que sFTP utilise port 22, qui est le port standard pour les connexions sFTP, et non le port 21, qui est utilisé par FTP régulier."
Pour moi sFTP c'est du FTP "sécurisé" (a priori par le bais de création de clé pour le cryptage qui doivent être échangées entre serveur et client). Il me semble qu'il y a là un lien avec la "sécurisation nommée starttls" vis à vis du tls.
Je réalise ma connexion avec filezilla. Comme indiqué dans mes règles iptables avec le port 22. Tout fonctionne sans iptables activé.
Je n'ai activé aucun service systemd. Je vais me renseigné la dessus...
Par ailleurs, j'utilise fréquement elinks comme navigateur-web qui ne répond plus correctement sur certains sites, notamment celui-ci (wiki.archlinux), ..., étrange, ..., cela doit venir d'une boucle entre les serveurs, lol.
Merci.

Re: [iptables] imap smtp? (résolu)

Publié : dim. 28 avr. 2019, 12:39
par benjarobin
Ok, maintenant que l'on est sûr de parler de la même chose, peux tu donner la sortie en root de :

Code : Tout sélectionner

iptables-save
Car il n'y a aucune raison pour que cela ne fonctionne pas... Tu cherches à sortir et normalement on autorise tout en sortie...
Tu ne l'avais pas précisé, je croyais que tu cherchais à joindre un service en entrée

Peux tu donne la configuration de Filezilla... Normalement tu dois avoir :
  • Protocole : SFTP - SSH File Transfer Protocol
  • Hôte : Le nom de domaine de ton serveur chez ton hébergeur
  • Port : 22