OpenVPN-сервер на pfSense за Mikrotik`ом
В связи с тем, что RouterOS в данное время не поддерживает OpenVPN по протоколу UDP (что даёт большую скорость в канале, в сравнении с TCP), было разработано решение по размещению сервера OpenVPN за микротиком на базе pfSense. Что в свою очередь упрощает создание пользователя на VPN-сервере, публикацию новых сетей, а самое главное клиенту отправляется установочный файл с автоматически добавленными сертификатами пользователя.
- Предположим, что клиента используется локальная подсеть 10.0.0.0/24
- Установить ВМ
- Определить интерфейсы WAN и LAN.
- На микротике добавить на интерфейс (бридж локальной сети) 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
- На pfSense установить на интерфейс WAN ip из добавленной подсети (например, 172.15.254.2/30)
- На pfSense установить шлюз WAN интерфейсу (например, 172.15.254.1)
- Назначить LAN интерфейсу свободный iP из локальной сети (например, 10.0.0.254/24, если используется локальная сеть 10.0.0.0/24)
- Зайти на pfSense из локальной сети по ip 10.0.0.254
- Interfaces -> WAN и там снять галочки на последних двух пунктах (Block private networks and loopback addresses) и (Block bogon networks).
- System -> Certificate Manager -> CAs сгенерировать CA сертификат
- System -> Certificate Manager -> Certificates сгенерировать сертификат VPN Сервера
- 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) если сетей несколько, разделять записи точкой с запятой.
- System -> User Manager — > Users создать пользователя VPN
Disabled поставить галочку (This user cannot login).
Username ввести имя пользователя на латинице
Full name ввести имя пользователя на латинице
Certificate поставить галочку (Click to create a user certificate)
Descriptive name ввести имя пользователя на латинице
- System -> Package Manager -> Installed Packages
Перейти в Available Packages и установить два пакета:
openvpn-client-export
14.1 OpenVPN -> Client Export Utility Прописать в Host Name либо внешний IP, либо DNS-имя которое ведёт на ваш сервер OpenVPN
Quagga_OSPF
- VPN -> OpenVPN -> Servers -> Client Export скачать необходимый OpenVPN клиент для пользователя.
- 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
- Firewall -> Rules -> LAN добавить правило:
Action Pass
Address Family IPv4
Protocol Any
Source LAN net
Destination any
- 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 (локальная сеть)
- 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
- 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
- На микротике настроить 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
- На микротике добавить проброс на сервер 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