Configurando seu próprio servidor VPN em casa com DDWRT

Tenho FIOS em casa e o FIOS inclui um aplicativo móvel para Android e iPhone que permite assistir TV ao vivo no seu dispositivo, desde que você esteja conectado à sua rede Wi-Fi doméstica com um roteador FIOS. É claro que, se estou em casa, posso apenas assistir às coisas na minha TV de tela grande, estou mais interessado em assistir TV quando estiver fora de casa ou no trânsito.

Portanto, a resposta óbvia é configurar um servidor VPN em casa e conectar-se. Para isso, reaprovei um antigo Asus Wifi Router que eu tinha por aí. Eu tinha o Asus ML-520gU, que é bom o suficiente para rodar DD-WRT com servidor OpenVPN.

Aqui estão algumas notas sobre como configurar o OpenVPN em um segundo roteador que fica atrás do roteador FIOS ActionTec principal:

  1. Instale DD-WRT em seu roteador. Certifique-se de atualizar para o firmware com suporte VPN.

  2. Depois de instalar o DD-WRT, siga as instruções aqui para gerar as chaves e habilitar o OpenVPN – http://www.dd-wrt.com/wiki/index.php/OpenVPN

  3. Eu levei em conta algumas diferenças em minha rede e mudei a configuração para funcionar para mim. Eu queria que o roteador DD-WRT ficasse atrás do meu roteador FIOS primário com um IP voltado para o público, então coloquei o roteador no modo “Ponto de acesso” – o que significa apenas desabilitar o DHCP e fazer com que o roteador atue como um switch e atribua endereços IP em a mesma sub-rede do roteador principal. Veja http://www.dd-wrt.com/wiki/index.php/Wireless_Access_Point

  4. Esta é a aparência da minha configuração openvpn:

    push "route 192.168.1.0 255.255.255.0"
    server
    192.168.3.0 255.255.255.0
    push
    "redirect-gateway def1"
    push
    "dhcp-option DNS 208.67.220.220"
    push
    "dhcp-option DNS 208.67.222.222"

    dev tun0

    proto udp

    port
    1194

    keepalive
    10 120
    dh
    /tmp/openvpn/dh.pem
    ca
    /tmp/openvpn/ca.crt
    cert
    /tmp/openvpn/cert.pem
    key
    /tmp/openvpn/key.pem

    # Only use crl-verify if you are using the revoke list - otherwise leave it commented out
    # crl-verify /tmp/openvpn/ca.crl

    # management parameter allows DD-WRT's OpenVPN Status web page to access the server's management port
    # port must be 5001 for scripts embedded in firmware to work
    management localhost
    5001

A primeira linha (192.168.1.0/32) é minha rede LAN

A segunda linha é o intervalo de endereços IP para os clientes VPN

A terceira linha roteia todo o tráfego através da VPN no cliente, tornando-o o gateway padrão. Sem esta linha, você poderá acessar a rede interna, mas todo o tráfego da Internet será roteado por meio de sua conexão não VPN.

Para o cliente, crie um arquivo OVPN e inclua os certificados na mesma pasta e distribua-o para seu cliente. Veja como meus arquivos oVPN se parecem:

# Zoheb VPN Client Configuration
client

dev tun

proto udp

remote
108.41.XX.XXX 1194
resolv
-retry infinite
nobind

persist
-key
persist
-tun
ca ca
.crt
cert client1
.crt
key client1
.key
ns
-cert-type server
verb
3

Note que se você tiver “comp-lzo” nesta configuração de cliente, você precisa habilitá-lo no servidor também ou você verá mensagens de erro relacionadas à compressão.

Levei um pouco de tentativa e erro para fazer isso funcionar, então espero que as notas acima ajudem outras pessoas a tentar configurar o OpenVPN no DD-WRT.