Sicherheitsgruppenregeln auf Quellen-und Ziel-IP-Adressen anwenden

Sicherheitsgruppenregeln unterstützen jetzt lokale IP-Adressen. Dies bedeutet, dass Regeln bestimmte lokale IP-Adressen zulassen können, anstatt alle lokalen IP-Adressen zuzulassen. Sicherheitsgruppenregeln unterstützen lokale IP-Adressen für Ingress-und Egress-Regeln.

Das Zulassen bestimmter lokaler IP-Adressen oder Adressbereiche mit einer Sicherheitsgruppenregel ist in folgenden Fällen nützlich:

  • Sie haben sekundäre private IP-Adressen, die einer einzelnen virtuellen Netzschnittstelle zugeordnet sind.
  • Sie haben angepasste Routen, die Pakete an eine Schnittstelle weiterleiten, für die IP-Spoofing zulässig ist.

Sie können eine Sicherheitsgruppenregel für eingehende Daten anwenden, die nur bestimmte lokale Ziel-IP-Adressen zulässt. Sie können auch eine Sicherheitsgruppenregel für abgehende Nachrichten anwenden, die nur bestimmte lokale Quellen-IP-Adressen zulässt.

Sie können Regeln für Sicherheitsgruppen (eingehend und ausgehend) über die Konsole, die Befehlszeilenschnittstelle, die API und Terraform anwenden.

Tipps:

  • Alle Regeln werden ausgewertet, unabhängig von der Reihenfolge, in der sie hinzugefügt werden.
  • Regeln sind statusabhängig, was bedeutet, dass der Verkehr, der als Antwort auf zulässigen Datenverkehr zurückgegeben wird, automatisch zulässig ist. Sie haben beispielsweise eine Regel erstellt, mit der der eingehende TCP-Datenverkehr an Port 80 empfangen werden kann. Diese Regel ermöglicht auch den ausgehenden TCP-Datenverkehr an den Ursprungshost, der zur Beantwortung des eingehenden TCP-Datenverkehrs gesendet wird, über den Port 80, ohne dass dazu eine zusätzliche Regel erforderlich ist.
  • Stellen Sie bei Windows-Images sicher, dass die mit der Instanz verknüpfte Sicherheitsgruppe eingehenden und ausgehenden Remote Desktop Protocol-Datenverkehr (TCP-Port 3389) zulässt.

Anwendungsfälle

Wenn Sie eine Sicherheitsgruppenregel erstellen, haben Sie die Möglichkeit, eine bestimmte lokale IP-Adresse oder CIDR zuzulassen. Ähnlich wie die ferne Eigenschaft gibt es eine lokale Eigenschaft, die eine der folgenden sein kann:

  • Eine IP-Adresse-Die Regel gilt für eine bestimmte Ziel-IP-Adresse (für eine Regel für eingehende Daten) oder Quellen-IP-Adresse (für eine Regel für abgehende Daten).
  • CIDR-Die Regel gilt für eine bestimmte Ziel-CIDR (für eine eingehende Regel) oder Quellen-CIDR (für eine abgehende Regel).

Abbildung 1 zeigt eine abgehende Sicherheitsgruppenregel mit einer local-IP-Adresse. Datenverkehr von der lokalen IP-Adresse 10.243.0.1 zu einer beliebigen fernen Adresse im Bereich 10.243.200.0/24 ist zulässig. Die grüne Datenpfadlinie zeigt den zulässigen Datenverkehr an, die rote Linie den nicht zulässigen Datenverkehr.

Abbildung von Sicherheitsgruppenregeln, die ausgehenden
Sicherheitsgruppenregel, die ausgehenden Verkehr

Abbildung 2 zeigt eine Eingangsregel für Sicherheitsgruppen mit einer local-IP-Adresse. Datenverkehr, der an die lokale IP-Adresse 10.243.0.1 von einer beliebigen fernen Adresse im Bereich 10.243.200.0/24 gerichtet ist, ist zulässig. Datenverkehr zu anderen lokalen IP-Adressen ist nicht zulässig.

Abbildung von Sicherheitsgruppenregeln, die eingehenden
Sicherheitsgruppenregel, die eingehenden Verkehr

Sicherheitsgruppenregeln in der Konsole erstellen

Sie können eingehende und abgehende Regeln während oder nach der Bereitstellung einer Sicherheitsgruppe erstellen.

  1. Öffnen Sie in Ihrem Browser die IBM Cloud-Konsole.

  2. Wählen Sie das Navigationsmenü -Symbol aus und klicken Sie dann auf das Symbol „Infrastruktur- VPC“ > „Netzwerk“ > „Sicherheitsgruppen“.

  3. Wählen Sie in der Tabelle "Sicherheitsgruppen für VPC" eine der folgenden Optionen aus:

    • Um Regeln zu erstellen, wenn eine neue Sicherheitsgruppe bereitgestellt wird, klicken Sie auf Erstellen und befolgen Sie dann die Anweisungen unter Sicherheitsgruppe für Ihre Ressource einrichten.
    • Wenn Sie Regeln für eine vorhandene Sicherheitsgruppe erstellen möchten, klicken Sie auf den Namen der Sicherheitsgruppe, um die zugehörige Detailseite anzuzeigen. Fahren Sie anschließend mit Schritt 4 fort.
  4. Wählen Sie die Registerkarte Regeln aus, um Regeln zu erstellen und zu verwalten.

  5. Wählen Sie eine der folgenden Optionen:

    • Wenn Sie eine Eingangsregel erstellen möchten, wählen Sie Erstellen in der Tabelle "Eingangsregeln" aus und füllen Sie die folgenden Felder aus. Klicken Sie anschließend auf Erstellen.

      • Protokoll – Geben Sie das Protokoll an, das erzwungen werden soll ( ICMP_TCP_UDP, ANY oder eines der anderen IPv4 Protokolle).
      • Port-Geben Sie die Ports an, für die die Regel gilt. Wählen Sie Beliebig aus oder geben Sie einen Portbereich an (minimale und maximale Portwerte). Die Portwerte für TCP und UDP müssen Zahlen zwischen 1 und 65535 sein. Gültige Portwerte für ICMP sind 0 bis 254.
      • Quelltyp – Wählen Sie die Netzwerkschnittstellen aus, über die diese Regel Datenverkehr zulässt. Sie können Beliebig, IP-Adresse oder CIDR-Block für eingehenden, zulässigen Datenverkehr auswählen. Alternativ hierzu können Sie eine Sicherheitsgruppe in derselben VPC-Instanz angeben, um den Datenverkehr zu oder von allen Instanzen zuzulassen, die der ausgewählten Sicherheitsgruppe zugeordnet sind.
      • Zieltyp-Wählen Sie Beliebig, IP-Adresse oder CIDR-Block aus.
    • Wählen Sie zum Erstellen einer Ausgangsregel Erstellen in der Tabelle "Ausgangsregeln" aus und füllen Sie die folgenden Felder aus. Klicken Sie anschließend auf Erstellen.

      • Protokoll – Geben Sie das Protokoll an, das angewendet werden soll ( TCP, UDP, ICMP oder TCP-UDP-ICMP ).
      • Port-Geben Sie die Ports an, für die die Regel gilt. Wählen Sie Beliebig aus oder geben Sie einen Portbereich an (minimale und maximale Portwerte). Die Portwerte für TCP und UDP müssen Zahlen zwischen 1 und 65535 sein. Gültige Portwerte für ICMP sind 0 bis 254.
      • Zieltyp-Wählen Sie Beliebig, IP-Adresse, CID-Block oder Sicherheitsgruppe aus.
      • Quellentyp-Wählen Sie Beliebig, IP-Adresse oder CIDR-Block aus.

