Capítulo com as informações sobre instalação e configuração dos clientes VPN Client-to-Site (C2S).
Cliente VPN C2S no Linux com Docker Cliente VPN C2S no MacOS X86
Cliente VPN C2S com StrongSwan no Linux
VPN C2S
Este tutorial visa fornecer as informações básicas para a instalação e configuração de um cliente VPN C2S para conexão com a VPN da Reitoria usando sistemas operacionais Linux.
O uso de um contêiner Docker facilita o transporte da solução entre as diversas distribuições Linux do mercado assim como torna uniforme a experiência e resultados.
Esta solução pode ser adaptada para uso concomitante com as VPNs C2S dos campus.
O primeiro passo para a utilização do cliente VPN C2S em Docker é a instalação do serviço Docker e Docker-Compose na sua distribuição Linux.
Existem diversas formas para a instalação do Docker e Docker-Compose nas distribuições Linux baseadas no Ubuntu, a forma validada pela Reitoria é:
A instalação destas distribuições na foi validada pela reitoria até o momento da escrita deste documento, porém, acreditamos que devido a natureza da distribuição do serviço, este deve
Cliente VPN C2S no Linux com Docker
Informações:
Sistema de base para testes: Linux Mint 19.3 64Bit
Introdução
Instalação do Docker e Docker-Compose
Instalação em sistemas operacionais baseados em Ubuntu (16.04 LTS ou superior).
apt update && apt install docker.io docker-compose -y systemctl enable docker
systemctl start docker
Instalação em sistemas operacionais baseados em RedHat/Fedora.
funcionar sem problemas.
Até que a validação seja feita sugerimos que busque na documentação de sua distribuição Linux a melhor forma de instalar o Docker e Docker-Compose.
Após a instalação dos requisitos básicos, podemos agora executar o contêiner com o Cliente VPN C2S.
Faça o download dos arquivos necessários para execução do contêiner:
Para poder se conectar a VPN C2S, você deverá entrar com seu usuário e senha cadastrados na reitoria, no caso, o mesmo que você usa no SUAP, por exemplo.
Para registrar o usuário e senha, edite o arquivo "~/bin/vpn_ifsp_docker/docker- compose.yml" e altere as seguintes linhas conforme mostrado abaixo:
Instalação do cliente VPN
Download dos arquivos necessários
mkdir ~/bin && cd ~/bin
wget -O vpn.zip https://drive.ifsp.edu.br/s/fJIXC0hkNwnRxo8/download unzip vpn.zip
cd vpn_ifsp_docker chmod +x vpn
Inserindo usuário e senha da VPN
Altere disso:
...
command: >
vpn_c2s_ifsp <usuario> <senha>
...
Para por exemplo:
...
command: >
“
Feitos os ajustes anteriores, para utilizar o cliente VPN C2S Docker basta executar os comandos abaixo:
vpn_c2s_ifsp rt000000@ifsp.edu.br minhasenhaforte ...
Utilização do cliente VPN Docker
Ativar a VPN
~/bin/vpn_ifsp_docker/vpn ativar
Desativar a VPN
~/bin/vpn_ifsp_docker/vpn desativar
Agradecimentos especiais ao colega Douglas Andrade por criar os arquivos nos quais este tutorial é baseado.
Este tutorial visa fornecer as informações básicas para a instalação e configuração de um cliente VPN C2S para conexão com a VPN da Reitoria usando sistemas operacionais MacOS.
Este suporte é extraoficial e não foi testado diretamente pela reitoria, mas sim através de parceiros.
O projeto TunTap fornece as extensões de kernel necessárias para que o MacOS X possa criar interfáces virtuais, necessárias para a utilização dos túneis VPN IPSec.
Baixe e instale o tuntap por este LINK
Este é o cliente VPN IPSec que iremos utilizar para nos conectar na VPN, composto do daemon iked e da interface gráfica Qikea.
Baixe e instale o Shrew Soft VPN Client pelo LINK
Para se conectar, siga os mesmos passos do manual da VPN C2S para Linux disponível AQUI (a
Cliente VPN C2S no MacOS X86
Informações:
Sistema de base para testes: MacOS Catalina 10.15.6
Introdução
Instalação
1) Instalação do TunTap
2) Instale o ShrewSoft VPN Client
3) Conectando na VPN
partir da página 32), siga as instruções para importar o arquivo de configuração
"vpn_c2s_ifsp.vpn" no Qikea.
Não são necessários os procedimentos de instalação listados para o Linux pois já fizemos isso nos passos 1 e 2.
Agradecimentos especiais ao colega Rodrigo Noll do IFRS por nos ajudar com os softwares, procedimentos e testes para uso no MacOS.
O cliente VPN IPsec StrongSwan surge como uma alternativa ao cliente VPN da Forcepoint para Linux, Android, Windows e muitos outros; ele é constantemente atualizado e suporta IKEv1 e IKEv2 assim como inúmeros protocolos de criptografia.
Para utilizar a VPN C2S com StrongSwan no Raspberry pi, siga os seguintes procedimentos:
Para instalar StrongSwan no Raspberry Pi, utilize o seguinte comando:
Cliente VPN C2S com StrongSwan no Linux
Versão do software tratada no documento: StrongSwan 5.7.2 Site: https://www.strongswan.org/
Introdução
1) Instalação
Versão testada: Raspberry Pi 3B+
1.1) Instalar o StrongSwan no Raspberry Pi OS
Versão testada: Raspbian GNU/Linux 10 (buster)
sudo apt-get update && sudo apt-get install strongswan libcharon-extra-plugins strongswan- swanctl charon-systemd
Agora devemos baixar o certificado do Firewall Forcepoint da Reitoria para a pasta /etc/ipsec.d/cacerts/ :
A conexão via IKEv1 é a mais comum para o ambiente de VPN C2S com a Reitoria, para utiliza-la, faça o seguinte:
Edite o arquivo /etc/ipsec.conf :
Agora insira o seguinte conteúdo no arquivo:
sudo wget https://drive.ifsp.edu.br/s/DaWPt6dbPg7aof5/download -O /etc/ipsec.d/cacerts/certificate.crt
2) Carregar configurações de VPN para conexão com a Reitoria
2.1) IKEv1
sudo nano /etc/ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# Add connections here.
#conn default conn %default
ikelifetime=8h keylife=24h rekeymargin=3m keyingtries=1 keyexchange=ikev1 compress=no aggressive=no
fragmentation=yes dpdaction=restart forceencaps=yes
#conn IFSP-RET conn vpn-ifsp-ret # right part
right=200.133.214.9 rightauth=pubkey rightsendcert=yes # left part left=%any
leftid=<seuprontuario>
leftauth=xauth
xauth_identity="seuprontuario@ifsp.edu.br"
leftfirewall=yes leftsourceip=%config # ike part
type=tunnel modeconfig=pull mobike=no
ike="aes256-sha1-modp1536"
esp="3des-sha1"
auto=start
conn net-192.168.2.0/24 also=vpn-ifsp-ret
rightsubnet=192.168.2.0/24 type=tunnel
auto=start
conn net-192.168.3.0/24 also=vpn-ifsp-ret
rightsubnet=192.168.3.0/24 type=tunnel
auto=start
conn net-192.168.6.0/24 also=vpn-ifsp-ret
rightsubnet=192.168.6.0/24
type=tunnel auto=start
conn net-10.3.0.0/16 also=vpn-ifsp-ret
rightsubnet=10.10.22.0/24 type=tunnel
auto=start
conn net-10.10.1.0/24 also=vpn-ifsp-ret
rightsubnet=10.10.1.0/24 type=tunnel
auto=start
conn net-10.10.2.0/24 also=vpn-ifsp-ret
rightsubnet=10.10.2.0/24 type=tunnel
auto=start
conn net-10.10.21.0/24 also=vpn-ifsp-ret
rightsubnet=10.10.21.0/24 type=tunnel
auto=start
conn net-10.10.22.0/24 also=vpn-ifsp-ret
rightsubnet=10.10.22.0/24 type=tunnel
auto=start
conn net-45.236.121.0/25 also=vpn-ifsp-ret
rightsubnet=45.236.121.0/25 type=tunnel
auto=start
conn net-45.236.121.128/26
Em seguida adicione o seguinte conteúdo ao arquivo /etc/ipsec.secrets :
Se estiver tudo certo basta agora ativar a VPN reiniciando o serviço:
Para verificar que tudo transcorreu bem, basta verificar o status do serviço e/ou a tabela de rotas do sistema:
Status do serviço:
Tabela de rotas:
also=vpn-ifsp-ret
rightsubnet=45.236.121.128/26 type=tunnel
auto=start
conn net-45.236.121.192/27 also=vpn-ifsp-ret
rightsubnet=45.236.121.192/27 type=tunnel
auto=start
include /var/lib/strongswan/ipsec.conf.inc
Não se esqueça de adicionar seu prontuário no arquivo!!
sudo nano /etc/ipsec.secrets
# Exemplo: rt000000 : XAUTH "123456"
<seuprontuario>@ifsp.edu.br : XAUTH "suasenha"
sudo systemctl enable ipsec sudo systemctl restart ipsec
sudo systemctl status ipsec
ip route show table all
Algo como isto deve aparecer:
O IKEv2 é suportado na maioria dos sistemas operacionais, incluindo através do cliente do StrongSwan utilizando o comando swanctl.
Infelizmente o sucesso desta conexão vai depender de como foi configurado o Firewall Forcepoint e pode requerer alguns ajustes.
Existem duas configurações possíveis, deixaremos aqui registrada a configuração considerada de mais amplo suporte e também a que possui ajustes para funcionar melhor com a atual
configuração de Firewall da Reitoria.
Crie um arquivo chamado ifsp-vpn-ret.conf em nano /etc/swanctl/conf.d/ :
Insira o seguinte conteúdo no arquivo:
root@raspberrypi:/home/pi# ip route show table all
10.2.1.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 10.10.1.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 10.10.2.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 10.10.21.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 10.10.22.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 45.236.121.0/25 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 45.236.121.128/26 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 45.236.121.192/27 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 192.168.2.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 192.168.3.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86 192.168.6.0/24 via 192.168.15.1 dev eth0 table 220 proto static src 10.3.4.86
2.2) IKEv2
A reitoria não recomenda o uso deste formato no momento devido a problemas de compatibilidade.
2.2.1) Configuração específica para Forcepoint NGFW - Reitoria
sudo nano /etc/swanctl/conf.d/ifsp-vpn-ret.conf
connections { IFSP-VPN-RET { version = 2
proposals = aes256-aes128-sha256-sha1-modp1536
rekey_time = 0s fragmentation = yes dpd_delay = 300s
remote_addrs = 200.133.214.9 vips=0.0.0.0,::
local {
auth = eap
id = <seuprontuario>
eap_id = "<seuprontuario@ifsp.edu.br"
}
remote {
auth = pubkey id = %any }
children {
esp_proposals = aes128-aes256-sha256-sha1-modp1536,aes128-aes256-sha256 RET1 {
remote_ts = 192.168.2.0/24 }
RET2 {
remote_ts = 192.168.3.0/24 }
RET3 {
remote_ts = 192.168.6.0/24 }
RET4 {
remote_ts = 10.2.1.0/24 }
RET5 {
remote_ts = 10.10.1.0/24 }
RET6 {
remote_ts = 10.10.2.0/24 }
RET7 {
remote_ts = 10.10.21.0/24 }
RET8 {
remote_ts = 10.10.22.0/24 }
RET9 {
remote_ts = 45.236.121.0/25 }
RET10 {
remote_ts = 45.236.121.128/26 }
RET11 {
remote_ts = 45.236.121.192/27 }
RET11 {
remote_ts = 45.236.121.192/27 }
RET12 {
remote_ts = 2801:80:2410:100::/64 }
RET13 {
remote_ts = 2801:80:2410:200::/64 }
RET14 {
remote_ts = 2801:80:2410:2100::/64 }
RET15 {
remote_ts = 2801:80:2410:2200::/64 }
RET16 {
remote_ts = 2801:80:2410:5::/64 }
RET17 {
remote_ts = 2801:80:2410:6::/64 }
RET18 {
remote_ts = 2801:80:2410:6::/64 }
}
Em seguida, crie o arquivo vpn.sh no /home/pi :
Adicione o seguinte conteúdo no arquivo:
} }
secrets { eap {
id = <seuprontuario>@ifsp.edu.br secret = <suasenha>
} }
Não se esqueça de adicionar seu prontuário e senha no arquivo!!
nano /home/pi/vpn.sh
#!/bin/bash
#
# Este script inicia ou desativa a VPN via swanctl - o numero no contator
# se refere a quantidade de entradas child seu arquivo de conf possui.
#
while [ -n "$1" ]; do
case "$1" in
-a) for counter in {1..11}; do swanctl -i -P -c RET$counter; done ;;
-d) for counter in {1..11}; do swanctl -t -P -c RET$counter; done ;;
*) echo "Opcao $1 nao reconhecida" ;;
esac
shift
done
Agora adicione a permissão de execução ao arquivo:
Iniciar e recarregar o serviço:
Agora carregue as configurações:
Para iniciar a VPN basta executar (como root):
E para desativar a VPN:
Salve e saia.
Para esta configuração, crie um arquivo chamado ifsp-vpn-ret.conf em nano /etc/swanctl/conf.d/ :
Insira o seguinte conteúdo no arquivo:
chmod +x /home/pi/vpn.sh
systemctl enable strongswan.service systemctl restart strongswan.service
sudo swanctl -q
você pode consultar todas as opções deste comando utilizando swanctl --help
/home/pi/./vpn.sh -a
/home/pi/./vpn.sh -d
2.2.2) Configuração de suporte amplo - Reitoria
sudo nano /etc/swanctl/conf.d/ifsp-vpn-ret.conf
connections { IFSP-VPN-RET { version = 2
proposals = aes256-aes128-sha256-sha1-modp1536
Iniciar e recarregar o serviço:
rekey_time = 0s fragmentation = yes dpd_delay = 300s
remote_addrs = 200.133.214.9 vips=0.0.0.0,::
local {
auth = eap
id = <seuprontuario>
eap_id = "<seuprontuario>@ifsp.edu.br"
}
remote {
auth = pubkey id = %any }
children { RET {
remote_ts =
192.168.2.0/24,192.168.3.0/24,192.168.6.0/24,10.10.21.0/24,10.10.22.0/24,10.10.1.0/24,10.10.2.0/24,45.236.121.0/25,45.236.121.128/26,45.236.121.192/27,2801:80:2410:100::/64,2801:80:2410:200::/64,2801:80:2410:2100::/64,2801:80:2410:2200::/64,2801:80:2410:5::/64,2801:80:2410:6::/64,2801:80:2410:7::/64 rekey_time = 0s
dpd_action = restart
esp_proposals = aes128-aes256-sha256-sha1-modp1536,aes128-aes256- sha256
} }
} }
secrets { eap {
id = <seuprontuario>@ifsp.edu.br secret = <suasenha>
} }
Agora carregue as configurações:
Para iniciar a VPN:
E para desativar a VPN:
systemctl enable strongswan.service systemctl restart strongswan.service
sudo swanctl -q
você pode consultar todas as opções deste comando utilizando swanctl --help
sudo swanctl -i -c RET
sudo swanctl -t -c RET