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
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.dsh.gg/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
curl --location --request POST 'https://api.dsh.gg/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
{
"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
⚠️ Status Code 403 - Permission denied
⚠️ Status Code 403 - You're not allowed to create flexrules outside your ip subnets