Sicherheitsgruppenregeln über die Befehlszeilenschnittstelle erstellen

Geben Sie den folgenden Befehl ein, um Sicherheitsgruppenregeln (eingehend und abgehend) über die Befehlszeilenschnittstelle zu erstellen:

ibmcloud is security-group-rule-add GROUP DIRECTION PROTOCOL [--vpc VPC] [--local LOCAL_ADDRESS | CIDR_BLOCK] [--remote REMOTE_ADDRESS | CIDR_BLOCK | SECURITY_GROUP] [--icmp-type ICMP_TYPE [--icmp-code ICMP_CODE]] [--port-min PORT_MIN] [--port-max PORT_MAX] [--output JSON] [-q, --quiet]

Dabei gilt:

GROUP
Die ID oder der Name der Sicherheitsgruppe.
DIRECTION
Die zu erzwingende Richtung des Datenverkehrs. Eines von: inbound, outbound.
PROTOCOL
Protokoll, für das die Regel gilt. Eines von: tcp, udp, icmp, icmp_tcp_udp gre, ip_in_ip, ah, esp, l2tp, rsvp, sctp, vrrp, oder number_<N>.
--vpc
ID oder Name der VPC. Diese Option ist nur erforderlich, um die eindeutige Ressource innerhalb dieser VPC anhand ihres Namens anzugeben.
--local
Lokale IP-Adresse oder Bereich lokaler IP-Adressen, für die diese Regel eingehenden Datenverkehr zulässt (oder von denen aus für ausgehenden Datenverkehr). Kann als IP-Adresse oder als CIDR-Block angegeben werden. Eines von: LOCAL_ADDRESS, CIDR_BLOCK. Ein CIDR-Block von 0.0.0.0/0 erlaubt Datenverkehr zu allen lokalen IP-Adressen (oder von allen lokalen IP-Adressen, bei ausgehenden Regeln).
--remote
Die Gruppe von Netzschnittstellen, von denen diese Regel Datenverkehr zulässt. Es kann entweder als, CIDR_BLOCK, oder SECURITY_GROUP angegeben REMOTE_ADDRESS werden. Ohne Angabe ist Datenverkehr von jeder Quelle zulässig (oder an jede Quelle, bei Regeln für abgehenden Datenverkehr).
--icmp-type
Typ von ICMP-Datenverkehr, der zulässig sein soll. Gültige Werte von 0 bis 254. Diese Option wird nur angegeben, wenn das Protokoll auf icmp gesetzt ist. Wird keine Angabe gemacht, sind alle Typen zulässig.
--icmp-code
Code für den ICMP-Datenverkehr, der zulässig sein soll. Gültige Werte von 0 bis 255. Diese Option wird nur angegeben, wenn als Protokoll der Wert 'icmp' festgelegt ist. Wird keine Angabe gemacht, sind alle Codes zulässig.
-port-min
Mindestwert für Portnummer. Gültige Werte liegen zwischen 1 und 65535. Diese Option wird nur angegeben, wenn das Protokoll auf tcp oder udp gesetzt ist. Wenn nicht angegeben, sind alle Ports zulässig (Standard: 1).
--port-max
Maximaler Wert für Portnummer. Gültige Werte liegen zwischen 1 und 65535. Diese Option wird nur angegeben, wenn das Protokoll auf tcp oder udp gesetzt ist. Wenn nicht angegeben, sind alle Ports zulässig (Standard: 65535).
--output
Ausgabeformat. Einer von JSON.
--q, --quiet
Ausführliche Ausgabe unterdrücken.

