Aplicando regras de grupo de segurança para endereços IP de origem e de destino

As regras do grupo de segurança agora suportam os endereços IP locais Isso significa que regras podem permitir endereços IP locais específicos em vez de permitir todos os endereços IP locais. As regras do grupo de segurança suportam endereços IP locais para regras de ingresso e egresso.

Permitir endereços IP locais específicos ou intervalos de endereços com uma regra de grupo de segurança é útil quando:

  • Você tem endereços IP privados secundários que estão associados a uma única interface de rede virtual
  • Você tem rotas customizadas que encaminham pacotes para uma interface com spoofing de IP permitido

É possível aplicar uma regra do grupo de segurança de entrada que permite apenas endereços IP de destino locais específicos Também é possível aplicar uma regra de grupo de segurança de saída que permite apenas endereços IP de origem locais específicos

Você pode aplicar regras de grupo de segurança (entrada e saída) usando o console, a CLI, a API e o Terraform.

Dicas:

  • Todas as regras são avaliadas, independentemente da ordem em que elas são incluídas.
  • As regras são stateful, o que significa que o tráfego de retorno em resposta ao tráfego permitido é autorizado automaticamente. Por exemplo, você criou uma regra que permite o tráfego TCP de entrada na porta 80. Ela também permite que a resposta do tráfego TCP de saída na porta 80 seja enviada ao host de origem, sem a necessidade de outra regra.
  • Para imagens do Windows, certifique-se de que o grupo de segurança associado à instância permita o tráfego de entrada e saída do Protocolo de Área de Trabalho Remota (porta TCP 3389).

Casos de uso

Quando você cria uma regra de grupo de segurança, você tem a opção de permitir um endereço IP local ou CIDR específico Semelhante à propriedade remota, há uma propriedade local que pode ser uma das seguintes:

  • Um endereço IP-A regra se aplica a um endereço IP de destino específico (para uma regra de entrada) ou endereço IP de origem (para uma regra de saída)
  • Um CIDR-A regra se aplica a um CIDR de destino específico (para uma regra de entrada) ou CIDR de origem (para uma regra de saída)

A Figura 1 ilustra uma regra de saída de grupo de segurança com um endereço IP local. O tráfego é permitido do endereço IP local 10.243.0.1 para qualquer endereço remoto no intervalo 10.243.200.0/24. A linha de caminho de dados verde mostra o tráfego que é permitido; a linha vermelha mostra o tráfego não permitido.

Figura de regras de grupo de segurança que lidam com tráfego de
regra de grupo de segurança que lida com tráfego de

A Figura 2 descreve uma regra de entrada do grupo de segurança com um endereço IP do local. O tráfego destinado ao endereço IP local 10.243.0.1 de qualquer endereço remoto no intervalo 10.243.200.0/24 é permitido. O tráfego para outros endereços IP locais não é permitido

Figura de regras de grupos de segurança que lidam com tráfego de
regra de grupo de segurança que lida com tráfego de

Criando regras de grupo de segurança no console

É possível criar regras de entrada e de saída durante ou após o fornecimento de um grupo de segurança

  1. Em seu navegador, abra o IBM Cloud console.

  2. Selecione o ícone Menu de navegação Menu de navegação e clique no ícone VPC de infraestrutura > Rede > Grupos de segurança.

  3. Na tabela Grupos de segurança para VPC, escolha um dos seguintes:

    • Para criar regras ao fornecer um novo grupo de segurança, clique em Criar e, em seguida, siga as instruções em Configurando um grupo de segurança para seu recurso.
    • Para criar regras para um grupo de segurança existente, clique no nome do grupo de segurança para visualizar sua página Detalhes, em seguida, continue na etapa 4.
  4. Para criar e gerenciar regras, selecione a guia Regras..

  5. Escolha uma das seguintes opções:

    • Para criar uma regra de entrada, selecione Criar na tabela de regras de entrada e preencha os campos a seguir: Em seguida, clique em Criar.

      • Protocolo - Especifique o protocolo a ser aplicado ( ICMP_TCP_UDP, ANY ou um dos outros IPv4 protocolos).
      • Porta-Especificar as portas às quais a regra se aplica Selecione Qualquer ou especifique um Intervalo de portas (valores mínimo e máximo de portas). Os valores de porta para TCP e UDP devem ser números entre 1 e 65535. Os valores de porta válidos para ICMP são de 0 a 254.
      • Tipo de origem - Selecione o conjunto de interfaces de rede a partir das quais esta regra permite o tráfego. É possível selecionar Qualquer, Endereço IP ou Bloco CIDR para tráfego de entrada permitido. Como alternativa, é possível especificar um grupo de segurança na mesma VPC para permitir o tráfego de entrada e saída para todas as instâncias conectadas ao grupo de segurança selecionado.
      • Tipo de destino-Selecione Qualquer, Endereço IP, ou Bloco CIDR
    • Para criar uma regra de saída, selecione Criar na tabela de regras de saída e preencha os campos a seguir: Em seguida, clique em Criar.

      • Protocolo - Especifique o protocolo a ser aplicado ( TCP, UDP, ICMP ou TCP-UDP-ICMP ).
      • Porta-Especificar as portas às quais a regra se aplica Selecione Qualquer ou especifique um Intervalo de portas (valores mínimo e máximo de portas). Os valores de porta para TCP e UDP devem ser números entre 1 e 65535. Os valores de porta válidos para ICMP são de 0 a 254.
      • Tipo de destino-Selecione Qualquer, Endereço IP, Bloco do CIDR ou Grupo de segurança
      • Tipo de origem-Selecione Qualquer, Endereço IP, ou Bloco CIDR

