Problème script
Ceane
Messages postés
40
Statut
Membre
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Alors je suis en train de faire un script pour ma pti netfilter/proxy Squid
Et j'obtiens cette erreur lorsque je lance le script:
: command not found:
'ptables.sh: line 19: syntax error near unexpected token `in
'ptables.sh: line 19: `case $reponse in
Voici mon script:
#!/bin/sh/
case=10
exit=8
while ["$exit"=8];
do
echo "0) Activer le routage"
echo "1) Effacer les tables"
echo "2) Interdir le passage des règles"
echo "3) Autoriser le passage des règles"
echo "4) Autoriser les DNS"
echo "5) Interdir les DNS"
echo "6) Autoriser le trafic HTTP"
echo "7) Interdir le trafic HTTP"
echo "8) QUITTER"
read reponse
case $reponse in
0)
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
case $reponse in
1)
iptables -F
iptables -t nat -F
;;
case $reponse in
2)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
;;
case $reponse in
3)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;
case $reponse in
4)
iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j ACCEPT
;;
case $reponse in
5)
iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j DROP
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP
iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j DROP
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP
iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j DROP
iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j DROP
iptables -A OUTPUT -p udp --dport 53 -d 212.180.0.137 -j DROP
iptables -A OUTPUT -p udp --sport 53 -s 212.180.0.137 -j DROP
;;
case $reponse in
6)
iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 ACCEPT
iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
;;
case $reponse in
7)
iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 DROP
iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j DROP
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --sport 80 -j DROP
;;
case $reponse in
8)
$choix="0"
;;
esac
done
Pourriez vous m'aider s'il vous plait
Merci
Alors je suis en train de faire un script pour ma pti netfilter/proxy Squid
Et j'obtiens cette erreur lorsque je lance le script:
: command not found:
'ptables.sh: line 19: syntax error near unexpected token `in
'ptables.sh: line 19: `case $reponse in
Voici mon script:
#!/bin/sh/
case=10
exit=8
while ["$exit"=8];
do
echo "0) Activer le routage"
echo "1) Effacer les tables"
echo "2) Interdir le passage des règles"
echo "3) Autoriser le passage des règles"
echo "4) Autoriser les DNS"
echo "5) Interdir les DNS"
echo "6) Autoriser le trafic HTTP"
echo "7) Interdir le trafic HTTP"
echo "8) QUITTER"
read reponse
case $reponse in
0)
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
case $reponse in
1)
iptables -F
iptables -t nat -F
;;
case $reponse in
2)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
;;
case $reponse in
3)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;
case $reponse in
4)
iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j ACCEPT
;;
case $reponse in
5)
iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j DROP
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP
iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j DROP
iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP
iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j DROP
iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j DROP
iptables -A OUTPUT -p udp --dport 53 -d 212.180.0.137 -j DROP
iptables -A OUTPUT -p udp --sport 53 -s 212.180.0.137 -j DROP
;;
case $reponse in
6)
iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 ACCEPT
iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
;;
case $reponse in
7)
iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 DROP
iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j DROP
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --sport 80 -j DROP
;;
case $reponse in
8)
$choix="0"
;;
esac
done
Pourriez vous m'aider s'il vous plait
Merci
A voir également:
- Problème script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Execution du script d'installation microsoft vc redistributable - Forum Jeux vidéo
9 réponses
Salut,
Supprimes dans un 1er temps toutes les occurrences de "case $reponse in" (à part la 1ère) :
Supprimes dans un 1er temps toutes les occurrences de "case $reponse in" (à part la 1ère) :
#!/bin/sh/ case=10 exit=8 while [ "$exit" = 8 ]; do echo "0) Activer le routage" echo "1) Effacer les tables" echo "2) Interdir le passage des règles" echo "3) Autoriser le passage des règles" echo "4) Autoriser les DNS" echo "5) Interdir les DNS" echo "6) Autoriser le trafic HTTP" echo "7) Interdir le trafic HTTP" echo "8) QUITTER" read reponse case $reponse in 0) echo 1 > /proc/sys/net/ipv4/ip_forward ;; 1) iptables -F iptables -t nat -F ;; 2) iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ;; 3) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;; 4) iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j ACCEPT iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j ACCEPT ;; 5) iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j DROP iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j DROP iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j DROP iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j DROP iptables -A OUTPUT -p udp --dport 53 -d 212.180.0.137 -j DROP iptables -A OUTPUT -p udp --sport 53 -s 212.180.0.137 -j DROP ;; 6) iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 ACCEPT iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --sport 80 -j ACCEPT ;; 7) iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 DROP iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j DROP iptables -A OUTPUT -p tcp --dport 80 -j DROP iptables -A INPUT -p tcp --sport 80 -j DROP ;; 8) $choix="0" ;; esac doneMais je doute que cela suffise à la bonne marche de ton script ;-\
Ben déjà le début de ton script me laisse assez perplexe :-\
case=10
Tu définis quoi avec cette variable ?
exit=8
while [ "$exit" = 8 ];
Et là si par la suite du script tu ne fais pas varier cette valeur, la condition sera forcément vraie en permanence, et puis tu cherches à faire quoi exactement avec cette condition ???
;-)
case=10
Tu définis quoi avec cette variable ?
exit=8
while [ "$exit" = 8 ];
Et là si par la suite du script tu ne fais pas varier cette valeur, la condition sera forcément vraie en permanence, et puis tu cherches à faire quoi exactement avec cette condition ???
;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Voici une version corrigée qui te permet de quitter le programme.
Par contre je ne vois pas d'erreur sur le reste. Etrange.
Bonne chance
Voici une version corrigée qui te permet de quitter le programme.
Par contre je ne vois pas d'erreur sur le reste. Etrange.
Bonne chance
#!/bin/sh case=10 reponse=-1 while [ $reponse -ne 8 ]; do echo "0) Activer le routage" echo "1) Effacer les tables" echo "2) Interdir le passage des règles" echo "3) Autoriser le passage des règles" echo "4) Autoriser les DNS" echo "5) Interdir les DNS" echo "6) Autoriser le trafic HTTP" echo "7) Interdir le trafic HTTP" echo "8) QUITTER" read reponse case $reponse in 0) echo 1 > /proc/sys/net/ipv4/ip_forward ;; 1) iptables -F iptables -t nat -F ;; 2) iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ;; 3) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;; 4) iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j ACCEPT iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j ACCEPT ;; 5) iptables -A FORWARD -p udp -d 212.180.1.79 -i eth0 -o eth1 --dport 53 -j DROP iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP iptables -A FORWARD -p udp -d 212.180.0.137 -i eth0 -o eth1 --dport 53 -j DROP iptables -A FORWARD -p udp -s 212.180.1.79 -i eth1 -o eth0 --sport 53 -j DROP iptables -A OUTPUT -p udp --dport 53 -d 212.180.1.79 -j DROP iptables -A OUTPUT -p udp --sport 53 -s 212.180.1.79 -j DROP iptables -A OUTPUT -p udp --dport 53 -d 212.180.0.137 -j DROP iptables -A OUTPUT -p udp --sport 53 -s 212.180.0.137 -j DROP ;; 6) iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 ACCEPT iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --sport 80 -j ACCEPT ;; 7) iptables -A FORWARD -p tcp -o eth1 -i eth0 --dport 80 DROP iptables -A FORWARD -p tcp -i eth1 -o eth0 --sport 80 -mstate --state ESTABLISHED -j DROP iptables -A OUTPUT -p tcp --dport 80 -j DROP iptables -A INPUT -p tcp --sport 80 -j DROP ;; 8) echo "bye" ;; *) echo "reponse incorrecte" ;; esac done
bon alors j'ai modifier le début
case=0
while ["$reponse" != 8];
mais.....il me fait toujours la meme erreur...
c'est le case $reponse qui pas passe....peut etre devrais-je mettre avant le while ceci
reponse=0 a la place de case=0
Tu en pense quoi ??
case=0
while ["$reponse" != 8];
mais.....il me fait toujours la meme erreur...
c'est le case $reponse qui pas passe....peut etre devrais-je mettre avant le while ceci
reponse=0 a la place de case=0
Tu en pense quoi ??
et meme quand je fais ca
case=8
while ["$reponse" -le $case];
j'ai l'impression qu'il voit meme po le while car il ne m'affiche rien....
et j'obtiens tout l'erreur avec le case $reponse in....
Bizare
Pitié help me
case=8
while ["$reponse" -le $case];
j'ai l'impression qu'il voit meme po le while car il ne m'affiche rien....
et j'obtiens tout l'erreur avec le case $reponse in....
Bizare
Pitié help me
Bon j'ai fais des modifs maintenant j'obtiens d'autre erreur
: N'est pas un répertoire/sh/
: command not found:
iptables.sh: line 81: unexpected EOF while looking for matching `"'
iptables.sh: line 88: syntax error: unexpected end of file
alors la .....
je ne sais pas
j'ai inversé le done et le esac...rien a faire....et pour ma ligne 81 c mon case 8)...je vois pas non plus
: N'est pas un répertoire/sh/
: command not found:
iptables.sh: line 81: unexpected EOF while looking for matching `"'
iptables.sh: line 88: syntax error: unexpected end of file
alors la .....
je ne sais pas
j'ai inversé le done et le esac...rien a faire....et pour ma ligne 81 c mon case 8)...je vois pas non plus
fais un copier coller de ce que je t'ai donné. J'ai pas dit -le mais -ne. Il y a pas non plus d'apostrophes autour de $reponse.
Donc fais un copier coller et dis moi les erreurs qui en résultent.
Bonne chance
Donc fais un copier coller et dis moi les erreurs qui en résultent.
Bonne chance