IPSec (IP Security) - um conjunto de protocolos e algoritmos para criptografar dados em redes IPv4 e IPv6. Não parece complicado, mas o IPSec não estabelece regras claras para criptografar o tráfego; em vez disso, os desenvolvedores implementam um conjunto de ferramentas (protocolos e algoritmos), usando o qual o administrador cria um canal seguro para os dados.
Quero abordar o IPSec no RouterOS um pouco mais profundo do que um simples HOWTO, com teoria e exemplos mínimos sobre como configurar e depurar o IPSec. Este não é um guia e, sem a prática em um banco de testes, não é recomendável começar a configurar túneis reais e servidores VPN.
Vantagens e desvantagens do IPSec
Pontos fortes:
- Funciona no nível da rede do modelo OSI
- Ele pode criptografar o pacote de origem totalmente ou a partir da camada de transporte e
- Existe um mecanismo para superar o NAT
- Uma ampla variedade de algoritmos de criptografia e hash de tráfego para escolher
- IPSec - um conjunto de padrões abertos e extensíveis
- No caso do Mikrotik, ele não exige a compra de taxas ou licenças adicionais
Fraquezas:
- Dificuldade
- Diferentes ferramentas de terminologia e configuração para diferentes fornecedores
- O uso de algoritmos de criptografia fortes requer um bom poder de computação.
- DPI fácil de detectar
Protocolos em IPSec

Globalmente, todos os protocolos com os quais você lidará durante a configuração podem ser divididos em dois grupos: protocolos de troca de chaves e protocolos de proteção de dados.
Protocolos de troca de chaves (IKE)
A principal tarefa é autenticar os participantes na conexão e concordar com os parâmetros e chaves de criptografia para proteger as informações transmitidas.
- IKE (Internet Key Exchange) - definido em 1998. Muitos recursos (por exemplo, ponte NAT) foram adicionados posteriormente como complementos e podem não ser implementados com vários fornecedores. A base da negociação principal é ISAKMP.
- IKEv2 (Internet Key Exchange versão 2) - última revisão de 2014. É um desenvolvimento do protocolo IKE, no qual alguns problemas foram resolvidos, o mecanismo principal do contrato foi simplificado e as extensões (NAT-T, Keepalives, Mode Config) passaram a fazer parte do protocolo.
Na prática, a maioria das conexões IPSec é implementada usando o IKE devido a equipamentos desatualizados ou à relutância dos administradores em mudar alguma coisa.
Protocolos de proteção de dados (ESP, AH)
A principal tarefa é proteger os dados do usuário.
- ESP (Encapsulating Security Payload) - criptografa e autentica parcialmente os dados transmitidos
- AH (cabeçalho de autenticação) - autentica todo o pacote (exceto para campos mutáveis), não criptografa dados, mas permite garantir que o pacote não foi alterado durante a transmissão pela rede
Procedimento de instalação da conexão IPSec

Os participantes de uma conexão IPSec são geralmente chamados de pares, o que indica sua equivalência na conexão estabelecida. É possível uma configuração próxima ao cliente-servidor, mas ao criar túneis IPSec permanentes, qualquer um dos pares pode ser um inicializador.
- Um dos pares inicia uma conexão IPSec
- Há uma troca de informações importantes, autenticação de pares, coordenação dos parâmetros de conexão
- Com base nas informações-chave recebidas, um túnel criptografado auxiliar é formado
- Usando um túnel criptografado, os pares determinam os parâmetros de criptografia de dados e trocam informações para gerar chaves
- O resultado da fase anterior é um conjunto de regras e chaves para proteção de dados (SA)
- Os pares periodicamente atualizam as chaves de criptografia
Um dos principais conceitos do IPSec é o SA (Security Association) - um conjunto de algoritmos de criptografia para criptografar e hash informações, bem como chaves de criptografia, acordadas pelos pares.
Às vezes você pode encontrar uma divisão em:
- ISAKMP SA - parâmetros e chaves relacionados ao túnel auxiliar
- Data SA (ou simplesmente SA) - parâmetros e chaves relacionados à criptografia de tráfego
Protocolos principais de contrato
O protocolo IKE pode funcionar em dois modos: principal (principal) e agressivo (agressivo), o protocolo IKEv2 contém um modo.
IKE Principal

A primeira fase consiste em seis pacotes:
1-2: Alinhamento das configurações de criptografia do túnel secundário e várias opções IPSec
3-4: Compartilhando informações para gerar uma chave secreta
5-6: Autenticação de mesmo nível usando o canal criptografado auxiliar
A segunda fase consiste em três pacotes:
1-3: Usando um canal auxiliar criptografado. Coordenação de parâmetros de proteção de tráfego, troca de informações para gerar uma chave secreta
IKE Agressivo

A primeira fase consiste em três pacotes:
1: Enviando uma oferta para instalar um canal criptografado auxiliar e informações para gerar uma chave privada
2: Resposta à oferta, informações para gerar a chave secreta, dados para autenticação
3: Dados de autenticação
A segunda fase consiste em três pacotes:
1-3: Usando um canal auxiliar criptografado. Coordenação de parâmetros de proteção de tráfego, troca de informações para gerar uma chave secreta
No modo agressivo, o iniciador envia apenas um conjunto de parâmetros na sentença. A troca de informações para autenticação de pares ocorre antes da instalação de um túnel auxiliar seguro. O modo agressivo é consistente mais rápido, mas menos seguro.
IKEv2

No IKEv2, as fases são nomeadas: IKE_SA_INIT e IKE_AUTH. Mas se eu estou falando sobre a Fase 1 e a Fase 2 posteriormente no texto, isso também se aplica às fases do IKEv2.
Cada fase do IKEv2 consiste em dois pacotes:
IKE_SA_INIT: Coordenação dos parâmetros de criptografia do túnel auxiliar, troca de informações para gerar uma chave privada
IKE_AUTH: usando o canal auxiliar criptografado. Autenticação de pares, coordenação de parâmetros de proteção de tráfego, troca de informações para gerar uma chave secreta
Banco de dados de associações de segurança (SAD)
O resultado do IKE (e IKEv2) são Security Assotiations (SA), que definem configurações de proteção de tráfego e chaves de criptografia. Cada SA é unidirecional e a conexão IPSec contém um par de SAs. Todas as SAs são armazenadas no banco de dados do SAD e são acessíveis ao administrador para visualização e redefinição.
Encapsulamento de dados

O IPSec fornece duas opções para encapsular dados:
- Modo de transporte - somente a carga útil do pacote é protegida, deixando o cabeçalho original. Para construir túneis, o modo de transporte geralmente é usado em conjunto com o ipip ou gre, cuja carga útil já contém todo o pacote de origem.
- Modo de encapsulamento - encapsula totalmente o pacote original em um novo (semelhante ao gre ou ipip). Mas para o túnel ipsec, uma interface explícita não é criada no sistema, isso pode ser um problema se o roteamento estático dinâmico ou complexo for usado.
Banco de Dados de Políticas de Segurança (SPD)
Um banco de dados de regras que determinam qual tráfego deve ser criptografado, protocolo de proteção de dados, tipo de encapsulamento e vários outros parâmetros.
A posição de verificação do SPD pode ser exibida no diagrama de fluxo de pacotes.

