Recherchez dans la Communauté

Vous avez une question ?

Interrogez la communauté

internet & fixe Livebox

Traitement du bug nat/pat

matrixbx
fan
fan
1 051  

Re: Traitement du bug nat/pat

@plx1 

ça ne devrait pas être vide, quand l'authentification échoue, ça doit contenir "null".

Tu n’essaierais pas en admin distante par hasard, si c'est le cas, il faut mettre PROTO="-k https" sinon le certificat n'est pas accepté par curl et c'est effectivement vide.

Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
matrixbx
fan
fan
1 025  

Re: Traitement du bug nat/pat

Bonjour @plx1 

Après avoir renseigné les variables PROTO, URL, PORT, USERNAME et PASSWORD, voici ce que donne la commande d'ouverture de session avec un mauvais mot de passe (sans le | jq '.' et en ajoutant un saut de ligne) :

$ curl -c cookies-jar.txt -s $PROTO://$URL:$PORT/ws -H 'Authorization: X-Sah-Login' -H 'Content-Type: application/x-sah-ws-4-call+json' --data-raw $'{"service":"sah.Device.Information","method":"createContext","parameters":{"applicationName":"webui","username":"'$USERNAME'","password":"'$PASSWORD'"}}' ; echo ""
{"status":1,"data":{}}
$

Après avoir corrigé avec le bon password :

{"status":0,"data":{"contextID":"y3jYzET012tlKf0sPuBbSCB4qwV8diP7zHYeUfp/KtGJSTkj9D8aj9ujohnBt+SV","username":"admin","groups":"http,admin"}}

J'aime pas bien ton message d'erreur, l'erreur vient probablement de là.

"parse error : Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 1646"

J'ai allégé la requête en virant certaines entêtes qui n'étaient pas indispensables.

Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
plx1
contributeur occasionnel
976  

Re: Traitement du bug nat/pat

Bonjour, voila les news après quelques tests :

 

La commande d'ouverture de session renvoie bien la bonne chaine, le password est bien valide.

J'ai mis des echo un peu partout dans le code, tout se déroule bien et les variables remontent bien CONTEXTID, SESSIONID, COOKIEID sont OK.

 

Seule la commande curl finale coince, avec toujours le même message "parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 1646"

 

Le fichier ...LBFW.txt est bien créé mais vide, et le fichier cookies-jar.txt est complété avec la ligne suivante : "HttpOnly_192.168.1.1 FALSE / FALSE 0 cdda1e19/sessid o760XDNQWpTvOSkWBeF3oDM/"

 

Je ne vois pas ce qui cloche...

matrixbx
fan
fan
962  

Re: Traitement du bug nat/pat

C'est "curieux" ...

Essais pour voir sans le "| jq '.'" (et en sautant une ligne à la fin).

curl -s $PROTO://$URL:$PORT/ws \
  -H 'Authorization: X-Sah '$CONTEXTID \
  -H 'Content-Type: application/x-sah-ws-4-call+json' \
  -H 'Cookie: '$COOKIEID'/sessid='$SESSIONID'; sah/contextId='$CONTEXTID \
  -H 'X-Context: '$CONTEXTID \
  --data-raw '{"service":"Firewall","method":"getPortForwarding","parameters":{"origin":"webui"}}' ; echo ""
Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
plx1
contributeur occasionnel
956  

Re: Traitement du bug nat/pat

Et bien le curl fonctionne bien et m'affiche la liste de mes règles de forwarding dans le shell !

Moyennant un peu de mise en forme ça correspond exactement à mon besoin !

Merci à toi pour le temps passé, je vais pouvoir retrouver l'ensemble des règles pour réinitialiser la LB.

matrixbx
fan
fan
928  

Re: Traitement du bug nat/pat

donc c'est jq qui couine parce qu'il est "pas content", le json doit donc contenir un/des caractères "exotiques", possiblement la raison de la "disparition" de la/les règles de l'interface de la box.

Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
matrixbx
fan
fan
898  

Re: Traitement du bug nat/pat

En complément, il est aussi possible de (re) créer des règles avec curl.

Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
plx1
contributeur occasionnel
858  

