Índice:

Gateway VPN Raspberry Pi: 6 etapas
Gateway VPN Raspberry Pi: 6 etapas

Vídeo: Gateway VPN Raspberry Pi: 6 etapas

Vídeo: Gateway VPN Raspberry Pi: 6 etapas
Vídeo: How to setup a Raspberry Pi OpenVPN gateway 2024, Novembro
Anonim
Gateway VPN Raspberry Pi
Gateway VPN Raspberry Pi

Atualização 07-01-2018:

  • Itens atualizados ausentes e alterações necessárias para a versão atual do Raspian.
  • Também criou um guia específico para NordVPN.

Existem alguns usos diferentes para VPN. Ou você deseja proteger sua privacidade e dados privados de olhares indiscretos ou precisa obter recursos de outro país. A terceirização de outro país pode ser muito útil para obter acesso a serviços não fornecidos em seu país. Existem vários serviços VPN por aí hoje, e a maioria deles oferece software fácil de usar para o seu computador e aplicativos para o seu tablet ou telefone. Mas se você tiver outros dispositivos não suportados pelo software que deseja passar pela VPN? Em seguida, construa um gateway que forneça acesso à Internet através da VPN.

Se você olhar para sua configuração de rede básica, você tem um "gateway padrão" que é usado para qualquer endereço IP não localizado em sua sub-rede atual (muito simplificado). Portanto, se você configurar um gateway que pode rotear o tráfego da Internet por meio de uma conexão VPN estabelecida, qualquer dispositivo habilitado para rede pode tirar proveito do túnel VPN.

Meu principal caso de uso no meu apartamento em San Francisco é um túnel VPN para minha Suécia natal, para que eu possa transmitir canais suecos de reprodução em meus players de mídia e smart TV. Este é um caso de uso bastante comum para a maioria das pessoas que precisam de um túnel VPN. Como meus players de mídia e smart TVs não são compatíveis com o software VPN, construí um com um Raspberry Pi.

Você pode comprar um por menos de $ 40 na Amazon. No entanto, recomendo que você compre um gabinete e um adaptador de alimentação decente também. Para este instrutível, você precisa:

  • Raspberry Pi 2 ou 3
  • Um caso do seu agrado
  • Um adaptador de energia decente
  • Um cabo de rede

Etapa 1: Escolhendo Seu Serviço VPN

Escolhendo Seu Serviço VPN
Escolhendo Seu Serviço VPN

O importante ao selecionar um serviço VPN é que ele atenda aos seus requisitos. Para este caso de uso, eu precisava de um serviço VPN com um ponto de saída sueco, isso é o mais importante, pois preciso que os serviços suecos estejam convencidos de que estou na Suécia. Ao longo dos anos, usei vários fornecedores diferentes e abaixo estão os itens que levo em consideração ao selecionar o fornecedor de VPN para o caso de uso específico:

Teste grátis

Quero um período de teste gratuito ou uma pequena quantidade de dados de teste para ter uma ideia do software ou aplicativo. Também quero testar o desempenho e a experiência geral antes de pagar por isso. Também é bom verificar se minha ideia vai funcionar antes de começar a pagar.

Privacidade

Se a implementação for para questões de privacidade, então é realmente importante o que determina a política de privacidade. Também é importante de qual país a empresa opera e quais leis protegem sua privacidade. Os usuários realmente preocupados com a privacidade devem procurar um serviço que declare que nenhum registro de tráfego é armazenado e permite pagamentos anônimos via Bitcoin, por exemplo.

Tráfego permitido

Pode haver limitações no tipo de tráfego que você terá permissão para executar. Os fornecedores mais sérios geralmente bloqueiam o tráfego ponto a ponto. Isso não serve apenas para evitar questões legais, mas também para manter o desempenho para todos os usuários. No entanto, existem muitos bons fornecedores por aí que permitem peer-to-peer e ainda fornecem um serviço de alta qualidade. Mas se essa não for sua principal exigência, recomendo selecionar um serviço que não permite ponto a ponto.

Limite de dados

Nunca use um serviço que mantém um limite de dados sobre seus usuários pagantes. Isso acabará no pior momento possível, exatamente como os dados em seu telefone, pouco antes da parte engraçada de um videoclipe!

Países de saída

Dependendo do caso de uso, isso tem uma importância diferente. Para um caso de uso como o meu, em que preciso ir para um país específico, é claro que isso precisa estar na lista. Eu também preciso ter permissão para selecionar o país de saída. Existem serviços em que você não pode selecionar o país de saída, fique longe deles. Você pode acabar em um país com desempenho ruim ou leis de privacidade. Mesmo que não precise de um país específico, você ainda deve selecionar um serviço com alguns países diferentes para mostrar para poder encontrar um com bom desempenho.

Tipo de software e suporte

