Como transformar um Raspberry Pi em uma VPN

blank
Por
Jugo Mobile
Jugo Mobile é uma plataforma dedicada a conteúdo de alta qualidade em jogos, esportes e tecnologia. Interaja com conteúdo de qualidade e conecte-se com outros entusiastas...
16 min de leitura

Quer saber como transformar um Raspberry Pi em uma VPN? Existem muitos motivos pelos quais você deseja acessar sua rede doméstica remotamente, e a melhor maneira de fazer isso é com um servidor VPN. Na verdade, alguns roteadores permitem que você configure um servidor VPN diretamente no roteador, mas em muitos casos, você mesmo precisará configurar um.

Um Raspberry Pi é uma ótima maneira de conseguir isso. Eles não requerem muita energia para funcionar e têm energia suficiente para operar um servidor VPN. Você pode configurar um próximo ao seu roteador e basicamente esquecê-lo.

Quando você tem acesso remoto à sua rede doméstica, pode acessar seus arquivos de qualquer lugar. Você pode operar seus computadores domésticos remotamente. Você pode até usar a conexão VPN da sua casa na estrada. Uma configuração como essa permite que seu telefone, tablet ou laptop funcione como se estivesse em casa, em qualquer lugar.

Como transformar um Raspberry Pi em uma VPN

Configure o Pi

Antes de começar a configurar a VPN, você precisará configurar seu Raspberry Pi. É melhor configurar o Pi com um case e um cartão de memória de tamanho decente, 16 GB deve ser mais que suficiente. Se possível, conecte seu Pi ao roteador com um cabo Ethernet. Isso minimizará quaisquer atrasos na rede.

Instale o Raspbian

O melhor sistema operacional para usar no seu Pi é o Raspbian. É a escolha padrão apresentada pela fundação Raspberry Pi e é baseada no Debian, uma das versões Linux mais seguras e estáveis ​​disponíveis.

Oferta limitada: 3 meses GRÁTIS!

ObtenhaExpressVPN. Seguro e compatível com streaming.

Garantia de devolução do dinheiro em 30 dias

Vou ao Página de download do Rasbiane pegue a versão mais recente. Você pode usar a versão “Lite” aqui, porque na verdade não precisa de uma área de trabalho gráfica.

Durante o download, obtenha a versão mais recente do Gravador para o seu sistema operacional. Após a conclusão do download, extraia a imagem Raspbian. Em seguida, abra o Etcher. Selecione a imagem Raspbian de onde você a extraiu. Selecione seu cartão SD (insira-o primeiro). Por fim, escreva a imagem no cartão.

Deixe o cartão SD no seu computador quando terminar. Abra um gerenciador de arquivos e navegue até o cartão. Você deverá ver algumas partições diferentes. Procure a partição “boot”. É aquele que contém um arquivo “kernel.img”. Crie um arquivo de texto vazio na partição “boot” e chame-o de “ssh” sem extensão de arquivo.

Você pode finalmente conectar seu Pi. Certifique-se de conectá-lo por último. Você não vai precisar de tela, teclado ou mouse. Você acessará remotamente o Raspberry Pi pela sua rede.

Dê ao Pi alguns minutos para se configurar. Em seguida, abra um navegador da web e navegue até a tela de gerenciamento do seu roteador. Encontre o Raspberry Pi e anote seu endereço IP.

Esteja você no Windows, Linux ou Mac, abra o OpenSSH. Conecte-se ao Raspberry Pi com SSH.

$ ssh [email protected]

Obviamente, use o endereço IP real do Pi. O nome de usuário é sempre pie a senha é framboesa.

Configurar o OpenVPN

OpenVPN não é exatamente simples de configurar como servidor. A boa notícia é que você só precisa fazer isso uma vez. Portanto, antes de começar, certifique-se de que o Raspbian esteja totalmente atualizado.

$ sudo apt update
$ sudo apt upgrade

Após a conclusão da atualização, você poderá instalar o OpenVPN e o utilitário de certificado necessário.

$ sudo apt install openvpn easy-rsa

Autoridade Certificadora

Para autenticar seus dispositivos quando eles tentarem se conectar ao servidor, você precisa configurar uma autoridade de certificação para criar chaves de assinatura. Essas chaves garantirão que apenas seus dispositivos possam se conectar à sua rede doméstica.

Primeiro, crie um diretório para seus certificados. Vá para esse diretório.

$ sudo make-cadir /etc/openvpn/certs
$ cd /etc/openvpn/certs

Procure por arquivos de configuração do OpenSSL. Em seguida, vincule o mais recente com openssl.cnf.

$ ls | grep -i openssl
$ sudo ln -s openssl-1.0.0.cnf openssl.cnf

Nessa mesma pasta “certs” está um arquivo chamado “vars”. Abra esse arquivo com seu editor de texto. Nano é o padrão, mas sinta-se à vontade para instalar o Vim, se estiver mais confortável com ele.

Edite o arquivo Vars

Encontre o KEY_SIZE variável primeiro. Está definido para 2048 por padrão. Mude para 4096.

export KEY_SIZE=4096

O bloco principal com o qual você precisa lidar estabelece informações sobre sua autoridade de certificação. Ajuda se essas informações forem precisas, mas qualquer coisa que você consiga lembrar está bem.

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="HomeVPN"

Quando você tiver tudo, salve e saia.

O pacote Easy-RSA que você instalou antes contém muitos scripts que ajudam a configurar tudo o que você precisa. Você só precisa executá-los. Comece adicionando o arquivo “vars” como fonte. Isso carregará todas as variáveis ​​que você acabou de definir.

$ sudo source ./vars

Em seguida, limpe as chaves. Você não tem nenhuma, então não se preocupe com a mensagem informando que suas chaves serão excluídas.

$ sudo ./clean-install

Criar autoridade certificadora

Finalmente, crie sua autoridade de certificação. Você já definiu os padrões, então pode apenas aceitar os padrões que ele apresenta. Lembre-se de definir uma senha forte e responder “sim” às duas últimas perguntas, seguindo a senha.

$ sudo ./build-ca

Faça algumas chaves

Construa a chave do servidor

Você passou por todo esse trabalho para configurar uma autoridade de certificação para poder assinar chaves. Agora é hora de fazer alguns. Comece construindo a chave para o seu servidor.

$ sudo ./build-key-server server

Construir Diffie-Hellman

Em seguida, construa o PEM Diffie-Hellman. É o que o OpenVPN usa para proteger as conexões do cliente com o servidor.

$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem

A última chave que você precisa a partir de agora é chamada de chave HMAC. OpenVPN usa essa chave para assinar cada pacote inpidual de informações trocadas entre o cliente e o servidor. Ajuda a prevenir certos tipos de ataques à conexão.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Configuração do servidor

Você tem as chaves. A próxima etapa na configuração do OpenVPN é a própria configuração do servidor. Felizmente, não há muito o que você precisa fazer aqui. O Debian fornece uma configuração básica que você pode usar para começar. Então, comece obtendo esse arquivo de configuração.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

Use seu editor de texto novamente para abrir /etc/openvpn/server.conf. As primeiras coisas que você precisa encontrar são ca, certificadoe chave arquivos. Você precisa configurá-los para corresponder aos locais reais dos arquivos que você criou, que estão todos em /etc/openvpn/certs/keys.

Chaves de configuração do servidor OpenVPN

ca /etc/openvpn/certs/keys/ca.crt
cert /etc/openvpn/certs/keys/server.crt
key /etc/openvpn/certs/keys/server.key  # This file should be kept secret

Encontre o dh configuração e altere-a para corresponder ao Diffie-Hellman .pem que você criou.

dh dh4096.pem

Defina também o caminho para sua chave HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Encontre o cifra e certifique-se de que corresponde ao exemplo abaixo.

cipher AES-256-CBC

As próximas opções estão lá, mas são comentadas com um ;. Remova os pontos e vírgulas antes de cada opção para ativá-las.

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Procure o do utilizador e grupo opções. Remova o comentário e altere o do utilizador para “openvpn”.

user openvpn
group nogroup

Finalmente, estas duas últimas linhas não estão na configuração padrão. Você precisará adicioná-los no final do arquivo.

Autenticação de configuração do servidor OpenVPN

Defina o resumo de autenticação para especificar uma criptografia mais forte para autenticação do usuário.

# Authentication Digest
auth SHA512

Em seguida, limite os códigos que o OpenVPN pode usar apenas aos mais fortes. Isso ajuda a limitar possíveis ataques a cifras fracas.

# Limit Ciphers
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

Isso é tudo para configuração. Salve o arquivo e saia.

Inicie o servidor

Antes de iniciar o servidor, você precisa fazer isso openvpn usuário que você especificou.

$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn

É um usuário especial apenas para executar o OpenVPN e não fará mais nada.

Agora, inicie o servidor.

$ sudo systemctl start openvpn
$ sudo systemctl start openvpn@server

Verifique se ambos estão funcionando

$ sudo systemctl status openvpn*.service

Se tudo parecer bem, habilite-os na inicialização.

$ sudo systemctl enable openvpn
$ sudo systemctl enable openvpn@server

Configuração do cliente

Seu servidor agora está configurado e funcionando. Em seguida, você precisa definir a configuração do seu cliente. Esta é a configuração que você usará para conectar seus dispositivos ao servidor. Retorne para certificados pasta e prepare-se para construir a(s) chave(s) do cliente. Você pode optar por criar chaves separadas para cada cliente ou uma chave para todos os clientes. Para uso doméstico, uma chave deve servir.

$ cd /etc/openvpn/certs
$ sudo source ./vars
$ sudo ./build-key client

O processo é quase idêntico ao do servidor, portanto siga o mesmo procedimento.

Configuração do cliente

A configuração dos clientes é muito semelhante à do servidor. Novamente, você tem um modelo pré-fabricado para basear sua configuração. Você só precisa modificá-lo para corresponder ao servidor.

Mude para o cliente diretório. Em seguida, descompacte a configuração de amostra.

$ cd /etc/openvpn/client
$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Abra o cliente.ovpn arquivo com seu editor de texto. Então, encontre o controlo remoto opção. Supondo que você ainda não esteja usando uma VPN, pesquise no Google “Qual é o meu IP”. Pegue o endereço que ele exibe e defina o controlo remoto Endereço IP para ele. Deixe o número da porta.

remote 107.150.28.83 1194 #That IP ironically is a VPN

Chaves de configuração do cliente OpenVPN

Altere os certificados para refletir aqueles que você criou, assim como fez com o servidor.

ca ca.crt
cert client.crt
key client.key

Encontre as opções do usuário e remova o comentário. Não há problema em executar os clientes como ninguém.

user nobody
group nogroup

Remova o comentário tls-auth opção para HMAC.

tls-auth ta.key 1

Cifras de cliente OpenVPN

A seguir, procure o cifra opção e certifique-se de que ela corresponda ao servidor.

cipher AES-256-CBC

Em seguida, basta adicionar o resumo de autenticação e as restrições de cifra na parte inferior do arquivo.

# Authentication Digest
auth SHA512

# Cipher Restrictions
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

Quando tudo parecer certo, salve o arquivo e saia. Usar alcatrão para empacotar a configuração e os certificados, para que você possa enviá-los ao cliente.

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Transfira esse pacote para o cliente da maneira que você escolher. SFTP, FTP e uma unidade USB são ótimas opções.

Encaminhamento de porta

Encaminhamento de porta

Para que tudo isso funcione, você precisa configurar seu roteador para encaminhar o tráfego VPN de entrada para o Pi. Se você já estiver usando uma VPN, certifique-se de não estar se conectando na mesma porta. Se estiver, altere a porta nas configurações do cliente e do servidor.

Conecte-se à interface web do seu roteador digitando o endereço IP no navegador.

Cada roteador é diferente. Mesmo assim, todos eles deveriam ter alguma forma dessa funcionalidade. Encontre-o no seu roteador.

A configuração é basicamente a mesma em todos os roteadores. Insira as portas inicial e final. Eles devem ser iguais entre si e aqueles que você definiu em suas configurações. Em seguida, para o endereço IP, defina-o como o IP do Raspberry Pi. Salve suas alterações.

Conecte-se ao cliente

Cada cliente é diferente, por isso não existe uma solução universal. Se você estiver no Windows, precisará do Cliente Windows OpenVPN.

No Android, você pode abrir seu tarball e transferir as chaves para o seu telefone. Em seguida, instale o aplicativo OpenVPN. Abra o aplicativo e insira as informações do seu arquivo de configuração. Em seguida, selecione suas chaves.

No Linux, você precisa instalar o OpenVPN da mesma forma que fez para o servidor.

$ sudo apt install openvpn

Então, mude para /etc/openvpne descompacte o tarball que você enviou.

$ cd /etc/openvpn
$ sudo tar xJf /path/to/client.tar.xz

Renomeie o arquivo do cliente.

$ sudo mv client.ovpn client.conf

Não inicie o cliente ainda. Isso irá falhar. Você precisa primeiro habilitar o encaminhamento de porta em seu roteador.

Considerações finais sobre como transformar um Raspberry Pi em uma VPN

Depois de saber como transformar um Raspberry Pi em uma VPN, agora você deve ter uma configuração funcional. Seu cliente se conectará diretamente através do seu roteador ao Pi. A partir daí, você pode compartilhar e conectar-se pela sua rede virtual, desde que todos os dispositivos estejam conectados à VPN. Não há limite, então você sempre pode conectar todos os seus computadores à VPN Pi.

Partilhar este artigo
Seguir
Jugo Mobile é uma plataforma dedicada a conteúdo de alta qualidade em jogos, esportes e tecnologia. Interaja com conteúdo de qualidade e conecte-se com outros entusiastas e especialistas. Explore as últimas tendências e inovações em nossa comunidade vibrante. Junte-se a nós e experimente o futuro hoje!