Mikrotik. IPSEC vpn por NAT como cliente

Boa tarde a todos!

Acontece que, na nossa empresa, nos últimos dois anos, estamos gradualmente migrando para Mikrotik. Os principais nós estão construídos com CCR1072, e os pontos de conexão locais para os computadores em dispositivos mais simples. Naturalmente, também existe a interconexão de redes via túnel IPSEC, e nesse caso a configuração é bastante simples e não apresenta dificuldades, ainda mais considerando que há muito material disponível na internet. Entretanto, com a conexão móvel de clientes, há certas dificuldades; a documentação do fabricante sugere como usar o cliente Shrew soft VPN (quanto a essa configuração, tudo parece claro) e é exatamente esse cliente que 99% dos usuários de acesso remoto utilizam, enquanto 1% sou eu. Eu simplesmente não queria ter que inserir meu login e senha toda vez no cliente, e queria uma conexão confortável enquanto me acomodava no sofá. Não consegui encontrar instruções sobre como configurar o Mikrotik para situações em que ele não está apenas atrás de um endereço cinza, mas completamente atrás de um endereço preto, e pode até estar com múltiplos NAT na rede. Portanto, tive que improvisar, e aqui está o resultado.

Temos:

  1. CCR1072 como dispositivo principal. versão 6.44.1
  2. CAP ac como ponto de conexão doméstica. versão 6.44.1

A principal característica da configuração é que o PC e o Mikrotik devem estar na mesma rede com a mesma endereçamento, o que é fornecido pelo 1072 principal.

Vamos à configuração:

1. Claro, habilitamos o Fasttrack, mas como o VPN não é compatível com o fasttrack, precisamos cortar o tráfego dele.

/ip firewall mangle
add action=mark-connection chain=forward comment="ipsec in" ipsec-policy=
    in,ipsec new-connection-mark=ipsec passthrough=yes
add action=mark-connection chain=forward comment="ipsec out" ipsec-policy=
    out,ipsec new-connection-mark=ipsec passthrough=yes
/ip firewall filter add action=fasttrack-connection chain=forward connection-mark=!ipsec

2. Adicionamos os encaminhamentos de redes de/para a rede doméstica e de trabalho.

/ip firewall raw
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.76.0/24
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.98.0/24
add action=accept chain=prerouting disabled=yes dst-address=192.168.55.0/24 
    src-address=10.7.78.0/24
add action=accept chain=prerouting dst-address=10.7.76.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting dst-address=10.7.77.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting dst-address=10.7.98.0/24 src-address=
    192.168.33.0/24
add action=accept chain=prerouting disabled=yes dst-address=10.7.78.0/24 
    src-address=192.168.55.0/24
add action=accept chain=prerouting dst-address=192.168.33.0/24 src-address=
    10.7.77.0/24

3. Criamos uma descrição de conexão do usuário.

/ip ipsec identity
add auth-method=pre-shared-key-xauth notrack-chain=prerouting peer=CO secret=
    общий ключ xauth-login=username xauth-password=password

4. Criamos uma proposta IPSEC.

/ip ipsec proposal
add enc-algorithms=3des lifetime=5m name="prop1" pfs-group=none

5. Criamos uma política IPSEC.

/ip ipsec policy
add dst-address=10.7.76.0/24 level=unique proposal="prop1" 
    sa-dst-address=<white IP 1072> sa-src-address=0.0.0.0 src-address=
    192.168.33.0/24 tunnel=yes
add dst-address=10.7.77.0/24 level=unique proposal="prop1" 
    sa-dst-address=<white IP 1072> sa-src-address=0.0.0.0 src-address=
    192.168.33.0/24 tunnel=yes

6. Criamos um perfil IPSEC.

/ip ipsec profile
set [ find default=yes ] dpd-interval=disable-dpd enc-algorithm=
    aes-192,aes-128,3des nat-traversal=no
add dh-group=modp1024 enc-algorithm=aes-192,aes-128,3des name=profile_1
add name=profile_88
add dh-group=modp1024 lifetime=4h name=profile246

7. Criamos um peer IPSEC.

/ip ipsec peer
add address=<white IP 1072>/32 local-address=<ваш адрес роутера> name=CO profile=
    profile_88

E agora, um pouco de mágica simples. Como eu realmente não queria mudar as configurações em todos os dispositivos da rede doméstica, precisava de uma forma de associar o DHCP à mesma rede. Porém, o Mikrotik não permite o uso de mais de um pool de endereços em uma única bridge, então encontrei uma solução alternativa: para o laptop, criei um DHCP Lease com parâmetros manualmente especificados. Como a máscara de rede, gateway e dns também têm números de opções no DHCP, também os informei manualmente.

1. Opção DHCP

/ip dhcp-server option
add code=3 name=option3-gateway value="'192.168.33.1'"
add code=1 name=option1-netmask value="'255.255.255.0'"
add code=6 name=option6-dns value="'8.8.8.8'"

2. Contrato DHCP

/ip dhcp-server lease
add address=192.168.33.4 dhcp-option=
    option1-netmask,option3-gateway,option6-dns mac-address=<MAC адрес ноутбука>

A configuração 1072 é praticamente básica, pois ao atribuir um endereço IP ao cliente, as configurações especificam que deve ser fornecido o IP introduzido manualmente, e não de um pool. Para clientes comuns com computadores pessoais, a sub-rede é a mesma que na configuração com o Wiki 192.168.55.0/24.

Essa configuração permite que o PC não se conecte através de software de terceiros, pois o túnel é estabelecido automaticamente pelo roteador conforme necessário. A carga do CAP do cliente é praticamente mínima, variando de 8 a 11% com uma velocidade de 9 a 10 MB/s no túnel.

Todas as configurações foram feitas através do Winbox, embora com o mesmo sucesso possam ser realizadas pelo console.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster