#1 Le 24/08/2022, à 14:47
- hlander42
Accès SSH avec iptables
Bonjour
Je rencontre un problème que je n'explique pas.
J'essai de faire un accès SSH à partir du serveur1 vers le serveur2.
Le serveur1 à iptables d'activé.
Le port ssh du serveur2 est le 22
je ne vais pas mettre tout le fichier car avec ces 2 lignes
iptables -A INPUT -p tcp -i ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -j ACCEPT
Tout fonctionne parfaitement
mais j'aimerais aussi limité la partie -o à la meme adresse IP, avec
iptables -A INPUT -p tcp -i ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 s IP_SERVEUR2 -j ACCEPT
Et la le terminal ne répond jamais et aucun message non plus.
Avez vous une idée ou une explication ?
Hors ligne
#2 Le 24/08/2022, à 19:16
- Vobul
Re : Accès SSH avec iptables
Pourquoi t'embêter avec iptables alors que "ufw" existe ?
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 24/08/2022, à 20:13
- diesel
Re : Accès SSH avec iptables
Alors,
Lorsqu'une machine cherche à faire du ssh avec une autre :
Les paquets en sortie (OUTPUT) ont un port source (sport) supérieur à 1024, choisi une fois pour toutes pour l'ensemble de la session ssh et un port destination (dport) égal à 22
Les paquets en entrés (INPUT) ont un port source (sport) égal à 22 et un port destination (dport) supérieur à 1024. En fait celui qui a été utilisé pour les paquets en sortie de la session.
Il te faut adapter tes règles en conséquence. Ta règle INPUT (sur serveur1) avec un "--dport 22" n'est pas bonne. elle devrait contenir un "--sport 22".
Utiliser iptables, c'est bien mais il faut bien maîtriser les protocoles utilisés au risque de faire n'importe quoi et avoir des problèmes de fonctionnement ou obtenir une passoire au final.
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 24/08/2022, à 20:16)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#4 Le 25/08/2022, à 07:14
- hlander42
Re : Accès SSH avec iptables
Bonjour et merci pour vos retours
Je vais regarder ufw
mais j'aimerais comprendre tout de même
donc
iptables -A INPUT -p tcp -i ens32 --sport 22 -s IP_SERVEUR2 -j ACCEPT ==> comme d'ailleurs avec dport
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -j ACCEPT
Mais c'est surtout le OUTPUT le pb, car si
iptables -A INPUT -p tcp -i ens32 --sport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
OU
iptables -A INPUT -p tcp -i ens32 --sport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --sport 22 -s IP_SERVEUR2 -j ACCEPT
Les 2 ne marche pas !
Hors ligne
#5 Le 25/08/2022, à 07:51
- iznobe
Re : Accès SSH avec iptables
Bonjour.
je ne vais pas mettre tout le fichier car avec ces 2 lignes
si tu dis cela c' est que tu n' as pas compris comment fonctionne iptables .
l ' ordre des regles est important
il suffit d' avoir un drop global en dessous pour que ca ne marche pas .
il faut donc donner toutes les règles .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#6 Le 25/08/2022, à 08:14
- hlander42
Re : Accès SSH avec iptables
je ne comprends en effet pas votre remarque
Car la différence entre le fichier OK et celui qui ne fonctionne pas est uniquement l'ajout de IP du serveur2
Et je n'ai aucun autre règle sur le port 22 ou sur cette IP
Hors ligne
#7 Le 25/08/2022, à 08:39
- hlander42
Re : Accès SSH avec iptables
Voici tout de même mon fichier de test en intégralité
Le SERVEUR1 utilise le port 11122 pour le SSH
le SERVEUR2 utilise le port 22 pour le SSH
iptables -t filter -F
iptables -t filter -X
echo "Regles existantes supprimees."
# On refuse toutes les connexions
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo "Refuser toutes les connexions"
# On autorise les connexions déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "Autorite les connexion deja etablies"
# On autorise le loop-back (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo "Autorise le loop-back"
########## SSH #############
iptables -A INPUT -p tcp -i ens32 --dport 11122 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 11122 -j ACCEPT
iptables -A INPUT -p tcp -i ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
J'ai essayé avec --sport à la place de --dport et même pb
et le résultat iptables -a
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:11122
ACCEPT tcp -- IP_SERVEUR2 anywhere tcp spt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:11122
ACCEPT tcp -- IP_SERVEUR2 anywhere tcp spt:ssh
Hors ligne
#8 Le 25/08/2022, à 08:44
- xubu1957
Re : Accès SSH avec iptables
Bonjour,
Voir règles du forum > balises BB code
Balise CODE :
C'est la balise à utiliser pour donner de longs messages d'erreurs, des contenus de fichiers de configuration, des commandes à taper, etc … Elle permet des messages plus "compacts", et est moins ambiguë que d'autres polices sur certains caractères.
ou dans le premier message du tutoriel Retour utilisable de commande
Pour ajouter toi-même les balises code à ton précédent message #7 :
Cliquer sur le lien « Modifier » en bas à droite du message
Sélectionner le texte
Cliquer sur le <> de l'éditeur de message
iptables -t filter -F
iptables -t filter -X
echo "Regles existantes supprimees."
# On refuse toutes les connexions
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo "Refuser toutes les connexions"
# On autorise les connexions déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "Autorite les connexion deja etablies"
# On autorise le loop-back (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo "Autorise le loop-back"
########## SSH #############
iptables -A INPUT -p tcp -i ens32 --dport 11122 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 11122 -j ACCEPT
iptables -A INPUT -p tcp -i ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
J'ai essayé avec --sport à la place de --dport et même pb
et le résultat iptables -a
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:11122
ACCEPT tcp -- IP_SERVEUR2 anywhere tcp spt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:11122
ACCEPT tcp -- IP_SERVEUR2 anywhere tcp spt:ssh
[*]Cliquer sur le lien « Modifier » en bas à droite du message[/*]
[*]Sélectionner le texte[/*]
[*]Cliquer sur le [color=#50b0ff][b]<>[/b][/color] de l'éditeur de message[/*]
[/list]
[url=https://pix.cyber-nux.fr/?img=1642675956.jpg][img]https://pix.cyber-nux.fr/upload/img/1642675956.jpg[/img][/url]
Dernière modification par xubu1957 (Le 25/08/2022, à 08:49)
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci. Membre de Linux-Azur
Hors ligne
#9 Le 25/08/2022, à 08:45
- hlander42
Re : Accès SSH avec iptables
désolé pour l'oubli
Hors ligne
#10 Le 25/08/2022, à 08:46
- iznobe
Re : Accès SSH avec iptables
il est préférable de démarrer avec UFW ou Gufw en version graphique .
IPTABLES ne se maitrise pas en une heure ou 2 sans connaissance approfondie en réseau .
De plus il n' est pas utile d ' accepter en INPUT la provenance du serveur 2 .
il faut a la place autoriser les connexions initiées , vu que tu veux acceder au serveur 2 .
Je pense que lire de la doc sur le fonctionnement des connections peut deja t ' aider a comprendre le fonctionnement .
pour un pare feu , il y a 3 type de connexions principales :
les connexions entrantes , les connexions sortantes , les connexions deja etablies .
si tu desires autoriser le trafic de ton ordi vers le serveur 2 , il est inutile d ' autoriser les connexions entrantes du serveur 2 .
parceque c ' est de l' ordi 1 que tu vas aller sur serveur2 => connexion sortante donc . ( si on se place sur serveur 2 , alors pour lui et son parefeu ce sera une connexion entrante par contre )
ensuite la connexion est taguée comme etablie sur ordi1 , si serveur 2 répond et autorise bien sur .
il suffit alors d ' autoriser la connexion établie dans ton parefeu . De maniere generale , on autorise toutes les connexions etablies afin d' obtenir les reponses des serveurs auxquels on envoie des demandes .
D ' ailleurs sur un ordi standard , quand on met un parefeu en place , la 1ere chose que l' on fait c ' est d ' interdire toutes les connexions entrantes !
idem sur un serveur , puis on autorise alors uniquement ce dont on a besoin .
pour ip tables , il ya en plus , la regle par défaut a prendre en compte , dont tu n' as pas parlé ... alors que ca change evidemment tout le comportement , et les regles que l' on va instauré .
il ya plein de tutos et d' explication sur le net .
Dernière modification par iznobe (Le 25/08/2022, à 08:52)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#11 Le 25/08/2022, à 08:49
- hlander42
Re : Accès SSH avec iptables
j'ai bien refusé tous les connexions et ouvert ensuite que le 22 et 1122, non ?
Hors ligne
#12 Le 25/08/2022, à 08:56
- iznobe
Re : Accès SSH avec iptables
EDIT : je viens de voir que tu avais donné plus d' infos , du coup la suite n' est pas valable .
on ne peut pas savoir tu n' as donné que 2 regles .
on ne connait pas la politique par defaut entrante ni sortante .
ni les autres regles que tu as instauré en plus .
Ce qui est sur c ' est qu ' avec uniquement ces 2 règles , ca ne peut pas fonctionner correctement .
il faut au minimum gerer aussi les connexions etablies .
Si tu desires absolument gerer ca avec iptables .
le mieux est encore de faire une recherche internet avec comme mot clés : iptables SSH
tu verras que c' est quand meme plus compliqué qu ' il n' y parait .
Dernière modification par iznobe (Le 25/08/2022, à 08:58)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#13 Le 25/08/2022, à 09:00
- hlander42
Re : Accès SSH avec iptables
je veux bien utiliser UFW, mais il "ne fait" que des règles iptables, donc je vois pas trop l'intérêt pour l'instant
mais je vais regarder plus en détail
Dernière modification par hlander42 (Le 25/08/2022, à 09:01)
Hors ligne
#14 Le 25/08/2022, à 09:11
- iznobe
Re : Accès SSH avec iptables
si tu met dans ton fichier :
########## SSH #############
iptables -A INPUT -p tcp -i ens32 --sport 22 --dport 11122 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --sport 11122 --dport 22 -j ACCEPT
a la place de :
########## SSH #############
iptables -A INPUT -p tcp -i ens32 --dport 11122 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 11122 -j ACCEPT
iptables -A INPUT -p tcp -i ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
iptables -A OUTPUT -p tcp -o ens32 --dport 22 -s IP_SERVEUR2 -j ACCEPT
ca donne quoi ?
en plus tu change le port il faut donc faire du NAT en plus ou du port forwarding , plus trop sur , c ' est loi tout ca pour moi .
un exemple vite fait trouvé sur internet , qui ne correspond pas a ton cas , puisqu ' il utilise 2 cartes reseau , mais bon : https://serverfault.com/questions/20118 … -ssh-ports
tout ca pour dire que c' est bien plus simple avec GUFW , qui te simplifie grandement les choses .
Dernière modification par iznobe (Le 25/08/2022, à 09:19)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#15 Le 25/08/2022, à 10:17
- hlander42
Re : Accès SSH avec iptables
ca ne fonctionne pas
Hors ligne
#16 Le 25/08/2022, à 10:26
- Vobul
Re : Accès SSH avec iptables
je veux bien utiliser UFW, mais il "ne fait" que des règles iptables, donc je vois pas trop l'intérêt pour l'instant
Oui mais la différence c'est que lui il les fait correctement ;p
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#17 Le 25/08/2022, à 10:43
- hlander42
Re : Accès SSH avec iptables
et pour UFW, vous passer en ligne de commande ou vous utiliser une interface graphique et vous copiez ensuite le fichier obtenu ?
Hors ligne
#18 Le 25/08/2022, à 10:45
- hlander42
Re : Accès SSH avec iptables
mon pb provient d'un problème de règle ou le fait que sur un serveur le port ssh est le 22 et sur l'autre le 11122
Hors ligne
#19 Le 25/08/2022, à 11:55
- diesel
Re : Accès SSH avec iptables
Ben..., dans ta règle OUTPUT (sur serveur1), tu donnes comme adresse source ip_serveur2 (-s ip_serveur2), alors que dans ce cas, serveur2 est la destination. C'est certain que ça va beaucoup moins bien marcher.
Vu que tu sembles ne pas bien maîtriser les notions de source et destination (et fort probablement beaucoup d'autres moins évidentes), l'écriture d'un script iptables me paraît bien risquée. Au mieux, certains services ne fonctionnent pas, au pire tout fonctionne mais c'est une passoire.
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 25/08/2022, à 12:18)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#20 Le 25/08/2022, à 15:42
- hlander42
Re : Accès SSH avec iptables
dans UFW on peut aller récupérer un IP à partir d'un nom de domaine
Ce que je fais dans iptable avec
ip=$(dig +short nom_de_domaine.fr)
Puis ensuite
iptables -A INPUT -p tcp -i $interface --dport 11122 -s $ip -j ACCEPT
Hors ligne
#21 Le 25/08/2022, à 20:46
- diesel
Re : Accès SSH avec iptables
dans UFW on peut aller récupérer un IP à partir d'un nom de domaine
Ce que je fais dans iptable avecip=$(dig +short nom_de_domaine.fr)
Puis ensuite
iptables -A INPUT -p tcp -i $interface --dport 11122 -s $ip -j ACCEPT
Ce qui peut être une énorme connerie.
En effet, certains sites ont plusieurs adresses qu'ils font tourner dans un round robin. Comment être certain qu'à chaque dig tu auras la bonne adresse est que cela ne va pas changer dans les secondes qui suivent ? En particulier en ipv6.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#22 Le 26/08/2022, à 07:10
- hlander42
Re : Accès SSH avec iptables
car c'est moi qui gère les dns des noms de domaine.
C'est juste qu'en cas de changement de serveur ou d'IP j'ai pas à repasser sur 100 serveurs
Hors ligne
#23 Le 26/08/2022, à 07:28
- iznobe
Re : Accès SSH avec iptables
Bonjour , si tu essayais deja sans changer de port dans les regles et en reconfigurant soit le serveur soit le client , afin d' avoir une base de depart simple et qui fonctionne ?
Ensuite il n' y aurait plus qu ' a voir comment proceder avec iptables pour chngaer le port de destination / source , etape par etape en gros .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#24 Le 26/08/2022, à 07:31
- diesel
Re : Accès SSH avec iptables
Bonjour , si tu essayais deja sans changer de port dans les regles et en reconfigurant soit le serveur soit le client , afin d' avoir une base de depart simple et qui fonctionne ?
Ensuite il n' y aurait plus qu ' a voir comment proceder avec iptables pour chngaer le port de destination / source , etape par etape en gros .
Voir mon post #19.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#25 Le 26/08/2022, à 07:43
- iznobe
Re : Accès SSH avec iptables
@diesel , évidemment , si des erreurs son présentes , avec des règles plus " basiques " , il sera plus simple de les mettre en évidence et donc de les corriger .
j ' avais bien noté ta remarque , mais le pas a pas quand on débute , c ' est toujours preferable a : tenter de sauter directement au truc final qui va bien et galérer avec un mal de crâne pas possible
ce que je voulais dire , c ' est qu il vaut mieux démarrer petit et étoffer au fur et a mesure .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne