Iptables et CUSTOM INPUT

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Iptables et CUSTOM INPUT

Messagepar snipalt » 02 Sep 2004 08:43

Salut à tous !

Je viens d'éxecuter sur mon Ip Cop :

Code: Tout sélectionner
#J accepte tout les paquets du sous reseau a rentrer dans chaine
iptables -A salle_F15 -d <IP> -j ACCEPT
iptables -A salle_F15 -s <IP> -j ACCEPT
#MSN
iptables -A INPUT --protocol tcp --dport 1863 -m state --state NEW,ESTABLISHED -j salle_F15
iptables -A INPUT --protocol tcp --sport 1863 -m state --state ESTABLISHED -j salle_F15


<IP> étant remplacer par une adresse IP valide + masque !

--> La chaine se créer
--> Mais losque je veux supprimer la chaine : "Peux pas supprimer avec référence de gauche" !!! Msg d'erreur renvoyé par le serveur !

--> Les deux règles iptables ne sont pas rangées dans la chaîne mais dans une chaîne CUSTOMINPUT ???

Qu'est ce que c'est ???
Le code iptables est-il valide ?
Comment faire pour supprimer la chaîne ??? [sans nettoyer les autres règles dans CUSTOMINPUT]
--> Essayer sur votre serveur le code iptables ! ! !


Merci d'avance !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar Franck78 » 02 Sep 2004 09:47

Code: Tout sélectionner
[09:41:40]#>iptables -A toto -d 10.0.0.1 -j ACCEPT
iptables: No chain/target/match by that name


Ca c'est l'erreur! Si tu ne déclares pas avant une chaine, ca coince !
Code: Tout sélectionner
iptables -N toto


Et sur ipcop, les CUSTOMchains, sont faites pour ton usage perso. A toi d'y ajouter/supprimer ce que tu veux. Icop se contente de les appeller au bon moment.
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar snipalt » 02 Sep 2004 10:44

Oups ! Petit copy/paste maladroit !!!

Voici le contenu complet, rien de compliqué !

Code: Tout sélectionner

#vidage de la chaine   
iptables -F NICO   
#suppression de la chaine   
iptables -X NICO   
#creation de la chaine   
iptables -N NICO   
#acceptation pour tout les paquets du sous reseau a rentrer dans chaine   
iptables -A NICO -d 172.18.0.0/24 -j ACCEPT   
iptables -A NICO -s 172.18.0.0/24 -j ACCEPT   
# on renvoie vers NICO (-j NICO)   
#pour autoriser msn   
iptables -A INPUT --protocol tcp --dport 1863 -m state --state NEW,ESTABLISHED -j NICO   
iptables -A INPUT --protocol tcp --sport 1863 -m state --state ESTABLISHED -j NICO   


Puis les commandes ::::::::::::::::::

root@serveur-x:~ # iptables -F NICO
root@serveur-x:~ # iptables -X NICO
iptables: Can't delete chain with references left
---------------------------------------------------------------------------------------
Il ne peut pas supprimer la chaine car dans:::::::::::::

CUSTOMINPUT
NICO tcp -- anywhere anywhere tcp dpt:1863 state NEW,ESTABLISHED
NICO tcp -- anywhere anywhere tcp spt:1863 state ESTABLISHED
NICO tcp -- anywhere anywhere tcp dpt:1863 state NEW,ESTABLISHED
NICO tcp -- anywhere anywhere tcp spt:1863 state ESTABLISHED
NICO tcp -- anywhere anywhere tcp dpt:1863 state NEW,ESTABLISHED
NICO tcp -- anywhere anywhere tcp spt:1863 state ESTABLISHED
---------------------------------------------------------------------------------------
Il y a des reste de la commande, Comment faire maintenant pour refaire tout propre !

PS : J'ai développé une application, qui utilise un script "squellette", et remplace dans celui-ci l'IP et le nom de la Chaine par rapport au client ! Cette appli devrait géerer 10 sous réseaux, je ne peux donc pas me permettre de supprimer en "manuel" !

Merci quand même !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar snipalt » 02 Sep 2004 14:11

Alors personne ne peut m'aider ????????????????

