English Forums > Tutorials and FAQs

api/firewall/filter/addRule add filter rules by API [Solved]

(1/1)

ble:
Hello everybody,
I work with opnsense 23.1.6 the plugin os-firewall is installed.
I work with api since severals Days. But i can't create a new filter rule!!

I read the faq and i search in forum.


--- Code: ---curl -m 5 -k -u "$key":"$secret" https://$urlOpn/api/core/firmware/status
--- End code ---
        work fine



--- Code: ---curl -m5 -k -u "$key":"$secret" https://"$urlOpn"/api/firewall/filter/searchRule?searchPhrase=$Filtre
--- End code ---
     

              work fine, if i have manual created a rules in Firewall-->Rules-->automation-->filter

but the script bash above  return {"result" :"failed"}


--- Code: ---#!/bin/bash
# Configuration de l'API OPNsense
OPNSENSE_API_KEY=$key
OPNSENSE_API_SECRET=$secret
OPNSENSE_API_URL="https://$urlOpn/api"

# Configuration de la règle de filtrage
RULE_NAME="block 192.168.20.50"
RULE_ACTION="reject"
RULE_INTERFACE="LanWifiTV"
RULE_PROTOCOL="tcp"
RULE_SOURCE="192.168.20.45"
RULE_SOURCE_PORT="*"
RULE_DESTINATION="any"
RULE_DESTINATION_PORT="any"

# Création de la règle de filtrage via l'API OPNsense
response=$(curl -k -u "$key":"$secret" -X POST \
-H "Content-Type: application/json" \
-d '{
    "action": "$RULE_ACTION",
    "interface": "$RULE_INTERFACE",
    "protocol": "$RULE_PROTOCOL",
    "source": "$RULE_SOURCE",
    "sourceport": "$RULE_SOURCE_PORT",
    "destination": "$RULE_DESTINATION",
    "dstport": "$RULE_DESTINATION_PORT",
    "descr": "$RULE_NAME"
  }' \
"$OPNSENSE_API_URL/firewall/filter/addRule")
#*********************
# Vérification de la réponse de l'API
echo $response | grep failed
if [ $? -eq 0 ]; then
  echo "Une erreur s'est produite lors de l'ajout de la règle de filtrage."
else
  echo "La règle de filtrage a été ajoutée avec succès."
fi
--- End code ---

some kind soul would be kind enough to guide me to the right solution?

best regards













ble:
 je me repond à moi même

Il faut en plus  ajouter  les droits :
    dans System-->Access-->Users--> [user qui a la key] --> effective Privilèges GUI Firewall: Rules:API


--- Code: ---ip='192.168.20.50'

# Configuration de l'API OPNsense
OPNSENSE_API_KEY=$key
OPNSENSE_API_SECRET=$secret
OPNSENSE_API_URL="https://$urlOpn/api"

# Configuration de la règle de filtrage

RULE_NAME="block $ip"
RULE_ACTION="reject"
RULE_INTERFACE="opt3"
RULE_PROTOCOL="TCP"
RULE_SOURCE="$ip"

# Création de la règle de filtrage via l'API OPNsense
response=$(curl -k -u "$key":"$secret" -X POST $OPNSENSE_API_URL/firewall/filter/addRule -H "Content-Type: application/json" -d '{
"rule" : {"action": "'"$RULE_ACTION"'", "interface": "'"$RULE_INTERFACE"'", "description": "'"$RULE_NAME"'", "source_net": "'"$RULE_SOURCE"'", "protocol": "'"$RULE_PROTOCOL"'"}}')
#*********************
# Vérification de la réponse de l'API
echo $response > retaddrule.json
cat retaddrule.json | jq

cat retaddrule.json | grep failed
if [ $? -eq 0 ]; then
  echo "Une erreur s'est produite lors de l'ajout de la règle de filtrage."
else
  echo "La règle de filtrage a été ajoutée avec succès."
fi
--- End code ---

merci pour tout

Navigation

[0] Message Index

Go to full version