Wireguard para Kubernetes e GUIs fáceis de usar



Posso apenas mais uma vez declarar meu amor por [WireGuard] e espero que seja mesclado em breve? Talvez o código não seja perfeito, mas eu dei uma olhada nele, e comparado aos horrores que são OpenVPN e IPSec, é uma obra de arte.



Linus Torvalds, na lista de discussão do kernel do Linux


Tenho certeza de que muitos já ouviram falar sobre Wireguard. Alguns até sentiram ao vivo. Gostei bastante dele na produção, tanto em termos de desempenho como de facilidade de configuração. Sim, não existem milhões de configurações misteriosas para todas as ocasiões como OpenVPN e XFRM + StrongSwan em VPN IPSEC. É simples e conciso tanto no código quanto nas configurações. Ainda não se tornará ousado e desajeitado. Em suma, uma versão tão positiva do cenário "queimar o legado e escrever tudo certo".



Decidi não escrever outro guia "como instalei o Wireguard", mas compartilhar alguns utilitários úteis. Alguns com uma GUI de muito sucesso para o meu gosto, que é apropriada para serviços com muitos usuários. Analisaremos o uso dessa VPN para comunicação entre nós em diferentes clusters Kubernetes, várias GUIs da Web para geração e alguns recursos úteis.



Por que é necessário?



A questão chave. Uma das coisas mais legais sobre ele é que ele é muito produtivo. Na maioria dos casos, há menos latência e maior taxa de transferência com uma carga de CPU igual. Se você paga pelos recursos gastos ou planeja alugar máquinas virtuais levando em consideração os picos de carga, então esse tipo de VPN também economiza dinheiro. Acho que não é necessário explicar por que é ruim direcionar o tráfego em redes abertas entre nós individuais.





Fonte: www.wireguard.com/performance



Além disso, é importante notar que está incluído no kernel desde o Linux 5.6, e desde a primavera deste ano também está incluído no ramo principal do kernel Android, o que nos dá excelente eficiência energética em telefones celulares ... Porém, devo dizer que ele não sobrecarregou particularmente a bateria do telefone antes.



Kilo - wireguard para Kubernetes



Muitas vezes, empresas maiores do que a média têm situações em que precisam usar várias nuvens diferentes. Os motivos são diferentes - tolerância a falhas, boa presença na região e baixos pings. Às vezes, os preços são para produtos específicos. Por exemplo, você pode executar o front-end e a lógica principal em seus próprios servidores e terceirizar tarefas que exigem muita GPU para instâncias da AWS.



Como funciona? O Kilo requer um módulo de kernel wireguard em todos os nós. Se você estiver usando kernels mais recentes que 5.6, o módulo já estará no branch principal e você não terá que finalizar nada. Em seguida, o agente quilo, "kg", é executado em cada nó do cluster, configurando chaves privadas e públicas para configurar uma VPN. As regras de roteamento de tráfego entre regiões separadas também são configuradas automaticamente. Além disso, o quilo pode funcionar em conjunto com outras soluções de rede para clusters, como Flannel. Ao mesmo tempo, o quilo fornecerá comunicação entre as regiões e a Flanela cuidará do tráfego dentro de um local.

Ao construir uma topologia de rede, ele depende de topology.kubernetes.io/region , mas você também pode marcar regiões manualmente.



Requisitos:



  • Kernel mais recente 5.6 ou módulo wireguard separado
  • IP branco nos nós, para organizar uma conexão direta entre eles.




Para obter mais detalhes, consulte a palestra do desenvolvedor do ano passado nos Fóruns Kubernetes em Seul e a documentação .



wg-gen-web



imagem

O que é chamado de "mais um gerador de configuração". Mas muito agradável de trabalhar. A principal diferença na abordagem é que o autor não tenta editar a configuração de um serviço em execução imediatamente, mas apenas fornece uma GUI conveniente para gerar regras. Em seguida, você mesmo implementa a atualização das configurações a seu gosto.



Características principais - gera códigos QR convenientes para clientes móveis e envia todos os dados necessários para conexão com o e-mail do cliente. Bem, encaixado, é claro. O repositório está aqui .



A implantação é muito simples:



docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

      
      





Subespaço





Outra GUI para facilitar o trabalho com muitos dispositivos clientes.

Principais características:



  1. Logon único usando SAML. Você pode ir na conta do Google.
  2. Adicione e remova dispositivos com apenas alguns cliques
  3. Geração de configurações individuais para cada dispositivo. Bem, o código QR, é claro.
  4. Vamos criptografar HTTPS fora da caixa e redirecionar automaticamente para a porta 443


Fácil de implantar no VPS. A propósito, nós os temos. Podemos dormir)

O wireguard deve estar instalado no servidor e as portas devem estar abertas: 80 / tcp, 443 / tcp, 51820 / udp (WireGuard). Neste caso, você precisa remover o dnsmasq padrão, pois ele será iniciado no contêiner.

Então, tudo é bastante típico, apenas substitua --env SUBSPACE_HTTP_HOST por seu domínio:

# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.
$ mkdir /data

docker create \
    --name subspace \
    --restart always \
    --network host \
    --cap-add NET_ADMIN \
    --volume /usr/bin/wg:/usr/bin/wg \
    --volume /data:/data \
    --env SUBSPACE_HTTP_HOST=subspace.example.com \
    subspacecloud/subspace:latest

$ sudo docker start subspace

      
      





O repositório está aqui .



Em vez de conclusões



Se você ainda não experimentou esta VPN, eu recomendo fortemente. Freqüentemente, ele é capaz de reviver hardware não muito poderoso, que não conseguia lidar com a carga anterior. Também não é muito difícil de configurar. É verdade que sua principal tarefa ainda é perfurar túneis retos pré-configurados. Quaisquer configurações dinâmicas não estão disponíveis para ele no sentido usual. Um preço a pagar pela simplicidade e desempenho.

A propósito, se você ainda não sabe, o wireguard já está incluso na versão beta do RouterOS 7.1 da MikroTik. Você pode tentar agora, mas, de acordo com meus sentimentos, ainda está úmido.





Bem, tradicionalmente, posso convidá-lo a tentar implantar wireguard em nosso VPS... Por exemplo, para encerrar parte do tráfego de sua rede doméstica para a Suíça ou Holanda. Temos muitos locais diferentes e a política de preços é muito agradável para essas tarefas.



Como eu disse, o Wireguard é muito eficiente em termos de recursos, portanto, uma configuração mínima com 1 núcleo e 1 GB de RAM será mais do que suficiente para suportar um grande número de clientes. Os preços também são bastante humanos:














All Articles