Objetivo: desejo poder usar a Internet com segurança através do meu PC doméstico enquanto meu notebook está conectado a um ponto de acesso / ponto de acesso aberto.
Eu não sei que eu posso usar um túnel SSH / proxy SOCKS, mas eu não quero mexer com aplicações (tornando-os usá-lo, se mesmo possível). Acho que o que preciso é de uma configuração do OpenVPN, por isso estou procurando um guia detalhado sobre como:
- Instale e configure o servidor OpenVPN
- Configure o cliente OpenVPN (NetworkManager)
As versões do Ubuntu em que isso deve funcionar são 10.10 e 11.04.
networking
security
network-manager
vpn
openvpn
htorque
fonte
fonte
Respostas:
Eu tenho a pergunta exata há alguns meses, mas, além disso, eu queria ter uma conexão IPv6, se possível. Você pode estar interessado em minhas perguntas sobre Serverfault:
Eu tinha apenas uma NIC ("interface de rede") no meu servidor para uso. Na minha configuração, o NetworkManager não foi suficiente porque eu preciso executar um script personalizado para oferecer suporte ao IPv6. Para simplificar, no entanto, usarei o NetworkManager aqui e omitirei o suporte ao IPv6.
Primeiro, apenas tome uma decisão sobre o método de autenticação. Vou usar o método de certificado mais seguro, que funciona como SSL: durante o aperto de mão, é escolhido um segredo comum que será usado para a sessão. Os outros métodos são uma chave compartilhada; um nome de usuário e senha.
Servidor
1. Prepare
Primeiro, instale o servidor openvpn. Isto é tão fácil quanto
sudo apt-get install openvpn
. A parte difícil é configurá-lo. A configuração está presente em/etc/openvpn
.2. Configure a autenticação
O servidor precisa de certificados para se identificar e seus clientes. Esses certificados são recuperados de uma CA (Autoridade Comum). A criação dos certificados e chaves privadas relacionadas pode ser feita em qualquer máquina, não precisa ser feita no servidor. Se você é realmente paranóico, deve fazê-lo em uma máquina que não esteja conectada a uma rede e usar um cartão de memória para transferir os certificados.
Crie uma autoridade de certificação e certificados para o servidor
Esta etapa deve ser executada uma vez, a menos que a chave privada da sua CA tenha sido comprometida. Nesse caso, podem ser criados certificados válidos que serão aceitos pelo servidor, resultando em uma violação de segurança.
A documentação oficial sugere fazer a administração em
/etc/openvpn
. Eu não sou um grande fã de executar tudo como root, por isso vou colocá-lo em um diretório diferente.Crie o diretório de administração e copie os arquivos nele, executando:
vars
conforme necessário, por exemplo, configuraçãoKEY_SIZE=2048
porque você é paranóico.Carregue as variáveis e crie o diretório de chaves executando:
Se você receber um erro
No ... openssl.cnf file could be found Further invocations will fail
, executeln -s openssl-1.0.0.cnf openssl.cnf
-o. vars
novamente.Se for a primeira vez que você usa esta CA, prepare o ambiente das chaves. Você não executar este comando se você quiser manter o seu CA. criado anteriormente Isso exigirá a implantação de um novo
ca.crt
../build-ca
. Você pode preencher todos os detalhes que desejar, mas observe que essas informações estarão visíveis nos arquivos de log quando os clientes se conectarem ao servidor. Isso criará os arquivosca.key
eca.crt
na subpastakeys
. Mantenha oca.key
arquivo em segredo em todas as circunstâncias . Não fazer isso permitirá que qualquer pessoa com a chave se conecte ao seu servidor../revoke-full server
. Caso contrário, você receberá um erro no banco de dados.Crie o certificado para o servidor executando:
Ao ser solicitada uma senha, deixe-a em branco, a menos que você queira digitar a senha sempre que o servidor iniciar (não recomendado). Confirme a assinatura e a confirmação do certificado. Dois novos arquivos aparecerão no diretório
keys
:server.key
eserver.crt
.DH e use prepare para tls-auth
Gere parâmetros Diffie-Hellman usando:
Por dicas de proteção , use
tls-auth
. Para isso, gere a chave secreta compartilhada usando:O arquivo resultante (
ta.key
) também deve ser distribuído aos clientes, mas você não deve publicá-lo.Criar certificados para clientes
Para cada cliente, estas etapas devem ser repetidas:
Digite o diretório em que você criou sua CA e certificado de servidor:
Se você pulou a etapa de criação da CA porque já possui uma, precisará carregar as variáveis primeiro:
./revoke-full you
. Caso contrário, você receberá um erro no banco de dados.Crie o certificado de clientes
you.key
e seu certificado correspondenteyou.crt
:O
CommonName
deve ser único. Deixe a senha em branco se você estiver usando o KDE, pois ele ainda não é suportado a partir da 10.10. Como na geração do certificado do servidor, confirme a assinatura do certificado e a confirmação das alterações.3. Configure o serviço OpenVPN
Por padrão, o OpenVPN é executado como root ao aceitar conexões. Não é uma boa ideia se o serviço está acessível a partir da Internet ruim.
Crie um usuário dedicado para o OpenVPN, diga
openvpn
:Copie os arquivos
server.key
,server.crt
,ca.crt
edh1024.pem
(oudh2048.pem
se tiver alterado o tamanho da chave) do diretório chaves no/etc/openvpn
. Uma permissão de 400 (somente leitura para o proprietário) é válida.Copie o arquivo
ta.key
também:Crie o arquivo
/etc/openvpn/server.conf
e coloque as próximas linhas nele:Defina as permissões apropriadas, ele não precisa ser secreto, mas eu prefiro não vazar detalhes da configuração, portanto:
4. Finalizando o servidor
Se você criou os certificados no servidor, é uma boa ideia criptografá-lo ou movê-lo para fora do servidor. De qualquer forma, não perca o
ca.key
eserver.key
. No primeiro caso, outras pessoas poderão se conectar ao seu servidor. Neste último, é possível um MITM .Cliente
Além do endereço IP do servidor, o administrador do servidor deve entregar os seguintes arquivos:
ca.crt
: para verificar os certificadosserver.crt
: para verificar o servidor e se comunicar com eleta.key
: para reforçar a segurançayou.crt
: para se identificar com o servidoryou.key
: é como sua senha, as permissões de arquivo devem ser 400 (somente leitura para o proprietário)1. Instalação
Instale o OpenVPN e o plugin NetworkManager (adequado para KDE e Gnome):
network-manager-openvpn
está no repositório do universo.2. Configuração
No painel de controle, use os seguintes detalhes:
ca.crt
you.crt
you.key
No Avançado :
Especifique o caminho do arquivo de chaves
ta.key
e defina "Direção da chave" como1
.Se você não conseguir fazer o NetworkManager funcionar ou não quiser usá-lo, coloque os arquivos (
ca.crt
, ...)/etc/openvpn
e crie o/etc/openvpn/client.conf
arquivo:Se você não deseja habilitar esta VPN no momento da inicialização, edite
/etc/default/openvpn
e descomente a próxima linha removendo#
:Para iniciar esta conexão, execute:
client
deve ser renomeado se o seu arquivo de configuração não for nomeadoclient.conf
. Exemplo: se você tiver nomeado seu arquivo de configuraçãosafe.conf
, precisará executarsudo /etc/init.d/openvpn start safe
.Para parar o OpenVPN, você deve executar:
fonte
man openvpn
). As versões recentes do openvpn têm a capacidade de incorporar certificados e arquivos de chaves, então talvez seja ainda mais fácil fornecer esse único arquivo de configuração com instruções para o usuário.. vars
comando acima pode gerar um erro que "o arquivo openssl.cnf pode ser encontrado. Mais invocações falharão". Você precisasudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, em seguida, executar. vars
e os outros comandos.whichopenssl
localiza oopenssl-1.0.0.cnf
arquivo corretamente para mim (easy-rsa 2.3.2, OpenSSL 1.0.1e)Você realmente não precisa mexer em nenhum aplicativo. Isso funciona "como a VPN".
Primeiro instale o
tsocks
pacote (meias temporárias):Em seguida, edite
/etc/tsocks.conf
e insiraAgora, abra um terminal e digite (isso conecta você):
Execute (através de outro terminal ou ALT-F2):
Agora, o Firefox transmite toda a comunicação através do servidor SOCKS no seu computador que o SSH criou. Isso fica ainda mais direcionado para a sua máquina doméstica, para onde vai para a web. Tudo que você precisa na sua máquina doméstica é um servidor SSH. Após a primeira vez, basta repetir as etapas 3 e 4.
Ele funciona como um encanto! Infelizmente, o cromo não gosta de tsocks, mas ei, o Firefox funciona.
fonte
A solução de túnel SSH é mais fácil do que você pensa. Um programa como o gSTM iniciará / interromperá os túneis para você com uma GUI. Em seguida, basta abrir o Network Proxy e alterá-lo de Conexão direta à Internet para Configuração manual do proxy, clicar em "Aplicar em todo o sistema" e todos os seus aplicativos devem enviar seus dados pelo túnel - não é necessário mexer com cada um individualmente.
fonte