Criando regras de grupo de segurança por meio CLI

Para criar regras do grupo de segurança (entrada e saída) usando a CLI, insira o comando a seguir.

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]

Em que:

GROUP
ID ou nome do grupo de segurança.
DIRECTION
Direção do tráfego a ser impingido. Um dos seguintes: inbound, outbound.
PROTOCOL
Protocolo ao qual a regra se aplica. Um dos seguintes: tcp, udp, icmp, icmp_tcp_udp gre, ip_in_ip, ah, esp, l2tp, rsvp, sctp, vrrp, ou number_<N>.
--vpc
ID ou nome da VPC. Essa opção é necessária apenas para especificar o recurso exclusivo pelo nome dentro dessa VPC.
--local
Endereço IP local ou intervalo de endereços IP locais para os quais esta regra permite tráfego de entrada (ou dos quais, para tráfego de saída). Pode ser especificado como um endereço IP ou bloco CIDR. Um dos seguintes: LOCAL_ADDRESS, CIDR_BLOCK. Um bloco CIDR de 0.0.0.0/0 permite tráfego para todos os endereços IP locais (ou de todos os endereços IP locais, para regras de saída).
--remote
O conjunto de interfaces de rede a partir da qual essa regra permite o tráfego. Pode ser especificado como, REMOTE_ADDRESS CIDR_BLOCK, ou SECURITY_GROUP. Se não especificado, o tráfego será permitido de qualquer origem (ou para qualquer origem, para regras de saída).
--icmp-type
Tipo de tráfego ICMP a ser permitido. Valores válidos de 0 a 254. Essa opção será especificada apenas quando o protocolo estiver configurado como icmp. Se não especificado, todos os tipos serão permitidos.
--icmp-code
Código do tráfego ICMP a ser permitido. Valores válidos de 0 a 255. Essa opção é especificada apenas quando o protocolo está configurado como ICMP. Se não especificado, todos os códigos serão permitidos.
-port-min
Número mínimo da porta. Os valores válidos são de 1 a 65535. Essa opção será especificada apenas quando o protocolo estiver configurado como tcp ou udp. Se não for especificado, todas as portas serão permitidas (padrão: 1).
--port-max
Número máximo da porta. Os valores válidos são de 1 a 65535. Essa opção será especificada apenas quando o protocolo estiver configurado como tcp ou udp. Se não for especificado, todas as portas serão permitidas (padrão: 65535).
--output
Formato de saída. Um dos JSON.
--q, --quiet
Suprimir a saída detalhada.

Exemplo da 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

Criando regras de grupo de segurança com a API.

A solicitação POST de regra do grupo de segurança aceita uma propriedade opcional denominada local, que possui duas propriedades:

address
O endereço IP para o qual essa regra permite tráfego de entrada (ou a partir do qual, para regras de saída).
cidr_block
O intervalo de endereço IP para o qual essa regra permite tráfego de entrada (ou a partir do qual, para regras de saída).

Se a propriedade local não for especificada, o valor padrão será cidr_block: 0.0.0.0/0.

É possível criar regras de grupo de segurança usando a API:

  1. Configure seu Ambiente de API com as variáveis corretas.

  2. Armazene o identificador do grupo de segurança em uma variável a ser usada nos comandos da API:..

    export security_group_id=<security_group_id>
    
  3. Para criar uma regra de grupo de segurança que permita o tráfego TCP de entrada do intervalo de endereço remoto 10.1.2.0/24 para o endereço IP local 192.168.1.100 execute o comando a seguir:

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

    Saída de amostra:

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

Criando regras de grupo de segurança com Terraform

Para usar o Terraform, baixe o Terraform CLI e configure o IBM Cloud plug-in Provider. Para obter mais informações, consulte Introdução ao Terraform.

O exemplo do Terraform a seguir mostra como criar regras do grupo de segurança de entrada O parâmetro local no recurso aceita um endereço IP ou bloco CIDR e também está no estado de resposta e resposta de origens de dados ibm_is_security_group_rules e 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
  }
}