AmneziaWG Cascade: Configurando Dois Servidores para Acesso Direto a Sites Russos

AmneziaWG Cascade: Configurando Dois Servidores para Acesso Direto a Sites Russos

Descubra como configurar um cascade AmneziaWG com dois servidores para garantir que sites russos sejam acessados diretamente, enquanto o tráfego restante é roteado através de um servidor estrangeiro. Este guia detalha o processo passo a passo, abordando os desafios e soluções.

MundiX News·07 de julho de 2026·7 min de leitura·👁 1 views

Ter uma VPN própria em um servidor estrangeiro é conveniente, até que você precise acessar sites russos. Alguns deles simplesmente bloqueiam endereços estrangeiros, como bancos, portais governamentais e serviços de streaming. Outros sites podem abrir, mas com um roteamento desnecessário através do exterior e com um IP que não é o seu.

Na última publicação, apresentei uma solução geral – um cascade de dois servidores – e indiquei o guia para mais detalhes. Desde então, tenho recebido perguntas regulares sobre este esquema, então aqui está uma análise completa, passo a passo, de como montei o cascade e quais obstáculos encontrei. A ideia principal é: o cliente se conecta a um servidor, o tráfego russo sai para a internet diretamente deste servidor, e todo o resto é roteado através de um segundo servidor no exterior. Uma única conexão no telefone, com toda a lógica de divisão residindo no servidor. Isso é essencialmente um split tunneling no lado do servidor, o que significa que os clientes não precisam configurar nada.

Sobre a autoria: a ideia foi proposta por um dos usuários do instalador (glfenix no GitHub) em uma discussão do projeto. Eu montei o esquema em dois servidores limpos, testei, corrigi alguns pontos e desenvolvi esta instrução passo a passo. Agradeço a ele pela análise.

O que você vai precisar

  • Dois VPS com Debian 12/13 ou Ubuntu 24.04/25.10 limpos, com acesso root em ambos.
  • Servidor de Entrada (Inbound): Localizado na Rússia ou próximo a ela. Os clientes se conectam a ele, e os sites russos são acessados a partir de um endereço próximo.
  • Servidor de Saída (Outbound): Um VPS estrangeiro comum.
  • Ambos os servidores devem ter um IP público real. Um servidor atrás de NAT (CGNAT) do provedor não serve como servidor de entrada, pois não seria acessível de fora. Uma verificação rápida: o endereço retornado por curl -s ifconfig.me deve coincidir com o endereço na interface (ip -4 addr). Um caso especial com Hetzner e um gateway privado será abordado mais adiante.
  • IPv6 desativado: o instalador o desativa por padrão. O cascade funciona via IPv4; com IPv6 ativado, o tráfego contornará a divisão.
  • Sub-redes diferentes para os servidores. No meu caso, a entrada usa 172.16.17.1/24 e a saída usa 172.16.61.1/24.

Como o cascade divide o tráfego

A mecânica foi detalhada em um artigo anterior, mas aqui farei um breve resumo para facilitar a compreensão dos passos. O servidor de entrada inspeciona o endereço de destino de cada pacote. Se o endereço estiver na lista de redes russas, o pacote é enviado diretamente para a internet a partir do servidor de entrada. Caso contrário, ele é marcado com um rótulo (fwmark) e enviado através de um túnel para o servidor de saída. A lista de redes russas é obtida da zona aberta do ipdeny e carregada no ipset. Os clientes são adicionados ao servidor de entrada normalmente, usando manage add <nome>, sem necessidade de configuração adicional do lado deles.

Montagem do Cascade

Passo 1. Instalar o instalador em ambos os servidores

Em ambos os servidores, instale o amneziawg-installer (ele configura o AmneziaWG 2.0 com ofuscação e o firewall). Siga as instruções principais e execute-o de forma não interativa com as sub-redes desejadas:

bash
# No servidor de saída (exterior)
bash install_amneziawg.sh --yes --disallow-ipv6 --route-all --subnet=172.16.61.1/24

# No servidor de entrada (Rússia ou próximo)
bash install_amneziawg.sh --yes --disallow-ipv6 --route-all --subnet=172.16.17.1/24

O instalador configurará o encaminhamento e o NAT automaticamente, então não é necessário editar o arquivo de configuração do servidor. O script de roteamento adicionará apenas o que for necessário. No servidor de entrada, instale dois pacotes que podem não estar presentes em uma imagem mínima:

bash
apt update && apt install -y curl ipset

Passo 2. No servidor de saída: configurar o cliente para o servidor de entrada

O servidor de entrada se conectará ao servidor de saída como um cliente comum. Crie-o no servidor de saída:

bash
bash /root/awg/manage_amneziawg.sh add ru_host

