Mostrar mensagens com a etiqueta VPN. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta VPN. Mostrar todas as mensagens

sábado, 4 de dezembro de 2021

Instalação de cliente VPN com SNX - Debian

Instalação do cliente SSL Network Extender para ligação à VPN da Universidade de Aveiro.


Instalar o software cliente

Descarregar o instalador a partir do site
https://www.ua.pt/pt/stic/teletrabalho_vpn

Extrair do zip e instalar segundo as instruções.


Verificar bibliotecas em falta

sudo ldd /usr/bin/snx

    linux-gate.so.1 (0xf7f7e000)
    libX11.so.6 => not found
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f30000)
    libresolv.so.2 => /lib32/libresolv.so.2 (0xf7f10000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7f08000)
    libpam.so.0 => not found
    libnsl.so.1 => /lib32/libnsl.so.1 (0xf7ee8000)
    libstdc++.so.5 => not found
    libc.so.6 => /lib32/libc.so.6 (0xf7cf8000)
    /lib/ld-linux.so.2 (0xf7f80000)


É sugerido instalar os seguintes pacotes:

apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386

Como são pacotes para a arquitetura i386, no caso de dar erro é necessário adicionar a arquitetura e atualizar a cache de pacotes:

dpkg --add-architecture i386

apt update

De seguida já será possível instalar as dependências sem erros:
apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386


Utilizar o cliente snx

Iniciar sessão na VPN

snx -s go.ua.pt -u user@ua.pt


Terminar sessão na VPN

snx -d

sábado, 11 de julho de 2015

VPN: Criar chave para cliente android e configuração

0. Introdução

As vantagens na utilização de um servidor VPN têm duas vertentes essenciais:
  • Aumentar a segurança na utilização de redes inseguras (redes wireless avulsas ou sem encriptação)
  • Ligar a uma rede local remota
O primeiro aspeto é essencial nos dias que correm pois grande parte dos equipamentos de lazer (centros comerciais, cafés, restaurantes, parques, etc) possuem redes sem fios gratuitas e/ou de fácil ligação e com muitos utilizadores em simultâneo.
A utilização de uma ligação VPN nestes cenários aumenta muito o nível de segurança da nossa navegação.

O segundo aspeto permite que o nosso dispositivo esteja "fisicamente" ligado à rede remota. Muito útil no caso de aplicações de ISP que apenas funcionam dentro da rede local de cada cliente (por exemplo, aplicações para visualização da emissão de TV e afins).
Desta forma, com acesso à Internet e ativando a ligação VPN é possível navegar a partir de qualquer lugar como se estivéssemos na rede local do servidor VPN e, assim, utilizar as referidas aplicações como se estivéssemos fisicamente na rede local.

1. Requisitos

1. Acesso a um servidor VPN.
2. Instalação da aplicação OpenVPN Connect no dispositivo cliente, designado de tabuleta

O teste foi feito com um sistema Android 4.x, mas existem diversas instruções para outros dispositivos ([1] ver Step 5 - Installing the Client Profile).
Para equipamentos Android de versões 2.x é necessário acesso root ao equipamento [2].

2. Criação de Certificados, Chaves e afins

Para cada dispositivo cliente é necessário criar um conjunto de ficheiros que permitem encriptar a ligação de forma muito segura.

Assim, acedendo ao servidor VPN, basta utilizar:
cd /etc/openvpn/easy-rsa/
./build-key tabuleta

Serão perguntadas diversas questões que para utilização normal podem ser confirmadas todas com ENTER e no final com dois 'y' para confirmação.

Este processo cria vários ficheiros na pasta /etc/openvpn/easy-rsa/keys, nomeadamente: tabuleta.crt e tabuleta.key.

3. Criação de um Perfil para o OpenVPN Connect

A criação de um perfil permite combinar num único ficheiro todos elementos necessários para a configuração de um cliente VPN.

1. Copiar o exemplo base de perfil:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/tabuleta.ovpn

2. Editar o perfil tablet.ovpn:
nano /etc/openvpn/easy-rsa/keys/tabuleta.ovpn

3. Alterar a linha remote my-server-1 1194 para ter o domínio do servidor, por exemplo qualquercoisa.no-ip.org:
remote qualquercoisa.no-ip.org 1194

4. Se o cliente não é Windows, devem descomentar-se as linhas:
user nobody
group nogroup

5. Deve comentar-se depois as linhas que fazem referência aos certificados e chaves:
#ca ca.crt
#cert client.crt
#key client.key

6. De seguida é possível acrescentar e copiar/colar de forma a que o ficheiro tabuleta.ovpn fique:
(conteúdo existente)
<ca>
(colar conteúdo do ca.crt)
</ca>
<cert>
(colar conteúdo do tabuleta.crt)
</cert>
<key>
(colar conteúdo do tabuleta.key)
</key>

Para auxiliar a este processo criei um bash script que está disponível aqui [3].

7. Copiar o perfil tabuleta.ovpn de forma segura para o cliente.

4. Configuração do OpenVPN Connect no cliente

Para que um dispositivo se possa ligar ao servidor VPN necessita ter um cliente instalado e configurado. Neste caso o dispositivo tabuleta é um equipamento Android 4.x.

1. Instalar a aplicação OpenPVN Connect [4]

2. Abrir o OpenVPN Connect e importar o perfil copiado anteriormente com a opção:
Import > Import Profile from SD card

3. Selecionar o ficheiro tabuleta.ovpn e posteriormente deverá aparecer o perfil na aplicação

4. Quando estiver com acesso à Internet é possível fazer Connect e todo o tráfego passará pelo servidor VPN.

Este processo está muito bem explicado com diversas capturas de exemplos aqui [1] Step 5 - Installing the Client Profile.

Referências

[1] - Página com muita informação sobre criação e configuração do servidor e dos clientes
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04

[2] - Instruções para instalação no GingerBread 2.3
https://my.hostvpn.com/knowledgebase/15/OpenVPN-for-Android-rooted-Gingerbread-23x.html

[3] - Script para criação de um perfil para OpenVPN
http://librehacks.blogspot.pt/2015/07/vpn-script-para-criacao-de-perfis.html

[4] - Aplicação OpenVPN Connect
https://play.google.com/store/apps/details?id=net.openvpn.openvpn

VPN: Script para a criação de perfis OpenVPN

O script seguinte permite criar um perfil para um cliente OpenVPN após serem criados os seus certificados e chaves (./build-key tabuleta).

Deve ser guardado em /etc/openvpn/easy-rsa/keys/mergeKeys.sh

E deve ser invocado a partir dessa localização com o argumento do nome do cliente. Por exemplo:
./mergeKeys.sh tabuleta

Para criar tabuleta.ovpn, a partir de ca.crt, tabuleta.crt e tabuleta.key.

Deve copiar-se o perfil de exemplo OVPN para template.ovpn e configurá-lo de acordo com o servidor.


mergeKeys.sh

#!/bin/bash
# Check for client name
echo -e "Checking for client name... "
if [ $# -eq 0 ]; then
    echo -e "ERROR: No client name provided.\nAborting."
    echo -e "\nYou have to supply the client name for the certificate. eg:\n$0 client1\n"
    exit 1
else
    echo -e "Using $1 to find certificates..."
fi

# Check for client.ovpn
if [ -f "$1.ovpn" ]; then
  echo -e "WARNING: $1.ovpn already exist."
  echo -e "\nAborting."
  exit 1
fi

FILE=template.ovpn
echo -e "Checking for template profile $FILE... "
if [ ! -f $FILE ]; then
  echo -e "ERROR: $FILE not found."
  echo -e "\nAborting."
  exit 1
fi

FILE=ca.crt
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
  echo -e "ERROR: $FILE not found."
  echo -e "\nAborting."
  exit 1
fi

FILE="$1.crt"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
  echo -e "ERROR: $FILE not found."
  echo -e "\nAborting."
  exit 1
fi

FILE="$1.key"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
  echo -e "ERROR: $FILE not found."
  echo -e "\nAborting."
  exit 1
fi

# All files exist
echo -e "All files exist.\n"

FILE=client.ovpn
echo "Creating $1.ovpn base file with $FILE..."
cp "$FILE" "$1.ovpn"
if [ ! -f "$1.ovpn" ]; then
  echo -e "ERROR: $1.ovpn couldn't be created. Check permissions."
  echo -e "\nAborting."
  exit 1
fi

FILE=ca.crt
echo "Append $FILE to $1.ovpn..."
echo "<ca>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</ca>" >> "$1.ovpn"

FILE="$1.crt"
echo "Append $FILE to $1.ovpn..."
echo "<cert>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</cert>" >> "$1.ovpn"

FILE="$1.key"
echo "Append $FILE to $1.ovpn..."
echo "<key>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</key>" >> "$1.ovpn"

echo -e "Done.\n"