Поможите настроить OVPN между Mikrotikами

Тема в разделе "Вопросы начинающих", создана пользователем Сергей Коптяев, 19 фев 2017.

  1. Сергей Коптяев

    Сергей Коптяев Новый участник

    Помогите настроить, два дня и ночи бьюсь, а оно не поддаётся. Есть задача - объединить центральный офис и несколько периферийных точек. Реализовывали раньше на Zyxel Zywall USG, но тут решили перейти на Mikrotik'и. В офисе CCR в филиалах RB941 . Что-то намудрил в маршрутах пакеты не идут в канал VPN по WAN трафик идёт, в туннель нет.

    CCR
    адрес WANофиса- 10.10.10.202/29
    LAN - 196.2.0.0/16
    Mikrotik CCR- 196.2.245.240
    VPN - 172.31.10.254

    RB941
    WANфилиала- DHCP client, может будет статика
    LAN - 192.168.123.0/24
    MikrotikRB941- 192.168.123.254
    VPN - 172.31.10.123

    Любой другой филиал - X , RB941
    WANфилиала- DHCP client, может будет статика
    LAN - 192.168.X.0/24
    Mikrotik 941- 192.168.X.254
    VPN - 172.31.10.X (pool 172.31.10.1-172.31.10.253)

    Конфиги:


    # RouterOS 6.35.2
    /interface bridge add name=br1-lan

    /interface ethernet
    set [ find default-name=ether1 ] l2mtu=1500 name=eth1-wan
    set [ find default-name=ether2 ] name=eth2-wan
    set [ find default-name=ether11 ] name=eth11-lan

    /ip pool add name=pool-ovpn ranges=172.31.10.1-172.31.10.252

    /ppp profile
    add change-tcp-mss=yes local-address=172.31.10.254 name=profile-ovpn \
    remote-address=pool-ovpn use-encryption=required

    /interface bridge port
    add bridge=br1-lan interface=eth11-lan

    /interface ovpn-server server
    set certificate=serverCCR.crt_0 cipher=blowfish128,aes128,aes192,aes256 \
    default-profile=profile-ovpn enabled=yes keepalive-timeout=disabled \
    require-client-certificate=yes

    /ip address
    add address=196.2.245.240/16 interface=eth11-lan network=196.2.0.0
    add address=10.10.10.202/29 interface=eth1-wan network=10.10.10.200

    /ip dns
    set allow-remote-requests=yes servers=95.167.167.95,95.167.167.96,8.8.8.8

    /ip firewall address-list add address=192.168.123.0/24 list=ovpn-adress-list

    /ip firewall filter
    add chain=input dst-port=1194 in-interface=eth1-wan protocol=tcp
    add chain=forward protocol=icmp
    add chain=input protocol=icmp
    add chain=input connection-state=new dst-port=80,8291,22 in-interface=br1-lan \
    protocol=tcp src-address=196.2.0.0/16
    add chain=input connection-mark=allow_in connection-state=new dst-port=80 \
    in-interface=eth1-wan protocol=tcp
    add chain=input connection-state=new dst-port=53,123 protocol=udp \
    src-address=196.2.0.0/16
    add chain=input connection-state=established,related
    add chain=output connection-state=!invalid
    add chain=forward in-interface=all-ppp src-address-list=ovpn-adress-list
    add chain=forward dst-address=192.168.123.0/24 out-interface=all-ppp
    add chain=forward connection-state=established,new in-interface=br1-lan \
    out-interface=eth1-wan src-address=196.2.0.0/16
    add action=drop chain=input
    add action=drop chain=output
    add action=drop chain=forward
    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address-list=ovpn-adress-list \
    new-routing-mark=ovpn-adress-list passthrough=no
    add action=mark-connection chain=prerouting connection-state=new dst-port=\
    9999 new-connection-mark=allow_in protocol=tcp

    /ip firewall nat

    # <ovpn-M123> not ready

    add action=masquerade chain=srcnat dst-address-list=ovpn-adress-list \
    out-interface=*F000CD
    # типа # типа *F000CD- <ovpn-M123> not ready
    add action=masquerade chain=srcnat out-interface=eth1-wan
    add action=redirect chain=dstnat dst-port=9999 protocol=tcp to-ports=80
    add action=masquerade chain=srcnat disabled=yes out-interface=*F00074
    # типа *F00074- <ovpn-M123> not ready
    /ip route
    add distance=1 gateway=172.31.10.123 pref-src=172.31.10.254 routing-mark=\
    ovpn-adress-list
    add check-gateway=ping distance=10 gateway=10.10.10.201
    add distance=1 dst-address=192.168.123.0/24 gateway=172.31.10.123

    /ppp secret
    add local-address=172.31.10.254 name=M123 password=********** profile=\
    profile-ovpn remote-address=172.31.10.123 service=ovpn

    /system clock set time-zone-name=Europe/Moscow

    /system ntp client
    set enabled=yes primary-ntp=82.100.248.10 secondary-ntp=46.8.40.31 \
    server-dns- names=109.197.193.160

    /system routerboard settings
    set cpu-frequency=1200MHz memory-frequency=1066DDR protected-routerboot= disabled
     
  2. Сергей Коптяев

    Сергей Коптяев Новый участник

    Продолжение
    ------------------------------------------------------------------
    /interface bridge

    add comment=LAN name=br1-lan

    /interface ethernet
    set [ find default-name=ether1 ] comment=ISP1 name=eth1-wan
    set [ find default-name=ether2 ] comment=ISP2 name=eth2-wan
    set [ find default-name=ether5 ] 3 name=eth5-lan

    /ip neighbor discovery set eth2-wan discover=no

    /interface ethernet
    set [ find default-name=ether3 ] master-port=eth5-lan name=eth3-lan
    set [ find default-name=ether4 ] master-port=eth5-lan name=eth4-lan

    /interface wireless security-profiles
    add authentication-types=wpa-psk,wpa2-psk mode=dynamic-keys name=\
    wpa2-protected wpa-pre-shared-key=******** wpa2-pre-shared-key=\
    ********

    /interface wireless
    set [ find default-name=wlan1 ] band=2ghz-b/g/n disabled=no mode=ap-bridge \
    security-profile=wpa2-protected ssid=********** wireless-protocol=802.11

    /interface wireless nstreme set wlan1 enable-polling=no

    /ip pool add name=dhcp-pool-wifi ranges=192.168.123.111-192.168.123.119

    /ip dhcp-server
    add address-pool=dhcp-pool-wifi disabled=no interface=br1-lan lease-time=8h \
    name=dhcp-pc

    /ppp profile
    set *0 use-encryption=required
    add change-tcp-mss=yes name=profiles-ovpn use-encryption=required use-ipv6=\
    default

    /interface ovpn-client
    add certificate=M123.crt_0 cipher=aes256 comment="Open VPN" connect-to=\
    10.10.10.202 name=ovpn password=********** profile=profiles-ovpn user=M123

    /tool user-manager customer
    set admin access=\
    own-routers,own-users,own-profiles,own-limits,config-payment-gw

    /interface bridge port
    add bridge=br1-lan interface=eth5-lan
    add bridge=br1-lan interface=wlan1

    /interface ovpn-server server
    set certificate=M123.crt_0 cipher=blowfish128,aes128,aes192,aes256 \
    default-profile=profiles-ovpn require-client-certificate=yes

    /ip address
    add address=192.168.123.254/24 interface=br1-lan network=192.168.123.0
    add address=1.2.3.3/29 interface=eth2-wan network=1.2.3.0

    /ip dhcp-client
    add default-route-distance=10 dhcp-options=hostname,clientid disabled=no \
    interface=eth1-wan

    /ip dhcp-server network
    add address=192.168.123.0/24 dns-server=192.168.123.254 gateway=\
    192.168.123.254 netmask=24

    /ip firewall address-list add address=196.2.0.0/16 list=ovpn-adress-list

    /ip firewall filter
    add action=accept chain=input dst-port=1194 protocol=tcp
    add action=accept chain=forward protocol=icmp
    add chain=input protocol=icmp
    add chain=input connection-state=new dst-port=80,8291,22 in-interface=br1-lan \
    protocol=tcp src-address=192.168.123.0/24
    add chain=input connection-mark=allow_in connection-state=new dst-port=\
    80,8291 in-interface=eth1-wan protocol=tcp
    add chain=input connection-state=new dst-port=53,123 protocol=udp \
    src-address=192.168.123.0/24
    add action=accept chain=input connection-state=established,related
    add action=accept chain=output connection-state=!invalid
    add action=accept chain=forward connection-state="" dst-address=196.2.0.0/16 \
    out-interface=ovpn
    add action=accept chain=forward in-interface=ovpn src-address=196.2.0.0/16
    add action=accept chain=forward connection-state=established,new \
    out-interface=eth1-wan src-address=192.168.123.0/24
    add action=accept chain=forward connection-state=established,related \
    dst-address=192.168.123.0/24 in-interface=eth1-wan
    add action=drop chain=input
    add action=drop chain=output
    add action=drop chain=forward

    /ip firewall mangle
    add action=mark-connection chain=prerouting connection-state=new dst-port=\
    9999 new-connection-mark=allow_in protocol=tcp
    add action=mark-routing chain=prerouting new-routing-mark=ovpn-adress-list \
    passthrough=no src-address-list=ovpn-adress-list

    /ip firewall nat
    add action=redirect chain=dstnat dst-port=9999 protocol=tcp to-ports=80
    add action=masquerade chain=srcnat out-interface=eth1-wan
    add action=masquerade chain=srcnat out-interface=ovpn src-address-list=\
    ovpn-adress-list

    /ip route

    add distance=1 gateway=ovpn pref-src=172.31.1.254 routing-mark=ovpn-adress-list
    add distance=5 dst-address=196.2.0.0/16 gateway=172.31.10.254 pref-src= 0.0.0.0


    /system clock set time-zone-name=Europe/Moscow

    /system lcd
    set contrast=0 enabled=no port=parallel type=24x4

    /system lcd page
    set time disabled=yes display-time=5s
    set resources disabled=yes display-time=5s
    set uptime disabled=yes display-time=5s
    set packets disabled=yes display-time=5s
    set bits disabled=yes display-time=5s
    set version disabled=yes display-time=5s
    set identity disabled=yes display-time=5s
    set ovpn disabled=yes display-time=5s
    set br1-lan disabled=yes display-time=5s
    set wlan1 disabled=yes display-time=5s

    set eth1-wan disabled=yes display-time=5s
    set eth2-wan disabled=yes display-time=5s
    set eth3-lan disabled=yes display-time=5s
    set eth4-lan disabled=yes display-time=5s
    set eth5-lan disabled=yes display-time=5s

    /system ntp client
    set enabled=yes primary-ntp=131.234.137.64 secondary-ntp=91.207.136.55

    /system ntp server set enabled=yes

    /system routerboard settings set init-delay=0s

    /tool user-manager database set db-path=user-manager


    eth2-wan пока не задействован, предполагается резервирование каналов, с резервированием VPN. Есть дубль маршрутов которые повторяют друг друга /iproute
    add distance=1 gateway=ovpn pref-src=172.31.1.254 routing-mark=ovpn-adress-list
    add distance=5 dst-address=196.2.0.0/16 gateway=172.31.10.254 pref-src=0.0.0.0

    Пока не включишь второй маршрут даже пинги на 196.2.0.0 не идут , хотя должны уходить по дефолтному. Что-то напутано, не пойму что опыта неделя.

    Через RB941 ходят в интернет, ещё хотелось бы дополнить фильтрацию для защиты от угроз из интернета, но чтобы не сильно замедлить систему.
     
    Последнее редактирование: 19 фев 2017
  3. Илья Князев

    Илья Князев Администратор Команда форума

    Я пас. Не работал серьезно с ovpn.
     
  4. None

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

    IMHO что-то тут много лишнего в фаерволе да и в настройках есть неточности

    сам ВПН туннель поднимается? R есть напротив интерфеса?

    Код:
    add action=masquerade chain=srcnat out-interface=ovpn src-address-list=ovpn-adress-list
    не вижу никакого смысла маскарадить этот трафик

    отключите, на время добавленные руками маршруты, которые касаются ВПН, а также, на время отладки, отключите запрещающие правила на фаерволе, и все правила которые относятся к ВПН, в т.ч. и НАТ

    с ССR пинг до 172.31.10.123 проходит?
    с 941 на 172.31.10.254 проходят?

    если проходят, на ССR добавьте маршрут
    dst addresses=192.168.123.0/24 gateway=172.31.10.123

    на 941
    dst addresses=196.2.0.0/16 gateway=172.31.10.254

    при этом ПК из ЦО должны пинговать ПК филиала и наоборот

    в будущем, можно будет настроить динамическую маршрутизацию (OSPF), чтобы не прописывать маршруты руками в ЦО и на железках в филиале

    когда все заработает как нужно, настроить фаервол.
     
  5. Сергей Коптяев

    Сергей Коптяев Новый участник

    Спасибо за ответ!
    Маскарад убрал. Маршруты добавил. В интерфейсе R стоит, пакеты ходят. Не пойму только почему маршрут вида /iproute
    add distance=1 gateway=ovpn pref-src=172.31.1.254 routing-mark=ovpn-adress-list не работает, хотя это и не критично, а только удобство для клонирования. Ещё заметил непонятность на CCR, при написании в правилах файервола в интерфейсах интерфейса клиента OVPN <ovpn-M123> приводит к тому, что при отпадении филиала Mikrotik заменяет интерфейс <ovpn-M123> на интерфейс eth1-wan. Пришлось поменять <ovpn-M123> на all-ppp, работает, но что-то не то.
    Про OSPF на Микротике надо почитать, да советов послушать .
    По ходу дела наступил ещё на пару грабель. Можно ли выключить питание на USB порту? Предполагается использовать иногда свистки в качестве резерва. Так можно ли их выключать совсем за ненадобностью, а не только отключать интерфейс. Кроме этого ничего не начитал- >interface ppp-client disable [find comment="modem-USB"].
    Как просто можно запретить тем, кто подключился по wi-fi ходить на внешние интерфейсы, а сидеть только в локалке филиала. Пробовал Filter Rules, но пишет ошибку, что интерфейс должен быть master, дословно не помню.
     
    Последнее редактирование: 21 фев 2017
  6. Илья Князев

    Илья Князев Администратор Команда форума

    /system routerboard usb power-reset duration=X
    Выключает питание на USB на X секунд
    Значит у вас WiFi в бридже. Вытащите его оттуда, назначьте свою подсеть и настройте DHCP.
    Или в свойствах Bridge сделайте правило запрещающее Forward с Wlan интерфейса.
     
  7. Сергей Коптяев

    Сергей Коптяев Новый участник

    Спасибо.
    /system routerboard usb power-reset duration=X больше подходит для ребута свистка.
    Wi-Fi действительно в бридже. В свойствах Bridge сделать правило запрещающее Forward с Wlan интерфейса так? Или неправильно?

    22.jpg
     
  8. Илья Князев

    Илья Князев Администратор Команда форума

    in-interface=wlan1
    MAC-Protocol=IP
    dst-address=!LAN_NET
    Action=drop
     
  9. Сергей Коптяев

    Сергей Коптяев Новый участник

    Илья, вроде всё так и должно быть, но клиенты wlan1 продолжают попадать а интернет. У меня LAN_NET - 192.168.123.0/24

    _06 - копия.jpg
     
  10. Илья Князев

    Илья Князев Администратор Команда форума

    Тогда попробуйте поставить в свойствах бриджа Use-ip-firewall=yes и отфильтруйте на файрволл.
     
  11. Сергей Коптяев

    Сергей Коптяев Новый участник

    Сразу не обратил внимание или не проверил, но у меня не пингуются компы из сети офиса в сети филиала. Сам Mikrotik филиала пингается, к компам филиала можно подключаться по RDP, а пингов нет. Понятно вроде, что Mikrotik их режет, но где копать не пойму. Forward на icmp как бы настроен.
     
  12. Илья Князев

    Илья Князев Администратор Команда форума

    Скорее всего файрволл винды.
     
  13. Сергей Коптяев

    Сергей Коптяев Новый участник

    Внутри сети филиала компы друг друга пингуют, бандмауэры выключены.
     
  14. Илья Князев

    Илья Князев Администратор Команда форума

    Проверьте с каким-нибудь коммутатором например. Антивирусы тоже могут блокировать трафик
     
  15. Сергей Коптяев

    Сергей Коптяев Новый участник

    Пинги починил, спасибо.
    Илья, при подключении устройства по wi-fi оно не видит открых шар на компах в br1-lan, хотя сам wi-fi включен в этот бридж. Пинги, причём, ходят в обе стороны. Подскажите где копать?
     
  16. Илья Князев

    Илья Князев Администратор Команда форума

    В клиентской ОС ))
     
  17. Сергей Коптяев

    Сергей Коптяев Новый участник

    Думаю в настройке Mikrotik. Если вместо него воткнуть другую точку доступа wi-fi (использовались кинетики, асусы, д'линки и даже level-one) то всё будет работать. Не втыкать же дополнительную железяку раз Mikrotik это умеет.
     
  18. Илья Князев

    Илья Князев Администратор Команда форума

    На бридже не включено Use-IP-Firewall?
     
  19. Сергей Коптяев

    Сергей Коптяев Новый участник

    Прошу прощения за задержку...
    Да, Илья, включено.
     
  20. Илья Князев

    Илья Князев Администратор Команда форума

    Ну значит у вас трафик между портами бриджа еще и файрволлом в цепочке forward фильтруется.