Время на прочтение
3 мин
Количество просмотров 58K
Предыстория:
Собственно, задача — объединить дом 1 и дом 2. На вооружении имеем схемы:
Дом 1: -internet пров. Beeline l2tp; psTV (196.168.2.13); dir615С2 (внут: 192.168.2.1, внеш: 95.24.х.х (будет клиентом VPN))
Дом 2: -internet пров. Interzet с белым ip; PS4 (192.168.1.13); dir615Е4 (внеш st.IP: 188.Х.Х.Х, внут: 192.168.1.1 (будет сервер VPN)
На обоих роутерах были установлены прошивки от dd-wrt. Процедура установки не сложная, в интернете много информации на эту тему.
Цель чтобы оборудование dir615с2 (далее «В») было доступно в локальной сети dir615Е4 (далее «А») и обратно.
Подготовка, проблемы, решение:
После установки dd-wrt и настройки подключения к интернету было замечено на роутере А отсутствие ping между клиентами, подключенными по lan (по wifi такой проблемы нет). Решается данная проблема двумя способами:
1. Установки прошивки dd-wrt от 04-18-2014-r23919
2. Заход во вкладку «Администратор — Команды » и выполнение команды:
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 set apply
Увлекшись настройками, почувствовал желание сделать автоматическое отключение и включение WIFI, то ли с целью эксперимента, то ли для уменьшения количества излучающих приборов в квартире. Для это было найдено несколько решений:
1. Использование команд ifup,ifdown и командами cron. Для это во вкладке «Администратор» в пункте Cron пишем:
0 7 * * * root /sbin/ifconfig ath0 up
0 0 * * * root /sbin/ifconfig ath0 down
Это позволит вкл. в 7:00 утра и выкл. 00:00 ночи. Но у меня как и у многих она не работала.
2. Этот метод заключается в использовании кнопки WPS/Перезагрузки на корпусе роутера. Для это в меню Services в пункте SES/AOSS/EZ-SETUP/WPS Button следует вкл. Turning off radio. Но каждый раз нажимать кнопку это не очень интересно.
3. Использование команды расписания работы WIFI:
nvram set radio0_timer_enable=1
nvram set radio0_on_time=000000011111111111111111
nvram commit
Где 0 — выкл, 1 — вкл., в моем примере он вкл. в 7:00 а выкл. в 01:00.
Теперь можно и приступить к настройке VPN. На «А» поднят сервер PPTP, а на «В» клиент. Убедится в работе VPN можно на вкладке «Статус — lan». В самом низу указывается, что клиент «В» подключен к серверу «А».
(Настройки сервера и клиента проводились в Web интерфейсе)
На сервере задавая имя и пароль следует ставить * через пробел.
Если у вас, так же как у меня, роутер на базе Atheros AR7240, то возможно клиент VPN будет при подключении оставаться со своим локальным IP (не принимая ip из диапазона сервера). В этом случае необходимо добавить noipdefault в поле мппе шифрование. Также не лишним будет добавить —nobuffer в поле ип пптп сервера через пробел для выкл. буферизации.
Теперь, когда у нас есть VPN-туннель, нам надо прописать маршрут в соседнею сеть.
«А» имеет сеть 192.168.1.0/24 и ip как сервер VPN 172.16.1.1
«В» имеет сеть 192.168.2.0/24 и ip как клиент VPN 172.16.1.51
Для доступа из «А» в «В» нужно задать:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.16.1.1
Для доступа из «В» в «А» нужно задать:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 172.16.1.51
Так как при переподключении клиента к серверу VPN маршрут будет сброшен и его надо будет повторно задавать, было принято решение о написании Shell-скрипта. Он бы проверял периодически на наличие маршрута и в случае его отсутствия проверял поднятие туннеля, и при его наличии задавал бы маршрут.
Выглядит он для сервера так:
#!/bin/sh
if
PPTP=`ip ro | awk '/192.168.2.0/ {print $1}'`;
test "$PPTP" = "192.168.2.0/24"
then
exit;
#Тут мы указали если есть в ip ro маршрут на сеть 192.168.2.0 то скрипт заканчивается иначе идем дальше
else
if
PPTPup=`ip ro | awk '/172.16.1.51/ {print $1}'`;
test "$PPTPup" != ""
then
route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.16.1.1
else
exit;
# тут мы указали если в ip ro "VPN" соединение не равно пустоте то добавить маршрут и закончить скрипт
fi
fi
exit;
Для клиента меняем 192.168.2.0 на 192.168.1.0, 172.16.1.51 на 172.16.1.1, 172.16.1.1 на 172.16.1.51.
Теперь нам нужно сделать так, чтобы этот скрипт срабатывал по заданному интервалу. Это возможно сделать во вкладке «Администратор» в пункте Cron, пишем:
*/3 * * * * root /tmp/custom.sh
Это нам даст запуск скрипта каждые 3 минуты, каждый час и каждый день. На этом настройка VPN туннеля закончена.
Для настройки IPsec VPN-туннеля между маршрутизаторами TP-Link вам необходимо совершить следующие действия:
1. Установить соединение между двумя устройствами
2. Уточнить настройки маршрутизаторов, необходимые для создания IPsec VPN-туннеля
3. Настроить параметры IPsec VPN-туннеля на yстройстве TL-ER6120 (Маршрутизатор «А»)
4. Настроить параметры IPsec VPN-туннеля на устройстве TL-R600VPN (Маршрутизатор «B»)
5. Проверить настройки IPsec SA
ПРИМЕЧАНИЕ: В данном примере мы используем устройства TL-ER6120 и TL-R600VPN. Способ настройки IPsec VPN-туннеля для устройства TL-WR842ND является таким же, как и для устройства TL-R600VPN.
Установка соединения между двумя устройствами:
Перед установкой VPN-туннеля, убедитесь, что два маршрутизатора подключены к сети интернет. После того как вы убедились, что для каждого маршрутизатора установлено активное интернет-соединение, вам необходимо проверить настройки VPN для данных устройств. Для этого следуйте инструкции ниже.
Проверьте настройки маршрутизатора, необходимые для установки IPsec VPN-туннеля
Для проверки настроек, необходимых для двух маршрутизаторов, перейдите на веб-страницу управления маршрутизатором «А».
Страница состояния маршрутизатора «А»:
Страница состояния маршрутизатора «B»:
Настройка параметров IPsec VPN-туннеля для устройства TL-ER6120
(маршрутизатор «А»)
Шаг 1 : На веб-странице управления нажмите VPN, затем IKE Proposal.
В пункте IKE Proposal по своему усмотрению введите наименование (Proposal Name), выберите параметры aутентификаци (Authentication), шифрования (Encryption) и DH Group. В данном примере мы вводим параметры MD5, 3DES, DH2.
Шаг 2: Нажмите «Добавить» (Add)
Шаг 3: Нажмите IKE Policy, по своему усмотрению введите наименование (Policy Name), выберите режим обмена (Exchange Mode). В данном примере мы используем параметры «Основной» (Main), выбираем IP-адрес (IP Address) в качестве вида ID (ID type).
Шаг 4: В пункте IKE Proposal 1 в данном примере мы используем test 1. Введите Pre-shared Key и SA Lifetime, DPD должен быть отключен.
Шаг 5: Нажмите «Добавить» (Add).
Шаг 6: Нажмите IPsec в меню слева, затем нажмите IPsec Proposal. Выберите протокол защиты (Security Protocol), ESP аутентификацию (ESP Authentication) и ESP шифрование (ESP Encryption), которые вы хотите использовать для VPN-туннеля. В данном случае мы вводим параметры ESP, MD5 и 3DES.
Шаг 7: Нажмите «Добавить» (Add)
Шаг 8: Нажмите IPsec Policy, по вашему усмотрению введите наименование (Policy Name), режим (Mode) должен быть установлен LAN-to-LAN. Введите значение локальной подсети (Local Subnet) и удаленной подсети (Remote Subnet).
Шаг 9 : Выберите WAN, который вы используете, и введите удаленный шлюз (Remote Gateway). В данном примере в качестве удаленного шлюза (Remote Gateway) используется WAN IP-адрес 218.18.1.208.
Шаг 10 : В поле Policy Mode выберите IKE.
Шаг 11 : В графе IKE Policy мы выбираем пункт test1, который уже используется.
Шаг 12 : В графе IPsec Proposal в данном примере мы используем ipsec1.
Шаг 13 : В пункте PFS в данном примере мы выбираем NONE, в пункте SA Lifetime введите «28800» или значение по своему усмотрению.
Шаг 14 : В графе «Статус» (Status) выберите «Активировать» (Activate).
Шаг 15: Нажмите «Добавить» (Add).
Шаг 16: Выберите «Включить» (Enable), затем нажмите «Сохранить» (Save).
Настройка параметров IPsec VPN-туннеля для устройства TL-R600VPN
(маршрутизатор «B»)
Шаг 1: Перейдите в IpsecVPN -> IKE, нажмите «Добавить новый» (Add new)
Шаг 2: Введите наименование (Policy Name) по своему усмотрению, в данном примере мы используем test2. В пункте режим обмена (Exchange Mode) выберите «Основной» (Main).
Шаг 3 : Алгоритм аутентикации (Authentication Algorithm) и алгоритм шифрования (Encryption Algorithm) являются такими же, как и в настройках маршрутизатора «А», в данном примере мы используем MD5 и 3DES.
Шаг 4 : Для DH Group выберите DH2, так же как и для маршрутизатора «А».
Шаг 5 : Введите Pre-share Key и срок SA Lifetime, убедитесь, что они совпадают с маршрутизатором «А».
Шаг 6 : Нажмите «Сохранить» (Save).
Шаг 7 : Выберите IPsec в меню слева и нажмите «Добавить новый» (Add new).
Шаг 8 : Введите наименование (Policy Name), в данном примере мы используем ipsec2.
Шаг 9 : Введите значения локальной подсети (Local Subnet) и удаленной подсети (Remote Subnet), затем введите значение удаленного шлюза (Remote Gateway), которым является WAN IP-адрес маршрутизатора «А» — 218.18.0.233.
Шаг 10 : В пункте режим обмена (Exchange mode) выберите IKE, в пункте протокол защиты (Security Protocol) выберите ESP.
Шаг 11 : Алгоритм аутентификации (Authentication Algorithm) и алгоритм шифрования (Encryption Algorithm) являются такими же, как и в настройках маршрутизатора «А», в данном примере мы используем MD5 и 3DES.
Шаг 12 : В пункте IKE Security Policy в данном примере мы используем test2.
Шаг 13 : В пункте PFS мы выбираем NONE, в пункте Lifetime введите «28800» или значение по своему усмотрению.
Шаг 14 : В поле статус выберите «Включить» (Enable)
Шаг 15 : Нажмите «Сохранить» (Save).
Шаг 16 : Нажмите «Включить» (Enable) IPsec и далее нажмите «Сохранить» (Save).
Проверка IPsec SA
Маршрутизатор «А»:
Маршрутизатор «B»:
Был ли этот FAQ полезен?
Ваш отзыв поможет нам улучшить работу сайта.
Что вам не понравилось в этой статье?
- Недоволен продуктом
- Слишком сложно
- Неверный заголовок
- Не относится к моей проблеме
- Слишком туманное объяснение
- Другое
Как мы можем это улучшить?
Спасибо
Спасибо за обращение
Нажмите здесь, чтобы связаться с технической поддержкой TP-Link.
Для чего нужен VPN-туннель между двумя роутерами? Чтобы объединить ресурсы локальных сетей в единую сеть. В примере, рассмотренном ниже, используются два обычных роутера, где первый – служит VPN-сервером, второй – клиентом, и создается туннель. При этом, роутер с VPN сервером – должен иметь постоянный IP. Если все, приведенное выше, для вас актуально, дальше – читаем внимательно.
Что мы получим?
Топология соединений – такая:
Топология сети
На схеме, «красный» роутер – это «сервер», а «синий» – «клиент». Вместе – они образуют туннель. Заметим еще раз, что IP-адрес в «глобальной» сети у «сервера» – должен быть постоянным (фиксированным). Протокол VPN, других вариантов – не позволяет. Канал VPN через роутер – «сервер» – идет в Интернет, где его видит роутер-«клиент».
В примере, рассмотренном дальше, внутренний IP первого роутера: 192.168.0.1, адреса всех устройств – отличаются только в последней цифре. Внутренний IP «клиентского» роутера- уже отличается (вместо предпоследнего «0», там – «1»). Соответственно, после «прокладки» туннеля, мы объединим две локальных сети: 192.168.0.хх и 192.168.1.хх.
Теперь – вопросы практические
Сразу оговоримся: мы будем использовать «не заводские» прошивки. А именно, это dd-wrt. В качестве «сервера», возьмем WRT54GL от Linksys, он будет работать под управлением v24-vpn-generic:
Прошивка dd-wrt
Установка должна проходить в два этапа (сперва mini-build в качестве «первоначальной» прошивки, затем – собственно, «vpn»).
В качестве роутера «филиала» (то есть, «клиентского» роутера), может быть роутер с прошивкой dd-wrt на ядре 2.6-kernel (в названиях – обозначается «K2.6»). Вообще, прошивка нужна, возможно, и с более старым ядром (со встроенным «open-vpn» – оьязательно).
Примечание: ознакомьтесь с процессом установки данных прошивок! Для разных моделей, действия – будут различны. Рекомендуется только опытным пользователям.
Настроим туннель VPN
Как настроить VPN на роутере – рассматривают во многих обзорах. Там речь идет об оборудовании Cisco и прочем, способном создать «серьезную» сеть. Однако, прошивки dd-wrt позволят нам быстро включить wifi роутер с VPN – сервером (просто, пишется скрипт начальной загрузки).
В прошивке для «сервера», такой, как мы взяли, «open-vpn» – реализован. Vpn-демон, нужно просто включить и настроить скриптом. Чтобы создать туннель, роутер openvpn «с сервером» – нужен только один. А сейчас мы рассмотрим, как настроить VPN-«клиент».
Настройка VPN-клиента
Заходим в web-интерфейс. Вкладка «Administration» -> «Commands», позволяет устанавливать скрипт:
Заходим в web-интерфейс
Если нажать «Save Startup» – скрипт будет выполнен при начальной загрузке. А «Save Firewall» – это скрипт «файервола».
Стартовый скрипт для клиентского роутера:
cd /tmp
#перейти в каталог
echo ”
#начинаем создание файла
remote 10.10.10.10
#первой строкой здесь – соединяемся с «сервером» (мы должны знать его IP)
proto udp
#выбрали протокол
port 1194
#и – значение порта (по умолчанию, в open-vpn старых версий – было «5000»)
dev tun0
#внутреннее «имя» устройства-туннеля
secret /tmp/ key.key
#этот файл – будет содержать ключ
verb 3
comp-lzo
keepalive 15 60
#это – чтобы автоматически подключался к «серверу» при обрыве (раз в 15 сек)
daemon
” > client1-main.conf
#файлик с конфигурацией – был сохранен
echo ”
тут должен быть ключ (надо подставить)
” > key.key
#записали файлик с ключом
ln -s /usr/sbin/openvpn /tmp/myvpn
#указали на нужный нам демон (точнее, на файл)
/tmp/myvpn –mktun –dev tun0
#открытие туннеля, настройка
ifconfig tun0 10.0.1.2 netmask 255.255.255.0 promisc up
# значение для IP VPN
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.1.1
#здесь мы объединили две сети
sleep 5
#ждем
/tmp/myvpn –config client1-main.conf
#применили настройки для tun0-туннеля
На этом – все. И заметим, что «адрес» туннеля – мы придумали сами (с другими IP – не связан никак).
Без скрипта файервола, как мы не старались – работать не будет. А скрипт – следующий:
iptables -I INPUT 2 -p udp –dport 1194 -j ACCEPT
#разрешение на прием
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
#теперь, полученные из туннеля пакеты (и направленные в него) – файервол «игнорирует»
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
В результате, страница настроек – выглядит так:
Страница настроек
Настройки для «сервера»
Стартовый скрипт «серверной» части «туннеля» – выглядит проще:
Все – то же самое, но без «remote». До строки с «ifconfig».
Эта строка – будет с другим аргументом tun0:
ifconfig tun0 10.0.1.1 netmask 255.255.255.0 promisc up #серверный VPN IP не равен клиентскому
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2
#и, при задании маршрутизации – мы добавили нужную сеть
#дальше все – аналогично, до последней строчки скрипта
Нажимается «Save Startup». А скрипт файервола – здесь нужен тоже, и он – полностью совпадает с «клиентским».
Настройка VPN через роутер, на этом – завершена. Изменения всех настроек, как и скрипты, вступят в силу после перезагрузки (что касается и «клиентского» роутера»).
Генерим ключ с помощью OpenVpn
Как видим, настройка роутера VPN (как «сервера», так и «клиента») – оказалась не очень и сложной. В каждом скрипте, в приведенных примерах, мы писали: «здесь должен быть ключ». Разумеется, эту запись, при внесении скрипта в роутер – не нужно копировать.
С генерировать ключ VPN, можно программой под Windows. Название – не будет оригинальным, это – программа «OpenVpn».
С генерировать ключ VPN
Скачайте ее с официального сайта (openvpn.net), один exe-файл (приблизительно 5 Мегабайт). Запустите на установку (выбрав галочки, как на рисунке).
Для генерации файла с ключом, в Windows-консоли, вы наберете: openvpn.exe –genkey –secret key.txt. Примечание: предварительно, командой «cd», надо зайти в папку этой программы (затем – в папку /bin).
Командная строка
Ключ VPN – появится в созданном текстовом файле. Его «содержимое», вы копируете в каждый скрипт (ключ – один для «клиента» и «сервера»).
Результаты ваших действий
Каждый роутер с VPN – сервисом (будь это «сервер», или «клиент») – продолжает быть «роутером». Он – раздает сеть wi-fi, и т.д. Смысл «туннеля» – в «объединении» (все IP-адреса первой «локалки» – станут видимыми из другой, и обратно).
Конечно, все это – мы не придумали сами. Исходник статьи (на английском, но там – много лишнего) – взят с адреса: www.tux89.com/reseau/installation-de-openvpn-serveur-sur-le-routeur-dd-wrt/?lang=en.
Тесты скорости – демонстрируют, что канал VPN работает не так уж и быстро. Скорость доступа (между сетями), имеет границу в 5-6 Мбит/с. Возможно, сказались характеристики роутера Linksys (ведь Linksys WRT – являются «прародителями» dd-wrt). Любой современны D Link VPN роутер в качестве «сервера» – использовать с dd-wrt не удастся. Для dir-620, к примеру, подходит прошивка dd-wrt «от Asus RT-N13U B1». Но в этой прошивке, «open-wrt» – не предусмотрено. На более сильном железе, с прошивками «K2.6»-версий – результаты должны быть другими. Хотя, скорости в 3-5 Мегабит/с вполне хватит, если передавать небольшие файлы и данные.
Помните: установка «альтернативных» прошивок – лишает гарантии.
Если локальных сетей – больше двух
В этом случае, смысл – будет тот же. Взяв один «сервер», и n-1 роутер-«клиент» VPN, можно объединить n сетей. Будет проложен ровно «n-1» VPN-туннель, и по идее, вся «маршрутизация» – будет идти через «сервер» (а как же еще). Избежать серьезной нагрузки на «сервер», в этом случае – не удается. Для «домашнего» роутера – это будет приемлемо вряд ли (ну, максимум – 2-3 сети).
При добавлении нового «роутера» (то есть, локальной сети «n+1»), нужно вносить изменения в «серверный» скрипт. Такая настройка – для опытных администраторов.
Предыдущая
LinksysСнова Linksys: настройка «гигабитного» роутера EA2700
Следующая
AppleКак настроить роутер от компании Apple?
Помогла статья? Оцените её
Загрузка…
Read the article SITE TO SITE VPN BETWEEN CISCO ROUTERS in English
Одна из самых распространенных задач, для которых используются маршрутизаторы Cisco – построение VPN тоннелей между удаленными друг от друга площадками. Рассмотрим пример, где требуется связать сети двух офисов фирмы: главного и дополнительного.
В нашем распоряжении будут:
Маршрутизатор Cisco 2800 в главном офисе (R-MAIN)
Сеть для пользователей 192.168.10.0 /24
Внешний статический адрес 1.1.1.2 /30
Шлюз провайдера 1.1.1.1 /30Маршрутизатор Cisco 881 в дополнительном офисе (R-BRANCH)
Сеть для пользователей 192.168.20.0 /24
Внешний статический адрес 2.2.2.2 /30
Шлюз провайдера 2.2.2.1 /30
Оба маршрутизатора имеют доступ в Интернет и минимальные настройки наподобие тех, что описаны в этой статье. Пользователи обоих офисов могут выходить в Интернет, имеют доступ к рабочим станциям и серверам в своих сетях, но не имеют доступа к сети другого офиса.
Есть два простых способа организовать защищенное соединение межу офисами:
Способ первый. Тоннельные интерфейсы.
Подходит в тех случаях, когда тоннель создается между двумя маршрутизаторами Cisco. Прост и удобен в настройке и использовании. Важно напомнить, что внешние адреса постоянны и статически выдаются провайдером связи в обоих способах.
Создадим виртуальный тоннель, который будет использоваться для прохождения трафика между площадками.
Шаг 1. Параметры шифрования
Выберем параметры шифрования для тоннеля. Если вы не знаете, что это такое, то просто скопируйте строчки из этого примера.
R-MAIN(config)#
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto ipsec transform-set ESP_3DES_SHA_HMAC esp-3des esp-sha-hmac
crypto ipsec df-bit clear
crypto ipsec profile VTI_PROF
set transform-set ESP_3DES_SHA_HMAC
set pfs group2
Эти настройки для маршрутизатора R-BRANCH в дополнительном офисе будут идентичными.
Шаг 2. Ключ шифрования
Ключ шифрования должен быть одинаковым на обоих маршрутизаторах. Рекомендую сделать его не менее 50 символов так, чтобы в него входили цифры, буквы и спец символы, однако в примере буду использовать заведомо простой «12345».
Для главного офиса
R-MAIN(config)#
crypto isakmp key 0 12345 address 2.2.2.2
Для дополнительного офиса
R-BRANCH(config)#
crypto isakmp key 0 12345 address 1.1.1.2
В примерах красным цветом выделены места, которые следует изменять. Цифра 0 стоит не просто так, а обозначает, что ключ вводится в незашифрованном виде, и ее трогать не следует. При просмотре конфигурации 0 может (но необязательно) измениться на 7 и ключ будет записан в зашифрованном виде. Например
R-MAIN#sh run
/...вырезано.../
crypto isakmp key 7 ^bn UjbsdfgsujGsdf address 1.1.1.2
/...вырезано.../
Это не значит, что он изменился, а значит, что он отображается(!) в зашифрованном виде.
Обратите внимание, что в каждом офисе мы указываем внешний адрес соседней площадки.
Шаг 3. Создание тоннельных интерфейсов
На каждом маршрутизаторе создаем виртуальный тоннельный интерфейс.
В главном офисе:
R-MAIN(config)#
interface Tunnel1
description Link to R-BRANCH
ip address 10.0.0.1 255.255.255.252
tunnel source FastEthernet 0/0
tunnel destination 2.2.2.2
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI_PROF
ip address 10.0.0.1 255.255.255.252 — собственный адрес виртуального тоннеля
tunnel source FastEthernet 0/0 — собственный внешний интерфейс маршрутизатора
tunnel destination 2.2.2.2 — внешний адрес маршрутизатора дополнительного офиса
tunnel mode ipsec ipv4 — вид шифрования
tunnel protection ipsec profile VTI_PROF — способ шифрования
Важно!
Если после ввода последних 2ух строк у вас появились сообщения об ошибках и маршрутизатор не принимает эти команды, то удалите профиль шифрования командой
no crypto ipsec profile VTI_PROF
На Вашем маршрутизаторе с текущей версией операционной системы IOS не получится воспользоваться этим способом. Переходите к способу 2.
В дополнительном офисе
R-BRANCH(config)#
interface Tunnel1
description Link to R-MAIN
ip address 10.0.0.2 255.255.255.252
tunnel source FastEthernet 4
tunnel destination 1.1.1.2
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI_PROF
ip address 10.0.0.2 255.255.255.252 — собственный адрес виртуального тоннеля
tunnel source FastEthernet 4 — собственный внешний интерфейс маршрутизатора
tunnel destination 1.1.1.2 — внешний адрес маршрутизатора главного офиса
tunnel mode ipsec ipv4 — вид шифрования
tunnel protection ipsec profile VTI_PROF — способ шифрования
Если все 3 шага выполнены корректно, то состояние интерфейса перейдет из состояния up/down в состояние up/up. Посмотреть это можно следующей командой.
R-MAIN# sh inter tun 1
Tunnel1 is up, line protocol is up
/...вырезано.../
Шаг 4. Проверка работы VPN тоннеля
Проверяем работоспособность тоннеля запустив ping до соседнего адреса тоннеля. Например из головного офиса:
R-MAIN#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/17/20 ms
Дополнительно убеждаемся, что пакеты проходят именно через защищенный тоннель командой sh cry ips sa peer 2.2.2.2
R-MAIN#sh cry ips sa peer 2.2.2.2
interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 2.2.2.2
protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer 2.2.2.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps:5, #pkts encrypt: 5, #pkts digest: 5
#pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
/...вырезано.../
Последние две строчки показывают, что маршрутизатор зашифровал и отправил 5 пакетов и столько же получил и расшифровал. Эти счетчики будут срабатывать каждый раз, когда какой-либо пакет будет проходить по тоннелю между нашими маршрутизаторами.
Шаг 5. Маршрутизация
Для того, чтобы обе площадки были доступны друг другу, следует добавить соответствующие строчки маршрутизации на каждом устройстве.
В головном офисе
R-MAIN(config)#
ip route 192.168.20.0 255.255.255.0 10.0.0.2
В дополнительном офисе
R-BRANCH(config)#
ip route 192.168.10.0 255.255.255.0 10.0.0.1
После этого все компьютеры, серверы и иные ресурсы обеих сетей должны быть доступны друг другу, а связь быть защищенной.
Способ второй. Универсальный
Подходит, когда требуется сделать тоннель между маршрутизатором и Cisco ASA или любым другим устройством, поддерживающим ipsec vpn, не обязательно Cisco. Настройки параметров шифрования, ключей, маршрутизации на другом стороне будут одинаковы по сути, но различны по командам/отображению. Для простоты и лучшего понимания рассмотрим пример с теми же двумя маршрутизаторами, которые были рассмотрены выше.
Шаг 1. Параметры шифрования
Выберем параметры шифрования для тоннеля. Если вы не знаете, что это такое, то просто скопируйте строчки из этого примера.
R-MAIN(config)#
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto ipsec transform-set ESP_3DES_SHA_HMAC esp-3des esp-sha-hmac
crypto ipsec df-bit clear
Эти настройки для маршрутизатора R-BRANCH в дополнительном офисе будут идентичными.
Шаг 2. Ключ шифрования
Задаем ключ шифрования. Он будет одинаковым для обоих участников защищенного тоннеля. Рекомендую сделать его не менее 50 символов так, чтобы в него входили цифры, буквы и спец символы, однако в примере буду использовать заведомо простой «12345».
Для главного офиса
R-MAIN(config)#
crypto isakmp key 0 12345 address 2.2.2.2
Для дополнительного офиса
R-BRANCH(config)#
crypto isakmp key 0 12345 address 1.1.1.2
В примерах красным цветом выделены места, которые следует изменять. Цифра 0 стоит не просто так, обозначает, что ключ вводится в первозданном виде, и ее трогать не следует. При просмотре конфигурации 0 может измениться (но необязательно) на 7 и ключ будет записан в ином виде. Например
R-MAIN#sh run
/...вырезано.../
crypto isakmp key 7 ^bn UjbsdfgsujGsdf address 1.1.1.2
/...вырезано.../
Это не значит, что он изменился, а значит, что он отображается в зашифрованном виде.
Обратите внимание, что в каждом офисе указывается внешний адрес соседней площадки.
Шаг 3. Объекты шифрования
Указываем трафик, который подлежит шифрованию. В нашем случае – это трафик между сетью 192.168.10.0 /24 головного офиса и сетью 192.168.20.0 /24 дополнительного офиса. Для этого создаем соответствующий список доступа на каждой площадке:
В головном офисе
R-MAIN(config)#
Ip access-list extended ACL_CRYPTO_DO
permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
В дополнительном офисе
R-BRANCH(config)#
Ip access-list extended ACL_CRYPTO_MAIN
permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
Шаг 4. Политика шифрования
На каждой площадке создаем политику шифрования (crypto map), в которой указываем все правила и параметры шифрования
В головном офисе
R-MAIN(config)#
crypto map CRYPTO_MAP 1 ipsec-isakmp
set peer 2.2.2.2
set transform-set ESP_3DES_SHA_HMAC
match address ACL_CRYPTO_DO
В дополнительном офисе:
R-BRANCH(config)#
crypto map CRYPTO_MAP 1 ipsec-isakmp
set peer 1.1.1.2
set transform-set ESP_3DES_SHA_HMAC
match address ACL_CRYPTO_MAIN
После этого crypto map должны быть привязана к внешнему интерфейсу.
В головном офисе
R-MAIN(config)#
Interface FastEthernet0/1
crypto map CRYPTO_MAP
В дополнительном офисе:
R-BRANCH(config)#
Interface Fa 4
crypto map CRYPTO_MAP
Шаг 5. Маршрутизация
Для того, чтобы обе площадки были доступны друг другу, следует добавить соответствующие строчки маршрутизации для каждого устройства. Удаленные сети должны быть доступны через шлюзы провайдеров сети Интернет.
В головном офисе
R-MAIN(config)#
ip route 192.168.20.0 255.255.255.0 1.1.1.1
В дополнительном офисе
R-BRANCH(config)#
ip route 192.168.10.0 255.255.255.0 2.2.2.1
После этого все компьютеры, серверы и иные ресурсы обеих сетей должны быть доступны друг другу, а связь быть защищенной.
Шаг 6. Проверка работы тоннеля
Проверяем работоспособность тоннеля, запустив ping с одного устройства внутри локальной сети до одного из адресов соседней площадки. Например, из головного офиса до какого-то компьютера из сети дополнительного офиса:
R-MAIN#ping 192.168.20.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/17/20 ms
После этого убеждаемся, что пакеты проходят именно через тоннель
R-MAIN#sh cry ips sa peer 2.2.2.2
interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 2.2.2.2
protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.0/0/0)
current_peer 2.2.2.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps:5, #pkts encrypt: 5, #pkts digest: 5
#pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
/...вырезано.../
Указанные строчки показывают, что маршрутизатор зашифровал и отправил 5 пакетов и столько же получил. Эти счетчики будут срабатывать каждый раз, когда какой-либо трафик будет проходить между нашими маршрутизаторами.
Этот способ чаще требует вмешательства со стороны администратора для внесения изменений в конфигурации устройств и требует больше внимательности при настройке. Степень защищенности трафика одинакова в обоих приведенных способах.
Важно!
Не забудьте сохранить конфигурацию всех устройств командой write или copy run start. Иначе после перезагрузки все изменения будут потеряны.
R-MAIN#write
Building configuration...
[OK]
Перейти к оглавлению
Задача объединения нескольких сетей в разных офисах одна из наиболее часто встречающихся у системных администраторов. Для ее решения могут использоваться различные виды VPN и туннельных соединений, выбор которых может зависеть от множества требований и условий. Одной из альтернатив туннелям и VPN может служить «чистое» IPsec-соединение, которое имеет как свои достоинства, так и недостатки. В данном материале мы рассмотрим реализацию подобного соединения между сетями офисов (site-to-site) c использованием оборудования Mikrotik.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
IPsec — набор протоколов для обеспечения защиты данных, передаваемых в сетях по протоколу IP. Основным преимуществом IPsec является высокий уровень безопасности, на сегодняшний день он является лучшим протоколом для защиты передаваемых данных. Также следует отметить высокий уровень производительности, при условии достаточного количества вычислительных ресурсов для работы с криптографией. Применительно к устройствам Mikrotik IPsec позволяет получить одни из самых высоких результатов, особенно на устройствах с аппаратной поддержкой шифрования.
Но есть и недостатки, они тоже достаточно существенны. IPsec сложен, как в настройке, так в понимании его работы, это требует от администратора более глубокого уровня знаний и может вызвать серьезные затруднения при отладке и диагностике неисправностей. Также IPsec не использует интерфейсы, а обрабатывает трафик на основании собственных политик, это также приводит к ряду затруднений, начиная от прохождения трафика через брандмауэр и заканчивая невозможностью применения маршрутизации для таких соединений. Часть сетевых конфигураций легко реализуемых при помощи VPN и туннелей построить при помощи IPsec в принципе невозможно.
Далее мы рассмотрим объединение двух офисных сетей по представленной ниже схеме:
Где LAN 1 с диапазоном 192.168.111.0/24 и LAN 2 — 192.168.186.0/24 — это сети двух офисов, которые мы будем объединять, а 192.168.3.107 и 192.168.3.111 — выполняют роль внешних белых адресов в сети интернет. Наша задача обеспечить прозрачный доступ устройств одной сети в другую через защищенный канал связи.
Настройка IPsec соединения
Соединение IPsec имеет отличия как от предусматривающего клиент-серверную схему VPN, так и от stateless туннелей. В отличие от последних мы всегда можем проверить состояние соединения, но понятие клиента и сервера здесь отсутствует, в IPsec одно из устройств выступает в качестве инициатора (initiator), а второе в качестве ответчика (responder). Эти роли не являются жестко закрепленными и могут меняться между устройствами, хотя при необходимости мы можем закрепить за определенным устройством постоянную роль.
Например, это позволяет установить IPsec соединение, когда один из узлов не имеет выделенного IP-адреса, в этом случае ему следует настроить роль инициатора, а второму узлу роль ответчика. В нашем случае подразумевается наличие выделенных адресов с обоих сторон и каждое из устройств может выступать в любой роли.
Настройку начнем с определения алгоритмов шифрования для каждой фазы соединения. Так как мы соединяем два собственных устройства, то можем не оглядываться на требования совместимости и настроить параметры шифрования на собственное усмотрение. Но без фанатизма, не забываем, что многие устройства Mikrotik достаточно слабые и не имеют аппаратной поддержки шифрования, а те, которые имеют, поддерживают различный набор протоколов.
Так популярный RB750Gr3 (hEX) поддерживает аппаратное ускорение только SHA1/SHA256 — AES-CBC, а более новый RB3011 уже поддерживает SHA1/SHA256 — AES-CBC и SHA1/SHA256 — AES-CTR. Желание использовать сильные шифры безусловно похвально, но оно не должно опережать возможности имеющегося оборудования.
Первая фаза — обмен ключами и взаимная идентификация устройств, за ее настройки отвечает раздел IP — IPsec — Profiles, перейдем в него и создадим новый профиль. Для него укажем: Hash Algorithms — sha1, Encryption Algorithm — aes-256, DH Group — ecp384. В поле Name укажем имя профиля, в нашем случае ipsec-sts (site-to-site).
В терминале для выполнения этого же действия выполните:
/ip ipsec profile
add dh-group=ecp384 enc-algorithm=aes-256 name=ipsec-sts
Это достаточно сильные настройки шифров, для устройств без аппаратного ускорения мы бы посоветовали ограничиться aes-128 и modp1024, хотя никто не мешает протестировать желаемые варианты и остановиться на наиболее оптимальном.
Вторая фаза — установление защищённого соединения и передача данных, настройки шифров для нее задаются в IP — IPsec — Proposal, перейдем в данный раздел и создадим новое предложение. Укажем Auth. Algorithms — sha1, Encr. Algorithms — aes-256-cbc, PFS Group — ecp384.
Это же действие в терминале:
/ip ipsec proposal
add enc-algorithms=aes-256-cbc name=ipsec-sts pfs-group=ecp384
В данном примере мы использовали не самые сильные шифры, так режим шифрования CBC является наиболее слабым и при наличии аппаратной поддержки стоит использовать CTR или GCM. Но не забывайте о достаточной разумности, если нагрузка на устройство велика — понижайте уровень шифрования.
Теперь перейдем в IP — IPsec — Peer и создадим новое подключение. В поле Address указываем внешний адрес второго роутера, в Profile выбираем созданный нами на предыдущем этапе профиль, в нашем случае ipsec-sts, а в поле Exchange Mode указываем IKE2.
В терминале:
/ip ipsec peer
add address=192.168.3.111/32 exchange-mode=ike2 name=sts-peer profile=ipsec-sts
В целом того, что мы уже настроили достаточно для установления защищенного соединения, но IPsec не VPN и работает по-другому. Для того, чтобы трафик начал шифроваться он должен соответствовать одной из политик IPsec, поэтому перейдем в IP — IPsec — Policies и создадим новую политику. В поле Peer укажем созданное ранее соединение, ниже установим флаг Tunnel для работы соединения в туннельном режиме, в поле Src. Address укажем диапазон собственной сети — 192.168.111.0/24, а в поле Dst. Address — диапазон удаленной сети — 192.168.186.0/24.
Затем на закладке Action установите Proposal — ipsec-sts, предложение которое мы создали ранее.
Для терминала используйте следующие команды:
/ip ipsec policy
add dst-address=192.168.186.0/24 peer=sts-peer proposal=ipsec-sts src-address=192.168.111.0/24 tunnel=yes
Ну и осталось совсем немного — научить узлы идентифицировать друг друга, так как оба роутера контролируются администратором и настроены принимать подключения только от другого узла, то мы будем использовать аутентификацию по предварительному ключу. Перейдем в IP — IPsec — Identities и создадим новую настройку идентификации. Здесь нам нужно заполнить поля: Peer — указываем созданное нами соединение, в нашем случае ipsec-sts, Auth. Method — pre shared key, Secret — предварительный ключ. В качестве предварительного ключа рекомендуется использовать строку с использованием цифр, букв в разных регистрах и специальных символов, сформированных в случайном порядке и с длинной не менее 16-32 символов. Не следует использовать в качестве ключа словарные слова и фразы. Предупреждения внизу окна можно проигнорировать.
В терминале:
/ip ipsec identity
add peer=sts-peer secret="2KuSY2%QKt\$\$gs8V9nrERD@V8zAuh\$3S"
На втором узле следует выполнить аналогичные настройки, только в качестве адреса в Peer указав внешний адрес первого роутера, а в Policy поменяв местами сеть источника и сеть назначения.
Настройка брандмауэра
Будем считать, что вы используете нормально закрытый брандмауэр настроенный в соответствии с нашими рекомендациями. Для того, чтобы разрешить входящее IPsec-соединение перейдем в IP — Firewall — Filter Rules и добавим следующие правила. Первое из них разрешает работу протокола обмена ключами IKE: Chain — input, Protocol — udp, Dst. Port — 500,4500, In. Interface — внешний интерфейс, в нашем случае ether1.
Второе правило разрешает протокол шифрования полезной нагрузки Encapsulating Security Payload (ESP): Chain — input, Protocol — 50 (ipsec-esp), In. Interface — внешний интерфейс — ether1.
Обратите внимание, что мы нигде не указываем действие, потому что по умолчанию все правила имеют в качестве действия accept — разрешить.
Эти же действия можно быстро выполнить в терминале:
/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp
add action=accept chain=input in-interface=ether1 protocol=ipsec-esp
Для того, чтобы пакеты из одной сети могли попасть в другую, следует разрешить их транзит. Создадим еще одно правило: Chain — forward, In. Interface — внешний интерфейс — ether1, затем на закладке Advanced укажем IPsec Policy — in:ipsec. Это разрешит транзит любых входящих пакетов, которые попадают под любую установленную политику IPsec.
В терминале:
/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec
Аналогичные настройки следует выполнить на втором узле.
Обход NAT и Fasttrack
Как мы уже говорили, IPsec не использует интерфейсы, а следовательно, обрабатываемый им трафик, хоть и уходит в защищенный туннель, но продолжает использовать в качестве исходящего внешний интерфейс, что может привести к ряду коллизий. Прежде всего нужно исключить обработку такого трафика правилами snat или masquerade. Для этого перейдем в IP — Firewall — NAT и создадим новое правило: Chain — srcnat, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, так как действие по умолчанию accept, то явно его не указываем. Данное правило поднимаем в самый верх, одно должно быть первым в цепочке srcnat.
Через терминал добавить его можно следующей командой:
/ip firewall nat
add action=accept chain=srcnat dst-address=192.168.186.0/24 src-address=192.168.111.0/24 place-before=0
Опция place-before=0 позволяет поставить правило в самое начало цепочки.
Если вы используете Fasttrack, то также следует исключить обработку проходящего через IPsec трафика этим механизмом, для этого следует добавить два правила. Первое для трафика из локальной сети в удаленную: Chain — forward, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, Сonnection State — established, related.
Второе правило для трафика из удаленной сети в локальную, оно полностью повторяет первое, только меняем местами сеть источника (Src. Address) и сеть назначения (Dst. Address).
В терминале:
/ip firewall filter
add chain=forward action=accept place-before=0 src-address=192.168.111.0/24 dst-address=192.168.186.0/24 connection-state=established,related
add chain=forward action=accept place-before=0 src-address=192.168.186.0/24 dst-address=192.168.111.0/24 connection-state=established,related
Аналогичные настройки, с учетом адресов, следует выполнить и на втором узле.
Заключение
После того, как мы завершили процесс настройки перейдем в IP — IPsec — Active Peers и убедимся, что соединение между двумя узлами установлено. Если это не так — еще раз проверяем все настройки и изучаем файл лога, скорее всего у вас не совпадают параметры шифрования или идентификации.
Теперь откроем IP — IPsec — Installed SAs. В терминах IPsec — SA (Security Association) — ассоциация безопасности, обозначает установленное защищенное соединение. Для каждого соединения создается отдельная пара SA, так как каждая SA — это однонаправленное соединение, а данные нужно передавать по двум направлениям. Если запустить обмен данными между сетями, скажем пропинговать с узла одной сети узел другой сети, то мы увидим, что данные счетчика Current Bytes начинают меняться, а следовательно, шифрование работает и данные передаются внутри защищенного соединения.
Как видим, если хотя бы на базовом уровне понимать принципы действия IPsec, то настроить туннель между двумя сетями относительно несложно. Надеемся, что данный материал будет вам полезен.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.