WireGuard «vem» para o núcleo do Linux — por quê?

No final de julho, os desenvolvedores do túnel VPN WireGuard propuseram conjunto de patches, que irão tornar seu software para organização de túneis VPN parte do núcleo do Linux. No entanto, a data exata de implementação da «ideia» ainda permanece desconhecida. Abaixo, vamos falar mais sobre essa ferramenta.

WireGuard «vem» para o núcleo do Linux — por quê?
/ фото Tambako The Jaguar Quando se fala em aumentar a eficiência energética, a virtualização possui várias vantagens inegáveis. Em primeiro lugar, a consolidação de serviços existentes em um menor número de servidores físicos permite economizar nos custos de manutenção do hardware, o que se traduz em uma redução nos gastos com refrigeração, eletricidade e espaço ocupado. Em segundo lugar, a virtualização permite otimizar o uso dos recursos de hardware e redistribuir de forma flexível

Um resumo sobre o projeto

WireGuard — um túnel VPN de nova geração criado por Jason Donenfeld, chefe da empresa Edge Security. O projeto foi desenvolvido como uma alternativa simples e rápida ao OpenVPN e IPsec. A primeira versão do produto continha apenas 4 mil linhas de código. Para comparação, o OpenVPN possui cerca de 120 mil linhas, enquanto o IPSec tem 420 mil.

De acordo com palavras desenvolvedores, WireGuard é fácil de configurar, e a segurança do protocolo é alcançada através de algoritmos criptográficos consolidados. Ao mudar de rede: Wi-Fi, LTE ou Ethernet, é necessário reconectar-se ao servidor VPN a cada vez. Servidores WireGuard, por outro lado, não interrompem a conexão, mesmo que o usuário tenha recebido um novo endereço IP.

Apesar de WireGuard ter sido inicialmente desenvolvido para o núcleo Linux, os desenvolvedores também se preocuparam com uma versão portátil da ferramenta para dispositivos Android. O aplicativo ainda está em desenvolvimento, mas já pode ser testado. Para isso, você precisa se tornar um dos testadores.

No geral, WireGuard tem ganhado bastante popularidade e até foi implementado adotado por vários provedores de VPN, como Mullvad e AzireVPN. Uma grande quantidade de guias de configuração dessa solução foi publicada na internet. Por exemplo, existem guias , que foram criados por usuários, e existem guias,preparados pelos autores do projeto. Detalhes técnicos.

(p.18) foi observado que a largura de banda do WireGuard é quatro vezes maior do que a do OpenVPN: 1011 Mbit/s contra 258 Mbit/s, respectivamente. WireGuard também supera a solução padrão para Linux, IPsec — que tem 881 Mbit/s. Ele se destaca também pela simplicidade de configuração.

Em documentação oficial Após a troca de chaves (a conexão VPN é inicializada quase como no SSH) e o estabelecimento da conexão, o WireGuard resolve todas as outras tarefas automaticamente: não há necessidade de se preocupar com roteamento, controle de estado, etc. Esforços adicionais de configuração são necessários apenas se você quiser implementar criptografia simétrica.

Anders Hojbjerg

WireGuard «vem» para o núcleo do Linux — por quê?
/ фото Anders Hojbjerg Quando se fala em aumentar a eficiência energética, a virtualização possui várias vantagens inegáveis. Em primeiro lugar, a consolidação de serviços existentes em um menor número de servidores físicos permite economizar nos custos de manutenção do hardware, o que se traduz em uma redução nos gastos com refrigeração, eletricidade e espaço ocupado. Em segundo lugar, a virtualização permite otimizar o uso dos recursos de hardware e redistribuir de forma flexível

Para a instalação, será necessário um distribuidor com núcleo Linux "superior" a 4.1. Ele pode ser encontrado nos repositórios dos principais distribuidores Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Como observam os editores xakep.ru, a montagem manual a partir do código fonte também não é difícil. Basta levantar a interface e gerar as chaves pública e privada:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard não usa interface para trabalhar com o provedor criptográfico CryptoAPI. Em vez disso, é usado um cifrador de fluxo ChaCha20, criptográfico inserção de autenticação Poly1305 e suas próprias funções de hash criptográfico.

A chave secreta é gerada com a aplicação do protocolo Diffie-Hellman baseado em curvas elípticas Curve25519. Ao realizar a hash, são empregadas funções de hash BLAKE2 e SipHash. Devido ao formato de timestamps TAI64N o protocolo descarta pacotes com um valor de timestamp inferior, evitando assim DoS- e ataques de replay.

Nesse processo, o WireGuard utiliza a função ioctl para controlar a entrada/saída (anteriormente utilizava-se Netlink), o que torna o código mais limpo e simples. É possível verificar isso ao olhar o código de configuração.

Planos dos desenvolvedores

Atualmente, o WireGuard é um módulo do núcleo fora da árvore. Mas o autor do projeto, Jason Donenfeld diz, acredita que já é hora de uma implementação total no núcleo Linux, pois é mais simples e confiável do que outras soluções. Jason, nesse aspecto, suporta é até mesmo elogiado por Linus Torvalds — ele chamou o código do WireGuard de "obra de arte".

No entanto, ninguém fala sobre datas exatas de implementação do WireGuard no núcleo. E é improvável que isso aconteça com o lançamento do núcleo Linux 4.18 em agosto. Contudo, há a probabilidade de que isso ocorra em um futuro próximo: na versão 4.19 ou 5.0.

Quando o WireGuard for adicionado ao núcleo, os desenvolvedores pretendem aperfeiçoar o aplicativo para dispositivos Android e começar a desenvolver um aplicativo para iOS. Além disso, está previsto concluir as implementações em Go e Rust e portá-las para macOS, Windows e BSD. Também está planejada a implementação do WireGuard para sistemas mais "exóticos": DPDK, FPGA, assim como muitas outras coisas interessantes. Todas elas estão listadas no lista de tarefas dos autores do projeto.

P.S. Mais alguns artigos do nosso blog corporativo:

A principal direção da nossa atividade — fornecimento de serviços em nuvem:

Infraestrutura Virtual (IaaS) | Hospedagem PCI DSS | Nuvem Lei FZ-152 | Hospedagem SAP | Armazenamento Virtual | Criptografia de Dados na Nuvem | Armazenamento em Nuvem

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster