Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2722 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script bash + iptables = probleme incomprehensible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script bash + iptables = probleme incomprehensible

n°1041258
ipnoz
Sapé comme jamais !
Posté le 12-05-2008 à 16:14:58  profilanswer
 

Sur ce petit bout de script , j'ai un probleme que je n'arrive pas a comprendre :
 


BAD_ADDRESS="224.0.0.0,169.254.0.0/16,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8,127.0.0.0/8"
LOG="-j LOG --log-level $LOGLEVEL --log-prefix"
LOGLEVEL="debug"
 
IFS=","
for bad_network in $BAD_ADDRESS ; do
$IPT -A spoof_net -p ALL -i $NET_FACE -s $bad_network $LOG "RESERVED ADDR: "
$IPT -A spoof_net -p ALL -i $NET_FACE -s $bad_network -j DROP
done
unset IFS
 


 
l'execution me donne cette erreur  


iptables v1.3.6: Invalid target name ` LOG --log-level debug --log-prefix' (31 chars max)
Try `iptables -h' or 'iptables --help' for more information.


 
Au bout de deux heures d'acharnement , j'ai compris que le probleme venais de la variable $LOG , et j'ai resolue ce pb. avec :
 


$IPT -A spoof_net -p ALL -i $NET_FACE -s $bad_network -j LOG --log-level $LOGLEVEL --log-prefix "RESERVED ADDR: "


 
Mais comme j'aime le travail soigné , et comme la variable $LOG marche tres bien ailleurs dans le script , je voudrais comprendre pourquoi cela ne marche pas dans cette boucle . J'ai remarqué que les autres variables marchaient dedans , mais n'avaient qu'une entrée .
 
Une idée ?  :hello:


Message édité par ipnoz le 12-05-2008 à 16:20:10
mood
Publicité
Posté le 12-05-2008 à 16:14:58  profilanswer
 

n°1041376
matafan
Posté le 13-05-2008 à 09:38:54  profilanswer
 

C'est parce que $LOG est interprété comme un seul "mot" contenant des espaces, et non comme une suite de "mots". Bref la commande iptables voit arriver un argument "-j LOG --log-level $LOGLEVEL --log-prefix", au lieu de voir arriver un argrument "-j", suivi d'un argument "LOG", suivi d'un argument "--log-level" et ainsi de suite.
 
Pour régler le problème, deux solutions :


1) avec echo : $IPT ... `echo $LOG` ...
2) avec eval : eval $IPT ... $LOG ...

n°1041479
ipnoz
Sapé comme jamais !
Posté le 13-05-2008 à 14:55:56  profilanswer
 

Merci pour ta reponse , c'est bien ce que j'avais cru comprendre au niveau de la variable LOG ...
 
La solution 1 ne marche pas , elle me renvoie la meme erreur que j'ai deja indiqué dans mon premier post .
 
La solution 2 marche a condition de rajouter : ' "RESERVED ADDR: " ' meme si j'aurais preferer qlq. chose dans le style de la 1 . Parce que meme apres qlq. recherche , je ne comprends pas trop ce qu'apporte eval meme si "ca marche" ^^ .


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script bash + iptables = probleme incomprehensible

 

Sujets relatifs
[RESOLU] [POSTFIX] probleme de configurationProblème Open office et codage des caractères : fichiers bloqués
Problème de lecture sur SAMBA (read raw)Mon script shell ne fait rien.
probleme automount/autofsModification de script backup
[ubuntu] problème grub error 18probleme script client OCS INVENTORY
Problème d'install debian 
Plus de sujets relatifs à : Script bash + iptables = probleme incomprehensible


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR