Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

Salut tout le monde!

 

Je viens poser mes questions ici car je m'arrache les cheveux... du moins ce qu'il en reste...

 

J''utilise ssh entre 2 machines, le serveur sous Arch (mon pc chez moi) et un portable sous Ubuntu pour le client (pas chez moi).

 

Sur la machine serveur, j'ai remarqué (sur le testeur de ports en ligne de Zeb) que mon port 22 était ouvert, donc visible. Je n'aime pas ca.

 

Ce matin j'ai donc tapé ces 2 commandes sur le serveur :

iptables -P INPUT DROP

et

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

 

Seulement voila, depuis ces 2 commandes tapées, je n'ai plus accès, le serveur me bloque toute tentative de connexion. (j'ai fait un nmap, un nmap -P0 il ne voit rien, même les ping échouent.)

 

1ère question : Pourquoi? :P

 

J'ai installé aussi gnump3d, un serveur de musique, et lui aussi est bloqué depuis, alors que tout allait bien. :P

De plus gnump3d n'utilise pas le port 22 mais le 8888, et celui ci n'était pas ouvert, juste le port 22...

Donc je ne vois pas de raison pour que lui aussi soit bloqué par les 2 commandes iptables.

 

Alors de 2 choses l'une ; soit je n'ai pas compris le fonctionnement d'iptables (j'avoue avoir un peu du mal), ou alors l'ip de mon pc serveur a changé (j'ai un abonnement cable avec une adresse dynamique, et un routeur entre le modem et la machine, j'ai mis en ip fixe dans Arch) et je m'adresse à la mauvaise machine...

 

2ème question : On sait masquer le port 22 et utiliser ssh, ou bien doit-il être absolument ouvert au risque de se voir refuser la connexion?

 

3ème et 4ème question :-N'y a-t-il pas de risque d'éditer le fichier /etc/hosts.allow de manière à ajouter sshd: ip (hôte a accepter)?

-Et est ce qu'iptables/netfilter tient compte du fichier hosts.allow, ou pas?

Modifié par Silfeed

Posté(e)

Tu as tapé ces commandes dans cet ordre ?

Je crois que tu dis à ton firewall "règle numéro 1 : à défaut de règle stipulant le contraire tu droppes tout ce qui arrive ; règle numéro 2 : tout ce qui arrive et qui correspond à une connexion déjà établie ou liée à une connexion établie, tu acceptes", là...

 

C'est normal que nmap ne recoive aucune réponse...

Il faudrait ajouter des règles du style "tout ce qui arrive et qui est à destination du port 22, tu acceptes" ;-)

 

"Masquer" un port mais le laisser utilisable ? "Masquer" un port c'est faire en sorte que tout ce qui arrive dessus va directement dans un trou noir. Tu ne peux pas avoir un port qui réponde et qui ne réponde pas...

 

hosts.allow permet d'établir des règles par daemon, le reste (les règles valables pour tout le système) est géré par netfilter. Il n'y a aucun "risque" à utiliser l'un et l'autre (les fichiers hosts.* et netfilter). Pense juste à modifier également le hosts.deny (puisque sans règle dans hosts.deny, toute machine est autorisée à se connecter à tous les daemons par défaut)

 

-- edit --

J'avais lu trop vite la première ligne, croyant avoir vu "-A INPUT -j DROP" ... "-P DROP" définit le comportement par défaut donc pas d'importance que cette règle soit avant ou après les autres.

Posté(e) (modifié)

Salut et merci beaucoup KewlCat,

Il faudrait ajouter des règles du style "tout ce qui arrive et qui est à destination du port 22, tu acceptes" :P

Du style

iptables -I INPUT -i eth0 -p tcp --dport 22 -s xxx.xxx.x.x/22 -j ACCEPT

?

C'est pas risqué un port ouvert pour un ordinateur personnel? (pas un vrai serveur)

 

Pense juste à modifier également le hosts.deny (puisque sans règle dans hosts.deny, toute machine est autorisée à se connecter à tous les daemons par défaut)

 

OMG :P

Quel genre de modif?

Modifié par Silfeed
Posté(e)
"Masquer" un port mais le laisser utilisable ? "Masquer" un port c'est faire en sorte que tout ce qui arrive dessus va directement dans un trou noir. Tu ne peux pas avoir un port qui réponde et qui ne réponde pas...

 

Et le Port Knocking?

 

Je me souviens d'un maitre es Linux qui m'avait parlé de ça ^^

 

Bon je suis p'tete en HS...

Posté(e) (modifié)
Bon je suis p'tete en HS...

 

Salut lol.2.dol,

 

Non pas du tout HS, mais est-ce difficile a réaliser?

Je me souviens que Greywolf en avait parlé. Mais à mon avis ce n'est pas à ma portée ce genre de configuration :-/

 

Je verrai ce soir quand je rentrerai ce qu'il en est de mon IP, et du hosts.deny qui est vide encore chez moi... :P

Modifié par Silfeed
Posté(e)
Du style
iptables -I INPUT -i eth0 -p tcp --dport 22 -s xxx.xxx.x.x/22 -j ACCEPT

?

De ce style-là, en effet (mais attention, le "/22" derrière l'IP ne signifie vraisemblablement pas ce que tu crois... ou l'inverse...)

 

C'est pas risqué un port ouvert pour un ordinateur personnel? (pas un vrai serveur)
Par "pas un vrai serveur" tu veux dire "pas une machine à part sur laquelle j'ai pas mon bureau, mes documents perso, mes applications, mes jeux, ..." ?

Foirer ses règles de firewall, que ce soit sur un serveur ou sur un "ordi perso" (j'ai du mal à faire la différence puisque un serveur est souvent "perso", et il suffit de faire tourner un daemon sur une machine pour la transformer en "serveur"...) ça fait tout autant déconner la connexion ou ça ouvre tout autant la porte aux script-kiddies...

 

Quel genre de modif?
Vérifier que la règle par défaut n'est pas d'accepter que n'importe qui se connecte à n'importe quoi.

 

Ca peut être une bonne solution, mais pour l'instant on va essayer de régler netfilter en mode "basique", on compliquera après ;-)
Posté(e) (modifié)
sans règle dans hosts.deny, toute machine est autorisée à se connecter à tous les daemons par défaut
Même en spécifiant sshd: xxx.xxx.xxx.xxx dans /etc/hosts.allow??

 

Par "pas un vrai serveur" tu veux dire "pas une machine à part sur laquelle j'ai pas mon bureau, mes documents perso, mes applications, mes jeux, ..." ?

... ça fait tout autant déconner la connexion ou ça ouvre tout autant la porte aux script-kiddies...

Oui, c'est bien ca que je voulais dire, et savoir :P

 

attention, le "/22" derrière l'IP ne signifie vraisemblablement pas ce que tu crois... ou l'inverse
Ben normalement je n'utilise jamais ce /xx. Je me suis trompé, sorry, j'ignore ce que c'est.

 

Bon, l'heure approche, je vais pouvoir voir ce qui s'est passé chez moi.

Modifié par Silfeed
Posté(e) (modifié)

Bon, mon adresse n'a pas changé.

 

Je n'ai pas sauvé après avoir tapé les commandes, donc un reboot a suffi pour rétablir l'ancienne config (par défaut sans doute puisque je n'ai jamais sauvé).

 

Au reboot sous Arch, mon port 22 est ouvert.

 

Une idée pour mieux protéger tout ca? :P

 

Et est ce qu'on peut se faire un nmap sur soi meme pour voir l'état des ports?

 

Mon cat /etc/hosts.deny :

 

# cat /etc/hosts.deny 
# /etc/hosts.deny

ALL: ALL: DENY

 

Et si c'est valable, mon nmap :

Not shown: 1712 filtered ports
PORT	 STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
8888/tcp open  sun-answerbook

Modifié par Silfeed
Posté(e)

un script iptables pour autoriser les connexions sur le port 22 à partir d'une seule adresse IP et le port 8888 à partir de n'importe quelle adresse.

Attention, la machine à partir de laquelle sera exécuté ce script ne pourra pas établir de connexions sortantes d'elle même, il faudra l'autoriser spécifiquement ou, plus bourrin, régler la politique par défaut de OUTPUT à ACCEPT

remplacer $wan par l'interface (ethX, wlanX, pppX, .... donnant accès à internet )

toutes les lignes de commande doivent tenir sur une seule ligne (attention à la mise en forme du forum)

#flush des règles préexistantes
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#Réglage des politiques par défaut (si aucune règle écrite ne correspond, c'est la politique qui s'applique)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP


iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#on accepte les connexions locales
iptables -A INPUT -i lo -j ACCEPT
#Règles pour les connexions entrantes sur $wan
iptables -A INPUT -s <adresse.IP.de.lamachinedistante>/32 -i $wan -p tcp --dport 22 -m state --state NEW  -j ACCEPT
iptables -A INPUT -i $wan -p tcp --dport 8888 -m state --state NEW -j ACCEPT

#rgèles pour les connexions sortantes (la machine n'émet pas de nouvelles connexions et ne fait que répondre à des connexions légitimes)
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o $wan -m state --state RELATED,ESTABLISHED -j ACCEPT

 

tu peux faire exécuter ce script dans rc.local pour qu'il soit effectif à chaque démarrage de la machine

 

ne connaissant pas gnump3d, je ne sais pas si la simple connexion sur tcp 8888 suffise pour que le service fonctionne (streaming sur UDP ?)

Posté(e) (modifié)

Salut et merci Greywolf.

 

Donc voila ce que j'ai fait :

 

J'ai sauvé le script nommé "regle" dans /etc/ :

 

#!/bin/bash
#
#flush des règles préexistantes
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
#Réglage des politiques par défaut (si aucune règle écrite ne correspond, c'est la politique qui s'applique)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#on accepte les connexions locales
iptables -A INPUT -i lo -j ACCEPT
#Règles pour les connexions entrantes sur $wan
iptables -A INPUT -s ip_du_client/32 -i eth0 -p tcp --dport 22 -m state --state NEW  -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8888 -m state --state NEW -j ACCEPT
#rgèles pour les connexions sortantes (la machine n'émet pas de nouvelles connexions et ne fait que répondre à des connexions légitimes)
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

Visiblement, le script passe sans encombre.

 

Mais... je n'ai plus le net une fois le script lancé :P

Modifié par Silfeed

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...