Ponte NAT
O IPSec usa protocolos da camada de rede para transferir dados que o NAT não pode manipular. Para resolver o problema, o protocolo NAT-T é usado (uma extensão no IKE e parte do IKEv2). A essência do NAT-T está no encapsulamento adicional de pacotes IPSec em pacotes UDP que o NAT processa.
IPSec na Mikrotik
O IPSec está disponível gratuitamente em qualquer dispositivo executando o RouterOS com o pacote de segurança instalado.
Criptografia de hardware
Para descarregar a CPU, a aceleração de criptografia por hardware é adicionada a alguns modelos de roteadores MikroTik; uma lista completa pode ser encontrada no wiki .
Mais opções de orçamento: RB750Gr3 , RB3011 , HAP AC ^ 2 .
Por conta própria, verifiquei a velocidade do IPSec entre dois RB1100AHx2 e entre dois RB750Gr3.
Para alcançar o máximo de resultados no RB1100AHx2, você deve:
- Use a porta 11 diretamente conectada à CPU e configure um núcleo da CPU para lidar com o tráfego de 11 portas
- Use apenas filas de hardware nas interfaces, desative o RPS
- Ative o Layer3 FastPath (cerca de 800mb / s) ou exclua o tráfego IPSec do conntrack (cerca de 700mb / s)
Sem as manipulações descritas na porta mais lenta (ether13), é possível obter ~ 170 Mb / s, nos ~ 400 Mb / s usuais.
No RB750Gr3 sem otimizações de cerca de 200 Mb / s.
Os roteadores single-core da Qualcomm mostram um resultado de 10 a 40 mb / s, dependendo do modelo, otimizações e carga de trabalho de outros processos.
Eu recomendo que você se familiarize com a apresentação do funcionário da mikrotik, eles abordaram tópicos de otimização de configurações para reduzir a carga na CPU e aumentar a velocidade, que não adicionei ao texto.
Diferenças 6.42.X e 6.43.X
Dependendo da versão do RouterOS que você está usando, o menu de configuração IPSec varia.



Já existem novas alterações na versão de teste, portanto, leia as Notas da versão antes de atualizar.

Configuração IPsec

O menu [IP] -> [IPSec] não é tão assustador quanto parece à primeira vista. O diagrama mostra que os principais itens de configuração são: Pares e perfis.
As guias Remote Peers e SAs instalados são informativas.
Pares e perfis de pares
Configuração de pares IPSec para estabelecer uma conexão IKE e criar um túnel seguro auxiliar.

Configurar pares remotos IPSec

Anotações- A partir do 6.43, o RouterOS jura ao usar o PSK sem autenticação adicional. Se você não desejar configurar adicionalmente chaves, certificados ou xAuth, poderá mudar para IKEv2 ou ignorar o aviso.
- Como pares, você pode especificar IPs ou sub-redes específicos (relevantes para a VPN cliente-servidor)
- Se houver regras conflitantes, uma regra com uma sub-rede mais precisa será usada para conectar-se ao par (semelhante às rotas)
- Autenticação de chave XAuth e rsa não funciona no IKEv2
- Para o IKEv2, o Mikrotik tornou a implementação do xAuth incompatível com outras plataformas
- O modo passivo geralmente é usado para criar uma VPN cliente-servidor (configuração do modo L2TP / IPsec ou IKEv2), mas pode ser útil ao conectar um grande número de túneis site a site em um único ponto, para reduzir o tráfego falso.
- Se você planeja usar o xAuth, o "servidor" deve ser passivo. Os usuários do servidor são criados em [IPSec] -> [Usuários]
- Ao usar a política Gerar, selecione o modo restrito de porta
Estabelecimento de perfis (propostas) para harmonização Fase 1


Anotações- Opções adicionais para o IKE se tornam parte do IKEv2, as configurações são ignoradas
- Correlação de grupos DH com seus números (os números de grupo são usados por outros fornecedores)
- Ao enviar propostas, o sistema classifica o algoritmo de pares + grupo dh de mais persistente para menos persistente

Políticas e propostas de políticas
Os políticos verificam os pacotes aprovados quanto à conformidade com as condições e aplicam as ações especificadas. Se você voltar ao fluxo de pacotes, os blocos com a política IPSec serão a reconciliação com as políticas. As ações especificam: protocolo de segurança IPSec (ESP ou AH), propostas para negociação de SA, modo de encapsulamento.

O pacote passa a política uma a uma até corresponder às condições de uma delas.
Configuração de diretiva

Anotações- Geralmente, nenhum Src específico é necessário. e Dst. Porta, mas em geral, a capacidade de criptografar o tráfego de um aplicativo individual é interessante
- Nem todos os protocolos IP são apresentados na lista Protocolos (por exemplo, não há gre), você pode especificar manualmente o número do protocolo necessário.
- Modelos não são políticos! Eles são usados se a política de geração estiver definida na configuração de mesmo nível.
- O que fazer se não foram encontradas SAs específicas para uma política. Anteriormente, havia um problema com o L2TP / IPSec quando vários clientes não podiam se conectar devido ao mesmo NAT (ao usar o IKE), esse erro era resolvido (supondo que esses clientes não fossem janelas) se você definir level = unique. Caso contrário, mude para IKEv2
- Ao configurar políticas, use [Modo de segurança], um movimento estranho e você corre o risco de perder o acesso ao roteador usando o Level3
Configurar propostas para aprovação de SA


Grupos
Usado para associar modelos e pares de políticas.

Em uma das versões mais antigas do RouterOS, havia um erro no grupo padrão que não funcionava.
Configuração do modo
Enviando e recebendo parâmetros IP sem usar protocolos adicionais. Permite que você crie um IPSec de VPN de cliente para servidor independente.


Chaves e usuários
Usado para autenticação avançada de pares.
Chaves
Chaves RSA: geração, importação, exportação. Não suportado no IKEv2.

Utilizadores
Banco de dados do usuário XAuth para o "servidor". O cliente especifica as configurações do xAuth na configuração de mesmo nível. É possível encaminhar a autenticação xAuth para um servidor RADIUS.

Pares remotos
Lista de todos os pares que instalam e instalam um túnel auxiliar (Fase 1). Você pode remover pares para atualizar as chaves do túnel auxiliar.


SAs instaladas
Banco de dados SAD ou uma lista de todas as SAs negociadas. Você pode ver os algoritmos e chaves de proteção de dados usados.


O sinalizador AEAD de hardware indica o uso de criptografia de hardware.

Um administrador pode redefinir o SA, mas apenas todos do mesmo tipo (esp ou ah) ao mesmo tempo.
IPSec e firewall
No Firewall, você pode verificar se o tráfego é uma política IPSec de entrada ou saída. Um aplicativo óbvio é o L2TP / IPSec; você pode proibir a instalação de conexões L2TP se o tráfego não tiver sido criptografado anteriormente.

Protocolos e portas usados no IPSec
- IKE - UDP: 500
- IKEv2 - UDP: 4500
- NAT-T - UDP: 4500
- ESP - ipsec-esp (50)
- AH - ipsec-ah (51)
IPSec e Endpoinds
E agora sobre a ferida ...
O wiki mikrotik possui tabelas com algoritmos de hash e criptografia para: Windows , iOS , OS-X .
Não encontrei informações sobre o cliente vpn android interno, mas em geral ele trabalha com propostas do Windows. Não há suporte para IKEv2 no Android, você deve usar o StrongSwan .
Exemplos de configuração
Esquema e configuração básica para exemplos com túneis site a site:

#Mikrotik1 /ip address add address=10.10.10.10/24 interface=ether1 network=10.10.10.0 add address=192.168.100.1/24 interface=ether2 network=192.168.100.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.10.10.1 dst-address=0.0.0.0/0 #Mikrotik2 /ip address add address=10.20.20.20/24 interface=ether1 network=10.20.20.0 add address=192.168.200.1/24 interface=ether2 network=192.168.200.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.20.20.1 dst-address=0.0.0.0/0
IPSec no modo de túnel

Configuração passo a passo:
- Criar propostas para IKE Phase1
- Crie um banquete. Indicamos o endereço, propostas, modo de troca, tecla PSK. Eu escolhi o IKEv2, você pode usar main / agressive conforme desejado
- Criar propostas para o SA
- Especifique as sub-redes entre as quais criamos o túnel
- Especifique endereços SA, modo de encapsulamento e propostas para criptografia de tráfego
- Editando a regra NAT
Mikrotik1
Opção de console:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=192.168.200.0/24 proposal=ipsec-tunnel-sa sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10 src-address=192.168.100.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
Mikrotik2
Opção de console:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=192.168.100.0/24 proposal=tets-ipsec-sa sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20 src-address=192.168.200.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
E aqui NAT?Para trabalhar no modo de encapsulamento, você precisa de uma rota falsa para a sub-rede remota ou uma rota padrão; caso contrário, os pacotes não irão além da decisão de roteamento. Geralmente, não há problemas com a primeira opção, mas com a rota padrão e o NAT de origem (o primeiro e o segundo estão presentes na grande maioria dos roteadores domésticos e de escritório), haverá problemas.
Recuperar fluxo de pacotes. Os pacotes passam pelo NAT de origem mais cedo do que as políticas IPSec, a regra com disfarce não sabe nada sobre o tráfego destinado ao túnel "efêmero" e transmitirá os cabeçalhos de pacotes a serem enviados ao IPSec quando o pacote com o cabeçalho alterado for verificado no endereço de origem de Políticas em o cabeçalho não se ajustará à regra e o pacote voará para a rota padrão que, tendo visto o endereço de destino da rede privada, provavelmente o eliminará.
Existem várias soluções para o problema:
- Usando rota falsa
- Usando uma regra de aceitação opcional antes do SourceNAT
- Sujeite src-nat apenas aos pacotes para os quais não há políticas IPSec (no exemplo)
- Excluir tráfego do rastreamento de conexão usando RAW
Verifique a conexão estabelecida

- Vemos um vizinho em Remote Peers
- Vemos o SA instalado (os contadores de tráfego não serão alterados até você iniciá-lo)
- Em política, status estabelecido e bandeira (A)
IPIP / IPSec

Túnel IPIP predefinido:
#Mikrotik1 # ipip /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.20.20.20 # ip ipip /ip address add address=10.30.30.1/30 interface=ipip-vpn # /ip route add distance=1 dst-address=192.168.200.0/24 gateway=10.30.30.2 #Mikrotik2 # , /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.10.10.10 /ip address add address=10.30.30.2/30 interface=ipip-vpn /ip route add distance=1 dst-address=192.168.100.0/24 gateway=10.30.30.1
Configuração passo a passo do IPSec:
- Criar propostas para IKE Phase1
- Crie um banquete. Indique o endereço, propostas, modo de troca, tecla PSK
- Criar propostas para o SA
- Especifique as sub-redes entre as quais criamos o túnel
- Especificamos os endereços da SA, o tipo de tráfego que criptografaremos e as propostas
Mikrotik1
Opção de console:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=10.20.20.20/32 proposal=ipsec-tunnel-sa protocol=ipencap src-address=10.10.10.10/32 sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10
Mikrotik2
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=10.10.10.10/32 proposal=tets-ipsec-sa protocol=ipencap src-address=10.20.20.20/32 sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20
Para desatento, a diferença real na configuração do modo de túnel e transporte nas políticas IPSec:

A verificação da conexão é semelhante ao modo de túnel.
L2TP / IPSec
Os exemplos anteriores são adequados para criar VPNs permanentes entre dois pares, com endereços IP externos estáticos.
Se o endereço de um dos pares for dinâmico (e geralmente estiver localizado atrás do NAT), você deverá usar outra VPN de cliente para servidor.

