Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • Status Nouveau
  • Percent Complete
    0%
  • Task Type Évolution
  • Category Freebox OS → Interface Web
  • Assigned To No-one
  • Operating System Tous
  • Severity Low
  • Priority Very Low
  • Reported Version 4.8.17.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private

FS#39965 - Gestion groupées des redirections de ports

Bonjour,

Serait-il possible d'ajouter dans la section Gestion des ports / Redirections de ports une manière de grouper ces règles ? Cela permettrait d'activer ou désactiver les règles d'un coup sans en oublier.

La raison est que certaines activités nécessitent plusieurs ports d'ouverts. Autant permettre de les regrouper sous un nom commun. Cela existe à ma connaissance dans les pare feux normalement.

Avec mes amis ils nous arrivent de faire des jeux en réseau à distance. Il faut ouvrir un certains nombres de ports afin de pouvoir être le serveur central pour cette partie. Dans la Gestion des ports / Redirections de ports les règles sont empilées sans groupement.

Bonjour

Je crois que c'est même pire, quand on modifie une règle elle se met systématiquement en bas de pile.
Habituellement la pile d'un firewall part du haut et descend les règles jusqu'à ce que le paquet match ou deny… surprenant comme comportement

Une solution pour vous serait d'utiliser l'API avec un script qui enable ou disable les règles en masse.

Il existe une library bash qui permet (entre autre) d'activer ou désactiver des règles.
Il suffit d'avoir l'"id" de la règle à activer ou désactiver puis d'executer des groupes de commandes depuis un script

exemple: les règles 3, 13, 33 et 8, 18, 28, sont à désactiver :

#!/bin/bash

# je suis un commentaire

# on source la library
_LIB_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source ${_LIB_DIR}/fbx-delta-nba_bash_api.sh

# on déclare ses API credential 
MY_APP_ID="mon_appli_qui_disable_les_ports_de_tel_jeux"
MY_APP_TOKEN="api_token_obtenu_pour_cette_appli"

# on se connect à l'API
login_freebox "$MY_APP_ID" "$MY_APP_TOKEN"


# on liste les redirections DNAT actuelles de la freebox
list_fw_redir

# on disable la liste de règles de firewall 3, 13, 33 et 8, 18, 28

for fwredir in 3 8 12 18 28 33
do
   dis_fw_redir $fwredir
done

# NOTE: pour activer les règles, remplacer "dis_fw_redir" par "ena_fw_redir"

# contrôle : 
list_fw_redir

Cordialement
nbanba

Merci

Du coup je vais regarder dans l'API quitte à faire un site web interne qui permet de gérer les ports plus facilement :)

Je pense quand même que cette fonction dans l'interface web de la Freebox pourrait servir à d'autres personnes :)

Bonjour

je ne pense pas que vous utilisiez exec() ou shell_exec() dans votre site web (dangereux) mais si vous voulez faire un script shell vous trouverez le repo actif (upstream) de la library BASH ici:
https://github.com/nbanb/fbx-delta-nba_bash_api.sh

Et le repos publique ici:
https://github.com/freeboxos/freeboxos-bash-api

(Au besoin je répond aux issues sur les 2 repos)

Cordialement
nbanba

Bonjour

J'oubliais, la fonction authorize_application de la library est très pratique pour obtenir un APP_TOKEN permettant de générer le SESSION_TOKEN pour se connecter à l'API (Voir QUICK START ou QUICK START FULL EXEMPLE dans le README.md).

Aujourd'hui c'est facile à utiliser même avec un pc windows 10 ou windows 11 en lançant un linux (ex: debian12) avec WSL2.

Cordialement
nbanba

Pour l'API c'est de faire des GET et des POST avec du json transmis, non ? Pas d'accès à du shell.

Bonjour

Oui des GET POST PUT DELETE
Et du websocket pour : écouter des events + console VM + VNC screen VM + upload de fichiers (attention pour l upload on envoie et reçoit des trames websocket text pour les commandes puis des trames binary dans le même websocket pour les chunks du fichier transferé)

C'est le seul point délicat avec le hmac digest sha1 du app_token pour générer le session_token.
Sinon rien de compliqué

Après certains objets json retournés peuvent être gros et le parsing manuel délicat ⇒ l'utilisation d'un parseur type 'jq' ou une library comme proposent python ou nodejs peut être util
(Dans la lib bash je parse manuellement tant que c'est plus rapide et si 'jq' est installé sur la machine dès que le json fait plusieurs dizaines de kb, la lib utilise 'jq')

Il y a la doc dans freeboxos : demarrer>développer

Cordialement
nbanba

Super

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing