Por que usar uma VPN para acessar sua casa
Existem muitos motivos pelos quais você deseja acessar sua rede doméstica remotamente, e a melhor maneira de fazer isso é com um servidor VPN. 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 fazer isso. Eles não requerem muita energia para funcionar e têm energia suficiente para executar um servidor VPN. Você pode configurar um próximo ao roteador e basicamente esquecê-lo.
Quando você tem acesso à sua rede doméstica remotamente, pode obter seus arquivos de qualquer lugar. Você pode executar 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, de qualquer lugar.
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 do 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 lançada pela fundação Raspberry Pi, e é baseado no Debian, uma das versões Linux mais seguras e estáveis disponíveis.
Vou ao Página de download do Rasbian e pegue a versão mais recente. Você pode usar a versão Lite aqui, porque na verdade você não precisa de uma área de trabalho gráfica.
Durante 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). Finalmente, escreva a imagem no cartão.
como dar ao minecraft mais memória RAM
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 de inicialização. É aquele com um arquivo kernel.img nele. Crie um arquivo de texto vazio na partição de inicialização e chame-o de ssh sem extensão de arquivo.
Você pode finalmente conectar seu Pi. Certifique-se de ligá-lo por último. Você não vai precisar de tela, teclado ou mouse. Você vai 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 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 pi, e a senha éframboesa.
Configurar OpenVPN
O 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 está completamente atualizado.
$ sudo apt update $ sudo apt upgrade
Após a conclusão da atualização, você pode instalar o OpenVPN e o utilitário de certificado de que precisa.
$ sudo apt install openvpn easy-rsa
Autoridade Certificadora
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. Mova para esse diretório.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Procure por arquivos de configuração OpenSSL. Em seguida, vincule o mais recente comopenssl.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 o seu editor de texto. Nano é o padrão, mas fique à vontade para instalar o Vim, se você se sentir mais confortável com ele.
Encontre oKEY_SIZEvariável primeiro. Está definido para2048por padrão. Mudar para4096.
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 de que você se lembre 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 uma 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 dizendo que suas chaves serão excluídas.
$ sudo ./clean-install
Finalmente, crie sua autoridade de certificação. Você já definiu os padrões, então você 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
Você passou por todo esse trabalho para configurar uma autoridade de certificação para poder assinar as chaves. Agora, é hora de fazer alguns. Comece construindo a chave para o seu servidor.
$ sudo ./build-key-server server
Em seguida, construa o Diffie-Hellman PEM. É 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 de 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. 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 parte da configuração do OpenVPN é a própria configuração do servidor. Felizmente, não há muito que você precise 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/etc/openvpn/server.conf. As primeiras coisas que você precisa encontrar são osnaquela,cert, echavearquivos. Você precisa configurá-los para corresponder aos locais reais dos arquivos que você criou, que estão 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 # This file should be kept secret
Encontre oieconfiguração e altere-a para corresponder ao Diffie-Hellman.pemque você criou.
dh dh4096.pem
Defina também o caminho para sua chave HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Encontre ocifrae 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 na frente de cada opção para ativá-los.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Procure odo utilizadoregrupoopções. Descomente-os e mude odo utilizadorpara openvpn.
user openvpn group nogroup
Finalmente, essas duas últimas linhas não estão na configuração padrão. Você precisará adicioná-los ao final do arquivo.
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 as cipers que o OpenVPN pode usar apenas para as 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 issoopenvpnusuá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 [email protected]
Verifique se ambos estão funcionando
$ sudo systemctl status openvpn*.service
Se tudo estiver certo, habilite-os na inicialização.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Configuração do cliente
Seu servidor agora está configurado e funcionando. Em seguida, você precisa definir a configuração do cliente. Esta é a configuração que você usará para conectar seus dispositivos ao servidor. Retorne paracertopasta e prepare-se para construir a (s) chave (s) do cliente. Você pode escolher construir 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 de Cliente
A configuração dos clientes é muito semelhante à do servidor. Novamente, você tem um modelo predefinido para basear sua configuração. Você só precisa modificá-lo para corresponder ao servidor.
Mude para oclientediretó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 oclient.ovpnarquivo com seu editor de texto. Então, encontre ocontrolo remotoopção. Supondo que você ainda não esteja usando uma VPN, pesquise no Google Qual é meu IP. Pegue o endereço que ele exibe e defina ocontrolo remotoEndereço IP para ele. Deixe o número da porta.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Altere os certificados para refletir os 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 descomente-as. É bom administrar os clientes comoninguém.
user nobody group nogroup
Descomente otls-authopção para HMAC.
tls-auth ta.key 1
Em seguida, procure ocifraopção e certifique-se de que corresponde 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 estiver certo, salve o arquivo e saia. Usaralcatrãopara 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, certifique-se de que não está se conectando na mesma porta. Se estiver, altere a porta nas configurações de cliente e servidor.
Conecte-se à interface da 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 aquele que você definiu em suas configurações. Em seguida, para o endereço IP, defina-o como o IP do seu 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 o tarball e transferir as chaves para o telefone. Em seguida, instale o aplicativo OpenVPN. Abra o aplicativo e insira as informações de 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 desempacote 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 habilitar o encaminhamento de porta em seu roteador primeiro.
Reflexões 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 se conectar em 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 ao Pi VPN.