Архив метки: Mikrotik

MikroTik –L2TP/IPsec VPN (Remote Access).

Упрощенная настройка L2TP/IPsec. К ЛВС и серверу в главном здании учреждения необходимо подключить 12 отделов, в каждом из которых 1-2 ПК через VPN. Все отделы пространственно расположены за городом и у них есть доступ в Интернет через ADSL модемы.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

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

В результате настроек создается L2TP туннель, через который передается информация с IPsec  шифрованием.

На стороне пользователя VPN настраивается средствами Windows.

В главном здании VPN создан с помощью роутера MikroTik RB750Gr3 с прошивкой 6.48.1

Следует отметить, что в названной модели роутера отсутствует аппаратная поддержка IPsec и вся нагрузка по этому делу ложится на процессор.

Первоначальная настройка роутера выполнена по этой инструкции.

Все настройки выполняются из локальной сети через WinBox.

 

Порядок действий.

1.Создание профиля доступа.

2.Активация сервера L2TP.

3.Назначение IP-адреса клиентам VPN.

4.Создание пользователя VPN.

5.Создание интерфейса.

6.Правила Firewall.

7.Настройка VPN соединения клиента в Windows 10.

8.Подключение VPN соединения.

 

1.Создание профиля VPN

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

1.Выполняем действия в меню PPP

2.Переходим на вкладку Profiles.

3.Нажимаем синий крест (плюс).

4.Переходим на вкладку Generals.

Вводим настройки:

5.Name: L2TP-REMOTE-ACCESS (любое понятное имя латиницей).

6.Local Address: 192.168.20.1 (адрес роутера в VPN)

7.Change TCP MSS: yes

8.Переходим на вкладку Protocols и выполняем настройка 9, 10, 11 как на картинке.

MPLS: yes —  передача пакетов по меткам. wiki

Compression: (сжатие данных) no —  используется при медленных каналах.

Encryption: (шифрование данных) yes — по согласованию с клиентом.

 

На вкладке Limits можно настроить лимит сессии, время отключения при бездействии, ограничение скорости подключения, одно подключение (Only one).

Настройки вкладок Queue и Scripts не изменялись.

Через командную строку терминала:



 

2.Активация сервера L2TP.

1.В боковом меню выбираем PPP.

2.В открывшемся окне PPP переходим на вкладку Interface.

3.В верхней панели нажимаем кнопку L2TP Server.

4.В открывшемся окне ставим галочку напротив Enable.

5.Default Profile: L2TP-REMOTE-ACCESS  указываем созданный ранее профиль

6.Authentication: mschap2 (остальные варианты отключаем)

7.Use IPsec: yes

8.IPsec Secret: 12345Password

9.Нажимаем кнопку «ОК».

Через командную строку терминала:



 

3.Назначение IP-адреса клиентам VPN.

Первый вариант – создать пул IP-адресов и раздавать их пользователям в автоматическом режиме.

Второй вариант – указать статический IP-адрес.

Так как в нашем случае всего 12 пользователей VPN, укажем для них статические IP-адреса из сети 192.168.20.0 Делается это при создании пользователя.

 

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

1.Выполняем действия в меню PPP

2.Переходим на вкладку Secrets.

3.Нажимаем синий крест (плюс).

В открывшемся окне вводим:

4.Name: Remote-user1 (имя пользователя )

5.Password: Password1234 (сложный пароль из латинских букв и цифр разного регистра)

6.Service: L2TP

7.Profile: L2TP-REMOTE-ACCESS (созданный ранее профиль, выбираем из выпадающего списка)

8.Remote Address: 192.168.20.11 (статический IP для пользователя)

9.Нажимаем кнопку «ОК».

Через командную строку терминала:



Создаем необходимое количество пользователей аналогичными действиями.

 

5.Создание интерфейса.

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

Если не создавать статический интерфейс, то он автоматически создается динамически при подключении пользователя.

 

6.Правила firewall.

Создадим два правила, одно для разрешения протокола IPsec, второе для доступа к необходимым портам.

Правило разрешения IPsec.

Переходим по меню  1 IP >> 2 Firewall >> 3 Filter Rules.

4.Нажимаем синий крест (плюс), в открывшемся окне на вкладке General (5) вводим настройки:

6.Chain: input (вход)

7.Protocol: ipsec-esp (протокол)

8.In Interface: ether1 (внешний интерфейс)

9.Жмем Apply для сохранения.

10.Переходим на вкладку Action.

11.Action: accept (разрешающее действие).

12.Нажимаем ОК для сохранения.

Через командную строку терминала:



 

Правило для открытия портов 500, 1701, 4500.

Переходим по меню  1 IP >> 2 Firewall >> 3 Filter Rules.

