Juniper Ubuntu GRE tunnel

Появилась задачка открыть из офиса сайт, который работает только в США, сделал это таким способом, через Juniper Ubuntu GRE tunnel:

 Juniper Ubuntu GRE tunnel

Регистрируемся на digitalocean.com

Получаем 10$ нахаляву, я же ваш друг, и ссылка реферальная (:

Создаем виртуалку на ubuntu

Настраиваем там:

  1. Разрешаем ip_forward
    sudo nano /etc/sysctl.conf
    net.ipv4.ip_forward=1
  2. Туннель GRE
    /etc/network/interfaces.d/50-cloud-init.cfgauto lo
    iface lo inet loopbackauto eth0
    iface eth0 inet static
    address xxx.xxx.xxx.xxx <-Внешний адрес виртуалки
    dns-nameservers 8.8.8.8 8.8.4.4
    gateway xxx.xxx.xxx.1
    netmask 255.255.255.0auto tun0
    iface tun0 inet static
    address 10.8.0.1
    netmask 255.255.255.0
    up ifconfig tun0 multicast
    pre-up iptunnel add tun0 mode gre local xxx.xxx.xxx.xxx remote yyy.yyy.yyy.yyy <- Внешний адрес офиса 1 ttl 255
    up route add -net 192.168.0.0 netmask 255.255.252.0 gw 10.8.0.2 dev tun0
    down route del -net 192.168.0.0 netmask 255.255.252.0 gw 10.8.0.2 dev tun0auto tun1
    iface tun1 inet static
    address 10.8.1.1
    netmask 255.255.255.0
    up ifconfig tun1 multicast
    pre-up iptunnel add tun1 mode gre local xxx.xxx.xxx.xxx remote zzz.zzz.zzz.zzz <- Внешний адрес офиса 2 ttl 255
    up route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.8.1.2 dev tun1
    down route del -net 192.168.10.0 netmask 255.255.255.0 gw 10.8.1.2 dev tun1
  3. Настраиваем iptabels
    -nat -A POSTROUTING -o eth0 -j MASQUERADE
    -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -i tun0 -j ACCEPT
    -A INPUT -i tun1 -j ACCEPT
    -A INPUT -s yyy.yyy.yyy.yyy/32 -j ACCEPT
    -A INPUT -s zzz.zzz.zzz.zzz/32 -j ACCEPT
    -A INPUT -j REJECT –reject-with icmp-host-prohibited
    -A FORWARD -i tun0 -j ACCEPT
    -A FORWARD -o tun0 -j ACCEPT
    -A FORWARD -i tun1 -j ACCEPT
    -A FORWARD -o tun1 -j ACCEPTСохраняем – iptables-save > /etc/iptables.rules
    Ставим в автозагрузку:
    sudo nano /etc/network/if-pre-up.d/iptables

    #!/bin/sh
    iptables-restore < /etc/iptables.rules
    exit 0

     

    Даем права – chmod +x /etc/network/if-pre-up.d/iptables

Готово.

Теперь настраиваем juniper:

  1. Создаем gre интерфейс
    gr-0/0/0 {
    unit 0 {
    tunnel {
    source yyy.yyy.yyy.yyy;
    destination xxx.xxx.xxx.xxx;
    }
    family inet {
    address 10.8.1.2/24;
    }
    }
    }
  2. Добавляем его в секурити зону, в моем случае добавил к vpn
  3. Роутим в него необходимые подсети
    routing-options {
    static {
    route 185.63.144.0/24 next-hop 10.8.1.1;
    route 108.174.10.0/24 next-hop 10.8.1.1;
    route 91.225.248.0/24 next-hop 10.8.1.1;

Все готово! Вы великолепны!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.