Давайте предположим, что вы будете использовать PPTP VPN только для демонстрации команд, которые вам нужно выполнить.
Поскольку шифрование PPTP уже давно нарушено, я предлагаю вам использовать что-то более безопасное (например, OpenVPN). Принцип один и тот же, независимо от того, какую технологию VPN/ туннеля вы используете.
Итак, сначала вы создаете VPN без добавления маршрута шлюза по умолчанию.
/interface pptp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=VPN_SERVER_IP \
dial-on-demand=no disabled=no max-mru=1440 max-mtu=1440 mrru=dis \
name=VPN_NAME password="MY_STRONG_PASSWORD" profile=default-encryption user=USERNAME
Затем вы создаете новую таблицу маршрутизации, добавляя шлюз по умолчанию через VPN с новой меткой маршрутизации vpn
. Это позволит вам маршрутизировать пакеты через VPN.
/ip route add dst-address=0.0.0.0/0 distance=1 gateway=VPN_GATEWAY_IP routing-mark=vpn
Следующий маршрут не обязателен, если вы хотите заблокировать исходящий трафик, если VPN не работает:
/ip route add dst-address=0.0.0.0/0 type=unreachable distance=2 routing-mark=vpn
Нам также нужно сделать NAT для пакетов, которые будут отправляться через интерфейс VPN.
/ip firewall nat add chain=srcnat out-interface=VPN_NAME action=masquerade
Теперь мы добавляем правило mangle
которое будет соответствовать целевым IP-адресам, которые мы хотим, и выполняем mark-routing
на них, чтобы они использовали созданную нами таблицу маршрутов vpn
.
/ip firewall mangle add chain=prerouting dst-address-list=VPN action=mark-routing new-routing-mark=vpn
Наконец, мы создаем список Address List
на брандмауэре с IP-адресами, которые мы хотим направить через VPN.
/ip firewall address-list add list=VPN address=1.1.1.1
/ip firewall address-list add list=VPN address=2.2.2.2
/ip firewall address-list add list=VPN address=3.3.3.3
/ip firewall address-list add list=VPN address=4.4.4.4
Вы повторяете последнее правило столько раз, сколько вам нужно для столько IP-адресов, сколько вы хотите маршрутизировать через VPN.
Помните, что приведенные выше правила не обеспечивают никакой безопасности в отношении того, кто за вашим маршрутизатором сможет получить доступ к VPN и т.д. Возможно, вам потребуется добавить соответствующие проверки IP-адресов источника в правила, чтобы сделать их более безопасными.
Также этот метод будет маршрутизировать целые IP через VPN. Если вам нужно маршрутизировать определенные порты / протоколы через VPN, вы просто создаете дополнительные правила mangle, которые соответствуют всем, что вам нужно, и выполняете mark-routing
на них.