Isso gerará o arquivo /root/awg/ru_host.conf. Copie este arquivo para o servidor de entrada por qualquer meio (scp, área de transferência). Dentro do arquivo, você encontrará uma configuração de cliente comum, incluindo o Endpoint (IP externo do servidor de saída) e AllowedIPs = 0.0.0.0/0. Anote o Endpoint, pois ele será necessário no script.

Passo 3. No servidor de entrada: configurar o túnel para o servidor de saída

Coloque o arquivo de configuração copiado em /etc/amnezia/amneziawg/awg1.conf e edite duas linhas:

  • Na seção [Interface], adicione Table = off. Isso impede que awg-quick configure as rotas automaticamente, pois nosso script cuidará do roteamento.
  • Remova a linha DNS = ..., pois ela não é necessária no servidor.

Defina as permissões corretas e inicie o túnel:

bash
chmod 600 /etc/amnezia/amneziawg/awg1.conf
systemctl start awg-quick@awg1
awg show awg1

A saída de awg show awg1 deve mostrar latest handshake, indicando que a conexão com o servidor de saída está estabelecida. O ping para o endereço interno do servidor de saída pode não funcionar neste momento, o que é normal, pois a rota para ele será criada em uma tabela separada na próxima etapa.

Passo 4. O script de roteamento

A lógica de divisão de tráfego é implementada em um único script bash no servidor de entrada, /root/awg/awg-routing.sh. Este script é idempotente, o que significa que pode ser executado várias vezes, e a cada execução ele atualiza a lista de redes russas. O script completo está disponível no guia do cascade. Vamos analisar os principais componentes:

  • Atualização da lista de redes russas: A lista de redes russas é carregada no ipset através de um conjunto temporário com substituição atômica para evitar um período em que o conjunto esteja vazio:
    bash
    ipset create ru hash:net -exist
    # ... carregar redes de uma lista baixada para um conjunto temporário ru_tmp ...
    ipset swap ru_tmp ru
  • Tabela de roteamento separada e regra de marcação: O tráfego marcado é roteado através do túnel awg1.
    bash
    undefined

ip route replace default dev awg1 table 100 ip rule add fwmark 0x1 table 100 priority 10000 ```

  • Marcação do tráfego dos clientes: Pacotes destinados a redes russas são roteados diretamente (RETURN antes da marcação), enquanto todo o restante é marcado. A ordem é importante, com RETURN vindo antes de MARK:
    bash
    undefined

iptables -t mangle -I PREROUTING 1 -i awg0 -s 172.16.17.0/24 -m set --match-set ru dst -j RETURN iptables -t mangle -A PREROUTING -i awg0 -s 172.16.17.0/24 -j MARK --set-mark 0x1 ```

  • Rota para o servidor de saída: A rota para o próprio servidor de saída deve ser mantida fora do túnel para evitar loops de pacotes no awg1.

O script possui duas salvaguardas importantes: primeiro, se a lista de redes russas não for baixada e estiver vazia, o script para com um erro, evitando uma divisão silenciosamente quebrada. Segundo, um tratamento específico para gateways /32, que será discutido adiante.

Defina sua sub-rede de cliente e o IP externo do servidor de saída no início do script e execute-o:

bash
chmod +x /root/awg/awg-routing.sh
bash /root/awg/awg-routing.sh

Passo 5. Autostart após reinicialização

Um problema comum na configuração inicial era que as rotas não eram restauradas após a reinicialização, exigindo intervenção manual. Isso é resolvido com um único serviço systemd que depende de ambos os túneis, garantindo que a roteamento seja iniciado estritamente após eles:

/etc/systemd/system/awg-routing.service:

ini
[Unit]
Description=Cascading Split Routing
After=awg-quick@awg0.service awg-quick@awg1.service network-online.target
Requires=awg-quick@awg0.service awg-quick@awg1.service
Wants=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/awg/awg-routing.sh

[Install]
WantedBy=multi-user.target

Execute os seguintes comandos para recarregar o systemd e habilitar o serviço:

bash
systemctl daemon-reload
systemctl enable awg-quick@awg1 awg-routing

O parâmetro Requires garante que o roteamento não será iniciado se o túnel para o servidor de saída falhar. Testes de reinicialização confirmaram que os túneis, tabelas e listas são configurados automaticamente.

A lista de redes russas muda com o tempo, portanto, é recomendável reiniciar o serviço semanalmente para atualizá-la. Isso pode ser feito com um cron job:

bash
echo '0 5 * * 1 root systemctl restart awg-routing' > /etc/cron.d/awg-routing-refresh

Verificando o funcionamento da divisão de tráfego

A maneira mais fácil de verificar é através dos contadores do iptables. No servidor de entrada, zere os contadores, crie ambos os tipos de tráfego a partir de um cliente e observe:

bash
# No servidor de entrada: zerar contadores
iptables -t mangle -Z PREROUTING

