- Communauté Orange
- ➔
- internet & fixe
- ➔
- Livebox
- ➔
- Re: Traitement du bug nat/pat
Vous avez une question ?
Interrogez la communautéTraitement du bug nat/pat
- S'abonner au fil RSS
- Marquer le sujet comme nouveau
- Marquer le sujet comme lu
- Placer ce Sujet en tête de liste pour l'utilisateur actuel
- Marquer
- S'abonner
- Page imprimable
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
Re: Traitement du bug nat/pat
ç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.
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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.
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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...
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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 ""
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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.
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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.
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
Re: Traitement du bug nat/pat
En complément, il est aussi possible de (re) créer des règles avec curl.
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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 ?
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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.
Suggérer, expliquer, démontrer ne suffit parfois pas. On apprend de ses erreurs, enfin la plupart. "I'm All Out of Gum."
- Marquer comme nouveau
- Marquer
- S'abonner
- S'abonner au fil RSS
- Imprimer
- Signaler
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.txta rentrer sur un terminal LINUX et en ayant installer JQ et CURL avec
sudo apt install curl jq
Merci matrixbx pour ton aide