Por que usar uma VPN para acessar sua casa
Links Rápidos
- Por que usar uma VPN para acessar sua casa
- Configurar o Pi
- Instale o Raspbian
- Configurar o OpenVPN
- Autoridade de Certificação
- Faça algumas chaves
- Configuração do servidor
- Iniciar o servidor
- Configuração do cliente
- Configuração do Cliente
- Encaminhamento de porta
- Conectar-se ao cliente
- Pensamentos finais
Há muitas razões pelas 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 configurar um servidor VPN diretamente dentro do roteador, mas em muitos casos, você precisará configurar um.
Um Raspberry Pi é uma ótima maneira de conseguir isso. Eles não precisam de muita energia para serem executados e têm energia suficiente para executar um servidor VPN. Você pode configurar um próximo ao seu roteador e basicamente esquecê-lo.
Quando você tem acesso à sua rede doméstica remotamente, pode acessar seus arquivos de qualquer lugar. Você pode executar os 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 atue como se estivesse em casa de qualquer lugar.
Configurar o Pi
Antes de começar a configurar a VPN, você precisará configurar o Raspberry Pi. É melhor configurar o Pi com um gabinete e um cartão de memória de tamanho decente, 16 GB deve ser mais do que suficiente. Se possível, conecte seu Pi ao seu roteador com um cabo Ethernet. Isso minimizará qualquer atraso na rede.
Instale o Raspbian
O melhor sistema operacional para usar no seu Pi é o Raspbian. É a escolha padrão oferecida pela fundação Raspberry Pi e é baseada no Debian, uma das versões Linux mais seguras e estáveis disponíveis.
Vá para a página de download do Rasbian e 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.
Enquanto faz o download, obtenha a versão mais recente do Etcher 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ê deve ver algumas partições diferentes. Procure a partição "boot". É aquele com 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 precisará de uma tela, teclado ou mouse. Você acessará remotamente o Raspberry Pi pela sua rede.
Dê ao Pi alguns minutos para configurar-se. 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.
Seja no Windows, Linux ou Mac, abra o OpenSSH. Conecte-se ao Raspberry Pi com SSH.
$ ssh
Obviamente, use o endereço IP real do Pi. O nome de usuário é sempre pi e a senha é framboesa.
Configurar o OpenVPN
O OpenVPN não é exatamente simples de configurar como servidor. A boa notícia é que você só precisa fazê-lo uma vez. Portanto, antes de se aprofundar, verifique se o Raspbian está completamente atualizado.
$ sudo apt update $ sudo apt upgrade
Após o término da atualização, você pode instalar o OpenVPN e o utilitário de certificado necessário.
$ sudo apt instala openvpn easy-rsa
Autoridade de Certificação
Para autenticar seus dispositivos quando eles tentam 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. Mover para esse diretório.
$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs
Procure arquivos de configuração do OpenSSL. Em seguida, vincule o mais recente ao openssl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
Na mesma pasta "certs" existe um arquivo chamado "vars". Abra esse arquivo com o seu editor de texto. Nano é o padrão, mas fique à vontade para instalar o Vim, se você estiver mais confortável com ele.
Encontre a variável KEY_SIZE primeiro. É definido como 2048 por padrão. Altere para 4096.
exportar 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 tudo o que você conseguir lembrar é bom.
exportar KEY_COUNTRY = "US" exportar KEY_PROVINCE = "CA" exportar KEY_CITY = "SanFrancisco" exportar KEY_ORG = "Fort-Funston" exportar KEY_EMAIL = "" exportar KEY_OU = "MyOrganizationalUnit" exportar KEY_NAME = "HomeVPN"
Quando você tiver tudo, salve e saia.
O pacote Easy-RSA que você instalou anteriormente 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 possui nenhum, portanto, não se preocupe com a mensagem informando que suas chaves serão excluídas.
$ sudo ./clean-install
Por fim, construa sua autoridade de certificação. Você já definiu os padrões, para poder aceitar os padrões apresentados. Lembre-se de definir uma senha forte e responda “yes” às duas últimas perguntas, seguindo a senha.
Faça algumas chaves
Você passou por todo esse problema para configurar uma autoridade de certificação para assinar as chaves. Agora, é hora de fazer alguns. Comece criando a chave do seu servidor.
servidor $ sudo ./build-key-server
Em seguida, construa o PEM Diffie-Hellman. É o que o OpenVPN usa para proteger suas conexões de clientes 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. O OpenVPN usa essa chave para assinar cada pacote individual de informações trocadas entre o cliente e o servidor. Isso ajuda a impedir certos tipos de ataques na conexão.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Configuração do servidor
Você tem as chaves. A próxima parte da 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. Portanto, 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 o arquivo /etc/openvpn/server.conf. As primeiras coisas que você precisa encontrar são os arquivos ca, cert e key. Você precisa configurá-los para que correspondam aos locais reais dos arquivos que você criou, todos em / etc / openvpn / certs / keys.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # Este arquivo deve ser mantido em segredo
Encontre a configuração dh e altere-a para corresponder ao .pem Diffie-Hellman que você criou.
dh dh4096.pem
Defina o caminho para sua chave HMAC também.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Encontre a cifra e verifique se ela corresponde ao exemplo abaixo.
cifra AES-256-CBC
As próximas duas opções estão lá, mas são comentadas com um;. Remova os pontos e vírgulas na frente de cada opção para habilitá-los.
push "redirecionamento-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Procure as opções de usuário e grupo. Descomente-os e altere o usuário para "openvpn".
usuário openvpn group nogroup
Finalmente, essas duas últimas linhas não estão na configuração padrão. Você precisará adicioná-los no final do arquivo.
Defina o resumo da autenticação para especificar uma criptografia mais forte para autenticação do usuário.
# Autenticação Digest auth SHA512
Em seguida, limite os códigos que o OpenVPN pode usar para apenas os mais fortes. Isso ajuda a limitar possíveis ataques a cifras fracas.
# Cifras de limite tls-cifra TLS-DHE-RSA-com-AES-256-GCM-SHA384: TLS-DHE-RSA-COM-AES-128-GCM-SHA256: TLS-DHE-RSA-COM-AES-256- CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-256-CBC-SHA: TLS-DHE-RSA-COM-AES-128-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-128-CBC- SHA
Isso é tudo para configuração. Salve o arquivo e saia.
Iniciar o servidor
Antes de iniciar o servidor, você precisa criar o usuário openvpn 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
Verifique se os dois estão em execução
$ sudo systemctl status openvpn * .service
Se tudo parecer bom, ative-os na inicialização.
$ sudo systemctl enable openvpn $ sudo systemctl enable
Configuração do cliente
Seu servidor está agora configurado e funcionando. Em seguida, você precisa definir a configuração do cliente. Essa é a configuração que você usará para conectar seus dispositivos ao seu servidor. Retorne à pasta certs e prepare-se para criar as chaves 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 estar bem.
$ cd / etc / openvpn / certs $ sudo source ./vars $ sudo ./build-key cliente
O processo é quase idêntico ao do servidor, portanto, siga o mesmo procedimento.
Configuração do Cliente
A configuração para 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 diretório do cliente. 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 arquivo client.ovpn com seu editor de texto. Em seguida, encontre a opção remota. Supondo que você ainda não esteja usando uma VPN, o Google pesquisa "Qual é o meu IP". Pegue o endereço exibido e defina o endereço IP remoto. Deixe o número da porta.
remote 107.150.28.83 1194 #Isso ironicamente é uma VPN
Mude os certificados para refletir os que você criou, exatamente como você fez com o servidor.
ca ca.crt cert client.crt chave client.key
Encontre as opções do usuário e remova o comentário. Não há problema em administrar os clientes como ninguém.
usuário ninguém grupo nogroup
Remova o comentário da opção tls-auth para HMAC.
tls-auth ta.key 1
Em seguida, procure a opção de cifra e verifique se ela corresponde ao servidor.
cifra AES-256-CBC
Em seguida, basta adicionar as restrições de digestão e criptografia de autenticação na parte inferior do arquivo.
# Authentication Digest auth SHA512 # Restrições de cifra tls-cifra TLS-DHE-RSA-com-AES-256-GCM-SHA384: TLS-DHE-RSA-com-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH -AES-256-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA-256-CBC-SHA: TLS-DHE-RSA-COM-AES-128-CBC-SHA: TLS-DHE-RSA-COM-CAMÉLIA -128-CBC-SHA
Quando tudo parecer correto, salve o arquivo e saia. Use tar 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
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, verifique se não está se conectando na mesma porta. Se estiver, altere a porta nas configurações do seu cliente e servidor.
Conecte-se à interface da web do seu roteador digitando o endereço IP no seu navegador.
Todo roteador é diferente. Mesmo assim, todos eles devem ter alguma forma dessa funcionalidade. Encontre-o no seu roteador.
A configuração é basicamente a mesma em todos os roteadores. Digite as portas inicial e final. Eles devem ser iguais um ao outro e aquele que você definiu nas suas configurações. Em seguida, para o endereço IP, defina-o como o IP do seu Raspberry Pi. Salve suas alterações.
Conectar-se ao cliente
Cada cliente é diferente, então não há 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 telefone. Em seguida, instale o aplicativo OpenVPN. Abra o aplicativo e conecte as informações do seu arquivo de configuração. Depois selecione suas teclas.
No Linux, você precisa instalar o OpenVPN como fez no servidor.
$ sudo apt instala openvpn
Em seguida, mude para / etc / openvpn e descompacte o pacote 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 habilitar o encaminhamento de porta no seu roteador primeiro.
Pensamentos finais
Agora você deve ter uma configuração de trabalho. Seu cliente se conectará diretamente através do seu roteador ao Pi. A partir daí, você pode compartilhar e conectar-se através da sua rede virtual, desde que todos os dispositivos estejam conectados à VPN. Como não há limite, você sempre pode conectar todos os seus computadores à VPN Pi.