Génération du test pour iptables avec shell
Résolu
tmedtcom
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
tmedtcom Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
tmedtcom Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Génération du test pour iptables avec shell
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Classic shell - Télécharger - Personnalisation
- Test steam deck oled - Guide
- Test composant pc - Guide
13 réponses
Salut,
Dis-nous plutôt ce que tu voudrais obtenir en sortie, parce que ton script est plein d'incohérences et d'erreurs de syntaxe ;-((
Par exemple :
Ou encore :
Dis-nous plutôt ce que tu voudrais obtenir en sortie, parce que ton script est plein d'incohérences et d'erreurs de syntaxe ;-((
Par exemple :
if [ `echo ${ligne} | awk '{print $4}'` ]; thenif quoi ? Tu n'évalues rien ! Même s'il en résulte un motif de ta commande, rien ne se passera ;-(
Ou encore :
ch=`echo ${ligne} | awk '{print $2}' | cut -d: -f4`Il n'y a aucun 2nd champ dans le listing d'iptables (de ton exemple) qui contient un double point (:), donc rien à couper avec "cut". J'ai l'impression que tu confonds les lignes et les champs. Et quand bien même il y aurait une ligne contenant un "deux points", il en faudrait plusieurs pour s'en servir comme délimiteur (-d:) et n'afficher que le 4ème (-f4) ;-\
Toutes les lignes ou certaines sont à exclure ?
Exemple :
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
On les garde ?
Exemple :
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
On les garde ?
Salut,
Je pense qu'il veux traiter seulement les règles de chaînes iptables
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
et pas la politiques des chaînes iptables
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
Je pense qu'il veux traiter seulement les règles de chaînes iptables
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
et pas la politiques des chaînes iptables
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
merci pour votre reponce, voila jai besoin en sortie un tableau qui contenue chaque chaine de caractère d'une ligne:
par exemples:
-A INPUT -p icmp -j ACCEPT
sera:
t[1]='-A' ; t[2]= 'INPUT' ; t[3]='-p' ; t[4]='icmp' ; t[4]='-j' ; t[5 ]='ACCEPT' etc....
pour chaque ligne il fait la même manière pour je puisse faire le teste a chaque condition après
merci d'avance pour me répondre je suis là connecté tout le jour si il y a quelque chose n'est pas claire#j'ai besoin de la réponse#
merci
par exemples:
-A INPUT -p icmp -j ACCEPT
sera:
t[1]='-A' ; t[2]= 'INPUT' ; t[3]='-p' ; t[4]='icmp' ; t[4]='-j' ; t[5 ]='ACCEPT' etc....
pour chaque ligne il fait la même manière pour je puisse faire le teste a chaque condition après
merci d'avance pour me répondre je suis là connecté tout le jour si il y a quelque chose n'est pas claire#j'ai besoin de la réponse#
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est pas la peine pour ces 3 lignes:
mais juste pour ces lignes:
et merci beaucoup
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
mais juste pour ces lignes:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
et merci beaucoup
oui peut êtres je ne sait pas moi, mon encadreur me dit juste de montrer les testes a faire a partir d'un script en shell qui fait monter les testes a faire a partir du politiques de sécurité d'iptables. donc je pense que tu est juste
oui c'est juste:
il faut traiter ces lignes:
donc?
il faut traiter ces lignes:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
donc?
bonjour
Voila merci a tous jai réussie finalement
mon script:
#!/bin/sh
exec 3</home/tmed/Bureau/iptables
while read ligne 0<&3
do
i=0
A=1
if [ "$ligne" = "" ]; then break; fi
while [ "`echo ${ligne} | awk '{print $a}' a="$A"`" != "" ]
do
ch=`echo ${ligne} | awk '{print $a}' a="$A"`
tab[$i]=$ch
echo "${tab[$i]}"
echo -e "\n"
i=$(expr $i + 1)
A=$(($A + 1))
done
done
exit 0
il affiche chaque mot du ligne séparépar espace de cette manière:
-A
INPUT
-i
lo
-j
ACCEPT
Voila merci a tous jai réussie finalement
mon script:
#!/bin/sh
exec 3</home/tmed/Bureau/iptables
while read ligne 0<&3
do
i=0
A=1
if [ "$ligne" = "" ]; then break; fi
while [ "`echo ${ligne} | awk '{print $a}' a="$A"`" != "" ]
do
ch=`echo ${ligne} | awk '{print $a}' a="$A"`
tab[$i]=$ch
echo "${tab[$i]}"
echo -e "\n"
i=$(expr $i + 1)
A=$(($A + 1))
done
done
exit 0
il affiche chaque mot du ligne séparépar espace de cette manière:
-A
INPUT
-i
lo
-j
ACCEPT
Salut,
Si le but était juste d'afficher pourquoi pas faire tout simplement
Si le but était juste d'afficher pourquoi pas faire tout simplement
lami20j@debian:~$ cat fic.txt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT lami20j@debian:~$ sed 's/ /\n/g' fic.txt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
merci beaucoup monsieur, oui la première demande de mon encadreur était l'affichage, j'ai réussie a faire mais maintenant il me demande de sauvgarder chaque champs du ligne dans une case du tableau, s'il y a une solution je vous attend, et merci d'avance.
Salut,
Un exemple, à toi d'adapter
Un exemple, à toi d'adapter
$ cat fic.txt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT lami20j@debian:~$ tab=($(cat fic.txt|sed 's/ /\n/g' fic.txt)) $ for i in $(seq ${#tab[*]});do echo tab[$(($i-1))]=${tab[$(($i-1))]};done tab[0]=-A tab[1]=INPUT tab[2]=-m tab[3]=state tab[4]=--state tab[5]=ESTABLISHED,RELATED tab[6]=-j tab[7]=ACCEPT tab[8]=-A tab[9]=INPUT tab[10]=-p tab[11]=icmp tab[12]=-j tab[13]=ACCEPT tab[14]=-A tab[15]=INPUT tab[16]=-i tab[17]=lo tab[18]=-j tab[19]=ACCEPT
Re,
La commande cat est inutile
La commande cat est inutile
$ tab=($(sed 's/ /\n/g' fic.txt)) $ for i in $(seq ${#tab[*]});do echo tab[$(($i-1))]=${tab[$(($i-1))]};done tab[0]=-A tab[1]=INPUT tab[2]=-m tab[3]=state tab[4]=--state tab[5]=ESTABLISHED,RELATED tab[6]=-j tab[7]=ACCEPT tab[8]=-A tab[9]=INPUT tab[10]=-p tab[11]=icmp tab[12]=-j tab[13]=ACCEPT tab[14]=-A tab[15]=INPUT tab[16]=-i tab[17]=lo tab[18]=-j tab[19]=ACCEPT