Интернет из PPTP для определенных IP

Тема в разделе "Вопросы начинающих", создана пользователем Akmalov, 13 июн 2017.

  1. Veresk

    Veresk Новый участник

    Нашел как решить вопрос)
    Может кому пригодится:

    Для того чтобы любой ново-подключенный клиент к VPN серверу мог ходить через VPN тунель необходимо прописать в ручную скрипты в разделе PPP->Profiles, далее необходимо выбрать профайл VPN сервера и перейти на вкладку Scripts
    # On Up:
    /ip firewall filter add action=accept chain=forward disabled=no in-interface=$interface out-interface=vpn-tunnel place-before=[/ip firewall filter find comment="Allow Internet via VPN for the Internet group"] comment=("VPN connected ".$user)
    # On Down:
    /ip firewall filter remove [find comment=("VPN connected ".$user)]

    P.S.
    Да, это само сабо-собой подразумевает, что у Вас есть некое правило с комментарием "Allow Internet via VPN for the Internet group", перед которым и необходимо разместить вышеобзначенное правило.
     
    Последнее редактирование: 5 июл 2017
  2. А зачем его создавать динамически ? К чему такие сложности ?
     
  3. Veresk

    Veresk Новый участник

    Денис, доброго Вам дня
    Даже и не знаю как Вам ответить)
    Мне кажется, чтобы дискуссию нашу не затягивать - Вам лучше всего сразу пояснить на примере - как сделать данную задачу очень просто, чем вопрошать у такого младого отрока коим являюсь я в делах роутера данного)
    Я был бы Вам премного благодарен за то.
     
  4. Veresk

    Veresk Новый участник

    Друзья, видимо Денис сейчас очень занят. Может кто сможет помочь и подсказать, что имел в виду Денис, когда говорил, что можно создать правила описанные мною выше статически? Как сделать статические правила в моем случае?
     
  5. Я бы сделал так:
    В PPP, есть такой тип интерфейса как l2tp Server Binding, который привязывается к конкретному пользователю. Т.е. можно создать под каждого пользователя свой интерфейс и "статически" прописать этот интерфейс в правилах Firewall, к примеру.
     
  6. Veresk

    Veresk Новый участник

    Утро вечера мудренее - ИСТИНА))
    Денис, благодарю Вас за подсказку.
    Все заработало.
    Возможно кому то пригодится)
    Ниже приведена полностью работающая конфигурация создания VPN L2TP/I2Sec сервера для двух пользователей:

    # Начальные настройки
    :global VPNSERVERNET "192.168.10";
    :global HOMELOCALNET "10.10.1"
    :global VPNSERVERSECRET "VPN_SECRET";

    :global VPNNAME1 user1;
    :global VPNPASSWORD2 paswd1;
    :global VPNNAME2 user2;
    :global VPNPASSWORD2 paswd2;

    # Cоздаем пул адресов для VPN сети
    /ip pool add name=vpn-server-pool ranges=($VPNSERVERNET.".10".$VPNSERVERNET.".115")
    # Создаем профайл
    /ppp profile add name=vpn-server-profile local-address=vpn-server-pool remote-address=vpn-server-pool dns-server=($HOMELOCALNET.".1") use-compression=yes use-encryption=yes change-tcp-mss=yes use-upnp=yes

    # Создаем VPN пользователей
    /ppp secret
    add name=$VPNNAME1 password=$VPNPASSWORD1 service=l2tp profile=vpn-server-profile
    add name=$VPNNAME2 password=$VPNPASSWORD2 service=l2tp profile=vpn-server-profile

    # Подключаем l2tp сервер
    /interface l2tp-server
    server set enabled=yes authentication=mschap2 default-profile=vpn-server-profile ipsec-secret=$VPNSERVERSECRET use-ipsec=yes

    # Прописываем связанные с созданными выше пользователями интерфейсы
    /interface l2tp-server
    add name=("l2tp-".$VPNNAME1."-user") user=$VPNNAME1 comment=("L2TP-INTERFACE-FOR-".$VPNNAME1."-USER")
    add name=("l2tp-".$VPNNAME2."-user") user=$VPNNAME2 comment=("L2TP-INTERFACE-FOR-".$VPNNAME2."-USER")

    # Подключаем I2Sec шифрование
    /ip ipsec peer add address=0.0.0.0/0 port=500 auth-method=pre-shared-key secret=$VPNSERVERSECRET exchange-mode=main-l2tp send-initial-contact=yes nat-traversal=yes proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128,3des dh-group=modp1024 generate-policy=port-override lifetime="1d 00:00:00" dpd-interval=120 dpd-maximum-failures=5
    /ip ipsec proposal set [ find default=yes ] auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-256-ctr,3des lifetime=30m pfs-group=modp1024

    # Включаем proxy-arp для локального интерфейса ether2, который является мастером для остальных (ether3-ether5)
    /interface ethernet set ether2 arp=proxy-arp


    # создаем статические плавила для выше-созданных и привязанных к соответствующим пользователям VPN интерфейсов, которые будут подключаться к L2TP серверу

    #--------------------------------------------------------------------
    #
    # Для таких же новичков коим являюсь и я - ниже обозначенные правила необходимо
    # вставлять после правил ALLOW ESTABLISHED & NEW и ДО цепочки ALL OTHER DROP
    #
    #---------------------------------------------------------------------
    /ip firewall filter
    # для первого пользователя
    add action=accept chain=forward disabled=no in-interface=("l2tp-".$VPNNAME1."-user") out-interface=vpn-tunnel comment=("ALLOW REQUEST FROM VPN USER - ".$VPNNAME1)
    add action=accept chain=forward disabled=no out-interface=("l2tp-".$VPNNAME1."-user") in-interface=vpn-tunnel comment=("ALLOW DONWLOAD FOR VPN USER - ".$VPNNAME1)
    # Для второго пользователя
    add action=accept chain=forward disabled=no in-interface=("l2tp-".$VPNNAME2."-user") out-interface=vpn-tunnel comment=("ALLOW REQUEST FROM VPN USER - ".$VPNNAME2)
    add action=accept chain=forward disabled=no out-interface=("l2tp-".$VPNNAME2."-user") in-interface=vpn-tunnel comment=("ALLOW DONWLOAD FOR VPN USER - ".$VPNNAME2)

    #
    # В данном случае vpn-tunnel это интерфейс VPN тунеля с mikrotik до VPN сервера в миру.
    #
     
    Последнее редактирование: 13 июл 2017
  7. Veresk

    Veresk Новый участник

    Все же решил для памяти привести код для построения VPN туннеля с mikrotik до внешнего VPN сервера построенного на SoftEther:
    Весь нижеприведенный код необходимо прописать до создания VPN L2TP сервера, описание которого приведено в предыдущем посте (опять же для новичков пишу), так как созданный здесь vpn-tunnel интерфейс используется для того, чтобы подключенные к mikrotik L2TP клиенты могли работать через этот самый тунель.
    #
    # VPN tunnel to VPS server through SoftEther
    #
    :global SHAREDSECRETKEY "VPN_SECRET";
    :global HOMELOCALNET "10.10.1"
    :global VPNPROVIDERIP "ХХХ.ХХХ.ХХХ.ХХХ";
    :global USER "vpn_clent_user";
    :global PWD "vpn_clent_password";

    /interface l2tp-client add name=vpn-tunnel allow=mschap2 connect-to=$VPNPROVIDERIP disabled=no mrru=1600 user=$USER password=$PWD comment="VPN TUNNEL TO REMOTE SERVER"
    /ip ipsec peer add address=$VPNPROVIDERIP port=500 auth-method=pre-shared-key secret=$SHAREDSECRETKEY exchange-mode=main-l2tp send-initial-contact=yes nat-traversal=yes proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128,3des
    /ip ipsec proposal add name=proposal-softether auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-256-ctr,3des
    /ip ipsec policy add src-address=($HOMELOCALNET.".1") dst-address=$VPNPROVIDERIP protocol=udp proposal=proposal-softether
     
    Последнее редактирование: 13 июл 2017
    Денис Друженков нравится это.