Всем привет.
Имеется:
VPS Ubuntu 16.04 с постоянным внешним ip: 1.1.1.1(пример), а клиенты vpn получают ip 192.168.42.10-20
На VPS Ubuntu поднят L2TP ipsec VPN чтобы можно было подключаться с любых устройств чтобы ходил инет трафик по этому vpn. Поднято было с помощью этого:
https://github.com/hwdsl2/setup-ipsec-vpn#quick-start
На всех офисах используются микротики с подключением к прову через pppoe.
Все микротики удаленных офисов подключил к этому серверу vpn l2tp. Пустил только некоторые машины удаленных офисов в vpn трафик(такова задача), они работают без проблем, имеют внешний ip адрес сервера vpn значит их инет трафик гуляет через vpn как надо.
Но тут встала задача: необходимо иметь доступ ко всем компьютерам удаленных офисов, которые подключены к ubuntu по vpn l2tp ipsec через микротики включая даже те компьютеры трафик которых не ходит по vpn.
Удаленных офисов на данный момент 3. И необходимо видеть все компьютеры всех офисов из любого офиса. (извините за тавтологию)
Только 2 офиса имеют постоянный внешний ip.
Необходимо также видеть все сети подключаясь к ubuntu по vpn с любых других мест включая мобильные устройства.
Получалось связать все офисы посредством другой vps с помощью cloud hosted router через "чистый" ipsec, но в таком случае необходимые машины не получают внешний ip vps и трафик ходит не защищенный. И также в таком случае из любой удаленной сети нельзя подключить мобильное устройство по vpn к данному серверу по требованию.
############
РЕШЕНО:
1. на VPS с CHR настроил сервер pptp + l2tp ipsec
2. все удаленные офисы законнектил к этому CHR по pptp
3. прописал маршруты на CHR и микротиках удаленных офисов(пару строк)
4. с 3g/4g или другого устройства подключаясь по l2tp к CHR вижу все офисы
5. на микротиках удаленных офисов добавил интерфейс l2tp client и законнектил к CHR - пустив весь трафик определенных устройств или подсеть целиком по l2tp
РЕЗУЛТАТ:
При подключении к CHR по L2TP ipsec - имею доступ ко всем устройствам удаленных офисов из любого места.
Пример настройки CHR:
подсеть: 1.1.1.0/24
шлюз: 1.1.1.1
wan: 123.45.67.89
/interface pptp-server server set enabled=yes
/ip firewall filter remove [find comment="PPTP Access"]
/ip firewall filter add chain=input protocol=gre comment="PPTP Access"
/ip firewall filter add chain=input dst-port=1723 protocol=tcp comment="PPTP Access"
/ip firewall filter move [find comment="PPTP Access"] 1
/ppp secret remove [find comment=pptp_2_2_2_0]
/ppp secret add local-address=1.1.1.1 remote-address=10.0.0.100 name=pptp_2_2_2_0 password="yourpass"
/ip route remove [find routing-mark=vpn_2_2_2_0]
/ip route add distance=1 dst-address=0.0.0.0/0 gateway=10.0.0.100 check-gateway=ping routing-mark=vpn_2_2_2_0
/ip route rule remove [find table=vpn_2_2_2_0]
/ip route rule add action=lookup disabled=no dst-address=2.2.2.0/24 table=vpn_2_2_2_0
/ip route rule move [find table=vpn_2_2_2_0] 0
# включить proxy-arp на bridge-local
/interface bridge
set [find name=bridge-local] arp=proxy-arp
Пример настройки mikrotik удаленного офиса для коннекта к CHR:
подсеть: 2.2.2.0/24
пароль: yourpass
ip mikrotik удаленного офиса в сети CHR: 10.0.0.100 (будет дан при подключении по pptp к CHR)
/ip firewall filter remove [find comment=to_123.45.67.89]
/ip firewall filter add dst-address=123.45.67.89 action=accept chain=output comment=to_123.45.67.89
/ip firewall filter move [find comment=to_123.45.67.89] 1
/interface pptp-client remove [find name=pptp_123.45.67.89]
/interface pptp-client add name=pptp_123.45.67.89 add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=123.45.67.89 dial-on-demand=no disabled=no keepalive-timeout=60 max-mru=1450 max-mtu=1450 mrru=1600 user=pptp_2_2_2_0 password="yourpass" profile=default-encryption
/ip route remove [find routing-mark=vpn_123.45.67.89]
/ip route add distance=1 dst-address=0.0.0.0/0 gateway=pptp_123.45.67.89 check-gateway=ping routing-mark=vpn_123.45.67.89
/ip route rule remove [find table=vpn_123.45.67.89]
/ip route rule add action=lookup disabled=no dst-address=1.1.1.0/24 table=vpn_123.45.67.89
/ip route rule move [find table=vpn_123.45.67.89] 0
Настройка сервера L2TP ipsec на CHR думаю труда не составит.