docs: améliore le README avec des émojis et corrige les accents
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
# pfSense API scripts
|
# 🔧 pfSense API scripts
|
||||||
|
|
||||||
Scripts Bash pour interagir avec pfSense via le paquet REST API v2.
|
Scripts Bash pour interagir avec pfSense via le paquet REST API v2.
|
||||||
|
|
||||||
## Arborescence
|
## 📁 Arborescence
|
||||||
|
|
||||||
```text
|
```text
|
||||||
pfsense-api/
|
pfsense-api/
|
||||||
├── AGENTS.md
|
|
||||||
├── README.md
|
├── README.md
|
||||||
├── .gitignore
|
├── .gitignore
|
||||||
├── .env.example
|
├── .env.example
|
||||||
@@ -17,15 +16,15 @@ pfsense-api/
|
|||||||
└── test-api-connection.sh
|
└── test-api-connection.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Prerequis
|
## ✅ Prérequis
|
||||||
|
|
||||||
- pfSense avec le paquet REST API v2 installe et active.
|
- 🖥️ pfSense avec le paquet REST API v2 installé et activé.
|
||||||
- Authentification Basic active cote API.
|
- 🔑 Authentification Basic activée côté API.
|
||||||
- Un utilisateur pfSense ayant acces a l'endpoint de test.
|
- 👤 Un utilisateur pfSense ayant accès à l'endpoint de test.
|
||||||
- `curl` installe localement.
|
- 🌐 `curl` installé localement.
|
||||||
- `jq` installe localement pour generer les payloads JSON.
|
- 🔍 `jq` installé localement pour générer les payloads JSON.
|
||||||
|
|
||||||
## Configuration
|
## ⚙️ Configuration
|
||||||
|
|
||||||
Copier l'exemple puis adapter les valeurs localement :
|
Copier l'exemple puis adapter les valeurs localement :
|
||||||
|
|
||||||
@@ -41,19 +40,19 @@ PFSENSE_USER="api-user"
|
|||||||
PFSENSE_PASSWORD="change-me"
|
PFSENSE_PASSWORD="change-me"
|
||||||
```
|
```
|
||||||
|
|
||||||
Si pfSense utilise un certificat auto-signe :
|
Si pfSense utilise un certificat auto-signé :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
PFSENSE_INSECURE=true
|
PFSENSE_INSECURE=true
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tester la connexion API
|
## 🩺 Tester la connexion API
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./scripts/test-api-connection.sh
|
./scripts/test-api-connection.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Par defaut, le script teste :
|
Par défaut, le script teste :
|
||||||
|
|
||||||
```text
|
```text
|
||||||
/api/v2/status/system
|
/api/v2/status/system
|
||||||
@@ -65,7 +64,7 @@ Pour tester un autre endpoint en lecture seule :
|
|||||||
PFSENSE_ENDPOINT="/api/v2/firewall/rules" ./scripts/test-api-connection.sh
|
PFSENSE_ENDPOINT="/api/v2/firewall/rules" ./scripts/test-api-connection.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Creer une redirection de port
|
## ➕ Créer une redirection de port
|
||||||
|
|
||||||
En mode interactif, lancer simplement :
|
En mode interactif, lancer simplement :
|
||||||
|
|
||||||
@@ -74,7 +73,7 @@ En mode interactif, lancer simplement :
|
|||||||
```
|
```
|
||||||
|
|
||||||
Le script demandera les valeurs manquantes : port WAN, IP interne, port interne,
|
Le script demandera les valeurs manquantes : port WAN, IP interne, port interne,
|
||||||
protocole, interface, description, regle firewall associee et application des
|
protocole, interface, description, règle firewall associée et application des
|
||||||
changements.
|
changements.
|
||||||
|
|
||||||
Exemple : exposer le port TCP `8443` de l'adresse WAN pfSense vers le port
|
Exemple : exposer le port TCP `8443` de l'adresse WAN pfSense vers le port
|
||||||
@@ -89,14 +88,14 @@ Exemple : exposer le port TCP `8443` de l'adresse WAN pfSense vers le port
|
|||||||
--description "WAN 8443 vers serveur web interne"
|
--description "WAN 8443 vers serveur web interne"
|
||||||
```
|
```
|
||||||
|
|
||||||
Par defaut, le script :
|
Par défaut, le script :
|
||||||
|
|
||||||
- cree la regle sur l'interface `wan`;
|
- crée la règle sur l'interface `wan` ;
|
||||||
- utilise la destination `wan:ip`, c'est-a-dire l'adresse WAN pfSense;
|
- utilise la destination `wan:ip`, c'est-à-dire l'adresse WAN pfSense ;
|
||||||
- cree une regle firewall associee avec `associated_rule_id=new`;
|
- crée une règle firewall associée avec `associated_rule_id=new` ;
|
||||||
- applique explicitement les changements via `/api/v2/firewall/apply`.
|
- applique explicitement les changements via `/api/v2/firewall/apply`.
|
||||||
|
|
||||||
Pour creer la regle sans appliquer tout de suite :
|
Pour créer la règle sans appliquer tout de suite :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./scripts/add-port-forward.sh \
|
./scripts/add-port-forward.sh \
|
||||||
@@ -106,7 +105,7 @@ Pour creer la regle sans appliquer tout de suite :
|
|||||||
--no-apply
|
--no-apply
|
||||||
```
|
```
|
||||||
|
|
||||||
## Creer un alias IP
|
## 🏷️ Créer un alias IP
|
||||||
|
|
||||||
En mode interactif :
|
En mode interactif :
|
||||||
|
|
||||||
@@ -123,7 +122,7 @@ Exemple avec une seule IP :
|
|||||||
--description "Serveur web interne"
|
--description "Serveur web interne"
|
||||||
```
|
```
|
||||||
|
|
||||||
Exemple avec plusieurs entrees :
|
Exemple avec plusieurs entrées :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./scripts/add-ip-alias.sh \
|
./scripts/add-ip-alias.sh \
|
||||||
@@ -132,19 +131,19 @@ Exemple avec plusieurs entrees :
|
|||||||
--details "web-01,web-02"
|
--details "web-01,web-02"
|
||||||
```
|
```
|
||||||
|
|
||||||
Par defaut, le script cree un alias de type `host` et applique explicitement
|
Par défaut, le script crée un alias de type `host` et applique explicitement
|
||||||
les changements via `/api/v2/firewall/apply`.
|
les changements via `/api/v2/firewall/apply`.
|
||||||
|
|
||||||
## Gerer les redirections NAT
|
## 🔀 Gérer les redirections NAT
|
||||||
|
|
||||||
Lister les redirections NAT, puis en selectionner une pour la modifier ou la
|
Lister les redirections NAT, puis en sélectionner une pour la modifier ou la
|
||||||
supprimer :
|
supprimer :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./scripts/manage-port-forwards.sh
|
./scripts/manage-port-forwards.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Le script appelle `/api/v2/firewall/nat/port_forwards` pour lister les regles,
|
Le script appelle `/api/v2/firewall/nat/port_forwards` pour lister les règles,
|
||||||
puis `/api/v2/firewall/nat/port_forward` en `PATCH` ou `DELETE` selon l'action
|
puis `/api/v2/firewall/nat/port_forward` en `PATCH` ou `DELETE` selon l'action
|
||||||
choisie. Les changements sont appliques via `/api/v2/firewall/apply`, sauf avec
|
choisie. Les changements sont appliqués via `/api/v2/firewall/apply`, sauf avec
|
||||||
`--no-apply`.
|
`--no-apply`.
|
||||||
|
|||||||
Reference in New Issue
Block a user