4.Нажимаем синий крест (плюс), в открывшемся окне на вкладке General (5) вводим настройки:

6.Chain: input (вход)

7.Protocol: UDP (протокол)

8.Dst. Port: 500, 1701, 4500 (порты назначения)

9.In Interface: ether1 (внешний интерфейс)

10.Переходим на вкладку Action.

11.Action: accept

12.Нажимаем кнопку ОК для сохранения правила.

Через командную строку терминала:



В списке правил появятся два новых. Расположить их желательно верху списка.

К правилам добавлены комментарии для ясности.

 

Правило NAT.

NAT masquerade правило для трафика VPN. Правило создается на вкладке NAT аналогично предыдущим правилам.

Через командную строку терминала:



*правило NAT для VPN трафика не является обязательным, но в некоторых случаях может пригодиться

7.Настройка VPN соединения клиента в Windows 10.

Удаленный компьютер подключен в Интернет. В этом ПК переходим в управление сетями.

Панель управления >> Сеть и Интернет >> Центр управления сетями и общим доступом.

Создаем новое подключение.

Среди вариантов подключения выбираем – «Подключение к рабочему месту».  Далее.

Выбираем – «Использовать мое подключение к Интернету (VPN)».

В следующем пункте указываем внешний статический IP-адрес роутера или внешний идентификатор MikroTik(1234567891443.sn.mynetname.net у каждого роутера свой).

В поле имя пишем любое понятное имя латинскими буквами. Отмечаем галочкой «Запомнить учетные данные».

Нажимаем кнопку «Создать».

Отредактируем свойства созданного VPN подключения в сетевых соединениях.

В свойствах переходим на вкладку безопасность. Указываем следующие параметры.

1.Тип VPN: Протокол L2TP с IPsec (L2TP/IPsec).

2.Дополнительные параметры.

======-Для проверки подлинности использовать общий ключ;

======-Ключ: 12345Password (вводим ключ IPsec);

======-Нажимаем ОК.

3.Шифрование данных: обязательное (отключится если нет шифрования)

4.Разрешить следующие протоколы – отмечаем точкой.

5.Протокол Microsoft CHAP версия 2 (MS-CHAPv2).

6.Кнопка «ОК» для сохранения настроек.

Переходим на вкладку сеть.

В свойствах указываем IP-адрес для клиента и предпочитаемый DNS.

Переходим на вкладку «Дополнительно».

Настройка – Использовать основной шлюз в удаленной сети. В нашем случае галочка убрана. Нажимаем ОК для сохранения.  Настройки в свойствах VPN-соединении у клиента завершены.

 

Если галочка стоит.

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

Чтоб убедится, что трафик идет именно через роутер, на клиенте нужно запустить ping (когда VPN уже настроен и запущен в работу) на любой общедоступный сервер.

В роутере трафик можно отследить через Torch или в IP>>Firewall>>Connections.

Как видно, с IP-адреса одного из клиентов VPN пинг на IP 8.8.8.8 по протоколу icmp проходит через MikroTik (при условии установленной галочки в доп. свойствах).

 

Если галочка не стоит.

Если галочку убрать и переподключиться к VPN, то пинг на сервер гугл (8.8.8.8) уже не проходит через роутер. Он идет через основной шлюз ПК в Интернет.

Но также не проходит пинг в нужную сеть. ПК клиента не знает, через какой шлюз ему идти в сеть за VPNом. Для решения этого вопроса нужно создать статический маршрут в ПК клиента.

1.В командной строке (от имени администратора) вводим:



Находим сетевое соединение относящееся к VPN. Его номер 26.

При каждом новом создании VPN-соединения его номер меняется.

2.Вводим маршрут



192.168.1.0 mask 255.255.255.0 — сеть назначения с маской

192.168.20.1 – IP-адрес VPN-сервера (VPN шлюз)

metric 1 –  метрика

if 26 – номер интерфейса (который определили выше)

-p – сохранение маршрута при перезагрузке ПК.

 

После этих действий вводим еще раз команду



Видим постоянный маршрут, который означает, что для доступа к сети с IP-адресом 192.168.0.0 (которая за VPN) нужно идти в шлюз 192.168.20.1.

Пинг начинает проходить и доступ к ресурсам в сети расположенной после VPN появляется.

Прохождению пинга могут препятствовать:

-антивирус (добавить сеть в доверенные или приостановить защиту на время настроек)

-брандмауэр Windows (отключить)

-сетевое обнаружение (включить)

-правила firewall в MikroTik (проверить  наличие/отсутствие и расположение).

 

Удаление маршрута (если понадобится).



 

8.Подключение VPN соединения.

В нижней правой части экрана клиентского ПК нажимаем на значок сети, выбираем из раскрывшегося списка нужное соединение и нажимаем кнопку «Подключится».

В окне авторизации вводим учетные данные пользователя VPN.

После правильного ввода учетных данных произойдет подключение.  VPN начнет работать.

 

Как узнать что шифрование IPsec.

В PPP>>Active Connections виден тип шифрования. Если настройка не сработала и шифрование MPPE128 нужно перезагрузить роутер.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-05-01T11:51:24
Настройка ПО

MikroTik Netwatch – отправка оповещения.

Netwatch — это инструмент мониторинга заданного хоста через ICMP запросы (ping) с последующим выполнением скрипта в случае его доступности или недоступности.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

В нашей ЛВС бывают случаи пропадания электроэнергии. Для оповещения о подобной ситуации в серверной была разработана следующая схема:

— оборудование по доступу в Интернет работает через ИБП, которых хватает на 20мин, после пропадания внешнего электропитания 220В;

— Netwatch мониторит с интервалом 1мин. небольшой неиспользуемый управляемый коммутатор с IP адресом, который включен напрямую в сеть 220В без ИБП;

— при пропадании электропитания пропадает связь в первую очередь с неиспользуемым коммутатором и в течение 1мин. роутер отправляет письмо на электронную почту, еще 5-10 мин. пока админ увидит это письмо и есть еще 10 мин чтоб предпринять какие-либо действия или узнать на какое время пропала электроэнергия. Для более оперативного реагирования можно использовать месенджер-бота. Далее, о том, как это настроено.

 

Настройка отправки e-mail.

Первоначально требуется настройка электронной почты в MikroTik по этой инструкции.

 

Настройка Netwatch.

Переходим в Tools >> Netwatch и создаем новое задание.

Host: 192.168.100.250 – сетевое устройство, которое отслеживается.

Interval: 1 сек – период отправки icmp запросов.

Timeout: 1000мсек (1сек) время ожидания ответа – не изменяем.

 

Вкладка UP.

В поле On Up указываем скрипт, который выполнится при появлении связи с необходимым хостом:



 

Вкладка Down.

В поле On Down указываем скрипт, который выполнится при пропадании связи с необходимым хостом:



Нажимаем ОК для сохранения настроек.

Через командную строку терминала:



Из скрипта убран кириллический шрифт, т.к. он не воспроизводится в командной строке микротика и некоторые кавычки для читаемости.

При отправке письма на несколько адресов в скрипт нужно добавить:



 

Отправка сообщения в Вайбер.

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

1.Активируем Вайбер-Бота на сайте https://wwpager.ru/ (1 бот с одной почтой бесплатно)

На ПК должен быть установлен Вайбер. Ссылка с сайта откроется в Вайбере. После активации бота сообщением /start в ответ прилетит информация с электронной почтой, привязанной к Вайбер-боту вида 123456789@wwpager.ru

Подробное описание на сайте данного сервиса.

2.Указываем полученный адрес в скриптах Netwatch вместо или вместе с основным адресом.

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

Кроме указанного выше назначения этим способом в нашей ЛВС мониторится множество других сетевых устройств.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-04-23T15:12:34
Настройка ПО

MikroTik настройка Dual WAN

В этом руководстве мы затронем тему маркировки пакетов (mangle) и настройку резервирования интернет соединения Dual WAN на MikroTik как одну из важных тем. В маршрутизаторах Mikrotik данный функционал реализован через Mangle — используется для того чтобы пометить пакеты/соединения для дальнейшей их обработки очередями (простыми или деревьями), NAT правилами, таблицами маршрутизации или изменению таких параметров как: Читать

MikroTik – статические маршруты.

В нашей организации есть две не связанные локальные сети каждая со своим шлюзом. Была поставлена задача их объединить. О том как это происходило написано далее.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Схема сетей.

В обоих сетях работают роутеры MikroTik RB750Gr3 с прошивкой 6.48.

В первые порты подключены патч-корды внешних сетей.

Во вторые порты подключен патч-корд между двумя роутерами (красный).

В пятые порты подключены патч-корды до коммутаторов ЛВС (синие).

Для понятности описаны подробные настройки для обоих роутеров.

Обозначим роутеры №1 и №2.

Базовые настройки помещены под спойлер.


СПОЙЛЕР Настройки роутера №1.

Подключаемся к роутеру через WinBox из локальной сети. (как это сделать)

Reset Configuration.

Сбрасываем конфигурацию без сохранения настроек по умолчанию.

Через командную строку терминала:



Подключаемся к роутеру по MAC-адресу.

 

Ports.

Переименуем порты, чтоб не путаться в процессе настройки.

ether1-WAN (внешняя сеть – Интернет)

ether2-ROUTE (роутер №2)

ether3-ether5 – LAN (локальная сеть)

Через командную строку терминала:



 

Bridge.

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

Через командную строку терминала:



 

