Após dois anos e meio desde a publicação do branch 2.5, foi preparado o lançamento do OpenVPN 2.6.0, um pacote para criação de redes privadas virtuais que permite organizar uma conexão criptografada entre duas máquinas clientes ou fornecer um servidor VPN centralizado para a operação simultânea de vários clientes. O código OpenVPN é distribuído sob a licença GPLv2, pacotes binários prontos são gerados para Debian, Ubuntu, CentOS, RHEL e Windows.
Principais inovações:
- Fornece suporte para um número ilimitado de conexões.
- O módulo do kernel ovpn-dco está incluído, o que permite uma aceleração significativa do desempenho. VPNA aceleração é alcançada ao transferir todas as operações de criptografia, processamento de pacotes e gerenciamento de canais de comunicação para o kernel do Linux. Isso elimina a sobrecarga de troca de contexto, permite a otimização por meio do acesso direto às APIs internas do kernel e elimina a lenta transferência de dados entre o kernel e o espaço do usuário (a criptografia, a descriptografia e o roteamento são realizados pelo módulo sem enviar tráfego para um manipulador no espaço do usuário).
Nos testes realizados, em comparação com a configuração baseada na interface tun, a utilização do módulo no lado cliente e servidor utilizando a cifra AES-256-GCM permitiu atingir um aumento de 8 vezes no throughput (de 370 Mbit/s a 2950 Mbit/s). Ao usar o módulo apenas no lado do cliente, a taxa de transferência triplicou para o tráfego de saída e não mudou para o tráfego de entrada. Ao usar o módulo apenas no lado do servidor, a taxa de transferência aumentou 4 vezes para o tráfego de entrada e 35% para o tráfego de saída.
- É possível usar o modo TLS com certificados autoassinados (ao usar a opção “-peer-fingerprint”, você pode omitir os parâmetros “-ca” e “-capath” e evitar executar um servidor PKI baseado em Easy-RSA ou software semelhante).
- O servidor UDP implementa um modo de negociação de conexão baseado em cookie, que usa um cookie baseado em HMAC como identificador de sessão, permitindo que o servidor execute verificação sem estado.
- Adicionado suporte para construção com a biblioteca OpenSSL 3.0. Adicionada opção "--tls-cert-profile insecure" para selecionar o nível mínimo de segurança OpenSSL.
- Adicionados novos comandos de controle remote-entry-count e remote-entry-get para contar o número de conexões externas e exibir uma lista delas.
- Durante o processo de acordo de chave, o mecanismo EKM (Exported Keying Material, RFC 5705) é agora o método preferido para obter material de geração de chave, em vez do mecanismo PRF específico do OpenVPN. Para usar o EKM, é necessária a biblioteca OpenSSL ou mbed TLS 2.18+.
- É fornecida compatibilidade com OpenSSL no modo FIPS, o que permite o uso de OpenVPN em sistemas que atendem aos requisitos de segurança FIPS 140-2.
- mlock implementa uma verificação para garantir que memória suficiente seja reservada. Quando menos de 100 MB de RAM estão disponíveis, setrlimit() é chamado para aumentar o limite.
- Adicionada a opção “--peer-fingerprint” para verificar a validade ou vinculação de um certificado usando uma impressão digital baseada no hash SHA256, sem usar tls-verify.
- Os scripts são fornecidos com a opção de autenticação diferida, implementada usando a opção “-auth-user-pass-verify”. Foi adicionado suporte para informar o cliente sobre autenticação pendente ao usar autenticação adiada em scripts e plugins.
- Adicionado modo de compatibilidade (-compat-mode) para permitir conexões com servidores mais antigos executando OpenVPN 2.3.x ou versões mais antigas.
- A lista passada através do parâmetro "--data-ciphers" permite que o prefixo "?" especifique cifras opcionais que serão usadas somente se forem suportadas. SSL-biblioteca.
- Adicionada opção “-session-timeout” com a qual você pode limitar o tempo máximo da sessão.
- O arquivo de configuração permite especificar um nome e senha usando a tag .
- É fornecida a capacidade de configurar dinamicamente o MTU do cliente, com base nos dados MTU transmitidos pelo servidor. Para alterar o tamanho máximo do MTU, a opção “—tun-mtu-max” foi adicionada (o padrão é 1600).
- Adicionado parâmetro "--max-packet-size" para definir o tamanho máximo dos pacotes de controle.
- Removido suporte para modo de inicialização OpenVPN via inetd. A opção ncp-disable foi removida. A opção verify-hash e o modo de chave estática foram descontinuados (apenas o TLS foi mantido). Os protocolos TLS 1.0 e 1.1 foram descontinuados (o parâmetro tls-version-min é definido como 1.2 por padrão). A implementação integrada do gerador de números pseudo-aleatórios (-prng) foi removida; a implementação PRNG das bibliotecas criptográficas mbed TLS ou OpenSSL deve ser usada. O suporte para PF (Filtragem de Pacotes) foi descontinuado. Por padrão, a compactação está desabilitada (--allow-compression=no).
- Adicionado CHACHA20-POLY1305 à lista de cifras padrão.
Fonte: opennet.ru