Pré-configuração L2TP:
# /ip pool add name=pool-l2tp ranges=192.168.77.10-192.168.77.20 # /ppp profile add change-tcp-mss=yes local-address=192.168.77.1 name=l2tp-ipsec only-one=yes remote-address=pool-l2tp use-compression=no use-encryption=no use-mpls=no use-upnp=no # /ppp secret add name=user1 password=test1 profile=l2tp-ipsec service=l2tp add name=user2 password=test2 profile=l2tp-ipsec service=l2tp add name=user3 password=test3 profile=l2tp-ipsec service=l2tp # L2TP ( ipsec) /interface l2tp-server server set authentication=chap,mschap2 default-profile=l2tp-ipsec enabled=yes
Por que ignoro o ajuste automático de IPsecNa configuração do ipip, gre, eoip, l2tp, há uma configuração automática da conexão ipsec; na verdade, o sistema cria regras dinâmicas para pares e políticas para você, mas primeiro não procuramos maneiras fáceis e, segundo, ao atualizar de 6.42 para 6,43, túneis criados automaticamente quebrou e não o fato de que isso não acontecerá novamente.
Configuração passo a passo do IPSec:
- Crie um novo grupo (você pode usar o padrão)
- Criar propostas para IKE Phase1
- Criamos um banquete, ou melhor, uma sub-rede. Jura pela chave PSK, mas se estamos lidando com o Windows como cliente, temos uma opção: Certificados ou PSK.
- Defina passivo = yes e send-init-contact = não, em generate-policy = port-strict (aceitar porta do cliente)
- Criar propostas para o SA
- Crie um modelo para gerar políticas
- Especificar proposta para SA
Configuração Mikrotik
Na captura de tela, o erro é especificar dst. porta e src. porta não é necessária
Opção de console:
#1 /ip ipsec policy group add name=l2tp-ipsec #2 /ip ipsec peer profile add dh-group=modp1024 enc-algorithm=aes-256 hash-algorithm=sha256 name=l2tp-ipsec-ike #3-4 /ip ipsec peer add address=0.0.0.0/0 generate-policy=port-strict passive=yes policy-template-group=l2tp-ipsec profile=l2tp-ipsec-ike secret=secret-ipsec-pass send-initial-contact=no #5 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=l2tp-ipsec-sa pfs-group=none #6-7 /ip ipsec policy add dst-address=0.0.0.0/0 group=l2tp-ipsec proposal=l2tp-ipsec-sa protocol=udp src-address=0.0.0.0/0 template=yes
Configuração de firewall para criar conexões L2TP somente após IPSec
/ip firewall filter # IKE, NAT-T ipsec-esp add chain=input protocol=17 dst-port=500,4500 action=accept add chain=input protocol=50 action=accept # L2TP, ipsec add chain=input protocol=17 dst-port=1701 ipsec-policy=in,ipsec action=accept add chain=input protocol=17 dst-port=1701 action-drop
VPN IKEv2
A opção L2TP é popular, mas, graças à configuração do modo, você pode configurar o servidor VPN usando apenas IPSec. Este é um tipo promissor de VPN, mas até agora raramente usado. Além de configurar o lado do servidor, darei um exemplo de configuração do cliente strongSwan no Android.