Este é um dos principais motivos pelos quais prefiro serviços com teste grátis. Existem tantos provedores com software ruim que apresentam erros, são inseguros ou simplesmente não funcionam. Para uma implementação do Raspberry Pi, preciso de um provedor que ofereça suporte a OpenVPN.

Minha seleção

Para esta construção, optei pelo Tunnel Bear. Um teste gratuito de até 500 GB é oferecido para que eu pudesse testar se realmente poderia transmitir antes de pagar qualquer coisa. Eles estão sediados no Canadá, que, ao lado da Suécia, possui algumas das leis de privacidade mais rígidas do mundo. Sem limite de dados no serviço pago e também posso ter vários dispositivos conectados ao mesmo tempo. Portanto, a proteção para meu telefone, tablet e computador enquanto viajo em wi-fi inseguro também é classificada. O nó de saída na Suécia é suportado; na verdade, é fornecido via Bahnhof, que é conhecida por sua forte privacidade na Suécia. Para os planos pagos, eles oferecem suporte a OpenVPN. Eles não fazem o teste gratuito, mas foi o suficiente para executá-lo no meu laptop para ter certeza de que os serviços de streaming funcionavam.

Etapa 2: instale o Raspberry Pi

Para implementações como essa, uso o sistema operacional Raspbian Lite. Já que não preciso da GUI. Você pode obter a versão mais recente aqui.

Eu uso o Win32DiskImager para carregar o arquivo.img no cartão SD para o Raspberry Pi.

Depois de inicializar o Raspberry Pi, procuro na lista DHCP de meus roteadores para obter o endereço IP e, em seguida, conecto-me por SSH com o Putty. O nome de usuário e a senha padrão são pi / raspberry

Uma vez conectado, executo a ferramenta raspi-config para alterar as configurações básicas.

sudo raspi-config

As coisas mais importantes para cuidar nesta configuração são:

  • Expandir sistema de arquivos
  • Mudar senha

Você também pode alterar o nome do host do seu Raspberry Pi, se desejar. Meu DHCP tem concessões muito longas e também posso reservar um endereço específico. Se você não tiver essa capacidade, terá que configurar o Raspberry Pi para usar um endereço IP estático. Visto que outros dispositivos usarão isso como gateway padrão, é importante que continue usando o mesmo endereço IP. Aqui está um post que escrevi sobre a configuração de um IP estático no Raspbian Jessie.

Então, precisamos atualizar tudo para a versão mais recente:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Etapa 3: Instale o OpenVPN

Instale OpenVPN
Instale OpenVPN

Agora precisamos instalar o OpenVPN no Raspberry Pi.

sudo apt-get install openvpn

Então, precisamos nos certificar de que o serviço seja iniciado corretamente.

sudo systemctl enable openvpn

Quando a instalação for concluída, precisamos copiar os arquivos de configuração e certificados do OpenVPN para a caixa. Isso será fornecido a você pelo seu provedor de VPN. No meu caso, usando o TunnelBear, encontrei uma postagem no blog sobre o Suporte ao Linux. Nessa página, há um link para um arquivo zip contendo tudo o que precisamos.

O arquivo contém os arquivos de certificado e um arquivo de configuração.opvn para cada país para o qual você pode criar um túnel. Você precisa de todos os arquivos de certificado e do arquivo de configuração.opvn para o país de sua escolha, no meu caso, a Suécia. Descompacte os arquivos necessários e use o winscp para carregá-los no Raspberry Pi. O mesmo nome de usuário / senha usado para SSH o levará para / home / pi, basta soltar os arquivos lá.

Em seguida, voltamos ao terminal SSH e movemos os arquivos para a pasta OpenVPN. O primeiro comando é apenas para ter certeza de que estamos na pasta / home / pi.

cd / home / pi

sudo mv * / etc / openvpn /

Agora precisamos fazer algumas modificações nos arquivos. Primeiro, precisamos renomear o arquivo de configuração de.ovpn para.conf. Qualquer arquivo terminado em.conf na pasta / etc / openvpn será iniciado automaticamente quando o daemon OpenVPN for iniciado. Primeiro, precisamos entrar nesse diretório.

cd / etc / openvpn

Em seguida, alteramos o nome do arquivo de configuração. Você pode nomeá-lo como quiser, desde que termine em.conf. Eu prefiro usar nomes de arquivo sem espaços em branco, neste caso vou usar swe.conf.

sudo mv *.ovpn swe.conf

Em seguida, precisamos de um arquivo de autenticação contendo o nome de usuário e a senha usados para o túnel VPN. Abra um editor de texto e escreva o nome de usuário e a senha em linhas separadas. Chamaremos esse arquivo de auth.txt.

sudo nano auth.txt

O conteúdo deve ser como este exemplo:

nome do usuário

senha

Em seguida, use CTRL + O para gravar no arquivo e CTRL + X para sair do editor de texto nano. Também precisamos proteger o arquivo auth.txt que contém nossas credenciais.

sudo chmod 600 /etc/openvpn/auth.txt

