Crearea unui tunel IPSec GRE între Mikrotik hEX S și Juniper SRX prin modem USB

Scop

Este necesar să organizăm un tunel VPN între două dispozitive, cum ar fi Mikrotik și Juniper din seria SRX.

Ce avem

Din routerele Mikrotik am ales un model care poate susține criptarea hardware IPSec, considerăm că este destul de compact și ieftin, și anume Mikrotik hEXS.

Modemul USB a fost achiziționat de la cel mai apropiat operator de telefonie mobilă, modelul fiind Huawei E3370. Nu am efectuat nicio operațiune de deblocare de la operator. Totul este standard și a fost personalizat de operator.

În kernel este instalat routerul central Juniper SRX240H.

Ce a reușit

Am reușit să implementăm un sistem de lucru care permite, prin intermediul operatorului de telefonie mobilă, fără a avea o adresă statică, să creăm o conexiune IPsec utilizând un modem în care este încapsulat un Tunel GRE.

Această schemă de conectare este utilizată și funcționează pe modemele USB de la Beeline și MegaFon.

Configurația este următoarea:

În kernel este instalat Juniper SRX240H
Adresa Locală: 192.168.1.1/24
Adresa Externă: 1.1.1.1/30
GW: 1.1.1.2

Punctul de remote

Mikrotik hEX S
Adresa Locală: 192.168.152.1/24
Adresa Externă: Dinamic

O diagramă mică pentru înțelegerea funcționării:

Crearea unui tunel IPSec GRE între Mikrotik hEX S și Juniper SRX prin modem USB

Configurația Juniper SRX240:

Versiunea software JUNOS Software Release [12.1X46-D82]

Configurația Juniper

interfețe {
    ge-0/0/0 {
        descriere Internet-1;
        unitate 0 {
            familie inet {
                adresă 1.1.1.1/30;
            }
        }
    }
    gr-0/0/0 {
        unitate 1 {
            descriere GRE-Tunnel;
            tunel {
                sursă 172.31.152.2;
                destinație 172.31.152.1;
            }
            familie inet;    
    vlan {
        unitate 0 {
            familie inet {
                adresă 192.168.1.1/24;
            }
        }
    st0 {
        unitate 5 {
            descriere "Area - 192.168.152.0/24";
            familie inet {
                mtu 1400;
            }
        }
routing-options {
    static {
        rută 0.0.0.0/0 next-hop 1.1.1.2;
        rută 192.168.152.0/24 next-hop gr-0/0/0.1;
        rută 172.31.152.0/30 next-hop st0.5;
    }
    router-id 192.168.1.1;
}
securitate {
    ike {
        traceoptions {
            fișier vpn.log dimensiune 256k fișiere 5;
            steag toate;
        }
        politică ike-gretunnel {
            mod agresiv;
            descriere area-192.168.152.0;
            set-propuneri standard;
            cheie-prepartajată ascii-text "mysecret"; ## SECRET-DATA
        }
        gateway gw-gretunnel {
            politică-ike ike-gretunnel;
            dinamic inet 172.31.152.1;
            interfață-externală ge-0/0/0.0;
            versiune v2-doar;
        }
    ipsec {
        }
        politică vpn-policy0 {
            perfect-forward-secrecy {
                chei group2;
            }
            set-propuneri standard;
        }
        vpn vpn-gretunnel {
            leagă-interfață st0.5;
            df-bit copiere;
            monitor-vpn {
                optimizat;
                sursă-interfață st0.5;
                ip-destinație 172.31.152.1;
            }
            ike {
                gateway gw-gretunnel;
                fără-anti-replay;
                politică-ipsec vpn-policy0;
                interval-instalare 10;
            }
            stabilește-tuneluri imediat;
        }
    }
    politici {  
        din-zone vpn către-zone vpn {
            politică st-vpn-vpn {
                meci {
                    adresă-sursă oricare;
                    adresă-destinație oricare;
                    aplicație oricare;
                }
                apoi {
                    permite;
                    jurnal {
                        inițiere-sesiune;   
                        închidere-sesiune;
                    }
                    contează;
                }
            }
        }
        din-zone încredere către-zone vpn {
            politică st-trust-to-vpn {
                meci {
                    adresă-sursă oricare;
                    adresă-destinație oricare;
                    aplicație oricare;
                }
                apoi {                  
                    permite;
                    jurnal {
                        inițiere-sesiune;
                        închidere-sesiune;
                    }
                    contează;
                }
            }
        }
        din-zone vpn către-zone încredere {
            politică st-vpn-to-trust {
                meci {
                    adresă-sursă oricare;
                    adresă-destinație oricare;
                    aplicație oricare;
                }
                apoi {
                    permite;
                    jurnal {
                        inițiere-sesiune;
                        închidere-sesiune;
                    }
                    contează;
                }
            }
        }
    zone {                             
        zonă-securitate încredere {
                vlan.0 {
                    trafic-inbound-gazdă {
                        servicii-sistem {
                            toate;
                        }
                        protocoale {
                            toate;
                        }
                    }
                }
        zonă-securitate vpn {
            interfețe {
                st0.5 {
                    trafic-inbound-gazdă {
                        protocoale {
                            ospf;
                        }
                    }
                }
                gr-0/0/0.1 {
                    trafic-inbound-gazdă {
                        servicii-sistem {
                            toate;
                        }
                        protocoale {
                            toate;        
                        }
                    }
                }
        zonă-securitate neîncredere {
            interfețe {
                ge-0/0/0.0 {
                    trafic-inbound-gazdă {
                        servicii-sistem {
                            ping;
                            ssh;
                            ike;
                        }
                    }
                }
            }
        }
vlanuri {                                 
    vlan-local {
        vlan-id 5;
        interfață-l3 vlan.1;
    }

Configurația Mikrotik hEX S:

Versiunea firmware RouterOS [6.44.3]

Configurația Mikrotik

/ip address
add address=172.31.152.1/24 comment=GRE-Tunnel interface=gre-srx network=172.31.152.0
add address=192.168.152.1/24 comment=Local-Area interface=bridge network=192.168.152.0

/interface gre
add comment=GRE-Tunnel-SRX-HQ !keepalive local-address=172.31.152.1 name=gre-srx remote-address=172.31.152.2

/ip ipsec policy group
add name=srx-gre

/ip ipsec profile
add dh-group=modp1024 dpd-interval=10s name=profile1

/ip ipsec peer
add address=1.1.1.1/32 comment=GRE-SRX exchange-mode=aggressive local-address=172.31.152.1 name=peer2 profile=profile1

/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-256-cbc,aes-128-cbc,3des
add enc-algorithms=aes-128-cbc,3des name=proposal1

/ip route
add distance=10 dst-address=192.168.0.0/16 gateway=gre-srx

/ip ipsec identity
add comment=IPSec-GRE my-id=address:172.31.152.1 peer=peer2 policy-template-group=srx-gre secret=mysecret

/ip ipsec policy
set 0 disabled=yes
add dst-address=0.0.0.0/0 proposal=proposal1 sa-dst-address=1.1.1.1 sa-src-address=172.31.152.1 src-address=172.31.152.0/30 tunnel=yes

/ip address
add address=172.31.152.1/24 comment=GRE-Tunnel interface=gre-srx network=172.31.152.0
add address=192.168.152.1/24 comment=Local-Area interface=bridge network=192.168.152.0

Rezultatul:
Din partea Juniper SRX

netscreen@srx240> ping 192.168.152.1  
PING 192.168.152.1 (192.168.152.1): 56 data bytes
64 bytes from 192.168.152.1: icmp_seq=0 ttl=64 time=29.290 ms
64 bytes from 192.168.152.1: icmp_seq=1 ttl=64 time=28.126 ms
64 bytes from 192.168.152.1: icmp_seq=2 ttl=64 time=26.775 ms
64 bytes from 192.168.152.1: icmp_seq=3 ttl=64 time=25.401 ms
^C
--- 192.168.152.1 statistici ping ---
4 pachete transmise, 4 pachete primite, 0% pierdere pachete
latime de bandă min/medie/max/abatere standard = 25.401/27.398/29.290/1.457 ms

Din partea Mikrotik

net[admin@GW-LTE-] > ping 192.168.1.1 
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                                                                                                               
    0 192.168.1.1                                56  64 34ms 
    1 192.168.1.1                                56  64 40ms 
    2 192.168.1.1                                56  64 37ms 
    3 192.168.1.1                                56  64 40ms 
    4 192.168.1.1                                56  64 51ms 
    trimis=5 primit=5 pierdere-pachet=0% min-rtt=34ms avg-rtt=40ms max-rtt=51ms 

Conclusions

După finalizarea lucrării, am obținut stabilitate. VPN Tunnel, din rețeaua externă avem acces la toată rețeaua care se află în spatele Juniper, și invers.

Nu recomand utilizarea IKE2 în această schemă, a existat situația în care, după rebootarea unuia sau altui dispozitiv, IPSec nu se restabilește.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster