Aplicación de reglas de grupo de seguridad a direcciones IP de origen y destino

Las reglas de grupo de seguridad ahora dan soporte a direcciones IP locales. Esto significa que las reglas pueden permitir direcciones IP locales específicas en lugar de permitir todas las direcciones IP locales. Las reglas de grupo de seguridad dan soporte a las direcciones IP locales para las reglas de entrada y salida.

Permitir direcciones IP o rangos de direcciones locales específicos con una regla de grupo de seguridad es útil cuando:

  • Tiene direcciones IP privadas secundarias que están asociadas con una única interfaz de red virtual
  • Tiene rutas personalizadas que reenvían paquetes a una interfaz con la suplantación de IP permitida

Puede aplicar una regla de grupo de seguridad de entrada que solo permita direcciones IP de destino local específicas. También puede aplicar una regla de grupo de seguridad de salida que solo permita direcciones IP de origen local específicas.

Puede aplicar reglas de grupos de seguridad (entrantes y salientes) mediante la consola, CLI, API y Terraform.

Sugerencias:

  • Se evalúan todas las reglas, independientemente del orden en el que se añadan.
  • Las reglas son con estado, lo que significa que el tráfico de retorno en respuesta al tráfico permitido se autoriza automáticamente. Por ejemplo, supongamos que ha creado una regla que permite el tráfico TCP de entrada en el puerto 80. Esta regla también permite que se responda al tráfico TCP de salida en el puerto 80 al host de origen, sin necesidad de otra regla.
  • Para las imágenes de Windows, asegúrese de que el grupo de seguridad asociado a la instancia permita el tráfico entrante y saliente del Protocolo de escritorio remoto (puerto TCP 3389 ).

Casos de uso

Cuando crea una regla de grupo de seguridad, tiene la opción de permitir una dirección IP local específica o CIDR. De forma similar a la propiedad remota, hay una propiedad local que puede ser una de las siguientes:

  • Una dirección IP-La regla se aplica a una dirección IP de destino específica (para una regla de entrada) o dirección IP de origen (para una regla de salida)
  • Un CIDR-La regla se aplica a un CIDR de destino específico (para una regla de entrada) o a un CIDR de origen (para una regla de salida)

La figura 1 ilustra una regla de salida de grupo de seguridad con una dirección IP de local. El tráfico se permite desde la dirección IP local 10.243.0.1 a cualquier dirección remota del rango 10.243.200.0/24. La línea de vía de acceso de datos verde muestra el tráfico que está permitido; la línea roja muestra el tráfico que no está permitido.

Figura de reglas de grupo de seguridad que gestionan el tráfico
regla de grupo de seguridad que gestiona el
saliente*

La Figura 2 muestra una regla de entrada de grupo de seguridad con una dirección IP de local. Se permite el tráfico destinado a la dirección IP local 10.243.0.1 desde cualquier dirección remota del rango 10.243.200.0/24. El tráfico a otras direcciones IP locales no está permitido.

Figura de reglas de grupo de seguridad que gestionan el tráfico
regla de grupo de seguridad que gestiona el
entrante*

Creación de reglas de grupo de seguridad en la consola

Puede crear reglas de entrada y salida durante o después del suministro de un grupo de seguridad.

  1. En el navegador, abra la consola deIBM Cloud.

  2. Seleccione el ícono del menú de navegación, luego haga clic en el ícono de Infraestructura VPC > Red > Grupos de seguridad.

  3. En la tabla Grupos de seguridad para VPC, elija uno de los siguientes:

    • Para crear reglas al suministrar un nuevo grupo de seguridad, pulse Crear y, a continuación, siga las instrucciones de Configuración de un grupo de seguridad para el recurso.
    • Para crear reglas para un grupo de seguridad existente, pulse el nombre del grupo de seguridad para ver su página Detalles y, a continuación, continúe en el paso 4.
  4. Para crear y gestionar reglas, seleccione la pestaña Reglas.

  5. Elija una de las siguientes opciones:

    • Para crear una regla de entrada, seleccione Crear en la tabla Reglas de entrada y complete los campos siguientes. A continuación, pulse en Crear.

      • Protocolo: especifique el protocolo que se debe aplicar ( ICMP_TCP_UDP, ANY o uno de los otros IPv4 protocolos).
      • Puerto: especifique los puertos a los que se aplica la regla. Seleccione Cualquiera o especifique un Rango de puertos (valores mínimo y máximo de puertos). Los valores de puerto para TCP y UDP deben ser números entre 1 y 65535. Los valores de puerto válidos para ICMP son de 0 a 254.
      • Tipo de fuente: seleccione el conjunto de interfaces de red desde las que esta regla permite el tráfico. Puede seleccionar Cualquiera, dirección IP o Bloque CIDR para el tráfico permitido de entrada. Como alternativa, puede especificar un grupo de seguridad en la misma VPC para permitir el tráfico de entradas o de salida de todas las instancias conectadas al grupo de seguridad seleccionado.
      • Tipo de destino: seleccione Cualquiera, dirección IP o Bloque CIDR.
    • Para crear una regla de salida, seleccione Crear en la tabla de reglas de salida y complete los campos siguientes. A continuación, pulse en Crear.

      • Protocolo: especifique el protocolo que se debe aplicar ( TCP, UDP, ICMP o TCP-UDP-ICMP ).
      • Puerto: especifique los puertos a los que se aplica la regla. Seleccione Cualquiera o especifique un Rango de puertos (valores mínimo y máximo de puertos). Los valores de puerto para TCP y UDP deben ser números entre 1 y 65535. Los valores de puerto válidos para ICMP son de 0 a 254.
      • Tipo de destino: seleccione Cualquiera, dirección IP, Bloque CIDR o Grupo de seguridad.
      • Tipo de origen-Seleccione Cualquiera, dirección IP o Bloque CIDR.

Creación de reglas de grupo de seguridad desde la CLI

Para crear reglas de grupo de seguridad (de entrada y salida) utilizando la CLI, especifique el mandato siguiente.

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]

Donde:

GROUP
ID o nombre del grupo de seguridad.
DIRECTION
Dirección del tráfico que se va a imponer. Uno de: inbound, outbound.
PROTOCOL
Protocolo al que se aplica la norma. Uno de: tcp, udp, icmp, icmp_tcp_udp, gre, ip_in_ip, ah, esp, l2tp, rsvp, sctp, vrrp, o number_<N>.
--vpc
ID o nombre de la VPC. Esta opción solo es necesaria para especificar el recurso único por su nombre dentro de esta VPC.
--local
Dirección IP local o rango de direcciones IP locales a las que esta regla permite el tráfico entrante (o desde las que, para el tráfico saliente). Se puede especificar como una dirección IP o un bloque CIDR. Uno de: LOCAL_ADDRESS, CIDR_BLOCK. Un bloque CIDR de 0.0.0.0/0 permite el tráfico a todas las direcciones IP locales (o desde todas las direcciones IP locales, para las reglas de salida).
--remote
El conjunto de interfaces de red desde las que esta regla permite el tráfico. Se puede especificar como, REMOTE_ADDRESS CIDR_BLOCK, o SECURITY_GROUP. Si no se especifica, se permite el tráfico desde cualquier origen (o hacia cualquier origen, para las reglas de salida).
--icmp-type
Tipo de tráfico ICMP que se va a permitir. Valores válidos desde 0 hasta 254. Esta opción solo se especifica cuando el protocolo está configurado en icmp. Si no se especifica, se permiten todos los tipos.
--icmp-code
Código de tráfico ICMP que se va a permitir. Valores válidos desde 0 hasta 255. Esta opción solo se especifica cuando el protocolo especificado es icmp. Si no se especifica, se permiten todos los códigos.
-port-min
Número mínimo de puerto. Los valores válidos son desde 1 hasta 65535. Esta opción solo se especifica cuando el protocolo está configurado en tcp o udp. Si no se especifica, se permiten todos los puertos (valor predeterminado: 1).
--port-max
Número máximo de puerto. Los valores válidos son desde 1 hasta 65535. Esta opción solo se especifica cuando el protocolo está configurado en tcp o udp. Si no se especifica, se permiten todos los puertos (valor predeterminado: 65535).
--output
Formato de salida. Uno de JSON.
--q, --quiet
Suprimir la salida detallada.

Ejemplos de CLI

  • 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

Creación de reglas de grupo de seguridad con la API

La solicitud POST de regla de grupo de seguridad acepta una propiedad opcional denominada local, que tiene dos propiedades:

address
La dirección IP a la que esta regla permite el tráfico de entrada (o desde la que, para las reglas de salida).
cidr_block
El rango de direcciones IP al que esta regla permite el tráfico de entrada (o desde el cual, para las reglas de salida).

Si no se especifica la propiedad local, el valor predeterminado es cidr_block: 0.0.0.0/0.

Puede crear reglas de grupo de seguridad utilizando la API:

  1. Configure el entorno de API con las variables correctas.

  2. Almacene el identificador de grupo de seguridad en una variable que se utilizará en los mandatos de API:

    export security_group_id=<security_group_id>
    
  3. Para crear una regla de grupo de seguridad que permita el tráfico TCP de entrada desde el rango de direcciones remotas 10.1.2.0/24 a la dirección IP local 192.168.1.100, ejecute el mandato siguiente:

       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"
               }
             }'
    

    Salida de ejemplo:

    {
      "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"
      }
    }
    

Creación de reglas de grupo de seguridad con Terraform

Para utilizar Terraform, descargue la CLI de Terraform y configure el IBM Cloud complemento del proveedor. Para obtener más información, consulte Cómo empezar con Terraform.

El siguiente ejemplo de Terraform muestra cómo crear reglas de grupo de seguridad de entrada. El parámetro local del recurso acepta una dirección IP o un bloque CIDR y también está en el estado de respuesta y respuesta de los orígenes de datos ibm_is_security_group_rules y 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
  }
}