Mikrotik + VPN. Как ограничить выход в vpn только определенным клиентам

Собственно кейс:

Есть у нас небольшой офис на пол дюжины человек. Стоит один роутер (естественно  Mikrotik) и один входящий канал интернета. По специфике работы этих людей, им понадобилось “работать” из разных частей мира. Т.е. двоим нужно было выходить в “Мир” из одной страны, двум другим  из другой. И остальным – без разницы.

Было принято решение подключить vpn… Даже два. Но из минусов – скорость из этих туннелей, ее хватало только 1-2 клиентам работать комфортно. Поэтому весь офис вешать на vpn  не захотел, да и переключения между разных впн – тоже не вариант.

Т.к. все работают за рабочими станциями – все ip  из dhcp leases привязал статикой в роутере.

Далее опишу те настройки, что добавлял к уже настроенному роутеру к интернету.

Добавил 2 впна:

/interface l2tp-client

add connect-to=xxx.xxx.xxx.xxx disabled=no name=l2tp-out-russia password=1234qwe user=3242953467



/interface sstp-client

add connect-to=yyy.yyy.yyy.yyy disabled=no name="HolY SSTP Net" password=123123 profile=default-encryption user=34523461

Cоздал два туннеля, l2tp и sstp с IP, логинами и паролями (Шифрование и т.п. опускаю, для простоты статьи и что бы не залезать в дебри IPSec)

Прописал маскарад на них:

/ip firewall nat



#HolY vpn



add action=masquerade chain=srcnat out-interface="HolY SSTP Net"



# RUSS van

add action=masquerade chain=srcnat out-interface=l2tp-out-russia

В принципе, можно дописать было src адреса конкретных клиентов, но не стал

 

И теперь самое основное – это правильно промаркировать все входящие соединения от впн и трафик от нужных клиентов, что бы потом их можно было отдельно маршрутизировать в свои впн

/ip firewall mangle

add action=mark-connection chain=input in-interface="HolY SSTP Net" new-connection-mark=cin_HOLY passthrough=yes

add action=mark-connection chain=input in-interface=l2tp-out-russia new-connection-mark=cin_RUSS passthrough=yes



add action=mark-routing chain=output connection-mark=cin_HOLY new-routing-mark=route_HOLY passthrough=no

add action=mark-routing chain=output connection-mark=cin_RUSS new-routing-mark=route_RUSS passthrough=no 



add action=mark-routing chain=prerouting new-routing-mark=its_out_HOLY passthrough=no src-address=192.168.88.218

add action=mark-routing chain=prerouting new-routing-mark=disnetern_out_HOLY passthrough=no src-address=192.168.88.229

add action=mark-routing chain=prerouting new-routing-mark=mary_out_RUSS passthrough=no src-address=192.168.88.223

add action=mark-routing chain=prerouting new-routing-mark=alisa_out_RUSS passthrough=no src-address=192.168.88.233

Первое, что делаем – это нужно для каждого входящего в роутер соединения из впн сделать метку соединения. Определяем направление, интерфейс, название метки.

Далее маркируем маршрут, в зависимости от имени соединения и присваиваем новое имя метке маршрута.

Ну и последнее – это маркируем трафик от тех клиентов, которых мы собираемся выпускать в “Мир” через впн. В моем случае – это два ip “пойдут” через “HolY SSTP Net”, вторые два через l2tp-out-russia.

 

Ну и заключительный момент, прописать собственно маршруты для маркированного трафика, что мы определили выше:

/ip route

add distance=1 gateway="HolY SSTP Net" routing-mark=route_HOLY

add distance=1 gateway=l2tp-out-russia routing-mark=route_RUSS

add distance=1 gateway="HolY SSTP Net" routing-mark=its_out_HOLY

add distance=1 gateway="HolY SSTP Net" routing-mark=disnetern_out_HOLY



add distance=1 gateway=l2tp-out-russia routing-mark=mary_out_RUSS

add distance=1 gateway=l2tp-out-russia routing-mark=alisa_out_RUSS

Первые две строчки – мы указываем дефолтные маршруты для самого роутера на обе впн. И дальше для 4х человек маршруты в нужные тоннели.

На этом собственно и все. Теперь 2 клиента выходят в “мир” из одной страны, вторые два – из другой. Все остальные, кто будет подключаться к роутеру – будут выходить в сеть через провайдера интернета.

 



2019-08-27T15:47:15
MikroTik