# No cliente: acessar um site estrangeiro (via saída) e um endereço russo (diretamente)
curl https://ifconfig.me      # Deve mostrar o IP externo do servidor de saída
ping -c3 77.88.55.242         # Endereço russo (Yandex)

# No servidor de entrada: verificar os contadores
iptables -t mangle -L PREROUTING -n -v
# RETURN (match-set ru dst)  <- Pacotes para a Rússia aumentaram (diretamente)
# MARK   (MARK set 0x1)      <- Outros pacotes aumentaram (via saída)

Se o curl ifconfig.me no cliente mostrar o IP de saída e o contador RETURN aumentar para endereços russos, o cascade foi configurado corretamente. O MTU não exigiu ajustes manuais, pois a dupla encapsulação se encaixa nos tamanhos padrão, e testes de transferência de dados não apresentaram perdas.

Obstáculos encontrados

Aqui estão alguns problemas comuns que encontrei ou que foram relatados por outros usuários:

  • Todo o tráfego, incluindo o russo, passa pelo exterior: Verifique a lista de redes russas no ipset. Deve haver milhares de entradas. Se for zero, a lista não foi baixada. O script foi projetado para parar com um erro nesses casos. Se o www.ipdeny.com estiver bloqueado pelo seu provedor, o script usará um snapshot do repositório do projeto.
  • Algum site russo ainda abre através do exterior: A divisão é baseada no IP de destino. Sites que residem fisicamente em hospedagem estrangeira ou atrás do Cloudflare podem ter IPs estrangeiros e não estar na lista de redes russas, sendo roteados para o servidor de saída. Se o site bloquear IPs estrangeiros, ele não abrirá. Verifique um site específico com getent hosts <nome.ru> e, em seguida, ipset test ru <endereço> para cada IP. Se o IP for russo mas não estiver no ipset, a lista está incompleta. Se for estrangeiro, é o comportamento esperado e só pode ser resolvido no lado do site.
  • Google e YouTube lentos, mesmo com saída estrangeira: Parte dos caches do Google e YouTube está em endereços russos e é roteada diretamente, fazendo com que o Google veja um IP russo. Isso não é resolvido de forma confiável com a substituição de DNS. Se você precisa que o Google sempre passe pela saída, suas redes devem ser roteadas para lá, contornando o RETURN. Detalhes estão no guia.
  • Taxa de upload significativamente menor que a de download: Se o download estiver normal e o upload cair drasticamente, o gargalo provavelmente está no trecho de entrada para saída. Meça a velocidade direcionadamente: no servidor de saída, execute iperf3 -s; no servidor de entrada, execute iperf3 -c <IP do servidor de saída> (upload) e iperf3 -c <IP do servidor de saída> -R (download). Uma baixa velocidade de upload indica um problema entre os servidores, como limitação de tráfego do hoster, peering ruim ou limites de entrada no servidor de saída.
  • Script falha com Nexthop has invalid gateway: Isso pode ocorrer com hosters como Hetzner, onde o IP público é atribuído como /32 e o gateway padrão está fora da sub-rede do servidor. A versão mais recente do script trata isso adicionando o flag onlink. Certifique-se de que o IP público está realmente no servidor (ip -4 addr deve coincidir com curl -s ifconfig.me).
  • IPv6 contorna a divisão: O esquema funciona via IPv4. Mantenha o IPv6 desativado.
  • DNS passa pela saída: As consultas DNS do cliente (por padrão, Cloudflare) são enviadas através do servidor de saída. Os endereços IP russos obtidos são então acessados diretamente. Isso é normal e não afeta a divisão.

Para quem o cascade não é necessário

Se você precisa do acesso dividido apenas para si mesmo, configurar o AllowedIPs diretamente no cliente é mais simples. O cascade é justificado quando a divisão de tráfego precisa ser mantida no servidor e ser igual para todos os usuários. Por isso, o cascade não está integrado ao instalador principal e requer esta instrução separada.

Conclusão

Configurar um cascade AmneziaWG com dois servidores é um processo que pode ser concluído em uma noite: duas instalações padrão, um túnel entre os servidores, um script de roteamento e um serviço systemd. Após a configuração, os sites russos serão acessados diretamente de um endereço russo, enquanto todo o restante será roteado através de um servidor estrangeiro, e todo o sistema sobreviverá a reinicializações automaticamente.

O script completo, a análise passo a passo e as perguntas frequentes estão disponíveis no guia do cascade: https://github.com/bivlked/amneziawg-installer/blob/main/CASCADE.md

O propósito de tudo isso e outros problemas comuns são abordados no artigo anterior: https://habr.com/ru/articles/1051054/

O projeto em si (instalador e gerenciamento): https://github.com/bivlked/amneziawg-installer

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.