Делаем IPSEC туннель между Dlink DFL-260E и Mikrotik 450G

// Март 17th, 2016 // Аппаратное обеспечение, Системное администрирование

ipsec-logoВсем привет! В этом посте я расскажу, как организовать безопасный ipsec-туннель между D-link DFL-260E (актуально для линейки устройств DFL: 210\260E\800\860E) и Mikrotik 450G. Будет много картинок и рабочий пример конфига. Так что, если у вас есть интерес к сабжу — велкам под кат.

Схема сети

Пусть у нас имеется две локальных сети, которые нужно объединить через IPsec туннель.
Сеть A (DFL — 192.168.0.1/24) и сеть B (Mikrotik — 192.168.1.1/24). Выглядит это все примерно так:

ipsec-over-internet
Также обращаю внимание, что у вас должно быть два публичных статических белых адреса для обоих маршрутизаторов. В принципе, если у вас в этой схеме будет два Mikrotik, то это не обязательно, т.к. в свежих версиях они поддерживают такую фишку, как IP Cloud, где в роли IPsec-endpoint может выступать не ip адрес, а символическое имя. Но у меня был DFL, поэтому статика.

Подготовка

Во время активного изучения сабжа на этих железках я узнал про несколько грабель. Первые из них состоят в том, что по-умолчанию DFL-260e (прошивка RU) не подерживает необходимые для IPSec алгоритмы шифрования (3Des, AES), а работает только с теми(NULL, DES), которые подвластны нашим чекистам. Полноценное шифрование доступно в общемировой (WW) прошивке. Так что первым делом обновляем прошивку стандартными средствами.  На российском FTP D-Link вы их не найдете. Я нашел свежую прошивку на этом сайте. Качал версию 6310-DFL-260E_Ax_FW_v2.60.02.02-upgrade.img

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

dfl-new-design

 

Настраиваем на нём доступ в интернет, работу LAN, DHCP, т.е. всё, как обычно. Единственный момент, у меня были какие-то грабли при предыдущей настройке, поэтому у меня вся сеть сидит не в LAN сегменте, а в DMZ. Знаю, что неправильно, граблей уже и не помню, поэтому держите в уме, что в сети А, DMZ — это по сути LAN.

dfl-networks

Теперь займемся подготовкой Mikrotik. Там уже не просто прошивка, а вполне себе система пакетного менеджмента, поэтому обновляем пакеты в System -> Packages.

mikrotik-system-packages

ПО обновили, доступ к интернету настроили с обоих концов, проверили пинги по публичным адресам из обеих подсетей. Тогда всё ок, можно начинать.

Настраиваем туннель со стороны DFL-260E

Первым делом создаём в адресной книги объекты удалённой сети (Network) и точки туннеля (Endpoint).

dfl-objects-address-book

Дальше создаём в Objects -> Address book -> Keyring) PSK-key, по сути пароль от туннеля.

dfl-psk-key

После этого определем алгоритмы шифрования IKE (Objects -> VPN objects -> IKE Algrithms)…

dfl-ike-algorythms

и алгоритмы шифрования IPSec (Objects -> VPN objects -> IPSec Algrithms).

dfl-ipsec-algorythms

Теперь у нас есть все данные, чтобы создавать сам туннель (Network -> VPN and tunnels -> IPSec).

dfl-ipsec-general

dfl-ipsec-authenrification

dfl-ipsec-virtual-routing

dfl-ipsec-xauth

dfl-ipsec-routing

dfl-ipsec-ike-settings

dfl-ipsec-keep-alive

dfl-ipsec-advanced

После сохранения и применения настроек (Configuration -> Apply configuration) у вас среди маршрутов должны появиться автоматические маршруты созданные для туннеля.

dfl-ipsec-routing-auto

Осталось добавить правила, чтобы трафик мог ходить по туннелю (Network -> Policies -> Firewalling). Я разрешил пинг везде, а для тоннелей создал отдельную папку с правилами.

dfl-firewall

dfl-firewall-rules

Ок, применяем настройки и идём настраивать другой конец.

