Появилась задачка открыть из офиса сайт, который работает только в США, сделал это таким способом, через Juniper Ubuntu GRE tunnel:
Juniper Ubuntu GRE tunnel
Регистрируемся на digitalocean.com
Получаем 10$ нахаляву, я же ваш друг, и ссылка реферальная (:
Создаем виртуалку на ubuntu
Настраиваем там:
- Разрешаем ip_forward
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1 - Туннель 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 - Настраиваем 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:
- Создаем 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;
}
}
} - Добавляем его в секурити зону, в моем случае добавил к vpn
- Роутим в него необходимые подсети
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;
Все готово! Вы великолепны!