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