Script para controle e gerenciamento de rotas WireGuard em dispositivos MikroTik via SSH.
Este projeto fornece uma interface amigável para gerenciar rotas WireGuard em MikroTik, permitindo alternar entre diferentes ISPs/gateways de forma simples e eficiente.
- 🔄 Alternância automática entre ISPs
- 👁️ Detecção do ISP atual
- 🛠️ Gerenciamento de nomes de ISPs
- 🔌 Teste de conectividade SSH
- ⚡ Configuração direta via comandos SSH
- 💾 Configuração persistente de ISPs
- Dispositivo MikroTik com SSH habilitado
- Chave SSH configurada
- Usuário com permissões apropriadas
-
Clone o repositório:
git clone https://github.com/CarlosSuporteISP/Controle_Rotas_WG_MikroTik.git cd controle-wg-mikrotik -
Configure a chave SSH motivo de usar essa chave mikrotik não aceita ed25519:
ssh-keygen -t rsa -b 2048 -f ~/.ssh/mikrotik_wgkey -N ""
como essa criptografia e mais fraca provavel vai ter que colocar isso abaixo no seu /etc/ssh/ssh_conf
Host 10.130.130.0 HostName 10.130.130.0 User admin Port 22 IdentityFile ~/.ssh/mikrotik_wgkey HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa KexAlgorithms +diffie-hellman-group1-sha1 Ciphers +aes128-cbc StrictHostKeyChecking nochmod +x ROTA-ACC-WG.py ### Ou para a versão shell chmod +x controle-wg.sh -
Execute o script:
./ROTA-ACC-WG.py ### Ou ./controle-wg.sh
⚙️ Configuração
Arquivo de Configuração
O script cria automaticamente o arquivo ~/.wg_isps.conf com a configuração padrão de 64 ISPs.
Personalização
Edite o arquivo de configuração para adicionar seus próprios ISPs:
ISP-01=10.131.131.1
ISP-02=10.131.131.5
Meu_ISP_Personalizado=10.131.131.100
🎮 Como Usar
Menu Principal
=== 🌐 CONTROLE WG - COMANDOS DIRETOS ===
IP: 10.130.130.0 | Usuário: admin | Porta: 22
ISP Atual: ISP-01
================================================================
1. ISP-01 2. ISP-02
3. ISP-03 4. ISP-04
...
================================================================
98. 🛠️ Gerenciar nomes de ISP
99. 🔄 Próximo ISP automático
00. 👁️ Ver ISP atual (detalhado)
88. 🔌 Testar conexão SSH
77. 🚪 SairOpções Disponíveis
Números 1-64: Seleciona ISP específico
98: Gerencia nomes de ISPs (adicionar/remover/renomear)
99: Alterna automaticamente para o próximo ISP
00: Mostra detalhes do ISP atual
88: Testa conexão SSH
77: Sai do programa
🔧 Configuração do MikroTik
Criar usuário SSH
/user group add name=WG-ACC_ROTAS policy="local,ssh,read,write,test"
/user add name=admin group=WG-ACC_ROTAS
/user ssh-keys import public-key-file=mikrotik_wgkey.pub user=adminConfigurar porta SSH (boas pratica altere a porta implemente firewall e etc)
/ip service set ssh port=22📁 Estrutura do Projeto
controle_rotas_wg_mikrotik/
├── ROTA-ACC-WG.py # Versão Python
├── controle-wg.sh # Versão Shell Script
├── README.md # Este arquivo
└── .wg_isps.conf # Configuração de ISPs (gerado automaticamente)🐛 Solução de Problemas
Erro de Conexão SSH
Verifique se a chave pública foi importada no MikroTik
Confirme as permissões da chave privada (chmod 600 ~/.ssh/mikrotik_wgkey)
Teste a conexão manualmente não pode pedir senha pois já tem a chave:
ssh -i ~/.ssh/mikrotik_wgkey admin@10.130.130.0 -p 22
ssh -p 22 -i ~/.ssh/mikrotik_wgkey admin@10.130.130.0 "/interface print"Erro de Permissões
Verifique se o usuário tem permissão para modificar rotas
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para:
Fazer um fork do projeto
Criar uma branch para sua feature (git checkout -b feature/AmazingFeature)
Commit suas mudanças (git commit -m 'Add some AmazingFeature')
Push para a branch (git push origin feature/AmazingFeature)
Abrir um Pull Request
👨💻 Desenvolvedores
Carlos Santos - https://github.com/CarlosSuporteISP
Vibe code AI
⭐ Se este projeto foi útil para você, considere dar uma estrela no repositório!