Eu estou falando principalmente com base nos meus planos para mudar a configuração do OpenVPN para OpenWRT. Ele está atualmente implementado no Fedora18, mas eu gostaria de usar a máquina de teste para outras coisas. Eu imagino que DD-WRT seria semelhante, mas pode haver algumas imprecisões devido a dificuldades de implementação. Espero que alguém com mais experiência em DD-WRT possa me apoiar e suavizar qualquer problema.
A diretiva dev tun
significa que você está usando uma sub-rede separada, geralmente definida usando a diretiva server
(acredito que essa parte seja tratada na página Gerenciamento de VPN). Por exemplo, server 10.0.0.0 255.255.255.0
significaria que seus clientes receberiam um endereço no adaptador virtual do cliente dentro desse intervalo.
Se este dispositivo for seu roteador de internet, ele será usado como o gateway padrão da sua rede. Se o seu dispositivo sem fio não tiver uma rota estática para uma determinada rede definida, ele perguntará ao gateway padrão. O que eu suspeito que está acontecendo é que suas regras iptables não estão definidas para procurar e aceitar qualquer tráfego de sua sub-rede VPN, com base na interface de entrada
Você pode ver sua configuração do iptables usando iptables -nvL --line-numbers
. As pessoas que desejam usar seu dispositivo como um roteador podem se deparar com algo como o seguinte.
- Aceite as conexões estabelecidas.
- Aceite conexões com endereços locais da Internet correspondentes a quaisquer regras de encaminhamento de porta que você tenha em vigor.
- Aceite tráfego da sub-rede local.
- Soltar / Rejeitar todas as tentativas restantes que cruzam a cadeia de regras.
Se a sua sub-rede OpenVPN não for mencionada no estágio 3, ela estará no estágio 4 e será eliminada.
Esses procedimentos são organizados em cadeias de regras baseadas em tarefas. O que estou planejando fazer é definir uma cadeia para minhas sub-redes OpenVPN no início do "zone_lan_forward", a cadeia de regras que manipula as conexões locais. É algo assim:
iptables -N zone_lan_vpn
iptables -I zone_lan_forward -i tun+ -j zone_lan_vpn
O que você faz em seguida depende de quais tipos de restrições você deseja aplicar a esses clientes. Eu tenho três instâncias OpenVPN diferentes (uma administrativa e dois níveis de acesso de convidado), então eu dividi isso um pouco mais.
Os usuários na sub-rede VPN administrativa têm acesso a quase tudo, então eu implementei uma configuração DENY- > ALLOW que impede apenas os endereços específicos que estão fora do menu antes de aceitar todo o resto. Os visitantes só têm permissão para acessar determinados recursos, por isso, eles estão em uma configuração ALLOW- & DUY DENY.
A parte que eu não tenho certeza com DD-WRT é como configurar isso para ocorrer automaticamente na inicialização. No OpenWRT, regras de firewall são geradas com base em scripts (que não devem ser importados) em /lib/firewall
. O arquivo de configuração, /etc/config/firewall
, contém as seguintes linhas:
config 'include'
option 'path' '/etc/firewall.user'
O arquivo /etc/firewall.user
definido acima é lido como um script BASH sempre que as regras do firewall são recarregadas, para permitir ajustes específicos do usuário. Eu não estou familiarizado com o DD-WRT especificamente, então não tenho certeza se o mesmo método de configuração de firewall é usado.
Se suas regras de firewall estão no padrão DD-WRT, você poderia postar a saída de iptables -nvL --line-numbers
em pastebin ou similar, com seu endereço público redigido? Isso me ajudaria a ter uma ideia melhor do layout específico do DD-WRT. Você consegue confirmar o endereço IP na sub-rede OpenVPN que o cliente remoto está obtendo? Você poderia também postar a tabela de roteamento do seu roteador, como mostrado pelos resultados de route -n
? (Certifique-se de que o servidor OpenVPN está sendo executado enquanto você faz isso). Se você redigir endereços de rede a partir disso, identifique qual era o objetivo do intervalo (por exemplo, sub-rede local, sub-rede de VPN, pública).
Naturalmente, isso pode ser discutível se houver uma opção para definir esse acesso na interface da web. Existe uma opção no console da web do seu roteador para filtrar usuários na sub-rede OpenVPN?
Eu tenho medo de não entender a parte dois da sua pergunta. Você quer apenas que determinados endereços IP possam se conectar ao dispositivo via OpenVPN? Você quer que este serviço esteja em um servidor que não seja seu roteador DD-WRT no futuro?