Настраиваем Mikrotik

Подклбчаемся по WinBox / WebFig к роутеру и идём в IP -> IPSec -> Policies. Добавляем туда новую политику для ipsec.

mikrotik-ipsec-tunnels

 

mikrotik-ipsec-tunnel-actionn

Теперь идём в IP->IPSec->Peers и добавляем DFL-ку.

mikrotik-ipsec-tunnel-peer

mikrotik-ipsec-tunnel-mode-configs

Дальше добавляем сведения об используемых алгоритмах шифрования.

mikrotik-ipsec-tunnel-proposal

Теперь идём в Interfaces и добавляем IPIP-туннель.

mikrotik-interfaces-ipip

Настройки применяются мгновенно, так что по идее после этого мы должны увидеть сертификаты поднятого туннеля со стороны Mikrotik…

mikrotik-ipsec-tunnel-installedd-CAs

И со стороны DFL (Status->Subsystems->IPSec)…

dfl-installed-CAs

Дальше настраиваем Firewall. Столбец «In Interface» = ether1-gateway (интерфейс, торчащий в интернет).

mikrotik-ip-firewall-rules

Не забываем про NAT для новой сети (порядок правил важен, надо выше masquerade).

mikrotik-ip-firewall-nat

Это кусок дефолтовой конфигурации, я его не трогал.

mikrotik-ip-firewall-mangle

Маршруты выставились так:

mikrotik-routes-d

Если будете настраивать динамический конец туннеля (IPCloud), то оно в секции IP.

mikrotik-ip-cloud

 

Заключение

Что мне понравилось в Microtik, так это продуманность. Да, есть грабли, но в общем чувствуется, что железка создана что называется админом для админа. Одно то, что в Firewall показывается в real-time режиме количество пакетов по каждому правилу чего стоит. Конечно лучше использовать железки одного вендора, но, как показала практика связать DFL и Mikrotik вполне реально. За рамками статьи остались вопросы бенчмаркинга туннелей, и переача трафика последовательно через несколько туннелей, но думаю в будущем я посвещу отдельную статью этим вопросам.

Дальше приведу пример конфига Microtik, а ссылки, вы, как всегда найдёте в конце статьи. Удачи, траварищи!

Конфигурация Microtik

[admin@MikroTik] > export 
# nov/11/2015 11:13:16 by RouterOS 6.33
# software id = INCX-QEFK
#
/interface ethernet
set [ find default-name=ether1 ] name=ether1-gateway
set [ find default-name=ether2 ] name=ether2-master-local
set [ find default-name=ether3 ] master-port=ether2-master-local name=ether3-slave-local
set [ find default-name=ether4 ] master-port=ether2-master-local name=ether4-slave-local
set [ find default-name=ether5 ] master-port=ether2-master-local name=ether5-slave-local
/interface ipip
add allow-fast-path=no !keepalive local-address=192.168.1.1 name=ipip-tunnel1 remote-address=\
 192.168.0.1
/ip neighbor discovery
set ether1-gateway discover=no
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-128-cbc pfs-group=none
/ip pool
add name=dhcp ranges=192.168.1.100-192.168.1.254
/ip dhcp-server
add address-pool=dhcp disabled=no interface=ether2-master-local name=default
/snmp community
set [ find default=yes ] name=snmp_secured
/system logging action
add memory-lines=100 name=ipsec target=memory
/ip address
add address=192.168.1.1/24 comment="default configuration" interface=ether2-master-local \
 network=192.168.1.0
add address=213.79.xx.92/29 comment=External-at-eth1 interface=ether1-gateway network=\
 213.79.xx.88
/ip cloud
set ddns-enabled=yes
/ip dhcp-client
add comment="default configuration" dhcp-options=hostname,clientid disabled=no interface=\
 ether1-gateway
/ip dhcp-server network
add address=192.168.1.0/24 comment="default configuration" gateway=192.168.1.1 netmask=24
/ip dns
set allow-remote-requests=yes servers=62.117.122.49,212.45.2.5
/ip dns static
add address=192.168.1.1 name=router
/ip firewall filter
add chain=forward comment="Allow PING forward from IPSEC tolan" dst-address=192.168.1.0/24 \
 protocol=icmp src-address=192.168.0.0/24
add chain=output comment="Allow PING outbound" protocol=icmp
add chain=input comment="Allow WinBox from external" dst-port=8291 protocol=tcp
add chain=input comment="Allow WebFig from external" dst-port=80 protocol=tcp
add chain=input comment="Allow snmp from external" dst-port=161 protocol=udp
add chain=input comment="Allow IPSEC-esp" protocol=ipsec-esp
add chain=input comment="Allow IKE" dst-port=500 protocol=udp
add chain=input comment="Allow IPSEC-ah" disabled=yes protocol=ipsec-ah
add chain=input comment="Allow UDP" protocol=tcp
add chain=input comment="default configuration" protocol=icmp
add chain=input comment="default configuration" connection-state=established,related
add action=drop chain=input comment="default configuration" in-interface=ether1-gateway
add action=fasttrack-connection chain=forward comment="default configuration" \
 connection-state=established,related
add chain=forward comment="default configuration" connection-state=established,related
add action=drop chain=forward comment="default configuration" connection-state=invalid
add action=drop chain=forward comment="default configuration" connection-nat-state=!dstnat \
 connection-state=new in-interface=ether1-gateway
/ip firewall nat
add chain=srcnat comment="For IPSEC tunnel" dst-address=192.168.0.0/24 log=yes out-interface=\
 ether1-gateway src-address=192.168.1.0/24
add action=masquerade chain=srcnat comment="default configuration" out-interface=\
 ether1-gateway
/ip ipsec peer
add address=77.37.xx.78/32 enc-algorithm=aes-128 local-address=0.0.0.0 mode-config=\
 request-only secret=1201771
/ip ipsec policy
set 0 disabled=yes
add dst-address=192.168.0.0/24 sa-dst-address=77.37.xx.78 sa-src-address=213.79.xx.92 \
 src-address=192.168.1.0/24 tunnel=yes
/ip route
add comment="Default route" distance=10 gateway=ether1-gateway
add disabled=yes distance=1 dst-address=192.168.0.0/24 gateway=ipip-tunnel1 pref-src=\
 192.168.0.1
/ip service
set telnet disabled=yes
set ftp disabled=yes
set ssh disabled=yes
/snmp
set contact=Andrey enabled=yes location=Home trap-version=2
/system clock
set time-zone-name=Europe/Moscow
/system logging
add action=ipsec topics=ipsec
/tool graphing interface
add allow-address=192.168.0.0/24 interface=ipip-tunnel1
add allow-address=192.168.0.0/24 interface=ether1-gateway
/tool graphing resource
add allow-address=192.168.0.0/24
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=ether2-master-local
add interface=ether3-slave-local
add interface=ether4-slave-local
add interface=ether5-slave-local
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=ether2-master-local
add interface=ether3-slave-local
add interface=ether4-slave-local
add interface=ether5-slave-local
/tool romon port
set [ find default=yes ] cost=100 forbid=no interface=all secrets=""
add cost=100 disabled=yes forbid=no interface=all secrets="" 

Ссылки

http://www.dlinkmea.com/site/index.php/site/productDetails/209

http://sanotes.ru/vpn-ipsec-mikrotik-dfl-860e/

http://sanotes.ru/nastroyka-mikrotik-rb751-rb951-isp-interzet/

http://habrahabr.ru/sandbox/67736/

http://wiki.pcsinfo.hr/doku.php/mikrotik/ipip_with_ipsec_transport_mikrotik_to_mikrotik

http://it-mehanika.ru/index.php?option=com_content&view=article&id=194:-ipsec-mikroti-g-draytek-vigor&catid=50:mikrotik&Itemid=29http://mikrotik.ru/forum/viewtopic.php?f=15&t=4928&sid=3c27171adab308c3b9b0697e8da6af06&start=10

 

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


Комментировать