Creazione di un tunnel IPSec GRE tra Mikrotik hEX S e Juniper SRX tramite modem USB

Obiettivo

È necessario organizzare un tunnel VPN tra due dispositivi, come Mikrotik e la serie SRX di Juniper.

Cosa abbiamo

Abbiamo scelto dal wiki di Mikrotik un modello che supporta la crittografia hardware IPSec, ritenendolo abbastanza compatto ed economico: il Mikrotik hEXS.

Il modem USB è stato acquistato dal gestore telefonico più vicino, e il modello era Huawei E3370. Non abbiamo effettuato alcuna operazione per slegarlo dal gestore. Tutto è di fabbrica e programmato dallo stesso operatore.

Nel core è stato installato il router centrale Juniper SRX240H.

Cosa siamo riusciti a fare

Siamo riusciti a realizzare uno schema di funzionamento che consente, tramite il gestore telefonico, di creare una connessione IPsec senza avere un indirizzo statico, utilizzando un modem.

Questo schema di connessione è utilizzato e funziona con i modem USB di Beeline e MegaFon.

La configurazione è la seguente:

Nel core è installato Juniper SRX240H
Indirizzo locale: 192.168.1.1/24
Indirizzo esterno: 1.1.1.1/30
GW: 1.1.1.2

Punto remoto

Mikrotik hEX S
Indirizzo locale: 192.168.152.1/24
Indirizzo esterno: Dinamico

Una piccola diagramma per comprendere il funzionamento:

Creazione di un tunnel IPSec GRE tra Mikrotik hEX S e Juniper SRX tramite modem USB

Configurazione Juniper SRX240:

Versione del software JUNOS Software Release [12.1X46-D82]

Configurazione Juniper

interfacce {
    ge-0/0/0 {
        descrizione Internet-1;
        unità 0 {
            famiglia inet {
                indirizzo 1.1.1.1/30;
            }
        }
    }
    gr-0/0/0 {
        unità 1 {
            descrizione GRE-Tunnel;
            tunnel {
                sorgente 172.31.152.2;
                destinazione 172.31.152.1;
            }
            famiglia inet;
            vlan {
                unità 0 {
                    famiglia inet {
                        indirizzo 192.168.1.1/24;
                    }
                }
            }
        }
        st0 {
            unità 5 {
                descrizione "Area - 192.168.152.0/24";
                famiglia inet {
                    mtu 1400;
                }
            }
        }
    }
}
opzioni-di-routing {
    statico {
        rotta 0.0.0.0/0 prossimo-hop 1.1.1.2;
        rotta 192.168.152.0/24 prossimo-hop gr-0/0/0.1;
        rotta 172.31.152.0/30 prossimo-hop st0.5;
    }
    router-id 192.168.1.1;
}

sicurezza {
    ike {
        opzioni-di-tracciamento {
            file vpn.log dimensione 256k file 5;
            flag all;
        }
        policy ike-gretunnel {
            modalità aggressiva;
            descrizione area-192.168.152.0;
            proposta-set standard;
            pre-shared-key ascii-text "mysecret"; ## SECRET-DATA
        }
        gateway gw-gretunnel {
            ike-policy ike-gretunnel;
            dynamic inet 172.31.152.1;
            interfaccia-esternale ge-0/0/0.0;
            versione v2-only;
        }
    }
    ipsec {
    }
    policy vpn-policy0 {
        perfect-forward-secrecy {
            chiavi group2;
        }
        proposta-set standard;
    }
    vpn vpn-gretunnel {
        bind-interface st0.5;
        df-bit copy;
        vpn-monitor {
            ottimizzato;
            source-interface st0.5;
            destinazione-ip 172.31.152.1;
        }
        ike {
            gateway gw-gretunnel;
            no-anti-replay;
            ipsec-policy vpn-policy0;
            install-interval 10;
        }
        stabilire-tunnel immediatamente;
    }
}
    politiche {
        from-zone vpn to-zone vpn {
            policy st-vpn-vpn {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permettere;
                    log {
                        session-init;
                        session-close;
                    }
                    conteggio;
                }
            }
        }
        from-zone trust to-zone vpn {
            policy st-trust-to-vpn {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permette;
                    log {
                        session-init;
                        session-close;
                    }
                    conteggio;
                }
            }
        }
        from-zone vpn to-zone trust {
            policy st-vpn-to-trust {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permette;
                    log {
                        session-init;
                        session-close;
                    }
                    conteggio;
                }
            }
        }
    zone {
        security-zone trust {
            vlan.0 {
                host-inbound-traffic {
                    system-services {
                        all;
                    }
                    protocolli {
                        all;
                    }
                }
            }
        }
        security-zone vpn {
            interfacce {
                st0.5 {
                    host-inbound-traffic {
                        protocolli {
                            ospf;
                        }
                    }
                }
                gr-0/0/0.1 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocolli {
                            all;
                        }
                    }
                }
            }
        }
        security-zone untrust {
            interfacce {
                ge-0/0/0.0 {
                    host-inbound-traffic {
                        system-services {
                            ping;
                            ssh;
                            ike;
                        }
                    }
                }
            }
        }
    vlan {
        vlan-local {
            vlan-id 5;
            l3-interfaccia vlan.1;
        }
    }
}

Configurazione Mikrotik hEX S:

Versione del software RouterOS [6.44.3]

Configurazione 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

Risultato:
Dal lato di Juniper SRX

netscreen@srx240> ping 192.168.152.1  
PING 192.168.152.1 (192.168.152.1): 56 byte di dati
64 byte da 192.168.152.1: icmp_seq=0 ttl=64 tempo=29.290 ms
64 byte da 192.168.152.1: icmp_seq=1 ttl=64 tempo=28.126 ms
64 byte da 192.168.152.1: icmp_seq=2 ttl=64 tempo=26.775 ms
64 byte da 192.168.152.1: icmp_seq=3 ttl=64 tempo=25.401 ms
^C
--- statistiche ping per 192.168.152.1 ---
4 pacchetti trasmessi, 4 pacchetti ricevuti, 0% perdita di pacchetti
round-trip min/avg/max/stddev = 25.401/27.398/29.290/1.457 ms

Dal lato di Mikrotik

net[admin@GW-LTE-] > ping 192.168.1.1 
  SEQ HOST                                     SIZE TTL TEMPO  STATO                                                                                                                                               
    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 
    inviati=5 ricevuti=5 perdita-pacchetti=0% min-rtt=34ms avg-rtt=40ms max-rtt=51ms 

Conclusioni

Dopo il lavoro svolto abbiamo ottenuto stabilità VPN Tunnel, dalla rete remota abbiamo accesso a tutta la rete che si trova dietro juniper, e viceversa.

Sconsiglio di utilizzare IKE2 in questo schema, si verificava la situazione in cui dopo il riavvio di un dispositivo non si attivava IPSec.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster