Script bash + iptables = probleme incomprehensible - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 13-05-2008 à 09:38:54
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 :
|
Marsh Posté le 13-05-2008 à 14:55:56
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" ^^ .
Marsh Posté le 12-05-2008 à 16:14:58
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 ?
Message édité par ipnoz le 12-05-2008 à 16:20:10