Em seguida, precisamos editar o arquivo de configuração para ter certeza de que todos os caminhos estão corretos e adicionar uma referência ao arquivo auth.txt recém-criado.

sudo nano swe.conf

As linhas que precisam ser alteradas são as que se referem a outros arquivos, precisam ser caminhos absolutos. Neste exemplo, isso é o que estamos procurando:

ca CACertificate.crt

cert UserCertificate.crt key PrivateKey.key

Nós os mudamos para caminhos absolutos como este:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt key /etc/openvpn/PrivateKey.key

Então, no final do arquivo, adicionamos uma referência ao arquivo auth.txt, assim:

auth-user-pass /etc/openvpn/auth.txt

Mais uma vez usamos CTRL + O para salvar o arquivo e então CTRL + X para sair do nano. Agora podemos reiniciar o daemon OpenVPN e ver se o túnel está funcionando.

sudo service openvpn restart

Se você executar o comando ifconfig, deverá ver um adaptador tun0 além de seus adaptadores eth0 e lo se o túnel estiver ativo. Você também pode executar o comando este comando para verificar seu IP público:

wget https://ipinfo.io/ip -qO -

Se você estiver tendo problemas para abrir o túnel, primeiro tente reiniciar o Raspberry Pi e, em seguida, verifique se há erros na configuração.

Etapa 4: configurar o roteamento

Agora precisamos habilitar o encaminhamento de IP. Ele permite que o tráfego da rede entre de uma das interfaces de rede e saia pela outra. Basicamente, criando um roteador.

sudo / bin / su -c "echo -e '\ n # Habilitar roteamento de IP / nnet.ipv4.ip_forward = 1'> /etc/sysctl.conf"

Se você executar sudo sysctl -p, deverá ver isto impresso na tela:

net.ipv4.ip_forward = 1

Agora o roteamento está habilitado e o tráfego pode passar pelo Raspberry Pi, pelo túnel e pela Internet.

Etapa 5: configurar firewall e NAT

Como teremos vários clientes internos acessando a Internet por meio de um endereço IP público, precisamos usar o NAT. Ele significa tradução de endereço de rede e manterá o controle de qual cliente solicitou qual tráfego quando as informações retornam pelo túnel. Também precisamos configurar alguma segurança em torno do próprio Raspberry Pi e do túnel.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Habilitando o NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACEITAR

Permitindo que qualquer tráfego de eth0 (interno) passe por tun0 (túnel).

sudo iptables -A FORWARD -i tun0 -o eth0 -m estado --estado RELACIONADO, ESTABELECIDO -j ACEITAR

Permitindo que o tráfego do tun0 (túnel) volte pelo eth0 (interno). Como especificamos o estado RELACIONADO, ESTABELECIDO, ele será limitado à conexão iniciada a partir da rede interna. Bloqueando tráfego externo tentando iniciar uma nova conexão.

sudo iptables -A ENTRADA -i lo -j ACEITAR

Permitindo o próprio tráfego de loopback do Raspberry Pi.

sudo iptables -A ENTRADA -i eth0 -p icmp -j ACEITAR

Permitindo que os computadores da rede local façam ping no Raspberry Pi.

sudo iptables -A ENTRADA -i eth0 -p tcp --dport 22 -j ACEITAR

Permitindo SSH da rede interna.

sudo iptables -A ENTRADA -m estado --estado ESTABELECIDO, RELACIONADO -j ACEITAR

Permitindo que todo o tráfego iniciado pelo Raspberry Pi retorne. Este é o mesmo princípio de estado anterior.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Se o tráfego não corresponder a nenhuma das regras especificadas, ele será descartado.

sudo apt-get install iptables-persistent

sudo systemctl enable netfilter-persistent

A primeira linha instala um trecho de código que torna as regras de iptable que acabamos de criar persistentes entre as reinicializações. O segundo salva as regras depois que você as altera. Desta vez é o suficiente para executar o primeiro. Se você alterar as regras, execute a segunda para salvar. As regras Iptable entram em vigor assim que você as adiciona, se você bagunçar e perder o acesso, apenas reinicie e as que ainda não foram salvas serão revertidas.

Etapa 6: Conclusão

Agora você pode usar este túnel de qualquer dispositivo ou computador na mesma rede. Basta alterar o gateway padrão para qualquer endereço IP que seu Raspberry Pi tenha. No meu caso, os dois centros de mídia Kodi (um quarto e uma sala de estar) usam essa conexão para que eu possa transmitir meus canais de reprodução suecos. É claro que você também pode usar isso para outras coisas.

Lembre-se de que dependendo do fornecedor de VPN que você escolheu e da velocidade de sua conexão com a Internet, o desempenho pode ser lento.

Se você tiver alguma dúvida ou quiser que eu esclareça alguma coisa me avise nos comentários! Para mais publicações sobre tecnologia, visite meu blogg Hackviking!

Recomendado: