IPIP, IPSec между двумя сетями через инет ("для чайников")

Обсуждение ПО и его настройки
biggleb
Сообщения: 12
Зарегистрирован: 14 авг 2014, 20:32

Требуется объединить две сетки с помощью IPSec на роутерах Mikrotik.

Исходные данные:
Есть две сети, соединенные через инет.
С одной стороны Mikrotik RB2011UiAS-2HnD, c другой - Mikrotik 951G-2HnD. На обоих RouterOS 6.18.
Оба с белыми внешними IP. Один выходит в сеть через локалку провайдера, другой по PPPoE (если это важно).

IPIP тоннель.
Абсолютно "самодостаточный" тоннель, никак не пересекающийся с IPSec.
Настраивается просто: создается тоннель между двумя роутерами и прописывается правило маршрутизации.
Достаточно прописать всего два правила, больше ничего делать не требуется.
В результате получим работающий туннель без шифрования.

Первая сетка:
RB2011UiAS-2HnD - 192.168.0.1
LAN - 192.168.0.0/24
WAN - 109.xxx.xxx.18 на 10 порту

 Настройка первого роутера
/interface ipip (1 правило - устанавливаем туннель)
add local-address=109.xxx.xxx.18 name=IPIP_Tunnel remote-address=95.xxx.xxx.78
/ip route (2 правило - настраиваем маршрут)
add distance=1 dst-address=10.20.0.0/24 gateway=IPIP_Tunnel


Вторая сетка:
951G-2HnD - 10.20.0.1
LAN - 10.20.0.0/24
WAN - 95.xxx.xxx.78 на 1 порту

 Настройка второго роутера
/interface ipip
add local-address=95.xxx.xxx.78 name=IPIP_Tunnel remote-address=109.xxx.xxx.18
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=IPIP_Tunnel


IPSec.
В микротике это тоже абсолютно "самодостаточный" тоннель, которому не требуется в качестве основы ни IPIP, ни PPPoe, ни любой другой тоннель.
Оговорюсь, что настраивать IPSec мы будем именно в туннельном режиме, не в транспортном (разницу обзорно можно почитать тут http://wiki.mikrotik.com/wiki/Manual:IP/IPsec).

Если вы уже настроили IPIP тоннель по правилам выше, удалите или отключите эти правила.

Итак, приступим.

1. Сначала настроим правила firewall. Вкладка IP - Firewall - Filter rules.
Настройка firewall обоих роутеров будет одинаковой.

 Firewall filter rules первого и второго роутеров
/ip firewall filter
add chain=forward comment="Allow established connections" connection-state=established
add chain=forward comment="Allow related connections" connection-state=related
add chain=forward comment="Allow established connections" protocol=icmp
add chain=input comment="Allow UDP" protocol=udp
add chain=input comment="Allow IKE" dst-port=500 protocol=udp
add chain=input comment="Allow IKE" dst-port=4500 protocol=udp (не обязательно)
add chain=input comment="Allow IPSec-esp" protocol=ipsec-esp
add chain=input comment="Allow IPSec-AH" protocol=ipsec-ah
add action=drop chain=forward comment="Drop invalid connection packets" connection-state=invalid (это запрещающее правило должно стоять последним в списке, перетаскивается в winbox мышкой как файлы в проводнике)


2. Настроим соединение между рооутерами (соседство). Вкладка IP - IPSec - Peers.
Это правило будет отвечать за 1 фазу IPSec туннеля - приветствие.

 IP IPSec Peers первого роутера
/ip ipsec peer
add address=95.xxx.xxx.78/32 enc-algorithm=3des generate-policy=port-override hash-algorithm=md5 passive=yes secret=СЕКРЕТ


 IP IPSec Peers второго роутера
/ip ipsec peer
add address=109.233.210.18/32 enc-algorithm=3des generate-policy=port-override hash-algorithm=md5 secret=СЕКРЕТ


Изображение

Обратите внимание, что только один роутер выступает инициатором авторизации (только на одном роутере стоит галочка passive, без разницы на каком), при этом IPSec будет подниматься только одной стороной, стороной активной (без галочки passive). Это удобно когда достаточно одностороннего доступа, например, удаленный офис соединяется с центральным (роутер центрального офиса в режиме passive). Это отнюдь не значит, что удаленный доступ будет только в одном направлении, доступ будет в обоих направлениях, но только после того, как "активный" роутер инициирует поднятие IPSec, в рамках времени жизни ключа шифрования lifetime (след. пункт).
Чтобы иметь возможность поднимать IPSec с обеих сторон, убираем галочки passive у обоих роутеров.
Обязательно ставим галочку на обоих роутерах NAT traversal, для трансляции адресов из одной подсети в другую.

3. Настроим политику приветствия. Вкладка IP - IPSec - Proposals.
Приветствие в обоих роутерах должно быть настроены одинаково.
Не важно какие алгоритмы авторизации и шифрования вы выберите, лишь бы они были одинаковыми.
 IP IPSec Proposals первого и второго роутеров
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=md5 enc-algorithms=3des pfs-group=none


Обратите внимание на lifetime - время жизни ключа шифрования (второй фазы), оно может быть любым, но обязательно меньше lifetime соседства (вкладка IP - IPSec - Peer) - время жизни ключа приветствия (первая фаза).
После настройки этих правил на вкладке IP - IPSec - Remote peers должна появиться строчка с адресами локального и удаленного роутера.
Если она появилась, значит вы все делаете правильно.

4. Настроим политику шифрования. Вкладка IP - IPSec - Policies.
Если вы все делали правильно, в этой вкладке появится правило по умолчанию. Его нужно обязательно отключить в обоих роутерах. В правиле default нет возможности создать туннельный IPSec, а именно он нам и нужен.

Создадим новое правило.

 IP IPSec Policies первого роутера
/ip ipsec policy
add dst-address=10.20.0.0/24 ipsec-protocols=ah-esp sa-dst-address=95.xxx.xxx.78 sa-src-address=109.xxx.xxx.18 src-address=192.168.0.0/24 tunnel=yes


 IP IPSec Policies второго роутера
/ip ipsec policy
add dst-address=192.168.0.0/24 ipsec-protocols=ah-esp sa-dst-address=109.xxx.xxx.18 sa-src-address=95.xxx.xxx.78 src-address=10.20.0.0/24 tunnel=yes


На обоих роутерах ставим галочку Tunnel - это и есть режим туннеля в IPSec.

Изображение

На этом настройка IPSec закончена.

IPSec будет находится "в режиме ожидания" пока вы не инициируете подключение к удаленной подсети или пингом, или любым другим обращением.

Пропингуем из первой подсети внутренний адрес удаленного роутера (из подсети 192.168.0.0 ping 10.20.0.1). В результате во вкладке IP - IPSec - Installed SAs обоих роутеров должны появиться четыре строчки с ключами авторизации и шифрования. Пинг может пройти не с первого раза, но если вы все делали по инструкции, соединение установится, четыре строчки появятся. Т.е. IPSec тоннель заработает.

Проверим соединение.
Сделаем трассировку из первой подсети во вторую.

 Проверка работы
> tracert 10.20.0.5 (адрес одного из ПК второй подсети)
1 1 ms 1 ms 1 ms 192.168.0.1 (ближний роутер, локальный IP)
2 36 ms 36 ms 36 ms 95.xxx.xxx.78 (дальний роутер, внешний IP)
3 * * * Превышен интервал ожидания для запроса.


Видим что соединение есть, тоннель работает, только наши пакеты доходят только до удаленного роутера и там начинают блуждать. Остается помочь найти им дорогу, настроить маршруты.

5. Настроим маршрутизацию. Вкладка IP - Firewall - NAT.

 IP Firewall NAT первого роутера
/ip firewall nat
add chain=srcnat dst-address=10.20.0.0/24 priority=0 src-address=192.168.0.0/24


 IP Firewall NAT второго роутера
/ip firewall nat
add chain=srcnat dst-address=192.168.0.0/24 priority=0 src-address=10.20.0.0/24


Это правило должно быть обязательно выше правила маскарадинга локальной сети.
Можно поставить его первым (просто перетащить мышкой вверх).

На этом настройка тоннеля полностью закончена, тоннель должен работать, доступ к удаленным ПК по внутренним IP должен работать.

Финальная проверка.
Сделаем трассировку из первой подсети во вторую.

 Проверка работы
> tracert 10.20.0.5 (адрес одного из ПК второй подсети)
1 1 ms 1 ms 1 ms 192.168.0.1 (ближний роутер, локальный IP)
2 3 ms 4 ms 3 ms 10.20.0.5


Всё работает!

Всем приятного соседства!
Последний раз редактировалось biggleb 23 сен 2014, 10:27, всего редактировалось 3 раза.


Аватара пользователя
podarok66
Модератор
Сообщения: 4360
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Я не знаю точно, но у меня не получалось сделать видимыми компы в сетевом окружении, если их адреса не принадлежат к одному диапазону. Кто-то говорил о бестолковости Винды, кто-то о моей недалекости, но реальных рецептов я не нашел...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
DeLL
Сообщения: 74
Зарегистрирован: 05 июн 2014, 00:24

Широкоизвестный в узких кругах Сааб95 на эту тему где-то писал, что надо включить ARP-proxy


Аватара пользователя
podarok66
Модератор
Сообщения: 4360
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Во, спасибо! Надо будет попробовать...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
biggleb
Сообщения: 12
Зарегистрирован: 14 авг 2014, 20:32

http://wiki.mikrotik.com/wiki/Russian/%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BE%D1%84%D0%B8%D1%81%D1%8B_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_Mikrotik
В этой статейке при настройке роутерам зачем-то присваивают виртуальные IP-адреса. Может быть извратиться и написать какой-нить скрипт для DHCP, выдающий новые IP из виртуальной подсети, при установлении VPN туннеля...

Ну да я не об этом.
Помогите хоть IPSec поднять до конца и маршруты правильно прописать. Мне бы хоть тут с места сдвинуться...


Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

Если речь идёт о виндовой шаре, то винда специально не отображает компы, которые принадлежат к другой сети. Мелкософтовские разработчики посчитали что это должно быть так...
И тут ничего поделать, совершенно.
Единственное что возможно, это создавать ярлыки и обращаться по IP..


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
biggleb
Сообщения: 12
Зарегистрирован: 14 авг 2014, 20:32

Хорошо. Пусть сетевое окружение останется локальным, раз уж мелкие так решили...

Не получается IPSec поднять.


Аватара пользователя
Dragon_Knight
Сообщения: 1724
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

IPSec к сожалению не ко мне... Ни разу не делал, но на повестке недели предстоит, буду на ходу разбираться...


Небольшой свод правил логики и ссылок:
  1. Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
  2. Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
  3. Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
  4. Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
  5. Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
  6. name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
  7. Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
  8. Мой сайт по Mikrotik: Global Zone >> MikroTik.
biggleb
Сообщения: 12
Зарегистрирован: 14 авг 2014, 20:32

IPIP туннель нормально поднимается.
И пинги идут, и к удаленным компам по внутренним IP доступ есть.
Тут двух правил достаточно с каждой стороны.
 Конфиг
На первом роутике:
/interface ipip
add local-address=109.xxx.xxx.18 name=IPIP_Tunnel remote-address=95.xxx.xxx.78
/ip route
add distance=1 dst-address=10.20.0.0/24 gateway=IPIP_Tunnel

На втором роутике:
/interface ipip
add local-address=95.xxx.xxx.78 name=IPIP_Tunnel remote-address=109.xxx.xxx.18
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=IPIP_Tunnel


А вот IPSec вообще не заводится. Судя по логам, могу предположить, что 1 фазу роутики проходят, а вот на второй - ступор.
Не пойму почему.
На вкладке ip ipsec remote-peers коннект есть, а в ip ipsec installed-sa пустота
 IPSec
[...@MikroTik] /ip ipsec remote-peers> print
0 local-address=109.xxx.xxx.18 remote-address=95.xxx.xxx.78 state=established
side=responder established=4m23s
[...@MikroTik] /ip ipsec installed-sa> print
Flags: A - AH, E - ESP, P - pfs

Честно говоря, смутно понимаю, в каком вообще месте IPSec к IPIP-туннелю прикручивается, явных ссылок на него при настройке IPSec нет нигде.


biggleb
Сообщения: 12
Зарегистрирован: 14 авг 2014, 20:32

Добился чтобы IPSec запускался, во вкладке ip ipsec installed-sa появились четыре строчки

 installed-sa
[....@MikroTik] /ip ipsec installed-sa> print
0 E spi=0x99D26F src-address=109.xxx.xxx.18 dst-address=95.xxx.xxx.78
auth-algorithm=md5 enc-algorithm=3des replay=4 state=mature
auth-key="4601b9ea17addd3a859cc3b961856c71"
enc-key="4532c701c0d4ea50f8563e7f931687ee5f6f566f7bcf935c"
add-lifetime=24m/30m

1 A spi=0x71EB289 src-address=109.xxx.xxx.18 dst-address=95.xxx.xxx.78
auth-algorithm=md5 enc-algorithm=none replay=4 state=mature
auth-key="bb570c8c755f921f7d5bbe3d09453846" add-lifetime=24m/30m

2 A spi=0xC76C7B1 src-address=95.xxx.xxx.78 dst-address=109.xxx.xxx.18
auth-algorithm=md5 enc-algorithm=none replay=4 state=mature
auth-key="8cd274d52a736e70b76090afd33b357a" add-lifetime=24m/30m

3 E spi=0xD43C4D7 src-address=95.xxx.xxx.78 dst-address=109.xxx.xxx.18
auth-algorithm=md5 enc-algorithm=3des replay=4 state=mature
auth-key="622c332a906baf943e0acbebfb69e08b"
enc-key="c51fe7bd8c89c7e72c2f1f7cdf9b14acce1c98d574708215"
add-lifetime=24m/30m


 настройка IPSec
[...@MikroTik] /ip ipsec policy> print
0 group=default src-address=192.168.0.0/24 dst-address=10.20.0.0/24
protocol=all proposal=default template=yes disable=yes (важно оставить дефолтное правило выключеным, создать новое правило, по другому не заводилось)

1 src-address=192.168.0.0/24 src-port=any dst-address=10.20.0.0/24
dst-port=any protocol=all action=encrypt level=require
ipsec-protocols=ah-esp tunnel=yes sa-src-address=109.xxx.xxx.18
sa-dst-address=95.xxx.xxx.78 proposal=default priority=0

[...@MikroTik] /ip ipsec peer> print
0 address=95.xxx.xxx.78/32 local-address=0.0.0.0 passive=yes (на втором роутере passive=no, кто-то должен быть инициатором начала обмена ключами) port=500
auth-method=pre-shared-key secret="......" generate-policy=no
exchange-mode=main send-initial-contact=yes nat-traversal=yes
proposal-check=obey hash-algorithm=md5 enc-algorithm=3des
dh-group=modp1024 lifetime=1d lifebytes=0 dpd-interval=2m
dpd-maximum-failures=5

[...@MikroTik] /ip ipsec proposal> print
0 name="default" auth-algorithms=md5 enc-algorithms=3des lifetime=30m
pfs-group=none


Но теперь пинги на удаленные компы не проходят. Теперь нужно разобраться с маршрутами и подменой заголовков пакетов.


Ответить