Dois-je reformuler ma question ? ? ?

Pourtant la règle IpTables n'a rien d'exeptionnelle, et cette situation pourrait facilement vous arriver !!!!
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar tomtom » 02 Sep 2004 14:34

J'ai beau tout retourner, je pige pas le problème.

Ce qui est sur, c'est que si tu tiiens à autoriser ainsi des connexions via IPCop, c'ets plutot dans la table FORWARD que dans la INPUT qu'il faudra jouer.
De plus, faire un test sur l'ip de destination dans la table INPUT, vraiment sympa !


En clair :


Code: Tout sélectionner
#vidage de la chaine   
iptables -F NICO   

  # ----> Valide seulement si NICO existe avant !!!!! à tester donc , et l'arret doit faire le menage ! Il est stupide de mettre cette comande avant le -N

#suppression de la chaine
iptables -X NICO   

  # ----> Meme commentaire que precedemment.   

#creation de la chaine   
iptables -N NICO   

  # ----> Il faut commencer par là ! On ne flushe pas une table qui n'existe pas. A la limite, la suppression, mais ce serait mieux de le faire sur un stop du script !!!

#acceptation pour tout les paquets du sous reseau a rentrer dans chaine   
iptables -A NICO -d 172.18.0.0/24 -j ACCEPT   
iptables -A NICO -s 172.18.0.0/24 -j ACCEPT   

  # ----> Pourquoi pas, mais je pense que tu n'as pas bien fait ton passage de ipchains à iptables.  Dans la chaine INPUT, tester l'adresse de destination est quelquechose de surprenant.

# on renvoie vers NICO (-j NICO)   
#pour autoriser msn   
iptables -A INPUT --protocol tcp --dport 1863 -m state --state NEW,ESTABLISHED -j NICO   
iptables -A INPUT --protocol tcp --sport 1863 -m state --state ESTABLISHED -j NICO

  # -----> La deuxième règle ne sert foutrement à rien, elle est incluse dans la première !!!!
  # encore une fois, je suppose que c'est pour autoriser les stations à utiliser MSN, la chaine INPUT ne sert à rien du tout dans ce cas !!!





J'aime ta traduction :[

Peux pas supprimer avec référence de gauche

pour
Code: Tout sélectionner
Can't delete chain with references left


La machine te parle de reference vers la chaine que tu veux supprimer, et toi tu nous parles de reference de gauche...
Le problème, c'est que tu ne supprime pas toutes les règles qui pointent vers ta chaine, donc tu n'as pas le droit de la supprimer.

Le script devrait etre sur ce modele :

Code: Tout sélectionner
case start)
Creation de la chaine user
flush de la chaine
ajout de la règle dans la chaine user
ajout de la redirection dans FORWARD vers ta chaine user

case stop)
Suppression de la redirection dans forwarde vers ta chaine user
flush de la chaine user
suppression de la chaine user


Faut pas ecrire n'importe quoi et se poser des questions après !

t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar snipalt » 02 Sep 2004 14:49

Ou ! il est nrv :oops: !

Excuse-moi de mon ignorance !
Je vais revoir tout ça !

Enfin ne pète pas de pile comme ça [c'est mauvais pour ton coeur] !

:lol: Merci !


Ciao Ciao
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar snipalt » 02 Sep 2004 15:06

Bon tout le monde est calmé ???

Mon problème n'est pas cerné !

Bon je poursuis, le problème se se situe pas dans mon script, mais c'est la procédure de désactivation du script qui m'intéresse !

J'ai écrit une appli en php, qui vas demander à l'utilisateur de choisir une stratégie pour son réseau [ex : Plus personne sur Internet]. Mon serveur ouvre le script est envoie une ligne après l'autre au serveur [le script ne s'éxécute pas directement].

Le script que j'ai donné en exemple me sert de test, il sert juste d'exemple ! Mais je pensais qu'iptables allait ranger touts les règles [aussi farfelues soient-elles] dans la chaîne !

Je pensais que de cette manière, la simple suppression de la chaîne suffirait à désactiver la stratégie !

--> Mais il semble que ce ne soit pas si facile !

Existe-t-il une commande pour supprimer "en cascade" toutes les règles ? ? ?

tomtom a écrit:Suppression de la redirection dans forwarde vers ta chaine user

--> C'est donc cette partie qui m'intéresse !


:arrow: Merci d'avance !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar snipalt » 02 Sep 2004 16:06

Amiral, tu as coulé ? ? ? S'il te plait ne boude pas !

C'est vraiment important pour moi :cry:

Il s'agit de mon projet de Licence ! ! ! !

Et si toute l'appli marche, je mettrai en lignes mes travaux et notices :roll: !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar snipalt » 02 Sep 2004 16:18

Ou reformuler encore plus simplicimement !


Code: Tout sélectionner
CUSTOMINPUT  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
RED        all  --  anywhere             anywhere
XTACCESS   all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere           limit: avg 10/min burst 5 LOG level warning prefix `INPUT '
NICO       tcp  --  anywhere             anywhere           tcp dpt:1863 state NEW,ESTABLISHED
NICO       tcp  --  anywhere             anywhere           tcp spt:1863 state ESTABLISHED
NICO       tcp  --  anywhere             anywhere           tcp dpt:1863 state NEW,ESTABLISHED
NICO       tcp  --  anywhere             anywhere           tcp spt:1863 state ESTABLISHED
NICO       tcp  --  anywhere             anywhere           tcp dpt:1863 state NEW,ESTABLISHED
NICO       tcp  --  anywhere             anywhere           tcp spt:1863 state ESTABLISHED


Peut-on supprimer toutes les règles "NICO" dans cette chaine, sans précider le numéro de la règle mais uniquement son nom ? ? ?[/code]
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar tomtom » 02 Sep 2004 17:11

non..

iptables, c'est deterministe. Tu dois savoir ce que tu y mets, et ^^etre capable de l'enlever.

Ex : J'ai ecris un script minable pour forwarder emule sur un poste du green (tu peux le trouver dans les forums).

Le script prend un paramètre : stop ou start.

Si c'est start, il fait des -A pour ajouter les règles. Si c'est stop, il fait des -D, sur les m^^emes règles pour les enlever (avec un test avant pour verifier que l'on appelle pas 2 fois start par exemple).

dans ton cas :
Code: Tout sélectionner
#! /bin/bash


Apply_Rules () {

iptables -$test NICO -d 172.18.0.0/24 -j ACCEPT   
iptables -$test NICO -s 172.18.0.0/24 -j ACCEPT   
iptables -$test INPUT --protocol tcp --dport 1863 -m state --state NEW,ESTABLISHED -j NICO
return 0
}


if [ "$1" = "" ]
then
{
echo "usage : $0 [start|stop]"
exit 1
}
fi

started=`iptables -n -L -v | grep "dpt:1863" | wc -l`


case "$1" in
start)

if [ "$started" -eq 0 ]
then
{
test="I"
iptables -N NICO
iptables -F NICO
Apply_Rules
}
else
{
echo "rules already applied"
exit 1
}
fi
;;

stop)
if [ "$started" -gt 0 ]
then
{
test="D"
Apply_Rules
iptables -F NICO
iptables -X NICO
}
else
{
echo "rules not applied yet "
exit 1
}
fi
;;

*)
echo "usage : $0 [start|stop]"
exit 1
;;
esac

exit 0


Bon, mais je te signale quand meme que j'ai gardé tes commandes qui ne sont pas efficaces.
Ce script est juste là à titre d'exemple et c'est tout !!!!!

t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar snipalt » 03 Sep 2004 09:44

Ok ! J'ai tout capté !


A mon avis sans t'en rendre compte tu viens de me filer la solution ! Je vais simplement adapter ton raisonnement à mon cas :


Mon appli en PHP stocke une succession de règles iptables dans de simple fichier, lorsque l'utilisateur choisit une "stratégie", mon appli ouvre le fichier correspondant et éxecute une ligne à près l'autre ::: séquentiellement, il lit la ligne, remplit ses variable et l'envoie au serveur, le serveur répond simplement si il a réussit à l'executer, (ce qui permettra un debugage d'un script IPtables Ligne à ligne, c'est pas beau ça !)

Donc à chaque éxecution de "stratégie", j'appliquerais le script, et lorsque la stratégie aura dépassée son temps d'activation, le script s'éxecutera à l'inverse !

J'espère que ça pourra tourner ! ! ! !


Merci 1000 fois !

Ciao Ciao
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar Franck78 » 03 Sep 2004 11:41

Un serveur de règle pour Iptables. $%#&! le trou de sécurité interne que ca va faire... Tu as interèt à mettre en place une authentification irréprochable, que l'utilisateur sache qu'il est tracé quand il utilise ta fonctionnalité.
Et pas question de se voiler la face en disant qu'ils n'y connaissent rien, hein !

Quand à gauche=left, la traduction, ca se fait 'en contexte'. Alors dans le doute, next time, laisse le message intact. Et si tu n'as aucun doute, alors laisse 'tout' dans la langue d'origine ;-)


bye
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar snipalt » 03 Sep 2004 15:28

Oui je sais !


J'espère que ça va tourner au final !

Pour la traduction d'Anglais, dsl, mais c'était dans le feu de l'action, je suis entrain de flipper, mon stage est fini le 10sept 2004 ! Et après c'est l'oral !


Pour la sécurité du système ! Tout est logué, la moindre petite action !

Les pages sont sécurisée par des session !

Et le mode d'authentification au choix, soit via une fichier de config (mdp crypté en md5), soit via un serveur LDAP [mais je dois encore trouver un moyen d'ajouter ldap à IPcop] !

Merci à tous !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche

Messagepar snipalt » 03 Sep 2004 18:30

Ca marche ! ! ! ! ! Merci à tous [aussi a TomTom pour m'avoir remonté les bretelle]



Mon appli Fonctionne ! ! ! Un éxecuteur de Script Ipatbles !

Je mettrais bientôt mon appli en Ligne, avec les Manuels :::::::


Je vous explique le fonctionnement :

DANS L'INTERFACE D ADMINISTRATION**********

Vous écrivez une Suite de règles IPtables, tout les champs "Variables" de cette règle, vous les remplacez par des "balises" [tapez <IP> correspond au sous-réseau des machines du profil correspondant , tapez <CHAIN> pour insérer le nom de la chaîne, correspondance au nom du réseau]
Attribuez à ce Script Dynamique, un Nom un Auteur, une Description, et une liste de réseau pour lequel ce Script sera Applicable.


Dans une seconde Interface de l'Appli, crez vos réseaux [Création d'Alias sur le Serveur]


DANS L INTERFACE UTILISATEUR**********

Encore plus simple :
Sélectionnez le réseau que vous souhaitez Administrer, Choisissez le Script que vous souhaitez appliquer (par rapport à la description), et dites lui combien de temps vous souhaitez appliquer la Stratégie ! ! ! Et le Système se charge du Reste !

Bien entendu, tout ceci est protégé par mots de passe et Sessions, on bénéficie en plus d'SSL d'ip cop !



CE QUI MARCHE ¨PAS SUR L'APPLI :: : :: : :: : ::: :: :: :: : : : : :: : :: : : : ::: : : ::

- Un script est chargé d'inspecter les Scripts qui tournent, et si ils ont encore lieu de tourner [par rapport au temps d'éxecution choisit par l'Utilisateur]
===> Il faut que je fasse un Cron, éxecution d'un Fichier PHP !

- Il faut que je trouve un Script "Blocage du Web qui fonctionne utilisant des Chaînes" [sans Faire rager TomTom]

-Je suis entrain d'écrire un Module d'Authentification LDAP [presque fini], mais j'en chie, pour intéger les fonctions LDAP dans mon PHP [installé IPFMLA de Fesch]

Propositions, Remarque, Suggestions ???

Merci d'avance !
ciao ciao
********
A chaque fois que j'aimerai partir là où j'aimerais vraiment être, c'est déjà là où je suis car j'y suis déjà. Qui suis-je ?
Avatar de l’utilisateur
snipalt
Premier-Maître
Premier-Maître
 
Messages: 66
Inscrit le: 14 Mai 2004 15:58
Localisation: Audun-le-Tiche


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron