VPN:IPsec (аутентификация с помощью сертификата)

Материал из MikroTik WiKi rus
Перейти к: навигация, поиск

Схема сети

Схема сети с VPN на базе IPSec на маршрутизаторах MikroTik.png


В головном офисе установлен маршрутизатор GW1. В филиале установлен маршрутизатор GW2. Маршрутизатор в филиале будет инициатором установления защищенного соединения. Маршрутизатор в головном офисе будет ожидать, когда инициатор запросит установление соединения.

Головной офис
IP-адрес внешней сети головного офиса: 10.1.100.0/24
IP-адрес внешнего интерфейса маршрутизатора GW1: 10.1.100.1/24

IP-адрес внутренней сети головного офиса: 192.168.15.0/24
IP-адрес внутреннего интерфейса маршрутизатора GW2: 192.168.15.1/24

Филиал
IP-адрес внешней сети головного офиса: 10.1.200.1/24
IP-адрес внешнего интерфейса маршрутизатора GW1: 10.1.200.1/24

IP-адрес внутренней сети головного офиса: 192.168.25.0/24
IP-адрес внутреннего интерфейса маршрутизатора GW2: 192.168.25.1/24

Настройка

Настройка первого маршрутизатора

Через графический интерфейс

Настройка IPsec-пира. На первом этапе надо указать адрес пира (маршрутизатора с которым будет устанавливаться соединение). В качестве алгоритма шифрования мы выбрали aes-128. Конечно можно использовать и более длинные ключи, но это не имеет практического смысла, т. к. даже для подбора такого ключа требуется очень-очень много лет. Поэтому мы считаем, что более длинные ключи нужны либо в маркетинговых целях либо, если вы очень заморочены на глобальной слежке правительства. Сертификат другого маршрутизатора (Remote Certificate) мы не указываем, т. к. авторизация сертификата будет производиться с помощью ключа удостоверяющего центра, который был импортирован ранее.

Настройка IPSec peer'а с аутентификацией с помощью пароля на маршрутизаторе MikroTik.png


Настройка политики IPsec. Следующим шагом надо настроить политику IPsec. Политика описывает в каких случаях должно использоваться шифрование. Т. е., если пакет совпадает с правилом описанным в политике, то выполняется заданное действие. В нашем случае это шифрование. Если пакет не совпадает с правилом, то он идет дальше без обработки политикой.

Настройка политики IPSec на маршрутизаторе MikroTik, 1


Настройка политики IPSec на маршрутизаторе MikroTik, 2


Настройка правила обхода NAT.Если теперь попробовать установить туннель IPsec он не заработает и пакеты будут отклонены. Это произойдет потому, что оба маршрутизатора используют правило NAT, которое изменяет адрес источника после того, как пакет шифруется. Удаленный маршрутизатор принимает шифрованный пакет, но не может расшифровать его потому, что адрес источника не совпадает с адресом, который указан в настройках политики. Для более подробную информацию о прохождении пакетов можно увидеть здесь: http://wiki.mikrotik.com/wiki/Manual:Packet_Flow#IPsec_encryption. Правило обхода NAT обязательно должно находиться выше правила "masquerade".

Icon-note.png

Примечание: Если правило обхода NAT было создано после того, как было установлено защищенное соединение, то оно не заработает. Для того, что бы оно начало работать надо либо удалить все соединения на вкладке "Connections" у файервола либо перезагрузить маршрутизатор.


Настройка правила NAT bypass на маршрутизаторе MikroTik, 1


Настройка правила NAT bypass на маршрутизаторе MikroTik, 2


И с помощью захвата и перетаскивания мышью перетянем правило так, что бы оно находилось выше правила "masquerade".

Настройка правила NAT bypass на маршрутизаторе MikroTik, 3

Через консоль

/ip ipsec peer
add address=10.1.100.2/32 enc-algorithm=aes-128 generate-policy=port-strict send-initial-contact=no nat-traversal=no auth-method=rsa-signature certificate=server comment=filial1


/ip ipsec policy
add action=encrypt src-address=192.168.15.0/24 dst-address=192.168.25.0/24 sa-src-address=10.1.100.1 sa-dst-address=10.1.200.1 ipsec-protocols=esp tunnel=yes comment=filial1


/ip firewall nat
add chain=srcnat action=accept place-before=0 src-address=192.168.15.0/24 dst-address=192.168.25.0/24

Настройка второго маршрутизатора

Через графический интерфейс

Расписывать заново каждое действие мы не будем, т. к. они полностью аналогичны настройкам на первом маршрутизаторе. Настройка IPsec-пира.

Настройка IPSec peer'а с аутентификацией с помощью пароля на маршрутизаторе MikroTik.png


Настройка политики IPsec.

Настройка политики IPSec на маршрутизаторе MikroTik, 1


Настройка политики IPSec на маршрутизаторе MikroTik, 2


Правило обхода NAT.

Настройка правила NAT bypass на маршрутизаторе MikroTik, 1


Настройка правила NAT bypass на маршрутизаторе MikroTik, 2


Настройка правила NAT bypass на маршрутизаторе MikroTik, 3

Через консоль

/ip ipsec peer
add address=10.1.100.1/32 hash-algorithm=sha1 enc-algorithm=aes-128 send-initial-contact=yes nat-traversal=no auth-method=rsa-signature certificate=client1 comment=HQ


/ip ipsec policy
add action=encrypt src-address=192.168.25.0/24 dst-address=192.168.15.0/24 sa-src-address=10.1.100.2 sa-dst-address=10.1.100.1 ipsec-protocols=esp protocol=all tunnel=yes comment=HQ


/ip firewall nat
add chain=srcnat action=accept place-before=0 src-address=192.168.25.0/24 dst-address=192.168.15.0/24

Настройка маршрутизации

Маршрутизация при использовании IPsec "в чистом виде" не может быть использована, т. к. IPsec не создает виртуальный интерфейс, которому может быть назначен IP-адрес и добавлена запись в таблицу маршрутизации.

Следует учесть

  • AES является единственным алгоритмом, который поддерживается модулем аппаратного шифрования, если такой установлен на маршрутизатор.
  • Максимальное значение MTU при котором не будет фрагментации с использованием IPsec с алгоритмами SHA1 для подписи и AES-128 для шифрования = 1418. При использовании других алгоритмов значение MTU будет другим. Если используется механизм обхода NAT IPsec, следует понизить MTU на 28.
  • AES является единственным алгоритмом, который поддерживается модулем аппаратного шифрования, если такой установлен на маршрутизатор.
  • IPSec очень нестабильно работает за NAT'ом. Поэтому желательно, что бы внешние интерфейсы маршрутизаторов имели "белые" IP-адреса.

Проверка

Через графический интерфейс

Если IPSec-соединение установлено успешно, то в графе Established должен появиться таймер времени (5), который показывает, как давно установлено соединение. Индикатором является именно наличие таймера, а не факт наличия соединения (4), которое в случае проблем будет отображаться, но таймер будет отсутствовать.

Проверка соединения IPSec через графический интерфейс на маршрутизаторе MikroTik.png

Через консоль

Выполнить команду /ip ipsec policy print stats, которая покажет актуальное состояние соединения IPSec. В случае удачи мы должны получить: ph2-state=established.
GW1:
Проверка соединения IPSec через консоль на маршрутизаторе MikroTik.png

GW2:
Проверка соединения IPSec через консоль на маршрутизаторе MikroTik.png

Icon-note.png

Примечание: Состояние established через консоль будет отображаться только после того, как между двумя сетями произойдет попытка соединения. Например будет запущен ping. До тех пор пока соединение не будет установлено будет отображаться статус no-phase2. При этом через графический интерфейс всегда будет отображаться актуальная информация.


Типичные проблемы

  • Если VPN-соединение между двумя маршрутизаторами MikroTik не устанавливается, то надо проверить:
  1. Не мешает ли файервол. Для уверенности лучше временно отключить все правила файерволов на обоих маршрутизаторах. Стандартные настройки файерволов можно посмотреть здесь.
  2. Ключи на обоих маршрутизаторах должны быть из одной "связки".
  3. Указан правильный адрес узла (peer) к которому должно происходить подключение.
  4. Совпадают ли способ аутентификации и алгоритм шифрования на обоих маршрутизаторах МикроТик. В приведенном примере использовался предопределенный proposal с настройками по умолчанию.

Полезные статьи