CLI-Beispiele

  • ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any
  • ibmcloud is security-group-rule-add my-sg inbound any
  • ibmcloud is security-group-rule-add my-sg inbound any --vpc my-vpc
  • ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound icmp --icmp-type 8 --icmp-code 0
  • ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 12.3.2.4
  • ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3 inbound any --remote 72b27b5c-f4b0-48aa-b954-5becc7c1dcb3
  • ibmcloud is security-group-rule-add my-sg inbound any --remote my-sg
  • ibmcloud is security-group-rule-add 72b27b5c-f4b0-48aa-b954-5beaa7c1dcb3 inbound tcp --port-min 4 --port-max 22 --output JSON
  • ibmcloud is security-group-rule-add --sg 72b27b5c-f4b0-48bb-b954-5beaa7c1dcb3 --direction inbound --protocol any --local 192.176.3.0
  • ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol gre --local-address 192.176.3.0
  • ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol any --remote-address 12.3.2.4
  • ibmcloud vpc-iaas security-group-rule-add --sg-id r134-028d1f0b-9648-41d1-b862-45d9b85b12b7 --direction inbound --protocol icmp_tcp_udp

Sicherheitsgruppenregeln mit der API erstellen

Die POST-Anforderung der Sicherheitsgruppenregel akzeptiert eine optionale Eigenschaft namens local, die zwei Eigenschaften hat:

address
Die IP-Adresse, an die diese Regel eingehenden Datenverkehr zulässt (oder von der sie abgehende Regeln zulässt).
cidr_block
Der IP-Adressbereich, für den diese Regel eingehenden Datenverkehr zulässt (oder für abgehende Regeln).

Wenn die Eigenschaft local nicht angegeben ist, lautet der Standardwert cidr_block: 0.0.0.0/0.

Sie können Sicherheitsgruppenregeln mithilfe der API erstellen:

  1. Richten Sie API-Umgebung mit den richtigen Variablen ein.

  2. Speichern Sie die Sicherheitsgruppen-ID in einer Variablen, die in den API-Befehlen verwendet wird:

    export security_group_id=<security_group_id>
    
  3. Führen Sie den folgenden Befehl aus, um eine Sicherheitsgruppenregel zu erstellen, die eingehenden TCP-Datenverkehr vom fernen Adressbereich 10.1.2.0/24 zur lokalen IP-Adresse 192.168.1.100 zulässt:

       curl -sX POST "$vpc_api_endpoint/v1/security_groups/$security_group_id/rules?version=$version&generation=2" \
         -H "Authorization: Bearer ${iam_token}" \
         -d '{
               "direction": "inbound",
               "local": {
                 "address": "192.168.1.100"
               }
               "protocol": "tcp",
               "remote": {
                 "cidr_block": "10.1.2.0/24"
               }
             }'
    

    Beispielausgabe:

    {
      "direction": "inbound",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/security_groups/r006-568b4cc2-b6d1-4ee4-898a-841be283a4cd/rules/r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773",
      "id": "r006-8d123cf9-9a4e-48d9-ad5e-dabf1e5b5773",
      "ip_version": "ipv4",
      "local": {
        "address": "192.168.1.100"
      }
      "protocol": "tcp",
      "remote": {
        "cidr_block": "10.1.2.0/24"
      }
    }
    

Sicherheitsgruppenregeln mit Terraform erstellen

Um Terraform zu verwenden, laden Sie die Terraform-CLI herunter und konfigurieren Sie das IBM Cloud Provider-Plugin. Weitere Informationen finden Sie unter Einführung in Terraform.

Das folgende Terraform-Beispiel zeigt, wie Sicherheitsgruppenregeln für eingehende Daten erstellt werden. Der Parameter local in der Ressource akzeptiert eine IP-Adresse oder einen CIDR-Block und befindet sich auch im Antwortstatus und in der Antwort der Datenquellen ibm_is_security_group_rules und ibm_is_security_group_rule.

resource "ibm_is_security_group_rule" "example2" {
  group     = ibm_is_security_group.example.id
  direction = "inbound"
  remote    = "127.0.0.1"
  local = "192.168.3.0/24"
  udp {
    port_min = 805
    port_max = 807
  }
}