Usando Criptografia TLS em Trânsito

A criptografia em trânsito usando oci-fss-utils ou stunnel fornece uma maneira de proteger seus dados entre instâncias e sistemas de arquivos montados usando a criptografia TLS v.1.2 (Transport Layer Security). Juntamente com outros métodos de segurança, como o Oracle Cloud Infrastructure Vault e a criptografia do serviço File Storage em repouso, a criptografia em trânsito fornece segurança ponta a ponta.

Dica

Se você usar o Kerberos para autenticação, a opção de segurança KRB5P fornecerá autenticação sobre NFS, integridade de dados (modificação não autorizada de dados em trânsito) e privacidade de dados como uma opção alternativa de criptografia em trânsito.

A criptografia em trânsito usando oci-fss-utils ou stunnel não requer atualizações no ponto de acesso NFS ou na configuração de exportação do sistema de arquivos, mas as etapas diferem para usuários do Linux e usuários do Windows.

Pré-requisitos

Adicione as novas regras a seguir à lista de segurança da sub-rede do ponto de acesso NFS. Como alternativa, você pode adicionar as seguintes regras a um Grupo de Segurança de Rede (NSG) e adicionar o ponto de acesso NFS ao NSG. Para obter mais informações e instruções sobre como adicionar regras de lista de segurança para o serviço File Storage, consulte Configurando Regras de Segurança da VCN para o Serviço File Storage.

  • Uma regra de entrada com monitoramento de estado que permite o tráfego TCP para um Intervalo de Portas de Destino de 2051.
  • Uma regra de saída com monitoramento de estado que permite o tráfego TCP de um Intervalo de Portas de Origem de 2051.
Importante

O acesso padrão (não criptografado) aos pontos de acesso NFS do serviço File Storage requer acesso às seguintes portas:

  • Entrada com monitoramento de estado para portas TCP 111, 2048, 2049 e 2050.
  • Entrada com monitoramento de estado para portas UDP 111 e 2048.
  • Saída com monitoramento de estado das portas TCP 111, 2048, 2049 e 2050.
  • Saída com monitoramento de estado da porta UDP 111.

Se você tiver configurado anteriormente regras para acesso padrão e quiser impor apenas o acesso criptografado, poderá desativar as portas de acesso padrão.

Somente as regras da porta TCP 2051 são necessárias para o acesso criptografado.

Criptografia em Trânsito para Usuários do Linux

Para ativar a criptografia em trânsito, instale um pacote chamado oci-fss-utils na instância. O oci-fss-utils está disponível para os seguintes tipos de instância:

  • Oracle Linux, CentOS 7 x86
  • Oracle Linux, CentOS 8 x86
  • Oracle Linux, CentOS 7 Arm*
  • Oracle Linux, CentOS 8 Arm*

*A Oracle oferece uma plataforma de computação baseada em Arm com base no processador Ampere Altra. Consulte Computação Baseada em Arquitetura Arm para obter mais informações.

Como a Criptografia em Trânsito é Ativada

O pacote oci-fss-utils cria um namespace de rede e uma interface de rede virtual na sua instância e fornece um ponto final NFS local. O pacote oci-fss-utils também executa um processo encaminhador no segundo plano chamado oci-fss-forwarder.

O namespace de rede isola o processo encaminhador do ambiente de rede da sua instância. A interface de rede virtual fornece ao processo encaminhador um endereço IP exclusivo. O ponto final NFS local fornece o recurso de conexão NFS.

O sistema de arquivos é montado usando um comando especial que inicia a criptografia. Depois que o sistema de arquivos for montado, o processo oci-fss-forwarder conectará o cliente NFS local ao ponto final NFS. O processo, então, recebe solicitações do cliente NFS, as criptografa e envia para o ponto de acesso NFS usando um túnel TLS.

