parent
7121c1ad45
commit
1780a9b5ff
1 changed files with 191 additions and 0 deletions
@ -0,0 +1,191 @@ |
|||||||
|
## **POST /protection/flexrule** |
||||||
|
|
||||||
|
|
||||||
|
## **Inhalt** |
||||||
|
--- |
||||||
|
- Parameter |
||||||
|
- Optionale Parameter |
||||||
|
- Beispiel Anfrage |
||||||
|
- Beispiel Antwort |
||||||
|
- Mögliche Fehlermeldungen |
||||||
|
--- |
||||||
|
|
||||||
|
### Parameter |
||||||
|
|
||||||
|
|URL Parameter | Typ | Beschreibung| |
||||||
|
|----------|-----|-------------| |
||||||
|
|sequence| integer | Sequenznummer 1-10, steuert die Reihenfolge der Regelverarbeitung; muss fortlaufend sein und bei 1 beginnen - sonst werden alle Regeln ausgelassen |
||||||
|
|srcIpStart| string | Übereinstimmung mit der Quell-IP-Adresse als Bereichsanfang und -ende, 0 für keine Übereinstimmung |
||||||
|
|srcIpEnd| string | Übereinstimmung mit der Quell-IP-Adresse als Bereichsanfang und -ende, 0 für keine Übereinstimmung |
||||||
|
|dstIp| string | Ziel-Präfix für die Übereinstimmung |
||||||
|
|protocol| integer | IP-Protokollnummer, die übereinstimmen muss, z. B. 6 -> TCP, 17 -> UDP |
||||||
|
|srcPortStart| integer | Übereinstimmung mit Quellport im Bereich Anfang-Ende, 0 für keine Übereinstimmung |
||||||
|
|srcPortEnd| integer | Übereinstimmung mit Quellport im Bereich Anfang-Ende, 0 für keine Übereinstimmung |
||||||
|
|dstPortStart| integer | Übereinstimmung mit dem Zielport im Bereich Anfang-Ende, 0 für keine Übereinstimmung |
||||||
|
|dstPortEnd| integer | Übereinstimmung mit dem Zielport im Bereich Anfang-Ende, 0 für keine Übereinstimmung |
||||||
|
|paketLengthMin| integer | Paketlänge im Bereich Start-Ende, 0 für keine Übereinstimmung |
||||||
|
|paketLengthMax| integer | Paketlänge im Bereich Start-Ende, 0 für keine Übereinstimmung |
||||||
|
|payload| string | Optionale Nutzdaten für die Übereinstimmung (max. 30 Bytes) - leer für keine Übereinstimmung |
||||||
|
|flags| boolean | Abgleich von tcp-Flags aktivieren |
||||||
|
|syn| boolean | - |
||||||
|
|ack| boolean | - |
||||||
|
|psh| boolean | - |
||||||
|
|fin| boolean | - |
||||||
|
|urg| boolean | - |
||||||
|
|rst| boolean | - |
||||||
|
|ratelimit| integer | Ratelimit in Paketen pro Sekunde |
||||||
|
|action| integer | Anzuwendende Aktion, z. B. 0 zum Verwerfen |
||||||
|
|
||||||
|
|Body Parameter | Typ | Beschreibung| |
||||||
|
|----------|-----|-------------| |
||||||
|
| - | - | - | |
||||||
|
|
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
### Optionale Parameter |
||||||
|
|
||||||
|
|Query-String Parameter | Typ | Beschreibung| |
||||||
|
|----------|-----|-------------| |
||||||
|
|- | - | - |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
### Beispiel Anfrage |
||||||
|
|
||||||
|
##### PHP |
||||||
|
```php |
||||||
|
<?php |
||||||
|
|
||||||
|
$curl = curl_init(); |
||||||
|
|
||||||
|
curl_setopt_array($curl, array( |
||||||
|
CURLOPT_URL => 'control.local/api/v2/protection/flexrule', |
||||||
|
CURLOPT_CUSTOMREQUEST => 'POST', |
||||||
|
CURLOPT_POSTFIELDS =>'{ |
||||||
|
"sequence": 1, |
||||||
|
"srcIpStart": "0", |
||||||
|
"srcIpEnd": "0", |
||||||
|
"dstIp": "192.168.1.2/32", |
||||||
|
"protocol": 6, |
||||||
|
"srcPortStart": 0, |
||||||
|
"srcPortEnd": 0, |
||||||
|
"dstPortStart": 0, |
||||||
|
"dstPortEnd": 0, |
||||||
|
"paketLengthMin": 0, |
||||||
|
"paketLengthMax": 0, |
||||||
|
"payload": "", |
||||||
|
"flags": false, |
||||||
|
"syn": false, |
||||||
|
"ack": false, |
||||||
|
"psh": false, |
||||||
|
"fin": false, |
||||||
|
"urg": false, |
||||||
|
"rst": false, |
||||||
|
"ratelimit": 0, |
||||||
|
"action": 0 |
||||||
|
}', |
||||||
|
CURLOPT_HTTPHEADER => array( |
||||||
|
'X-TOKEN: test-token', |
||||||
|
'Content-Type: application/json' |
||||||
|
), |
||||||
|
)); |
||||||
|
|
||||||
|
$response = curl_exec($curl); |
||||||
|
|
||||||
|
curl_close($curl); |
||||||
|
echo $response; |
||||||
|
``` |
||||||
|
|
||||||
|
##### cURL |
||||||
|
```bash |
||||||
|
curl --location --request POST 'control.local/api/v2/protection/flexrule' \ |
||||||
|
--header 'X-TOKEN: test-token' \ |
||||||
|
--header 'Content-Type: application/json' \ |
||||||
|
--data-raw '{ |
||||||
|
"sequence": 1, |
||||||
|
"srcIpStart": "0", |
||||||
|
"srcIpEnd": "0", |
||||||
|
"dstIp": "192.168.1.2/32", |
||||||
|
"protocol": 6, |
||||||
|
"srcPortStart": 0, |
||||||
|
"srcPortEnd": 0, |
||||||
|
"dstPortStart": 0, |
||||||
|
"dstPortEnd": 0, |
||||||
|
"paketLengthMin": 0, |
||||||
|
"paketLengthMax": 0, |
||||||
|
"payload": "", |
||||||
|
"flags": false, |
||||||
|
"syn": false, |
||||||
|
"ack": false, |
||||||
|
"psh": false, |
||||||
|
"fin": false, |
||||||
|
"urg": false, |
||||||
|
"rst": false, |
||||||
|
"ratelimit": 0, |
||||||
|
"action": 0 |
||||||
|
}' |
||||||
|
``` |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
### Beispiel Antwort |
||||||
|
|
||||||
|
```json |
||||||
|
{ |
||||||
|
"status": "OK", |
||||||
|
"flexrule": { |
||||||
|
"uuid": "string", |
||||||
|
"seq": 1, |
||||||
|
"from": { |
||||||
|
"ip": { |
||||||
|
"src": { |
||||||
|
"start": "0", |
||||||
|
"end": "0" |
||||||
|
}, |
||||||
|
"dst": "192.168.1.2/32", |
||||||
|
"protocol": 6 |
||||||
|
}, |
||||||
|
"port": { |
||||||
|
"src": { |
||||||
|
"start": 0, |
||||||
|
"end": 0 |
||||||
|
}, |
||||||
|
"dst": { |
||||||
|
"start": 0, |
||||||
|
"end": 0 |
||||||
|
} |
||||||
|
}, |
||||||
|
"length": { |
||||||
|
"start": 0, |
||||||
|
"end": 0 |
||||||
|
}, |
||||||
|
"payload": "", |
||||||
|
"tcp": { |
||||||
|
"flags": false, |
||||||
|
"syn": false, |
||||||
|
"ack": false, |
||||||
|
"psh": false, |
||||||
|
"fin": false, |
||||||
|
"urg": false, |
||||||
|
"rst": false |
||||||
|
} |
||||||
|
}, |
||||||
|
"then": { |
||||||
|
"ratelimit": 0, |
||||||
|
"action": 0, |
||||||
|
"gqc": { |
||||||
|
"type": 0, |
||||||
|
"ratelimit": 0, |
||||||
|
"passthrough": false |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
### Mögliche Fehlermeldungen |
||||||
|
|
||||||
|
> :warning: Status Code **403** - Permission denied |
||||||
|
|
||||||
|
> :warning: Status Code **403** - You're not allowed to create flexrules outside your ip subnets |
Loading…
Reference in new issue