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 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

1642675956.jpg

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

hlander42 a écrit :

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

hlander42 a écrit :

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

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

iznobe a écrit :

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 tongue

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