Veja aqui as etapas gerais para configurar a criptografia em trânsito:

  1. Certifique-se de atender aos pré-requisitos antes de configurar a criptografia em trânsito.
  2. Faça download do pacote oci-fss-utils. Para obter instruções, consulte Tarefa 1: Fazer download do pacote OCI-FSS-UTILS.
  3. Instale o pacote oci-fss-utils na instância. Para obter instruções, consulte Tarefa 2: Instalar o pacote OCI-FSS-UTILS no Oracle Linux ou CentOS.
  4. Use o comando de criptografia em trânsito para montar o sistema de arquivos. Para obter instruções, consulte Tarefa 3: Montar o sistema de arquivos com o comando de criptografia.

Limitações e Considerações

  • O pacote de instalação de criptografia em trânsito é distribuído como RPM para Oracle Linux e CentOS e pode ser submetido a download em cloud-infrastructure-file-storage-downloads.html
  • É necessário instalar o pacote oci-fss-utils em cada instância que exija acesso criptografado a um ponto de acesso NFS.
  • O número de conexões NFS/TLS criptografadas para um único ponto de acesso NFS é limitado a 4096.
  • Não há suporte para nomes de host DNS na montagem de sistemas de arquivos criptografados com oci-fss-forwarder. Use o endereço IP do ponto de acesso NFS para montar sistemas de arquivos criptografados.
Importante

Se você não estiver usando a versão mais recente do pacote oci-fss-utils, poderá ocorrer falhas de conexão SSL. As falhas de conexão SSL podem causar erro nas operações NFSv3.

Recomendamos que você sempre faça upgrade para a versão mais recente do pacote oci-fss-utils assim que ele estiver disponível. Consulte Notas da Versão do Serviço File Storage para obter informações sobre novas versões do RPM.

Configurando a Criptografia em Trânsito para o Linux

Tarefa 1: Fazer download do pacote OCI-FSS-UTILS

É necessário ter acesso à Internet para fazer download do pacote de instalação RPM. Se a instância de destino não tiver acesso à Internet, você poderá fazer download do RPM para uma instância de preparação na rede e, em seguida, usar o comando scp para copiar com segurança o RPM da instância de preparação para a instância de destino.

O comando scp requer um par de chaves SSH para autenticar um usuário remoto. Se suas instâncias forem de sistemas de estilo UNIX, você provavelmente já terá o utilitário ssh-keygen instalado. Para verificar se ele está instalado, abra um shell ou um terminal e digite ssh-keygen na linha de comando. Caso não esteja instalado, você poderá fazer download do OpenSSH for UNIX em http://www.openssh.com/portable.html.

  1. (Opcional) Crie um diretório para o pacote de instalação RPM na instância de destino. Por exemplo: 

    sudo mkdir -p /<rpm_directory_name>
  2. Faça download do pacote oci-fss-utils de cloud-infrastructure-file-storage-downloads.html para o diretório na instância de destino ou para uma instância de preparação na rede.

    Se você fez download do pacote diretamente para a instância de destino, ignore a próxima etapa e vá diretamente para a Tarefa 2: Instalar o pacote OCI-FSS-UTILS no Oracle Linux ou em CentOS.

    Se você fez download do pacote para uma instância de preparação, vá para a próxima etapa destas instruções.

  3. Abra uma janela de terminal na instância de preparação e use o comando scp para copiar com segurança o RPM da instância de preparação para a instância de destino. Por exemplo:

    scp -i <private_key> <downloaded_file_name> <username>@<destination_public_ip_address>:/<rpm_directory_name>

    Depois que o pacote RPM for submetido a download para a instância de destino, prossiga para a Tarefa 2: Instalar o pacote OCI-FSS-UTILS no Oracle Linux ou CentOS.

Tarefa 2: Instalar o pacote OCI-FSS-UTILS no Oracle Linux ou CentOS
  1. Abra uma janela de terminal na instância de destino.
  2. Se o nome do arquivo do pacote baixado não incluir a versão e a arquitetura do pacote, use o seguinte comando para identificar o arquivo RPM a ser instalado:

    rpm -qp <downloaded_file_name>

    Depois que o pacote for identificado, renomeie o arquivo usando o RPM retornado pela consulta. Por exemplo:

    mv <downloaded_file_name> $(rpm -qp <downloaded_file_name>).rpm
  3. Instale o pacote usando o seguinte comando:

    sudo yum localinstall oci-fss-utils-<version>.rpm

