No final de julho, os desenvolvedores de túneis WireGuard VPN propuseram um
conjunto de patches que tornariam seu software de organização de túneis VPN parte do kernel do Linux. No entanto, a data exata para a implementação da "idéia" ainda é desconhecida. Sob o gato, falaremos sobre essa ferramenta com mais detalhes.
/ foto Tambako The Jaguar CCBrevemente sobre o projeto
O WireGuard é o túnel VPN de última geração criado por Jason A. Donenfeld, chefe da Edge Security. O projeto foi desenvolvido como uma alternativa
simplificada e ágil ao OpenVPN e IPsec. A primeira versão do produto continha apenas 4 mil linhas de código. Para comparação, no OpenVPN cerca de 120 mil linhas e no IPSec - 420 mil.
Segundo
os desenvolvedores, o WireGuard é fácil de configurar e a segurança do protocolo é alcançada
por meio de algoritmos criptográficos comprovados .
Ao alterar a rede : Wi-Fi, LTE ou Ethernet, você precisa se reconectar ao servidor VPN a cada vez. Os servidores WireGuard não interrompem a conexão, mesmo que o usuário tenha recebido um novo endereço IP.
Apesar do fato de o WireGuard ter sido originalmente aprimorado para o kernel Linux, os desenvolvedores
cuidaram da versão portátil da ferramenta para dispositivos Android. O aplicativo ainda está inacabado, mas você pode experimentá-lo agora. Para fazer isso, você precisa
se tornar um dos testadores .
Em geral, o WireGuard é bastante popular e foi
implementado por vários provedores de VPN, como Mullvad e AzireVPN2. A rede publicou um
grande número de guias para configurar esta solução. Por exemplo,
existem guias que os usuários criam e há guias
preparados pelos autores do projeto .
Detalhes técnicos
Na
documentação oficial (p. 18), observe-se que a largura de banda do WireGuard é quatro vezes maior que a do OpenVPN: 1011 Mbit / s versus 258 Mbit / s, respectivamente. O WireGuard está à frente da solução Linux IPsec padrão - 881 Mbps. Supera em termos de facilidade de configuração.
Depois de trocar as chaves (a conexão VPN é inicializada quase como no SSH) e estabelecer a conexão, o WireGuard resolve independentemente todas as outras tarefas: não há necessidade de se preocupar com roteamento, monitoramento do estado, etc. Esforços adicionais de configuração precisarão ser aplicados apenas se você desejar usar criptografia simétrica.
/ foto Anders Hojbjerg CCPara instalar, você precisa de uma distribuição com o kernel Linux "mais antigo" 4.1. Pode ser encontrado nos repositórios das principais distribuições Linux.
$ sudo add-apt-repository ppa:hda-me/wireguard $ sudo apt update $ sudo apt install wireguard-dkms wireguard-tools
Segundo os editores do xakep.ru, a auto-montagem da fonte também é simples. Basta elevar a interface e gerar chaves públicas e privadas:
$ sudo ip link add dev wg0 type wireguard $ wg genkey | tee privatekey | wg pubkey > publickey
O WireGuard
não usa uma interface para trabalhar com o provedor de criptografia
CryptoAPI . Em vez disso, a cifra de fluxo
ChaCha20 , a inserção de
imitação criptográfica Poly1305 e suas próprias funções de hash criptográfico são usadas.
A chave secreta é gerada usando
o protocolo Diffie-Hellman, com base na curva elíptica
Curve25519 . O hash usa
as funções de hash BLAKE2 e
SipHash . Devido ao formato do
registro de data e hora
TAI64N , o protocolo descarta pacotes com um valor de registro de data e hora mais baixo,
impedindo DoS e
ataques de repetição .
Ao mesmo tempo, o WireGuard usa a função ioctl para controlar a E / S (usada para usar o
Netlink ), o que torna o código mais limpo e mais simples. Você pode verificar isso observando
o código de configuração .
Planos do desenvolvedor
Até agora, o WireGuard é um módulo de kernel fora da árvore. Mas o autor do projeto Jason Donenfeld
diz que chegou
a hora de uma implementação completa no kernel do Linux. Uma vez que é mais simples e mais confiável do que outras soluções. Jason é
apoiado nesse sentido até pelo próprio Linus Torvalds - ele chamou o código do WireGuard de "uma obra de arte".
Mas ninguém está falando sobre as datas exatas para introduzir o WireGuard no kernel. E é
improvável que isso aconteça com o lançamento do kernel Linux de agosto 4.18. No entanto, é provável que isso aconteça em um futuro muito próximo: na versão 4.19 ou 5.0.
Quando o WireGuard é adicionado ao kernel, os desenvolvedores
desejam refinar o aplicativo para dispositivos Android e começar a escrever um aplicativo para iOS. Além disso, está planejado para concluir as implementações no Go e Rust e portá-las para o macOS, Windows e BSD. Também está planejado implementar o WireGuard para mais "sistemas exóticos":
DPDK ,
FPGA , além de muitas outras coisas interessantes. Todos eles estão listados na
lista de tarefas do autor do projeto.
PS Mais alguns artigos do nosso blog corporativo:
A principal direção da nossa atividade é a prestação de serviços em nuvem:
Infraestrutura virtual (IaaS) | Hospedagem PCI DSS | Nuvem FZ-152 | Hospedagem SAP | Armazenamento virtual | Criptografia de dados na nuvem | Armazenamento na nuvem