Bridge ports.

Добавляем в мост порты ether3-ether5

Через командную строку терминала:



 

Bridge address.

Назначим мосту статический IP-адрес.

Через командную строку терминала:



 

Ether2-ROUTE address.

Назначим статический адрес порту в направлении второго роутера.

Через командную строку терминала:



 

DHCPclient.

Создадим получение IP-адреса от вышестоящего роутера (провайдера) в автоматическом режиме.

Создаем DHCP Client соединение.

Через командную строку терминала:



 

DHCPserver для локальной сети.

Создаем пул IP-адресов, которые будут раздаваться автоматически.

Через командную строку терминала:



 

Укажем сеть для DHCP-сервера.

Через командную строку терминала:



 

Создадим DHCP Server.

Через командную строку терминала:



 

Привяжем полученный IP-адрес к MAC-адресу ПК пользователя.

Через командную строку терминала:



 

DNS.

Динамический DNS будет присвоен автоматически, или его можно указать вручную.

Allow Remote Requests – отмечаем галочкой.

Через командную строку терминала:



 

NAT.

NAT masquerade подменяет IP-адреса локальной сети на внешний IP при отправке запросов и обратная ситуация при возвращении ответов.

Через командную строку терминала:



После этих действий Интернет заработает в локальной сети.

Для полноценной работы необходимо выполнить настройки по безопасности, и некоторые другие настройки (см.базовая настройка роутера MikroTik).


Routes.

Создадим маршрут от первого до второго роутера. Это можно сделать в меню  IP >> Routes.

Через командную строку терминала:



Этот маршрут означает что при необходимости попасть в сеть 192.168.20.0/24 будет использован шлюз 172.16.0.20.

 


СПОЙЛЕР Настройки роутера №2.

Подключаемся к роутеру через WinBox из локальной сети. (как это сделать)

Reset Configuration.

Сбрасываем конфигурацию без сохранения настроек по умолчанию.

Через командную строку терминала:



Подключаемся к роутеру по MAC-адресу.

 

Ports.

Переименуем порты, чтоб не путаться в процессе настройки.

ether1-WAN (внешняя сеть – Интернет)

ether2-ROUTE (роутер №1)

ether3-ether5 – LAN (локальная сеть)

Через командную строку терминала:



 

Bridge.

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

Через командную строку терминала:



 

Bridge ports.

Добавляем в мост порты ether3-ether5

Через командную строку терминала:



 

Bridge address.

Назначим мосту статический IP-адрес.

Через командную строку терминала:



 

Ether2-ROUTE address.

Назначим статический адрес порту в направлении первого роутера.

Через командную строку терминала:



 

DHCPclient.

Создадим получение IP-адреса от вышестоящего роутера (провайдера) в автоматическом режиме.

Создаем DHCP Client соединение.

Через командную строку терминала:



 

DHCPserver для локальной сети.

Создаем пул IP-адресов, которые будут раздаваться автоматически.

Через командную строку терминала:



 

Укажем сеть для DHCP-сервера.

Через командную строку терминала:



 

Создадим DHCP Server.

Через командную строку терминала:



 

Привяжем полученный IP-адрес к MAC-адресу ПК пользователя.

Через командную строку терминала:



 

DNS.

Динамический DNS будет присвоен автоматически, или его можно указать вручную.

Allow Remote Requests – отмечаем галочкой.

Через командную строку терминала:



 

NAT masquerade.

Через командную строку терминала:



После этих действий Интернет заработает в локальной сети.

Не забываем выполнять базовые настройки по безопасности.


Routes.

Создадим маршрут от второго роутера к первому роутера. Переходим в боковом меню в  IP >> Routes.

Через командную строку терминала:



Этот маршрут означает что при необходимости попасть в сеть 192.168.10.0/24 будет использован шлюз 172.16.0.10.

Настроенная система прошла успешное тестирование. Доступ между сетями может ограничивать антивирус или правила Firewall в роутерах.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-04-02T16:37:28
Настройка ПО

Резервное копирование Mikrotik через Oxidized

Итак сегодня речь пойдет об инструменте в задачу которого входит выполнение централизованного резервного копирования конфигурационных файлов (те которые выполняются с расширением rsc) оборудования Mikrotik. Плюс инструмент умеет отображать разницу в изменениях, а делает он это через складирование изменений посредством системы контроля версий GIT. Я если честно давно искал такой инструмент и вот я воплотил свою задумку разобрав от и до все шаги по разворачиванию сервиса oxidized в систему Ubuntu 18.04 Server amd64. Узнал я о нем это просматривая опубликованные презентации посвященные Mikrotik, к примеру если через поисковую систему Google ввести «Автоматизируем бэкап — MUM — MikroTik»




Предварительные действия: На всех Mikrotik(ах) для которых Вы хотите осуществлять резервное копирование нужно сделать учетную записи с минимальными правами, к примеру только на чтение:




ekzorchik@srv-bionic:~$ ssh -l admin 172.33.33.22
 
[admin@MikroTik] > user add name=test password=Aa1234567 group=read
 
[admin@MikroTik] > quit




Connection to 172.33.33.22 closed.




ekzorchik@srv-bionic:~$




Шаг №1: Настраиваю систему





ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject
 
ekzorchik@srv-bionic:~$ sudo ./dproject/default




Полученная текущая система с учетом моего скрипта настройки который я применяю в своей локальной сети:




ekzorchik@srv-bionic:~$ uname -a && lsb_release -a




Linux srv-bionic 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux




No LSB modules are available.




Distributor ID: Ubuntu




Description: Ubuntu 18.04.2 LTS




Release: 18.04




Codename: bionic




ekzorchik@srv-bionic:~




Шаг №2: Устанавливаю пакет Oxidized в систему Ubuntu 18.04 Server amd64:




ekzorchik@srv-bionic:~$ sudo apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev -y
 
ekzorchik@srv-bionic:~$ gem install oxidized oxidized-script oxidized-web




Fetching: asetus-0.3.0.gem (100%)




ERROR: While executing gem ... (Gem::FilePermissionError)




You don't have write permissions for the /var/lib/gems/2.5.0 directory.




ekzorchik@srv-bionic:~$ sudo gem install oxidized oxidized-script oxidized-web




Done installing documentation for charlock_holmes, rack, tilt, rack-protection, sinatra, emk-sinatra-url-for, temple, haml, htmlentities, puma, rb-fsevent, ffi, rb-inotify, sass-listen, sass, backports, rack-test, multi_json, sinatra-contrib, oxidized-web after 675 seconds




22 gems installed




ekzorchik@srv-bionic:~$




Шаг №3: Cоздаю пользователя oxidized, с правами которого будет запускаться система бэкапа:




ekzorchik@srv-bionic:~$ sudo useradd -m -p 712mbddr@ -s /bin/bash oxidized




На время даю права повышения привилегий, в конце заметки заберу.




ekzorchik@srv-bionic:~$ sudo usermod -aG sudo oxidized




Шаг №4: Создаю структуру запуска приложения oxidized




ekzorchik@srv-bionic:~$ sudo su - oxidized




oxidized@srv-bionic:~$ oxidized -v




0.26.1




oxidized@srv-bionic:~$




oxidized@srv-bionic:~$ whereis oxidized




oxidized: /usr/local/bin/oxidized




oxidized@srv-bionic:~$ oxidized




edit ~/.config/oxidized/config




oxidized@srv-bionic:~$ mkdir ~/.config/oxidized/crashes




oxidized@srv-bionic:~$ mkdir ~/.config/oxidized/mikrotik/




oxidized@srv-bionic:~$ sudo find / -name oxidized




/home/oxidized




/home/oxidized/.config/oxidized




/run/sudo/ts/oxidized




/usr/local/bin/oxidized




/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/lib/oxidized




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/bin/oxidized




/var/lib/gems/2.5.0/gems/oxidized-script-0.6.0/lib/oxidized




/var/lib/gems/2.5.0/doc/oxidized-web-0.13.1/ri/lib/oxidized




oxidized@srv-bionic:~$




Шаг №5: Преднастраиваем GIT для устройств Mikrotik бекапы которых будут хранится в репозитарии:




oxidized@srv-bionic:~$ sudo apt-get install git -y




oxidized@srv-bionic:~$ git config --global user.email "oxidized@ekzorchik.ru"




oxidized@srv-bionic:~$ git config --global user.name "oxidized"




oxidized@srv-bionic:~/.config/oxidized$ git init oxidized.git




Initialized empty Git repository in /home/oxidized/.config/oxidized/oxidized.git/.git/




oxidized@srv-bionic:~/.config/oxidized$ git init devices.git




Initialized empty Git repository in /home/oxidized/.config/oxidized/devices.git/.git/




Шаг №6: Настраиваем конфигурационный файл




oxidized@srv-bionic:~$ nano ~/.config/oxidized/config




---
 
model: routeros
resolve_dns: true
 
#Как часто делать бекапы

interval: 3600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([w.@-]+[#>]s?)$/
rest: 0.0.0.0:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
log: "/home/oxidized/.config/oxidized/log"
crash:
directory: "/home/oxidized/.config/oxidized/crashes"
hostnames: false
stats:
history_size: 10
input:

#Тип подключения к устройству

default: ssh
 
#Расширенное логирование отключено
 
debug: false
ssh:
secure: false
map:
verify_host_key: never
utf8_encoded: true
 
#где хранится конфигурации GIT
 
output:
default: git
git:
user: oxidized
email: oxidized@ekzorchik.ru
repo: "/home/oxidized/.config/oxidized/oxidized.git"
git:
user: oxidized
email: oxidized@ekzorchik.ru
repo: "/home/oxidized/.config/oxidized/devices/devices.git"

#Откуда берется информация об устройства которые бекапятся
 
source:
default: csv
csv:
file: "/home/oxidized/.config/oxidized/mikrotik/router.db"
delimiter: !ruby/regexp /:/
 
#Структура строки в router.db: name:model:ip:port:username:password
 
map:
name: 0
model: 1
ip: 2
port: 3
username: 4
password: 5
model_map:
cisco: ios
juniper: junos
mikrotik: routeros




На заметку: Если не настроена авторизация на Mikrotik через публичный ключ, т. е. Вход на Mikrotik с одним лишь указанием логина, то в конфигурационный файл oxidized следует добавить параметр: verify_host_key: never




Шаг №7: Копируем публичный ssh—ключ на Mikrotik:




oxidized@srv-bionic:~$ ssh-keygen




Your identification has been saved in /home/oxidized/.ssh/id_rsa.




Your public key has been saved in /home/oxidized/.ssh/id_rsa.pub.




oxidized@srv-bionic:~$ cp ~/.ssh/id_rsa.pub idrsa
 
oxidized@srv-bionic:~$ ftp 172.33.33.22




Connected to 172.33.33.22.




220 MikroTik FTP server (MikroTik 6.42.5) ready




Name (172.33.33.22:ekzorchik): admin




ftp> put idrsa




ftp> quit




oxidized@srv-bionic:~$
 
oxidized@srv-bionic:~$ ssh admin@172.33.33.22
 
[admin@MikroTik] > user ssh-keys import public-key-file=idrsa user=test
 
[admin@MikroTik] > quit




Connection to 172.33.33.22 closed.




oxidized@srv-bionic:~$




oxidized@srv-bionic:~$ ssh test@172.33.33.22 — подключение проходит без каких либо запросов на ввод пароля.




Шаг №8: Теперь создаю файл подключения к оборудованию Mikrotik:





oxidized@srv-bionic:~$ nano ~/.config/oxidized/mikrotik/router.db
 
mikrotik:routeros:172.33.33.22:22:test:Aa1234567




Шаг №9: Проверяю запуск и соответственно на предмет каких-либо ошибок препятствующих запуску:




oxidized@srv-bionic:~$ oxidized ~/.config/oxidized/config




Puma starting in single mode...




* Version 3.11.4 (ruby 2.5.1-p57), codename: Love Song




* Min threads: 0, max threads: 16




* Environment: development




* Listening on tcp://0.0.0.0:8888




Use Ctrl-C to stop







У каждой строчке есть колонка «Actions»







  • Первая иконка: Посмотреть текущий конфигурационный файл
  • Вторая иконка: Посмотреть историю изменений конфигурационного файла
  • Третья иконка: Это запуск процедуры снятия изменения в репозитарий




Шаг №10: См.логи если что-то пошло не так




ekzorchik@srv-bionic:~$ tail -f /home/oxidized/.config/oxidized/log




W, [2019-03-04T11:34:49.491810 #28328] WARN -- : /mikrotik status no_connection, retries exhausted, giving up




I, [2019-03-04T11:36:11.666786 #28380] INFO -- : Oxidized starting, running as pid 28380




I, [2019-03-04T11:36:11.669229 #28380] INFO -- : lib/oxidized/nodes.rb: Loading nodes




I, [2019-03-04T11:36:11.812262 #28380] INFO -- : lib/oxidized/nodes.rb: Loaded 1 nodes




I, [2019-03-04T11:36:14.351899 #28380] INFO -- : Configuration updated for /mikrotik




Шаг №11: Для того, чтобы oxidized стартовал как служба, сделайте следующее:




oxidized@srv-bionic:~$ sudo find / -name oxidized.service




/var/lib/gems/2.5.0/gems/oxidized-0.26.1/extra/oxidized.service




oxidized@srv-bionic:~$ sudo cp /var/lib/gems/2.5.0/gems/oxidized-0.26.1/extra/oxidized.service /lib/systemd/system/




oxidized@srv-bionic:~$ sudo nano /lib/systemd/system/oxidized.service




[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target
 
[Service]
ExecStart=/usr/local/bin/oxidized
User=oxidized
KillSignal=SIGKILL
Environment="OXIDIZED_HOME=/home/oxidized/.config/oxidized/"
 
[Install]
WantedBy=multi-user.target




oxidized@srv-bionic:~$ sudo systemctl enable oxidized.service




Created symlink /etc/systemd/system/multi-user.target.wants/oxidized.service → /lib/systemd/system/oxidized.service.




oxidized@srv-bionic:~$ sudo systemctl start oxidized




oxidized@srv-bionic:~$ sudo systemctl status oxidized | head -n5




● oxidized.service - Oxidized - Network Device Configuration Backup Tool




Loaded: loaded (/lib/systemd/system/oxidized.service; enabled; vendor preset: enabled)




Active: active (running) since Mon 2019-03-04 12:16:53 MSK; 9s ago




Main PID: 29039 (oxidized)




Tasks: 7 (limit: 2322)




Проверяю, что ожидаются соединения на порт 8888




oxidized@srv-bionic:~$ sudo netstat -tulpn | grep :8888




tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 29039/puma 3.11.4 (




oxidized@srv-bionic:~$




Шаг №12: По умолчанию у сервиса нет возможности указать авторизацию, а потому в конфиге config изменяю доступ на 172.0.0.1




oxidized@srv-bionic:~$ nano ~/.config/oxidized/config




#rest: 0.0.0.0:8888

rest: 127.0.0.1:8888




oxidized@srv-bionic:~$ sudo apt-get install nginx -y




oxidized@srv-bionic:~$ sudo rm /var/www/html/index.nginx-debian.html




oxidized@srv-bionic:~$ sudo unlink /etc/nginx/sites-available/default




oxidized@srv-bionic:~$ sudo unlink /etc/nginx/sites-enabled/default




Создаю файл связки логина и пароля для аутентификации через Web—интерфейс:




oxidized@srv-bionic:~$ sudo sh -c "echo -n 'ekzorchik:' >> /var/www/html/.htpasswd"




oxidized@srv-bionic:~$ openssl passwd -apr1




Password: 712mbddr@




Verifying - Password: 712mbddr@




$apr1$rwseclUD$ANBsXcpdvR.07mthC2PLO.




oxidized@srv-bionic:~$ sudo sh -c "openssl passwd -apr1 >> /var/www/html/.htpasswd"




Password: 712mbddr@




Verifying - Password: 712mbddr@




oxidized@srv-bionic:~$ cat /var/www/html/.htpasswd




ekzorchik:$apr1$V6ZTHWcF$bdDbxqPJAQAzfdXw7Z9n/0




oxidized@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/html/.htpasswd




oxidized@srv-bionic:~$ sudo nano /etc/nginx/sites-available/oxidized




server { 
listen 172.33.33.4:80; 
server_name _; 
root /usr/share/nginx/html; 
include /etc/nginx/default.d/*.conf; 
location / { 
auth_basic "UserName and Password Please"; 
auth_basic_user_file /var/www/html/.htpasswd; 
proxy_pass http://127.0.0.1:8888/; 
} 
}




oxidized@srv-bionic:~$ sudo ln -s /etc/nginx/sites-available/oxidized /etc/nginx/sites-enabled/oxidized




oxidized@srv-bionic:~$ sudo nginx -t




nginx: the configuration file /etc/nginx/nginx.conf syntax is ok




nginx: configuration file /etc/nginx/nginx.conf test is successful




oxidized@srv-bionic:~$ sudo systemctl restart nginx && sudo systemctl status nginx | head -n5




● nginx.service - A high performance web server and a reverse proxy server




Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)




Active: active (running) since Mon 2019-03-04 12:19:27 MSK; 34ms ago




Docs: man:nginx(8)




Process: 29084 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)




oxidized@srv-bionic:~$




Auth Basic авторизация в Oxidizing через NGINX




Вход успешно выполнен в систему Oxidizing на Ubuntu 18.04 Server




Работает! Итого я для себя разобрал, как использовать инструмент oxidized на Ubuntu 18.04 Server amd64 для создания резервных копий с оборудования Mikrotik и просмотра внесенных изменений через Web-интерфейс с применением системы контроля версий на базе GIT. Жалко что нельзя использовать Mercurial — мне данная система контроля версий ближе, у меня все на ней построено: скрипты, конфигурационные файлы и т. д. А пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.













Источник: https://www.ekzorchik.ru/2019/03/backing-up-mikrotik-via-oxidized/







Git проекта: https://github.com/ytti/oxidized



2021-04-01T22:40:19
Software

MikroTik – настройка двух каналов доступа в Интернет.

В описании представлена настройка двух Интернет-каналов в режиме резервирования. При пропадании связи с одним из каналов, трафик автоматически переходит на второй канал. Работа основана на мониторинге основного канала через пинг и разной метрике шлюзов.

Недостаток метода в том, что мониторинг выполняется от роутера MikroTik до следующего роутера (провайдера).  Если Интернет пропадет на участке ВОЛС (см. схему ниже), то наш MikroTik не обнаружит этого и не переключится на резервный канал.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Схема подключения.

В схеме участвует роутер MikroTik RB750Gr3 с прошивкой 6.47.4.

В первый и второй порты подключены патч-корды внешних сетей. В пятый порт патч-корд от коммутатора локальной сети.

Подключаемся к MikroTik через WinBox из локальной сети. (как это сделать)

 

Reset Configuration.

Сбрасываем конфигурацию без сохранения настроек по умолчанию.

Через командную строку терминала:



Подключаемся к роутеру по MAC-адресу.

 

Ports.

Назначим следующие подключения на порты:

ether1 – подключение канала доступа в Интернет №1

ether2 – подключение канала доступа в Интернет №2

Переименуем порты внешней сети, чтоб не путаться в процессе настройки.

ether1-WAN1

ether2-WAN2

Через командную строку терминала:



 

Bridge.

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

Через командную строку терминала:



 

Bridge ports.

Добавляем в мост порты ether3-ether5

Через командную строку терминала:



 

Bridge address.

Назначим мосту статический IP-адрес.

Через командную строку терминала:



 

DHCPclient.

Создадим получение IP-адресов от вышестоящих роутеров (провайдера) в автоматическом режиме.

Создаем аналогичными действиями два DHCP Client соединения с разницей в интерфейсе:

-для первого ether1-WAN1;

-для второго ether2-WAN2.

Add Default Route: no (отключаем создание дефолтного маршрута)

Через командную строку терминала:



Через некоторое время DHCP Clients получат IP-адреса. Это можно проверить в IP >> Addresses

D-dynamic (динамический адрес)

 

Routes.

Создадим два статических маршрута для каждого шлюза.

Для первого:

Dst.Address:0.0.0.0/0

Gateway: 192.168.1.1

Distance:1

AS – active, static (активный статический маршрут).

В маршрутах разные внешние шлюзы и метрика.

Для второго:

Dst.Address:0.0.0.0/0

Gateway: 192.168.0.1

Distance:2

Через командную строку терминала:



Маршрут с наименьшей метрикой будет использоваться в приоритете. Как только пропадает связь с основным шлюзом (с роутером провайдера), роутер переключается на следующий по величине метрики маршрут.

Для корректной работы нужно указывать дополнительную настройку для основного канала — check-gateway=ping.

Периодически (каждые 10 секунд) шлюз проверяется с помощью отправки ICMP запросов (ping) или запросов ARP. Если ответ от шлюза не получен в течение 10 секунд, время ожидания запроса истекает. По истечении двух таймаутов шлюз считается недоступным. В нашем случае произойдет переключение на второй шлюз.

После получения ответа от шлюза он считается достижимым, и счетчик тайм-аута сбрасывается.  wiki.mikrotik.com

DHCP-server.

Для удобства управления создадим DHCP-сервер на внутренней сети.

Создаем пул IP-адресов, которые будут раздаваться автоматически.

Через командную строку терминала:



Укажем сеть для DHCP-сервера.

Через командную строку терминала:



Создадим DHCP Server.

Через командную строку терминала:



Привяжем полученный IP-адрес к MAC-адресу ПК пользователя.

Через командную строку терминала:



 

Интернет не заработает без DNS и NAT. Настроим их.

DNS.

Динамические DNS прилетят автоматически, либо их можно прописать вручную.

Allow Remote Requests – отмечаем галочкой.

Через командную строку терминала:



 

NAT.

Создаем два правила NAT masquerade, подменяющие IP-адреса локальной сети на внешний IP, для двух внешних интерфейсов.

В первом правиле указываем Out.Interface: ether1-WAN1

При создании второго правила действия аналогичные, только указываем Out.Interface: ether2-WAN2

Через командную строку терминала:



Для полноценной работы необходимо выполнить настройки по безопасности, указать NTP сервер и некоторые другие настройки. см. базовая настройка роутера MikroTik.

 

Проверка.

Выполним проверку переключения каналов.

Отключим патч-корд канала №1 и убедимся, что трафик пойдет через канал №2.

Наблюдаем ситуацию в IP >> Routes

При штатной работе оба шлюза достижимы (reachable), активным (AS) является ether-WAN1 Интернет трафик идет через него. Можно запустить пинг на какой-нибудь внешний ресурс в командной строке ПК и смотреть как он будет выполнятся.

Отключаем патч-корд первого канала от роутера. Первый канал недостижим (unreachable) и трафик начинает идти через канал №2.

Возвращаем первый патч-корд на место и видим, что активным (AS) становится первый канал, трафик идет через него.

Для мониторинга резервирования каналов до какого-нибудь сервера в Интернете используется приложение Netwatch или рекурсивные маршруты. Об этом будет написано в другой раз.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-03-26T15:43:34
Настройка ПО