O pacote cria um namespace chamado ns1 em sua instância, que contém uma interface de rede padrão para tráfego ethernet. Um par de interface de rede é criado para cada ponto de acesso NFS.

Após a instalação do pacote, prossiga para a Tarefa 3: Montar o sistema de arquivos com o comando de criptografia.

Tarefa 3: Montar o sistema de arquivos com o comando de criptografia
  1. Abra uma janela de terminal em sua instância.
  2. Crie um ponto de montagem digitando o seguinte, substituindo yourmountpoint pelo diretório local do qual você deseja acessar seu sistema de arquivos.

    sudo mkdir -p /mnt/yourmountpoint
    						
  3. Monte o sistema de arquivos usando o seguinte comando:

    sudo mount -t oci-fss 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    Substitua 10.x.x.x: pelo endereço IP da sub-rede local designado ao ponto de acesso NFS, fs-export-path pelo o caminho de exportação especificado ao associar o sistema de arquivos ao ponto de acesso NFS e yourmountpoint pelo caminho para o ponto de montagem local. O caminho de exportação é o caminho para o sistema de arquivos (relativo ao endereço IP do ponto de acesso NFS).

    Se você tiver instalado o oci-fss-utils versão 2.0-1 ou superior, poderá montar o sistema de arquivos no modo aprovado pelo FIPS incluindo -o fips no comando de montagem. Por exemplo:
    sudo mount -t oci-fss -o fips 10.x.x.x:/fs-export-path /mnt/yourmountpoint
    Importante

    No momento, os nomes de host DNS não são compatíveis com a montagem de sistemas de arquivos usando o comando mount -t oci-fss. Você deve usar o endereço IP do ponto de acesso NFS.

    Exemplo de saída do comando mount -t oci-fss:

    Created symlink from /etc/systemd/system/multi-user.target.wants/oci-fss-2.service to /usr/lib/systemd/system/oci-fss-2.service.

    Cada vez que você monta um sistema de arquivos usando este comando, um novo serviço oci-fss é iniciado com um número de sequência incremental entre 2 e 255. Por exemplo, oci-fss-2.service, oci-fss-3.service, e assim por diante.

    Dica

    É possível usar a opção resvport para restringir o cliente a usar uma porta reservada específica. Por exemplo:

    sudo mount -t oci-fss -o resvport=900 10.x.x.x:/fs-export-path /mnt/yourmountpoint

Gerenciando a Criptografia em Trânsito para o Linux

Para montar automaticamente um sistema de arquivos

A montagem automática garante que um sistema de arquivos seja automaticamente remontado em uma instância, se for reinicializado.

  1. Abra uma janela de terminal na instância. Monte o sistema de arquivos conforme descrito na Tarefa 2: Instalar o pacote OCI-FSS-UTILS no Oracle Linux ou CentOS.
  2. Abra o arquivo /etc/fstab para edição: 

    cd /etc
    vi fstab
  3. Adicione a seguinte linha ao arquivo fstab:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail 0 0

    Substitua 10.x.x.x: pelo endereço IP da sub-rede local designado ao ponto de acesso NFS, fs-export-path pelo o caminho de exportação especificado ao associar o sistema de arquivos ao ponto de acesso NFS e yourmountpoint pelo caminho para o ponto de montagem local.

    Se você tiver instalado o oci-fss-utils versão 2.0-1 ou superior, poderá montar o sistema de arquivos no modo aprovado pelo FIPS incluindo -o fips no comando de montagem. Por exemplo:
    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,fips 0 0
    Importante

    No momento, os nomes de host DNS não são compatíveis com a montagem de sistemas de arquivos usando o comando mount -t oci-fss. Você deve usar o endereço IP do ponto de acesso NFS.
    Dica

    Você pode usar a opção resvport para restringir o cliente a usar uma porta reservada específica. Por exemplo:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,resvport=900 0 0