Claro, nem tudo é tão róseo. A maioria dos sistemas operacionais "usuários" (em particular Windows e Android) concorda em trabalhar com essa VPN somente se eles forem autenticados por certificados ou EAP.
Certificados são meu ponto fraco, se alguém souber como gerar corretamente um certificado autoassinado que o Windows importa e utilizará na conexão, escreva nos comentários.
Geração preliminar de certificados:
#Root CA /certificate add name=ca common-name="IKEv2 CA" days-valid=6928 /certificate sign ca ca-crl-host=<IP > # vpn /certificate add common-name=<IP > subject-alt-name=IP:<IP > key-usage=tls-server name=vpn days-valid=6928 # /certificate sign vpn ca=ca # # , # Revoke /certificate add common-name=client key-usage=tls-client name=client days-valid=6928 # /certificate sign client ca=ca
Configuração passo a passo da VPN IKEv2:
- Criamos um conjunto de endereços para distribuição aos clientes
- Crie um perfil de configuração de modo para distribuir parâmetros IP aos clientes
- Crie grupos para vincular modelos de pares e políticas
- Criar propostas para IKE Phase1
- Crie um perfil para conectar pares. Autenticação de certificado, Protocolo IKEv2, Modo passivo
- Especifique o perfil de configuração do modo, um grupo de 3 etapas e ative a geração de políticas
- Criar propostas para o SA
- Crie um modelo para gerar políticas
- Especificar propostas para SA
Configurar Mikrotik
#1 /ip pool add name=pool-ike ranges=192.168.77.10-192.168.77.20 #2 /ip ipsec mode-config add address-pool=pool-ike address-prefix-length=32 name=ikev2-vpn static-dns=77.88.8.8 system-dns=no #3 /ip ipsec policy group add name=ikev2-vpn #4 /ip ipsec peer profile add enc-algorithm=aes-256,aes-128 hash-algorithm=sha256 name=ikev2-vpn #5-6 /ip ipsec peer add address=0.0.0.0/0 auth-method=rsa-signature certificate=vpn exchange-mode=ike2 generate-policy=port-strict mode-config=ikev2-vpn passive=yes policy-template-group=ikev2-vpn profile=ikev2-vpn send-initial-contact=no #7 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=ikev2-vpn #8-9 /ip ipsec policy add dst-address=0.0.0.0/0 group=ikev2-vpn proposal=ikev2-vpn src-address= 0.0.0.0/0 template=yes
Se a conexão for bem-sucedida, você verá: política dinâmica, gravando em pares remotos e um par de SA.



As licenças de demonstração do RouterOS x86 não têm restrições quanto ao número de túneis IPSec, incluindo a VPN IKEv2. Você pode implantar a demonstração do RouterOS x86 (não confunda com o RouterOS CHR grátis, tudo fica triste) no VPS e obter um servidor VPN pessoal com o mínimo de esforço administrativo, sem comprar uma licença para o RouterOS ou o RouterOS CHR.
Algumas palavras sobre a análise de log IPSec
Os logs no Mikrotik são uma história separada, às vezes são detalhados o suficiente para analisar problemas, mas a falta de recursos banais: limpar, copiar, encontrar obriga a instalar um servidor syslog separado.
Quanto ao IPSec, aqui está uma opção de análise rápida de log (deixamos apenas o necessário em uma guia separada):

/system logging action add memory-lines=100000 name=ipsec target=memory /system logging add action=ipsec topics=ipsec,error add action=ipsec topics=ipsec,debug,!packet add action=ipsec topics=ipsec,info
E alguns exemplos de problemas típicos de configuração IPSec:
Problema de consistência das propostas na fase 1
- Leia a mensagem de erro. O problema é quando reconciliar propostas na primeira fase.
- Observamos acima, o próprio roteador sugere que ele enviou um banquete e o que está configurado localmente
Problema de reconciliação de problema IKE_SA_INITNos logs, você verá algo como o seguinte:

Analisando tráfego
Na solicitação, você pode ver as propostas do banquete:

Na resposta, vemos que nenhuma proposta adequada foi encontrada:

Problema de reconciliação de propostas para SA
O roteador solicita o erro de propostas na fase2 e mostra o que está configurado localmente e o que é remoto.
Problema de reconciliação das propostas IKE_AUTH
Vemos que houve uma conexão e autenticação de pares, mas ainda existe um erro de proposta. Você também não verá detalhes na depuração, no wireshark (o tráfego IKE_AUTH é criptografado).
Erro de autenticação PSKPara IKE:

Para IKEv2:

Modo IKE incorreto
Vemos que a Fase 1 interrompe o tempo limite, embora os pacotes passem entre pares. Mas o tamanho do pacote recebido é muito maior; se analisarmos através do wireshark, veremos que o ponto remoto usa o modo agressivo.

Vemos que os pacotes são enviados por nós para o UDP: 500 e eles chegam ao UDP: 4500 e são bastante grandes. Aqui, o ponto remoto possui o modo IKEv2.
Por fim, leia a seção de solução de problemas do wiki . E todo o material sobre o IPSec é desejável para o conhecido, descrevi apenas o conjunto básico de ferramentas e configurações.