Re: Traitement du bug nat/pat

C'est intéressant ça, quelle serait la commande ?

Et il existe aussi une commande pour supprimer des règles existantes ?

matrixbx
fan
fan
835  

Re: Traitement du bug nat/pat

Salut @plx1 

À utiliser avec prudence, j'ai pas poussé les tests.

# Les variables utilisées.

Description="TestLesDeux" # Le nom de la règle. ID=$Description # Après création, sera préfixé par "webui_" automatiquement, à noter pour les suppressions qui l'utilisent. PortInterne="777" # Le port interne (pour une plage "777-780"). PortExterne="777" # Le port interne (pour une plage "777-780"). DestinationIPv4="192.168.1.100" # L'adresse LAN destination. Protocole="6,17" # "6" pour TCP, "17" pour UDP, "6,17" pour les deux. Pour créer (il faut évidement avoir ouvert une session avant). curl -s $PROTO://$URL:$PORT/ws \
-H 'Authorization: X-Sah '$CONTEXTID \
-H 'Content-Type: application/x-sah-ws-4-call+json' \
-H 'X-Context: '$CONTEXTID \
-H 'Cookie: '$COOKIEID'/sessid='$SESSIONID'; sah/contextId='$CONTEXTID \
--data-raw '{"service":"Firewall","method":"setPortForwarding","parameters":{"id":"'$ID'","internalPort":"'$PortInterne'","externalPort":"'$PortExterne'","destinationIPAddress":"'$DestinationIPv4'","enable":true,"persistent":true,"protocol":"'$Protocole'","description":"'$Description'","sourceInterface":"data","origin":"webui","destinationMACAddress":""}}' Pour supprimer (je remets pas le début de la commande). --data-raw '{"service":"Firewall","method":"deletePortForwarding","parameters":{"id":"webui_'$Description'","destinationIPAddress":"'$DestinationIPv4'","origin":"webui"}}' Pour appliquer. --data-raw '{"service":"Firewall","method":"commit","parameters":{}}'

Tout ceci à été déterminé en observant la console du navigateur (F12).

Bonne journée.

Politesse et courtoisie ne sont pas en option (en cas d'abus graves et répétés, \o< >/dev/null).
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
Dralle
contributeur occasionnel
750  

Re: Traitement du bug nat/pat

en résumé avec toutes les modif nécessaire, le code pour avoir toutes les règles :

PROTO="http" # "-k https" pour l'admin distante et pour accepter le certificat.

URL="192.168.1.1"

PORT="80"



USERNAME="admin"

PASSWORD="tonmdpici"



CONTEXTID=$(curl -m 3 -c .cookies-jar.txt -s $PROTO://$URL:$PORT/ws -H 'Authorization: X-Sah-Login' -H 'Content-Type: application/x-sah-ws-4-call+json' --data-raw $'{"service":"sah.Device.Information","method":"createContext","parameters":{"applicationName":"webui","username":"'$USERNAME'","password":"'$PASSWORD'"}}' 2>/dev/null | jq -r '.data.contextID')



SESSIONID=$(awk /$URL/'{print $NF}' .cookies-jar.txt)

COOKIEID=$(awk /$URL/'{print $6}' .cookies-jar.txt | cut -d "/" -f1)





curl -s $PROTO://$URL:$PORT/ws \

  -H 'Authorization: X-Sah '$CONTEXTID \

  -H 'Content-Type: application/x-sah-ws-4-call+json' \

  -H 'Cookie: '$COOKIEID'/sessid='$SESSIONID'; sah/contextId='$CONTEXTID \

  -H 'X-Context: '$CONTEXTID \

  --data-raw '{"service":"Firewall","method":"getPortForwarding","parameters":{"origin":"webui"}}' ; echo ""

 

rm .cookies-jar.txt
a rentrer sur un terminal LINUX et en ayant installer JQ et CURL avec 
sudo apt install curl jq

Merci matrixbx pour ton aide

Vous avez une question ?

Interrogez la communauté

Déjà 773661 membres inscrits 🧡

842 personnes actuellement en ligne

Tous les membres en ligne