База знаний IT

База знаний старого айтишника

OpenVPN-сервер на pfSense за Mikrotik`ом

В связи с тем, что RouterOS в данное время не поддерживает OpenVPN по протоколу UDP (что даёт большую скорость в канале, в сравнении с TCP), было разработано решение по размещению сервера OpenVPN за микротиком на базе pfSense. Что в свою очередь упрощает создание пользователя на VPN-сервере, публикацию новых сетей, а самое главное клиенту отправляется установочный файл с автоматически добавленными сертификатами пользователя.

  1. Предположим, что клиента используется локальная подсеть 10.0.0.0/24
  2. Установить ВМ
  3. Определить интерфейсы WAN и LAN.
  4. На микротике добавить на интерфейс (бридж локальной сети) Bridge_lan дополнительный ip из свободной подсети (например, 172.15.254.1/30)

/ip address add address=172.15.254.1/30 interface= Bridge_lan network=172.15.254.0

  1. На pfSense установить на интерфейс WAN ip из добавленной подсети (например, 172.15.254.2/30)
  2. На pfSense установить шлюз WAN интерфейсу (например, 172.15.254.1)
  3. Назначить LAN интерфейсу свободный iP из локальной сети (например, 10.0.0.254/24, если используется локальная сеть 10.0.0.0/24)
  4. Зайти на pfSense из локальной сети по ip 10.0.0.254
  5. Interfaces -> WAN и там снять галочки на последних двух пунктах (Block private networks and loopback addresses) и (Block bogon networks).
  6. System -> Certificate Manager -> CAs сгенерировать CA сертификат
  7. System -> Certificate Manager -> Certificates сгенерировать сертификат VPN Сервера
  8. VPN -> OpenVPN -> Servers добавить сервер со следующими параметрами:

Server mode: Remote Access SSL/TLS

Server certificate – выбрать ранее созданный сертификат VPN сервера

IPv4 Tunnel Network назначить подсеть клиентам OpenVPN (например, 10.10.100.0/24)

Custom options указать необходимые маршруты, предаваемые клиентам: push «route 10.0.0.0 255.255.255.0»; (заменить 10.0.0.0 на локальную сеть, в которую необходим доступ пользователям OpenVPN) если сетей несколько, разделять записи точкой с запятой.

  1. System -> User Manager — > Users создать пользователя VPN

Disabled поставить галочку (This user cannot login).

Username ввести имя пользователя на латинице

Full name ввести имя пользователя на латинице

Certificate поставить галочку (Click to create a user certificate)

Descriptive name ввести имя пользователя на латинице

  1. System -> Package Manager -> Installed Packages

Перейти в Available Packages и установить два пакета:

openvpn-client-export

14.1 OpenVPN -> Client Export Utility Прописать в Host Name либо внешний IP, либо DNS-имя которое ведёт на ваш сервер OpenVPN

Quagga_OSPF

  1. VPN -> OpenVPN -> Servers -> Client Export скачать необходимый OpenVPN клиент для пользователя.
  2. Firewall -> Rules -> LAN добавить правило:

Action Pass

Address Family IPv4

Protocol UDP

Source any

Destination Single host or alias 172.15.254.2 (ip WAN pfSense)

Destination Port Range OpenVPN

  1. Firewall -> Rules -> LAN добавить правило:

Action Pass

Address Family IPv4

Protocol Any

Source LAN net

Destination any

  1. Firewall -> Rules -> OpenVPN добавить правило:

Action Pass

Address Family IPv4

Protocol Any

Source Network 10.10.100.0/24 (сеть OpenVPN)

Destination Network 10.0.0.0/24 (локальная сеть)

  1. Firewall -> Rules -> WAN

Action Pass

Protocol UDP

Source Single host or alias 172.15.254.1

Destination Single host or alias 224.0.1.1

Destination Port Range NTP

Firewall -> Rules -> WAN
Action Pass
Protocol UDP
Destination Single host or alias 172.15.254.2 (ip WAN pfSense)
Destination Port Range OpenVPN

  1. Services -> Quagga OSPFd -> Global Settings

Master Password password

Router ID 172.15.254.1 (ip WAN интерфейса)

Area 0.0.0.0

These rules take precedence over any redistribute options specified above

10.10.100.0/24 (подсеть OpenVPN)

10.0.0.0/24 (локальная сеть)

Services -> Quagga OSPFd -> Interface Settings

Interface WAN

Area 0.0.0.0

После этих настроек нажать Save

  1. На микротике настроить OSPF

/interface bridge add name=loopback

/ip address add address=10.255.255.1 interface=loopback network=10.255.255.1

/routing ospf instance set [ find default=yes ] router-id=10.255.255.1

/routing ospf network add area=backbone network=10.0.0.0/24

  1. На микротике добавить проброс на сервер OpenVPN

/ip firewall nat add action=dst-nat chain=dstnat dst-port=1194 in-interface-list=W

AN protocol=udp to-addresses=172.15.254.2

Ответить

Вы должны быть зарегистрированы в для возможности комментировать.