Para desmontar um sistema de arquivos

Ao desmontar um sistema de arquivos, você deve utilizar outro comando oci-fss-utils para garantir que o namespace de rede local associado seja removido:

  1. Abra uma janela de terminal na instância.
  2. Utilize o comando a seguir para desmontar o sistema de arquivos:

    sudo umount -t oci-fss /mnt/yourmountpoint

    Substitua yourmountpoint pelo caminho para o ponto de montagem local.

Para desinstalar o pacote OCI-FSS-UTILS
  1. Primeiro, desmonte todos os sistemas de arquivos montados. Para obter instruções, consulte Para desmontar um sistema de arquivos.
  2. Abra uma janela de terminal na instância.
  3. Digite o seguinte comando para desinstalar o pacote oci-fss:

    sudo yum remove oci-fss-utils

Criptografia em Trânsito para Usuários do Windows

Os clientes Windows podem usar o stunnel para ativar a criptografia em trânsito para sistemas de arquivos.

Limitações e Considerações

  • O número de conexões NFS/TLS criptografadas para um único ponto de acesso NFS é limitado a 64. Essa limitação é causada por requisitos de memória TLS. Diferentemente das conexões NFS, as conexões TLS não compartilham buffers de memória. Portanto, uma vez que uma conexão TLS é estabelecida, a memória alocada permanece dedicada a ela.
  • Não há suporte para nomes de host DNS na montagem de sistemas de arquivos criptografados. Use o endereço IP do ponto de acesso NFS para montar sistemas de arquivos criptografados.

Configurando a Criptografia em Trânsito para o Windows

Estas instruções descrevem como instalar e configurar o stunnel para usar a criptografia em trânsito com seus sistemas de arquivos. Certifique-se de atender aos pré-requisitos antes de configurar a criptografia em trânsito.

Dica

Você pode automatizar esse processo usando um script em batch que contenha as etapas a seguir.

Tarefas de Configuração

Tarefa 1: Instalar o Cliente NFS do Windows
  1. Abra o Windows PowerShell na sua instância de destino e use o seguinte comando para instalar o Cliente NFS do Windows:

    Install-WindowsFeature NFS-Client

    Depois que o cliente for instalado, prossiga para a Tarefa 2: Fazer download e Instalar o stunnel.

Tarefa 2: Fazer Download e Instalar o stunnel
  1. Para fazer download e instalar o stunnel, acesse https://www.stunnel.org/downloads.html.

    Observação

    A última etapa de instalação solicita informações de certificado. A inserção de um valor aqui é opcional.

    Por padrão, o stunnel é instalado no seguinte diretório: C:\Program Files (x86)\stunnel

  2. Abra o arquivo C:\Program Files (x86)\stunnel\config\stunnel.cfg para editar e especifique a seguinte configuração:

    [mount]
        client=yes
        accept=127.0.0.1:2048
        connect=10.0.1.155:2051
     
    [nfs]
        client=yes
        accept=127.0.0.1:2049
        connect=10.0.1.155:2051
     
    [nlm]
        client=yes
        accept=127.0.0.1:2050
        connect=10.0.1.155:2051
     
    [rpcbind]
        client=yes
        accept=127.0.0.1:111
        connect=10.0.1.155:2051
  3. Inicie o stunnel usando C:\Program Files (x86)\stunnel\bin\tstunnel.exe.

    Prossiga para a Tarefa 3: Montar e Testar sua Conexão.

Tarefa 3: Montar e Testar Sua Conexão

Abra um prompt de comando e digite a seguinte série de comandos:

  1. Monte o sistema de arquivos:

    mount \\127.0.0.1\fss z:
  2. Teste a conexão com o sistema de arquivos listando o conteúdo do diretório:

    dir z:
  3. Desmonte o sistema de arquivos:

    umount z: