2 POST /protection/flexrule
Thomas Brinkmann edited this page 2 years ago

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