понедельник, 24 февраля 2014 г.

Настройка SSTP соединений на маршрутизаторах Mikrotik

Secure Socket Tunneling Protocol (SSTP)  - это транспорт использующий PPP туннель поверх SSL 3.0 канала. Использование SSL на TCP-порт 443 SSTP позволяет передавать  через практически все брандмауэры и прокси-серверов.
TCP соединение устанавливается от клиента к серверу. (по умолчанию используется 443 порт);
SSL Проверяется сертификат сервера. Если сертификат валидный соединение устанавливается, если нет соединение сбрасывается.
Клиент отправляет контрольный SSTP пакет через HTTPS сессию, который устанавливает SSTP сессию на обоих машинах.
PPP общается с сервером поверх SSTP. Клиент проходит авторизацию на сервере, и получает связку IP адрес и SSTP интерфейс.
 SSTP тунель установлен и можно передавать информацию.
   
Примечание:
Если используются 2 устройства Mikrotik то можно создать SSTP туннель без сертификатов с любым доступным методом авторизации.
В иных конфигурациях для создания защищенных туннелей с MSCHAP авторизацией использование сертификатов обязательно.

Корректно SSTP работает только на Windows Vista, Windows 7 и RouterOS. 
Сертификаты.

Для настройки SSTP туннеля необходимы сертификаты. На сервере проверка подлинности происходит по логину\паролю, но
на клиент серверное соединение производит проверку сертификата. Также сертификаты необходимы для SSL и PPP соединения.
Если SSTP клиенты - это Windows-ПК то для настройки SSTP туннеля необходимо импортировать самоподписаный сертификат сервера в систему и пометить этот сертификат как доверенный.
Настройка SSTP клиента.

Sub-menu: /interface sstp-client

Опции

add-default-route (yes | no; Default: no)     Задать ip адресс SSTP сервера как шлюз по умолчанию.
authentication (mschap2 | mschap1 | chap | pap; Default: mschap2, mschap1, chap, pap) Выбор метода проверки подлиности.
certificate (string | none; Default: none)     Использование сертификата.
comment (string; Default: )     Задать коментарий для соединения.
connect-to (IP:Port; Default: 0.0.0.0:443)     ip адресс и порт удаленного SSTP сервера.
dial-on-demand (yes | no; Default: no)    
disabled (yes | no; Default: yes)     Включение\выключение интерфейса.По умолчанию выключен.
keepalive-timeout (integer | disabled; Default: 60) Максимальное время простоя соединения. по умолчанию 60 секунд.   
max-mtu (integer; Default: 1500)     Максимальный размер пакета отправляемого через SSTP интерфейс.
mrru (disabled | integer; Default: disabled)     Максимальный размер пакета проходяшего через SSTP интерфейс.Если пакет больше чем MTU, он будет разбит на несколько пакетов.
max-mru (integer; Default: 1500)     Максимальный размер пакета получаемого через SSTP интерфейс.
name (string; Default: )     Задать имя для соединения.
password (string; Default: "")     Пароль для авторизации.
profile (name; Default: default-encryption)     Выбор PPP профиля.
proxy (IP:Port; Default: 0.0.0.0:443)     Адресс и порт HTTP прокси сервера.
user (string; Default: )     Амя пользователя используемое при авторизоции.
verify-server-certificate (yes | no; Default: no)     Проверка сертификата сервера.
verify-server-address-from-certificate (yes | no; Default: yes)     Проверка ip адреса сервера и сертификата.

Настройка в терминале:

[admin@SSTP-client]  /interface sstp-client>add user=sstp-test password=123 \
\... connect-to=10.10.10.1 disabled=no
[admin@SSTP-client] /interface sstp-client> print
Flags: X - disabled, R - running
 0  R name="sstp-out1" max-mtu=1500 max-mru=1500 mrru=disabled connect-to=10.1.101.1:443
      user="sstp-test" password="123" proxy=0.0.0.0:443 profile=default
      certificate=none keepalive-timeout=60 add-default-route=no dial-on-demand=no
      authentication=pap,chap,mschap1,mschap2
      
      Настройка SSTP Сервера.

Sub-menu: /interface sstp-server server

Опции:
authentication (mschap2 | mschap1 | chap | pap; Default: mschap2, mschap1, chap, pap) Выбор метода проверки подлиности.
certificate (name | none; Default: none)  Имя сертификата сервера.
default-profile (name; Default: default)     Имя профиля
enabled (yes | no; Default: no)                Включение\выключение сервера.
verify-client-certificate (yes | no; Default: no) Проверка сертификата клиента.
keepalive-timeout (integer | disabled; Default: 60) Максимальное время простоя соединения. по умолчанию 60 секунд.   
max-mtu (integer; Default: 1500)     Максимальный размер пакета отправляемого через SSTP интерфейс.
mrru (disabled | integer; Default: disabled)     Максимальный размер пакета проходяшего через SSTP интерфейс.Если пакет больше чем MTU, он будет разбит на несколько пакетов.
max-mru (integer; Default: 1500)     Максимальный размер пакета получаемого через SSTP интерфейс.

Настройка в терминале

[admin@SSTP-server] /interface sstp-server server> set certificate=server
[admin@SSTP-server] /interface sstp-server server> set enabled=yes
[admin@SSTP-server] /interface sstp-server server> print
                     enabled: yes
                        port: 443
                     max-mtu: 1500
                     max-mru: 1500
                        mrru: disabled
           keepalive-timeout: 60
             default-profile: default
                 certificate: server
  verify-client-certificate: no
              authentication: pap,chap,mschap1,mschap2
[admin@SSTP-server] /interface sstp-server server>


Мониторинг:

[admin@SSTP-server] /interface sstp-server> monitor 0
     status: "connected"
     uptime: 13m22s
  idle-time: 13m22s
       user: "sstp-client1"
  caller-id: "10.10.10.11:815"
        mtu: 1500
        
Настройка удаленного клиента.

Создадим пользователя.

[admin@MTtest] /ppp secret> add name=notebook service=sstp password=123
local-address=10.10.10.1 remote-address=10.10.10.100
[admin@MTtest] /ppp secret> print detail
Flags: X - disabled
  0   name="notebook" service=sstp caller-id="" password="123" profile=default
      local-address=10.10.10.1 remote-address=10.10.10.100 routes==""

[admin@MTtest] /ppp secret>       
        
Включим SSTP  сервер.

[admin@MTtest] /interface sstp-server server> set certificate=server
[admin@MTtest] /interface sstp-server server> set enabled=yes
[admin@MTtest] /interface sstp-server server> set authentication=mschap2
[admin@MTtest] /interface sstp-server server> print
                     enabled: yes
                        port: 443
                     max-mtu: 1500
                     max-mru: 1500
                        mrru: disabled
           keepalive-timeout: 60
             default-profile: default
                 certificate: server
  verify-client-certificate: no
              authentication: mschap2

[admin@MTtest] /interface sstp-server server>

Вот и все удаленные не Mikrotik клиенты могут подключатся к нам с использованием авторизации mschap2.

Проверим подключение.

[admin@MTtest] /interface sstp-server> print
Flags: X - disabled, D - dynamic, R - running
 #     NAME      USER         MTU        CLIENT-ADDRESS    UPTIME   ENCODING  
 0  DR <sstp-... notebook     1500       10.10.10.108:6586 4h12s 

[admin@MTtest] /interface sstp-server>monitor 0
     status: "connected"
     uptime: 4h10s
  idle-time: 4h10s
       user: "notebook"
  caller-id: "192.168.10.18:6586"
        mtu: 1500
       
Если подключение успешно - включаем proxy-arp.
[admin@MTtest] /interface ethernet> set ether2 arp=proxy-arp
[admin@MTtest] /interface ethernet> print
Flags: X - disabled, R - running
  #    NAME                 MTU   MAC-ADDRESS         ARP
  0  R ether1              1500  00:f0:1F:02:7B:C1 enabled
  1  R ether2              1500  00:f0:AF:F6:62:12 proxy-arp

[admin@MTtest] interface ethernet>

2 комментария:

  1. инструкции нету с картинками для даунов не когда не настраивал как бы сложновато... веть в винбоксе есть графический интерфейс

    ОтветитьУдалить
    Ответы
    1. Есть, но в нем доступно не все.
      Микротик не предполагался как решение для неспециалистов, какие-то основы сетей необходимо будет изучить

      Удалить