Base de Conhecimento

VPN IPSec Mikrotik com Winconnection Linux

Data de criação: 28/08/2019

Última alteração: 29/08/2019

Neste tutorial, iremos configurar o IPSEC, sendo o Mikrotik o nosso servidor do IPSEC e um servidor WinconnectionX sendo cliente.

Um ponto importante é que os requisitos de criptografia definidos nas configurações do Mikrotik pode variar conforme cada política definida pelo administrador de rede ao configurar IPSEC no Mikrotk.

O procedimento abaixo irá auxiliar na configuração do IPSEC no Winconnection sendo definido como Cliente.

Requisitos

Para seguir este tutorial, você precisará de:

- Um servidor Winconnection, que deve estar configurado com acesso à internet e um DNS Server;

- Estar ativado com sua Licença de utilização;

Segue abaixo um exemplo de nosso escopo para realizar a conexão via IPSEC.

Etapa 1 - Instalando os serviços necessários

Para começar, vamos instalar via linha de comando os seguintes pacotes: OpenSwan e o Serviço IPSEC no servidor.

Na tela principal de configuração do Winconnection, selecione Acessar o prompt de comando (BASH)

Outra alternativa é acessar o servidor via Putty, onde é possível acessá-lo em modo de prompt de comando (BASH).

Primeiro passo após o acesso ao servidor é realizar a atualização do sistema.

- Digite o comando (yum update -y)

- Aguarde o processo de atualização do Sistema

- Após finalizar iremos realizar a instalação de dois serviços importantes que são: OpenSwan e IPSec

Para realizar a instalação dos serviços iremos digitar o seguinte comando

yum install openswan ipsec-tools -y

- Aguarde a finalização da instalação dos pacotes.

Após a instalação dos pacotes iremos iniciar as configurações necessárias para conexão via IPSEC no Mikrotik.

Etapa 2 – Configuração do IPSEC no Servidor do Winconnection

Primeiramente iremos renomear o arquivo padrão de configuração do ipsec com o seguinte comando abaixo:

mv /etc/ipsec.conf /etc/ipsec.orig

Para iniciarmos as configurações com as informações do nosso servidor IPSEC, vamos criar um novo arquivo (vazio) com o nome ipsec.conf

Para isto iremos digitar o seguinte comando

touch /etc/ipsec.conf

Após criar o arquivo de configuração, agora iremos editar o arquivo para adicionar as informações para conexão em nosso servidor IPSEC.

Para editarmos podemos utilizar alguns editores no Linux (vi/Vim/nano)

Mas iremos acessar com o comando

vi /etc/ipsec.conf

Ao ter o acesso ao arquivo ipsec.conf, adicionamos a seguintes informações abaixo:

# basic configuration

config setup
nat_traversal=yes
oe=off
protostack=netkey
force_keepalive=yes
keep_alive=60
#nhelpers=0
# Add connections here
conn mikrotik-to-linux
authby=secret
auto=start
type=tunnel
left= 22.22.22.22
leftid= 22.22.22.22
leftsourceip=10.80.80.1
leftsubnet=10.80.80.0/24
right=11.11.11.11
rightsubnet=192.168.0.0/24
rightid=11.11.11.11
pfs=no
forceencaps=yes
ike=aes256-sha1;modp1024
phase2=esp
phase2alg=aes256-sha1

Segue as informações adicionadas no arquivo ipsec.conf

Para salvar as configurações adicionadas pressionamos a tecla ESC depois digite :wq e pressione Enter. 

Configuramos nosso arquivo principal do ipsec, onde informamos o endereço do servidor IPSEC nosso IP, rede e o tipo de criptografia utilizada, mas ainda não informamos a nossa senha para autenticação do Túnel IPSEC. 

Agora iremos acessar um arquivo chamado ipsec.secret, onde terá as informações de IP do Servidor IPSEC (Mikrotik) IP válido do cliente (IP da Internet do cliente) e a senha de autenticação. 

Para acessar o arquivo ipsec.secret digite o seguinte comando abaixo

vi /etc/ipsec.secret

Adicione a seguinte informação abaixo:

Para que o Firewall do Winconnection não bloqueie a comunicação do IPSEC, devemos realizar algumas regras de exceção para que o Firewall ignore o tráfego da rede IPSEC.

Para isto, realize o seguinte procedimento abaixo: 

chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
vi /etc/rc.local

Adicionar as seguintes regras dentro do arquivo rc.local 

/usr/sbin/iptables -I PREROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I POSTROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -p udp --sport 500 --dport 500 -j ACCEPT -t nat
/usr/sbin/iptables -I PREROUTING -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I OUTPUT -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I POSTROUTING -p esp -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -p esp -j ACCEPT -t nat
/usr/sbin/iptables -I PREROUTING -i enp0s25 -d x.x.x.x/xx -j ACCEPT -t mangle
/usr/sbin/iptables -I PREROUTING -i enp0s25 -d x.x.x.x/xx -j ACCEPT -t nat

Acima, onde está x.x.x.x/xx, deve-se informar sub-rede/mascara da rede remota disponibilizada pela Mikrotik.

E enp0s25 deve ser o nome da interface da rede interna do Winconnection.

Para finalizarmos nossa configuração IPSEC, habilite o serviço IPSec. Com o comando abaixo, o serviço iniciará automaticamente todas as vezes que ligar ou reiniciar o servidor.

systemctl enable ipsec

Aqui iremos iniciar o serviço IPSEC:

systemctl start ipsec

Para verificar se o nosso serviço IPSEC esta funcionando e conectado, digitamos o seguinte comando:

systemctl status ipsec

Teremos o status conforme a imagem abaixo:

Assim finalizamos nossa implementação do serviço IPSEC com Mikrotik sendo nosso servidor de IPSEC.

Agora, para permitir a comunicação entre as redes conectadas pela VPN, dê o comando:

sysctl -w net.ipv4.ip_forward=1

Edite o arquivo rc.local adicionando as rotas entre suas redes:

 vi /etc/rc.local
iptables -t nat -I PREROUTING -s 192.168.0.0/24 -d 10.80.80.0/24 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.80.80.0/24 -d 192.168.0.0/24 -j ACCEPT
iptables -t mangle -I PREROUTING -s 192.168.0.0/24 -d 10.80.80.0/24 -j ACCEPT
iptables -t mangle -I PREROUTING -s 10.80.80.0/24 -d 192.168.0.0/24 -j ACCEPT

Onde 192.168.0.0 (Rede A) e 10.80.80.0 (Rede B)

Caso tenha alguma dúvida ou problema em alguma parte de nosso procedimento para implementação, entre em contato com nossa equipe de suporte técnico.

Top